1.1.8 DR和BDR
DR和BDR
MA網絡中的問題
?
在OSPF章節中最后一塊就是關于DR和BDR的選舉和作用,我們在之前已經說過了,在OSPF中會有一個MA網絡,可能是NBMA,或者是BMA,也就是廣播多路訪問網絡,對于MA網絡中會存在一些問題,我們來看看存在的問題。
?
?
- N ×(N - 1)/ 2 個鄰接關系,管理復雜。
- 重復的LSA泛洪,造成資源浪費。
?
MA網絡中一般來說是兩個路由器,或者是兩個三層交換機都可以。
?
假如這里有兩個三層交換機, 在這里是做了一個直連,所以一臺鏈路上就只有兩臺設備,相當于是一個點對點的連接。
?
但是有的時候可能中間會接入一個二層的交換機,然后下方還有路由器,這個時候4臺設備都連接在一個二層的交換機上,它們處于同一個網絡中,此時這四臺三層設備都可以互相去建立鄰居關系。
?
建立鄰居關系的話有可能我們還可以去互相傳播路由信息,此時就會有N ×(N - 1)/ 2 個鄰接關系,它的管理會變得非常的復雜。
?
我們可以看到圖中,就相當于這個邏輯拓撲了,我的RTA要和RTC、RTD、RTB建立鄰居關系和鄰接關系,這個時候就要去傳播我們相應的Hello報文和相應的LSA的報文,這里就是傳播LSU報文,當然還要去傳播DD報文、LSR報文等。這個時候就會造成重復的泛洪,以及資源的浪費!
?
DR與BDR的作用
?
我們如何去節省這個資源呢?
?
- 減少鄰接關系。
- 降低OSPF協議流量。
?
?
我們在這里可以選舉出一個DR,這個DR就相當于一個組長。
?
我的其他路由器,相對于RTB、RTC和RTD來說,加入他們都是非DR,而RTA作為一個DR。
那么此時這三個路由器就跟我們的RTA去建立鄰接關系,需要什么消息從RTA這里拿,我有什么路由消息也會統一去通報給RTA,由RTA作為一個收集者去收集網段中的路由信息然后再統一分發給各個路由器。
?
這樣就能減少鄰接關系,也能降低OSPF的協議流量。
?
這里有一個思考題就是關于DR的單點故障怎么解決?
?
因為我們發現DR是一個很重要的設備,所以我們不會只單單去選舉出一個DR,我們還會有一個BDR。
?
這里就是作為一個DR的備份,如果DR Down了之后,BDR就會補上DR的工作來保證我們數據是可持續性傳輸的。
?
DR與BDR選舉
?
DR和BDR是怎么選舉的?
?
選舉規則:DR/BDR的選舉是基于接口的。
?
- 接口的DR優先級越大越優先。
- 接口的DR優先級相等時,Router ID越大越優先。
首先,它的選舉規則是基于接口的,與其說它是基于接口的,不如說它是基于網段的
?
?
假如說我在RTB上再來一個RTE,此時我在這里要選舉多少個DR?
?
我在這里是要選舉兩個的,每個網段都需要有一個DR。
對于10.1.1.0網段,也要選舉出一個DR,另外對于RTE和RTB這個網段,我們肯定還有一個網段。
?
假如是一個以太網,或者是一個幀中繼的網絡,總之,只要是MA網絡的話,我們就要去選舉一個DR,如果是PPP網絡,就不用去選舉一個DR了。
因為PPP網絡和P2MP網絡都是不用去選舉DR的。
?
按照我們這種情況,假如說現在都是以太網的話,我們是要去選舉出兩個DR的,所以就說明DR的選舉是基于接口的。
?
接口的DR優先級越大越優先,當接口的優先級相等的時候,我們會去選舉Router-id越大者越優先。
?
?
這個是前提規則,但是我們來看一下實際的情況,我們可以看到對于4臺設備,RTA【DR】它的優先級是100,RTC【BDR】的優先級是95,RTB優先級是0,RTD的優先級是200,結果我們發現這個時候RTA作為DR,RTD作為一個DRother,這里是為什么呢?
?
我們先來看一下關于優先級是0的一個注解,如果優先級是0的話,在這里是不參與選舉的,這個時候優先級為0不參與選舉,那么一定就是一個Dother。
?
另外一點我們可以看到,Router Priority最大的不一定是DR/BDR,為什么會這樣呢?
?
我們前面講到Router id的時候有提到一個原則:
?
即穩定大于一切。對于DR的選舉也是一樣的,即穩定大于一切。
?
假設我們去配置的時候我們首先配置的是RTA,此時RTA在這個網絡中RTB、RTC、RTD都沒有配置OSPF:
?
現在在10網段中我的RTA只有一臺路由器,此時RTA配置OSPF開始進行選舉,RTA認為這個網段只有我自己,那么我就是老大,我就是DR,它會選舉自己成為DR。
然后配置RTB,RTB不參與選舉我們就會跳過,接著配置RTC和RTD,那么配置RTD的時候,優先級是200。
?
我此時的RTD能不能去搶占DR的位置呢?
?
在這里是不可以的,因為我們的RTA已經成為了DR,我們可以看到RTB和RTC去學習路由的時候,都是和RTA去學習的,我的鄰接關系都已經建立好了。
?
如果說RTD開始去搶占我原有DR的位置,那么這個時候鄰接關系又會改變,我從RTC和RTB的話需要去和RTD建立鄰接關系,這個時候RTA就有可能是一個DRother的角色了。
?
這個時候我們的網絡相應的路由就會改變,網絡可能會出現震蕩。
?
為了保證OSPF網絡的穩定性的話。一旦RTA這個路由器成為了DR,我們其他的路由器這個時候去加入的時候,不論優先級是多少,我們都不會去搶占原有DR的地位。
?
這個就是穩定大于一切的原則。
?
假如我們現在就是要讓RTD成為DR,我認為RTD的設備性能會更好一點,這里也是有辦法的:
?
- 我們可以在這4臺路由器上面同時去重啟OSPF進程【reset ospf process】。
- 或者將路由器重啟也可以。
?
這個時候我們讓它們重新去選舉,那么RTD就可以成為DR了。
?
注意:
我們建議需要哪一個路由器稱為DR,那么就優先配置該路由器。
?
eg:我想讓RTD優先成為DR,那么就最先配置RTD即可。
?
鄰居與鄰接關系
?
這個就是DR和BDR的選舉,對于設備來說,現在我們剛選舉出DR和BDR之后,我們可以看到:
?
| 網絡類型 | 是否和鄰居建立鄰接關系 |
| P2P | 是 |
| Broadcast ? NBMA | DR與BDR、DRother建立鄰接關系 BDR與DR、DRother建立鄰接關系 DRother之間只建立鄰居關系 |
| P2MP | 是 |
?
針對DR和BDR,我們先看到在Broadcast網絡中:
?
- DR和BDR以及DRother之間是建立了一個鄰接關系的。
- 同樣的,BDR和其他的路由器也是建立了鄰接關系的。
?
它們都是full狀態,而DRother之間只是建立了一個鄰居關系。
?
- 所以DRother之間只有2-way狀態。
?
即我們去查看鄰居狀態的時候【display ospf peer】的時候,我們就會發現我的鄰居關系為什么會卡在2-way,這里并不一定是我配置錯誤,因為DRother之間卡在了鄰居狀態是比較正常的,我們不用去理會。
?
對于點對點和點到多點,它們都是可以直接去建立鄰接關系,去學習我們相應的路由的。不會去選舉DR和BDR。
?
注意:
我們之前有提到過224.0.0.5和224.0.0.6這兩個組播報文:
?
- 對于224.0.0.6只有DR和BDR才會去接收224.0.0.6的報文信息。
- 224.0.0.5是OSPF的所有路由器都能夠去接收.5的報文信息。
?
- 224.0.0.6是只有DR和BDR才能夠去接收的。我們的DRohter向外發送路由消息的時候,DROther的目的地址肯定是224.0.0.6。
?
這里只能被DR和BDR接收到。
?
- 如果DR向外發送報文,去和DRohter、BDR也好,去共享我們的目的信息的時候,我的目的地址是224.0.0.5。
?
我是發送給我的廣播多路訪問網絡區域中的這個網段的所有路由器的,所以我的組播地址是224.0.0.5。
?
這個就是它的兩個組播地址的作用,224.0.0.5是作為所有的OSPF的路由器,224.0.0.6是只有DR和BDR才能夠去接收的。
總結
以上是生活随笔為你收集整理的1.1.8 DR和BDR的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新东方英语词汇笔记
- 下一篇: HDU3507打印文章 斜率优化入门