ospf DR/BDR選舉

多路訪問網絡中的挑戰
 
在多路訪問網絡中,相同的共享介質上連接有兩臺以上設備。在圖的上半部分,R1 所連接的以太網 LAN 展開並顯示了網絡 172.16.1.16/28 所連接的多臺設備。以太網 LAN 就是一種廣播多路訪問網絡。因爲該網絡中的所有設備會看到所有廣播幀,所以它屬於廣播網絡。因爲該網絡可能包括許多主機、打印機、路由器和其它設備,所以屬於多路訪問網絡。
相比之下,點對點網絡中只有兩臺設備,它們分處網絡兩端。R1 和 R3 之間的 WAN 鏈路就屬於點對點鏈路。圖中下半部分即爲 R1 和 R3 之間的點對點鏈路。
OSPF 定義了五種網絡類型:
.點對點
.廣播多路訪問
.非廣播多路訪問 (NBMA)
.點對多點
.虛擬鏈路

NBMA 和點對多點網絡包括幀中繼、ATM 和 X.25 網絡。
 
LSA 泛洪
 
我們之前已經瞭解到,鏈路狀態路由器會在 OSPF 初始化以及拓撲更改時泛洪其鏈路狀態數據包。
在多路訪問網絡中,此泛洪過程中的流量可能變得很大。在上圖中R2 發出一個 LSA。此事件觸發其它每臺路由器發出 LSA。收到每個 LSA 後需要發出的確認未在動畫中顯示。如果多路訪問網絡中的每臺路由器都需要向其它所有路由器泛洪 LSA 併爲收到的所有 LSA 發出確認,網絡通信將變得非常混亂。
打個比方,想象您在一個有很多人的房間內。如果每個人都必須向其它所有人逐個作介紹,會發生什麼情況呢?不僅每個人必須向其它所有人逐個介紹自己的姓名,而且一旦某個人獲悉了另一個人的姓名,還必須將該信息逐個告訴其它所有人。如您所見,此過程將十分混亂!
 
解決方案:指定路由器
用於在多路訪問網絡中管理相鄰關係數量和 LSA 泛洪的解決方案是指定路由器 (DR)。繼續討論上一個例子,此解決方案可比喻爲在房間裏選舉出一個人,由該人員向所有人逐個詢問姓名,然後將這些姓名一次性通告給所有人。
在多路訪問網絡中,OSPF 會選舉出一個指定路由器 (DR) 負責收集和分發 LSA。還會選舉出一個備用指定路由器 (BDR),以防指定路由器發生故障。其它所有路由器變爲 DROther(這就表示該路由器既不是 DR 也不是 BDR)。
多路訪問網絡中的路由器會選舉出一個 DR 和一個 BDR。DROther 僅與網絡中的 DR 和 BDR 建立完全的相鄰關係。這意味着 DROther 無需向網絡中的所有路由器泛洪 LSA,只需使用組播地址 224.0.0.6(ALLDRouters — 所有 DR 路由器)將其 LSA 發送給 DR 和 BDR 即可。在上圖中R1 將 LSA 發給 DR,BDR 也收到該通信。DR 負責將來自 R1 的 LSA 轉發給其它所有路由器。DR 使用組播地址 224.0.0.5(AllSPFRouters — 所有 OSPF 路由器)。最終結果是,多路訪問網絡中僅有一臺路由器負責泛洪所有 LSA。
 
 
DR/BDR選舉過程
 
拓撲變化
DR/BDR 選舉不會發生在點對點網絡中。因此,在標準的三路由器拓撲中,R1、R2 和 R3 不需要選舉 DR 和 BDR,原因在於這些路由器之間的鏈路不是多路訪問網絡。
爲繼續討論 DR 和 BDR,我們將使用圖中所示的多路訪問拓撲。路由器使用了不同的名稱。在此新拓撲中,三臺路由器共享一個公共以太網多路訪問網絡 192.168.1.0/24。每臺路由器在快速以太網接口上配置有一個 IP 地址,並配置有一個環回地址以充當路由器 ID。
 
DR/BDR 選舉
DR 和 BDR 是如何選出的呢?選舉過程遵循以下條件:
1. DR:具有最高 OSPF 接口優先級的路由器
2. BDR:具有第二高 OSPF 接口優先級的路由器
3. 如果 OSPF 接口優先級相等,則取路由器 ID 最高者。
 
