1、OSPF的Router ID選舉規則
a)如果通過命令設置了routerID,則選擇此作爲ROUTER ID
b)如果沒通過命令設置routerID,若有loopback地址,則選擇最大的loopback地址作爲router ID;若無loopback地址,則選擇其他接口中地址最大的作爲router ID。
2、OSPF的router ID刷新規則
a)當且僅當被選舉爲routerID的接口的地址被刪除或修改,纔會觸發選舉過程,此過程需要reset OSPF進程才生效;
b)被選擇的接口狀態改變、新配置更大的loopback或其他接口地址,均不會導致router id重新選舉;
c)router ID不可以是0.0.0.0 或 255.255.255.255
3、router ID作用
a)作爲OSPF區域中本路由器的唯一標識;
b)DR、BDR選舉中,在優先級相同的時候,router ID大的選舉爲DR。
4、router ID衝突問題
1)拓撲,見附件
2)場景1:R1和R2均在area0,R1/R2具有相同的routerID
【R1】
ospf1 router-id 2.2.2.2
area 0.0.0.0
network 10.1.1.1 0.0.0.0
network 10.1.12.1 0.0.0.0
【R2】
ospf1 router-id 2.2.2.2
area 0.0.0.0
network 10.1.12.2 0.0.0.0
network 10.1.2.2 0.0.0.0
結果:R1、R2無法建立OSPF鄰居關係;
分析:R1發送hello包後,R2收到R1的hello包,發現routerID與自己的router ID一致,鄰居無法建立。
3)場景2:R1、R2和R3處於area0,R2、R3具有相同的routerID
【R1】
ospf1 router-id 1.1.1.1
area 0.0.0.0
network 10.1.1.1 0.0.0.0
network 10.1.12.1 0.0.0.0
network 10.1.13.1 0.0.0.0
【R2】
ospf1 router-id 2.2.2.2
area 0.0.0.0
network 10.1.12.2 0.0.0.0
network 10.1.2.2 0.0.0.0
【R3】
ospf1 router-id 2.2.2.2
area 0.0.0.0
network 10.1.3.3 0.0.0.0
network 10.1.13.3 0.0.0.0
結果:
a)R1和R3、R1和R2能分別建立OSPF鄰居;
b)R2能學到R1或R3路由,但路由會不停地抖動,一會兒學到R1的,一會兒學到R3;
c)R1、R3無法互相學到路由。
分析:
a)OSPF是以{type、ls id、advrouter}來標識LSA,以(age、seq num、checksum)標識一個LSA實例;
b)R3發送的LSA,R1泛洪,R2收到該LSA;
c)R2檢查收到的LSA,發現{type、ls id、adv router}與自己一致,就認爲是自己始發的LSA;
e)R2比較(age、seq num、checksum),發現該LSA比自身存的數據庫更新,則seq num+1,回覆LSA。
f)R1收到R2的LSA後,發現{type、ls id、adv router}與自己數據庫的R3的一致,認爲是一條LSA;再比較(age、seq num、checksum),發現seqnum更大,LSA更加新,則泛洪。
g)R3收到R1轉發的R2的LSA,{type、ls id、advrouter}一樣,(age、seq num、checksum)更新,跟R2一樣的超過。
h)R3/R1/R2之間不停地傳遞LSA,不斷循環。
故:R1一會兒學到R3的路由,一會兒學到R1的路由。R1、R3之間無法互相學到路由。
華爲模擬器實驗表明:這種情況循環多次後,R1/R3會重新選舉一個routerID發起OSPF鄰居建立過程,鄰居建立後,R1能學到R2、R3的路由。
4)場景3:R1、R2爲area0,R4爲area1,R1、R4具有相同的routerID
【R1】
ospf1 router-id 1.1.1.1
area 0.0.0.0
network 10.1.1.1 0.0.0.0
network 10.1.12.1 0.0.0.0
network 10.1.13.1 0.0.0.0
【R2】
ospf1 router-id 2.2.2.2
area 0.0.0.0
network 10.1.12.2 0.0.0.0
network 10.1.2.2 0.0.0.0
area 0.0.0.1
network 10.1.24.2 0.0.0.0
【R4】
ospf1 router-id 1.1.1.1
area 0.0.0.1
network 10.1.4.4 0.0.0.0
network 10.1.24.4 0.0.0.0
結果:
a)area0,R1能與R2建立鄰居關係;
b)area1,R1能與R4建立鄰居關係。
c)R1、R4能互相學到路由。
分析:
a)R1發送LSA,R2收到後,向area1發送3類LSA:LS ID爲路由前綴,R2爲ABR,adv router爲R2的router ID
b)R4收到3類LSA後,發現是新的router id,與自己不同,納入LSDB,並提交路由表。
c)R4發送的LSA,R2、R1相同處理,均能學到路由。