1. 程式人生 > >OSPF鄰接關系建立

OSPF鄰接關系建立

直接 回復 size 進行 roc 所有 等待 oss exchange

拓撲如下:

技術分享圖片

抓包:

技術分享圖片

第一份報文:

技術分享圖片
R1率先發送Hello報文,未攜帶R2的RID

第二份報文:

技術分享圖片
R2隨後發送Hello報文,未攜帶R1的RID(P-2-P網絡Network Mask字段可以不一致)

第三份報文:

技術分享圖片
R1收到R2發送的Hello報文(第二份),R1進入init狀態,同時將R2的Router ID添加進Avtive Neighbor字段,發送Hello報文

  • 通過一個接口收到Hello報文,但這份Hello報文中不存在Avtive Neighbor字段或是Avtive Neighbor字段沒有包含自身Router ID,代表鄰居還沒有收到自身發送的Hello報文,此時進入單向init狀態

第四份報文:

技術分享圖片
R2收到R1發送的Hello報文(第三份)Avtive Neighbor字段描述了R2自身的Router ID
R2進入two-way狀態,由於接口類型為P-2-P,無需等待wait時間,R2直接進入Exstart狀態,發送First DD報文,同時隨機生成一個序列號304

  • First DBD不攜帶LSA頭部信息
  • 第五份報文:

    技術分享圖片
    R1收到R2發送的First DD報文(第四份),R1進入Exstart狀態,R1發送First DD報文,同時隨機生成一個序列號305(該序列號並非304+1,乃隨機生成的數值,恰巧接近304)

    • First DBD不攜帶LSA頭部信息

第六份報文:

技術分享圖片
R1 收到R2發送的First DD報文(第四份),比較雙方RID(越大越優先),R1意識到自己是Slave的路由器,R1進入Exchange狀態,發送“認慫”DD報文,Slave路由器的序列號采用Mater路由器(R2)的序列號數值304,這份DD報文中包含R1的LSA摘要信息

  • Exchange狀態,路由器通過DD報文交互它們的鏈路狀態數據庫摘要信息

    第七份報文:

    技術分享圖片
    R2收到R1發送的“認慫”DD報文,通過查看LSA摘要信息,發現自身缺少
    LS type 1 Link ID 1.1.1.1 ADV router 1.1.1.1的LSA
    R2進入loading狀態,發送LSR請求自己缺少的LSA

    LSR:只包含LS type 、 Link ID 、 ADV router (LSA三元組)

  • loading狀態,路由器通過LSR報文請求完整的LSA信息

第八份報文:

技術分享圖片
R2發送DD報文,這份DD報文中包含R2的LSA摘要信息

  • 序列號305(Master路由器使用Slave路由器發送DD報文序列號+1數值)OSPF隱式確認

第九份報文:

技術分享圖片
R1收到R2的LSR,R1進入loading狀態,應答LSU,LSU中包含完整的LSA信息
(包括LSA頭部和具體的鏈路狀態信息)

第十份報文:

技術分享圖片
R1收到R2的DD報文,通過查看LSA摘要信息,發現自身缺少
LS type 1 Link ID 2.2.2.2 ADV router 2.2.2.2的LSA
R1發送LSR請求自己缺少的LSA
LSR:只包含LS type 、 Link ID 、 ADV router (LSA三元組)

第十一份:

技術分享圖片
Slave路由器R1隱式確認Master路由器R2發送的最後一份DD報文(第八份),R1這份DD報文不包含LSA頭部信息,序列號305
(Slave路由器使用Master路由器發送DD報文的序列號數值)

第十二份:

技術分享圖片
R2收到R1的LSR,向R1發送LSU,LSU中包含完整的LSA信息
(包括LSA頭部和具體的鏈路狀態信息)

  • 將loopback接口宣告進OSPF時,不論loopback接口真實掩碼是多少(此例中是/24),都是以/32主機路由的形式通告,目的是為了解決loopback網段的路由黑洞
    但在MPLS環境中,本地關於loopback的路由是/24,把loopback宣告進OSPF後,鄰居學到是/32路由,LDP無法進行標簽交換,因此建議loopback接口直接使用/32的掩碼

    第十三份:

    技術分享圖片
    R2發送LSU,包含已知的所有LSA

第十四份:

技術分享圖片
R1發送LSU,包含已知的所有LSA

第十五份:

技術分享圖片
R1通過LSAck應答R2的LSU(OSPF顯式確認)

第十六份:

技術分享圖片
R2通過LSAck應答R1的LSU(OSPF顯式確認)

第十七份報文 + :

OSPF完成收斂,R1和R2擁有一份相同的LSDB
R1和R2周期性發送Hello報文維持鄰接關系
BMA和P-2-P: 默認Hello周期10秒,Dead時間40秒,Wait時間40秒
NBMA和P-2-MP:默認Hello周期30秒,Dead時間120秒,Wait時間120秒

OSPF顯式確認:收到鄰居發送的報文,使用獨立的其他報文給它做確認

例如發送LSR,回復LSU
例如發送LSU,回復LSAck

OSPF隱式確認:使用相同的報文既做應答也做確認

例如Hello報文,DD報文

Hello報文使用Avtive Neighbor字段來做隱式確認
(收到鄰居的Hello即在Avtive Neighbor字段添加鄰居Router ID)

DD報文包含序列號,Slave路由器使用Master路由器的序列號
Master路由器使用Slave路由器的序列號+1
除First DD和Slave路由器應答Master路由器的最後一份DD報文外(DB description :0001)
其余DD報文還包含LSA摘要信息,既做應答又做確認,不用使用獨立報文

OSPF鄰接關系建立