DR和BDR詳解

  爲減小多路訪問網絡中OSPF流量,OSPF會選擇一個指定路由器(DR)和一個備份指定路由器(BDR)。當多路訪問網絡發生變化時,DR負責更新其他所有OSPF路由器。BDR會監控DR 的狀態,並在當前DR發生故障時接替其角色。DR和BDR是由同一網段中所有的路由器根據路由器優先級、Router ID通過HELLO報文選舉出來的,只有優先級大於0的路由器才具有選取資格。進行DR/BDR選舉時每臺路由器將自己選出的DR寫入Hello報文中,發給網段上的每臺運行OSPF協議的路由器。當處於同一網段的兩臺路由器同時宣佈自己是DR時,路由器優先級高者勝出。如果優先級相等,則Router ID大者勝出。
  
DR的選舉
1.記錄當前網絡中的DR和BDR值,以便之後作比較用。
2.按照如下方式計算BDR。只有那些在列表中的沒有宣稱自己爲DR的路由器才能參加BDR選舉。若多於一臺路由器宣稱自己爲BDR(例如,當前在它們的Hello包中它們將自己列爲BDR,但不是DR),則擁有最高路由器優先級的路由器被選舉成爲BDR。如果路由器的優先級相等,則擁有最高Router ID的路由器將當選;如果沒有路由器宣稱自己爲BDR,則選舉擁有最高路由器優先級的鄰居路由器爲BDR(同樣不考慮那些宣稱自己爲DR的路由器),同樣使用Router ID來打破平局。 
3.按照如下方法爲此網絡計算新的DR。若一或多個路由器宣稱自己爲DR(也就是說,當前在它們的Hello包中將它們自己列爲DR),則擁有最高路由器優先級的路由器被宣告爲DR。如果出現平局,擁有最高Router ID者勝出;如果沒有路由器宣告自己爲DR,則新選擇出來的BDR成爲DR。 
4.如果路由器X現在被選爲新的DR或者BDR,或者它不再成爲DR或者BDR,重複步驟2和3,然後跳到步驟5。例如,如果路由器X現在是DR,當重複第2步時路由器X將不能再參加BDR的選舉。此外,這也會保證沒有任何路由器會同時宣告自己爲BDR和DR。 
5.作爲選舉的結果,路由器本身可能現在成爲了DR或者BDR。路由器的接口狀態將被依此而設置。如果路由器現在成爲了BDR,則端口的新狀態爲“備份”。否則,接口的新狀態成爲DR Other。 
6.如果所連接的網絡是NBMA網絡而路由器本身正好被選舉爲DR或者BDR,它必須開始發送hello包給那些無權成爲DR的鄰居。這是通過調用每個擁有路由器優先級0的鄰居消息“Start”來實現的。 
7.如果以上計算導致了DR或者BDR身份的改變,與此端口關聯的鄰接關係需要進行改變。某些鄰接關係需要建立,而其他一些將被打破。爲了實現此動作,爲所有狀態至少爲“2-Way”的鄰居調用消息“AdjOK?”。這將會導致它們重新檢查鄰接狀態。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章