DR和BDR詳解

上海地面通發表於2019-10-11

       為減小多路訪問網路中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?”。這將會導致它們重新檢查鄰接狀態。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69943410/viewspace-2659473/,如需轉載,請註明出處,否則將追究法律責任。

相關文章