在本例中,默認的 OSPF 接口優先級爲 1,因此,根據上述選舉條件,採用 OSPF 路由器 ID 來選舉 DR 和 BDR。如您所見,RouterC 成爲 DR,RouterB 具有第二高的路由器 ID,因此成爲 BDR。因爲 RouterA 未被選舉爲 DR 或 BDR,所以成爲 DROther。
DROther 僅與 DR 和 BDR 建立完全的相鄰關係,但也會與該網絡中的任何其它 DROthers 建立相鄰關係。這意味着多路訪問網絡中的所有 DROther 路由器仍然會收到其它所有 DROther 路由器發來的 Hello 數據包。通過這種方式,它們可獲悉網絡中所有路由器的情況。當兩臺 DROther 路由器形成相鄰關係後,其相鄰狀態顯示爲 2WAY。
命令輸出顯示了該多路訪問網絡中各臺路由器之間的相鄰關係。請注意,RouterA 的輸出顯示 DR 是 RouterC,路由器 ID 爲 192.168.31.33;BDR 是 RouterB,路由器 ID 是 192.168.31.22。
因爲 RouterA 顯示的兩個鄰居分別爲 DR 和 BDR,所以 RouterA 是一個 DROther。這一點可通過在 RouterA 上運行 show ip ospf interface fastethernet 0/0 命令來驗證,命令輸出如圖所示。此命令將顯示此路由器的狀態是 DR、BDR 還是 DROTHER,還將顯示此多路訪問網絡中 DR 和 BDR 的路由器 ID。
 
爲了確保所需的路由器在 DR 和 BDR 選舉中獲勝無需進一步配置,解決方案有兩種:
.首先啓動 DR,再啓動 BDR,然後啓動其它所有路由器;
.關閉所有路由器上的接口,然後在 DR 上執行 no shutdown 命令,再在 BDR 上執行該命令,隨後在其它所有路由器上執行該命令。

您可能已經猜到,我們可以通過更改 OSPF 優先級來更好地控制 DR/BDR 選舉。
 
拓撲依然用上面的那個
ospf接口優先級
 
由於 DR 成爲 LSA 的集散中心,所以它必須具有足夠的 CPU 和存儲性能才能擔此重責。與其依賴路由器 ID 來確定 DR 和 BDR 結果,不如使用 ip ospf priority 接口命令來控制選舉。
Router(config-if)#ip ospf priority {0 - 255}
在前述討論中,各臺路由器的 OSPF 優先級相等,原因在於所有路由器接口的優先級值默認爲 1,因此通過路由器 ID 來確定 DR 和 BDR。但如果將該值從默認值 1 改爲更高的值,則具有最高優先級的路由器將成爲 DR,具有第二高優先級的路由器將成爲 BDR。若該值爲 0,則該路由器不具備成爲 DR 或 BDR 的資格。
因爲優先級是特定於具體接口的值,因此可用於更好地控制 OSPF 多路訪問網絡。它們還可以使一臺路由器在一個網絡中充當 DR,同時在另一個網絡中充當 DROther。
可使用 show ip ospf interface 命令查看 OSPF 接口優先級。在圖中,我們可看到 RouterA 上的優先級被設爲默認值 1。
如圖所示,RouterA 和 RouterB 的 OSPF 優先級被修改,因此具有最高優先級的 RouterA 成爲 DR,RouterB 則成爲 BDR。RouterC 上的 OSPF 接口優先級保持爲默認值 1。
 
當在所有三臺路由器的 FastEthernet 0/0 接口上按順序執行 shutdown 和 no shutdown 命令後,即可看到 OSPF 接口優先級改變所帶來的結果。RouterC 上的 show ip ospf neighbor 命令現在顯示 RouterA(路由器 ID 爲 192.168.31.11)是 DR,其 OSPF 接口優先級最高,爲 200;RouterB(路由器 ID 爲 192.168.31.22)仍是 BDR,其 OSPF 接口優先級第二高,爲 100。請注意 RouterA 的 show ip ospf neighbor 命令輸出中未顯示 DR,因爲 RouterA 就是此網絡中的 DR。
 
本文出自 “www.51cto.com” 博客,請務必保留此出處http://frecolwang.blog.51cto.com/330699/136869
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章