OSPF協(xié)議 DR/BDR的選取規(guī)則
OSPF,開放式最短路徑優(yōu)先協(xié)議,屬于自治區(qū)域內(nèi)部使用的網(wǎng)關(guān)協(xié)議之一,他是基于鏈路狀態(tài)制定的。
ospf有5種網(wǎng)絡(luò)類型:
1.點(diǎn)對點(diǎn)類型,由思科提出的,自動發(fā)現(xiàn)鄰居,不選舉DR/BDR,hello報文發(fā)布時間為10s。
2.廣播類型:由思科提出的網(wǎng)絡(luò)類型,自動發(fā)現(xiàn)鄰居,選舉DR/BDR,hello報文發(fā)布時間為10s。
3.非廣播型網(wǎng)絡(luò),由RFC提出的網(wǎng)絡(luò)類型,手工配置鄰居,選舉DR/BDR,hello報文發(fā)布時間30s。
4.點(diǎn)到多點(diǎn)網(wǎng)絡(luò) ,由RFC提出,自動發(fā)現(xiàn)鄰居,不選舉DR/BDR,hello報文發(fā)布時間30s。
5.點(diǎn)到多點(diǎn)非廣播,由cisco提出的網(wǎng)絡(luò)類型,手動配置鄰居,不選舉DR/BDR,hello報文發(fā)布時間30s。
因?yàn)辄c(diǎn)對點(diǎn)網(wǎng)絡(luò)類型比較好了解,所以本片文章主要說一下廣播型網(wǎng)絡(luò)類型
在廣播型ospf中,DR\BDR出現(xiàn)之前,由于任何路由器和他的鄰居都要建立鄰接關(guān)系,這樣路由器之間就會形成很多的鄰接關(guān)系,這樣就會發(fā)送太多的LSA,而且在廣播型中還存在自己發(fā)給鄰居的LSA又從鄰居那重新發(fā)回來,導(dǎo)致網(wǎng)絡(luò)中產(chǎn)生很多的重復(fù)的信息,因此,產(chǎn)生了DR|BDR。
DR|BDR的任務(wù)是:
1. 描述這個多址網(wǎng)絡(luò)和該網(wǎng)絡(luò)上剩下的其他相關(guān)路由器
2. 管理這個多址網(wǎng)絡(luò)上的flooding過程.
3. 同時為了冗余性,還會選取一個BDR,作為雙備份之用.
DR|BDR的選取規(guī)則
1.路由器的每個路由端口都有優(yōu)先級,優(yōu)先級共8為,范圍是0-255,端口的默認(rèn)優(yōu)先級是1,當(dāng)優(yōu)先級變成0時將無法被選舉成DR|BDR,設(shè)置端口的優(yōu)先級的代碼是:ip ospf priority
2.hello報文中包含了端口的優(yōu)先級,還有可能成為DR|BDR的端口的ip地址
3.當(dāng)端口在多路路由中初次啟動時,它把DR|BDR設(shè)置成0.0.0.0,同時設(shè)置等待計(jì)時器的值等于路由器無效間隔
路由器的路由標(biāo)識的定義:
1.可以在ospf中自己設(shè)定路由標(biāo)識
2.如果沒有定義路由標(biāo)識,而且路由器定義了loopback,那么選擇ip地址***的loopback端口當(dāng)做路由標(biāo)識
3.如果這些都沒有,那么將使用ip地址***的物理端口的ip地址作為路由標(biāo)識
DR|BDR選取過程:
1.路由器在和鄰居建立雙向通信之后,檢查鄰居hello報文中的primary、DR和BDR字段,列出所有可能參與選舉DR|BDR的鄰居(primary為0除外)
2.如果有多臺路由器宣告自己是BDR(即在hello報文將自己表示成BDR),將選舉優(yōu)先級大的作為BDR,如果優(yōu)先級都相同,則選擇路由器標(biāo)識大的作為BDR。如果沒有路由器宣告自己是BDR,則選擇優(yōu)先級大的作為BDR(同時排除宣告自己是DR的路由器),如果優(yōu)先級都相同,則根據(jù)路由器標(biāo)識判斷。
3.如果一個或者多個路由器宣告自己是DR,那么就從這些路由器中選擇優(yōu)先級高的作為DR,如果優(yōu)先級相同,選擇路由器標(biāo)識大的作為DR;如果沒有路由器宣告自己是DR,那么將上一步中選舉出的新的BDR當(dāng)做DR。
4.如果路由器新晉成為DR或者BDR,或者路由器新的退出DR或者BDR,重復(fù)步驟2和3,然后結(jié)束選舉,這樣做是防止一臺路由器同時宣告DR和BDR
5.在ospf中不存在搶占,即當(dāng)ospf選舉出新的DR和BDR之后,即使有 一個優(yōu)先級更高的路由器,也不進(jìn)行重新選舉。
6.DR/BDR選舉完成后,DRother只和DR/BDR形成鄰接關(guān)系.所有的路由器將組播Hello包到AllSPFRouters地址 224.0.0.5以便它們能跟蹤其他鄰居的信息,即DR將泛洪update packet到224.0.0.5;DRother只組播update packet到AllDRouter地址224.0.0.6,只有DR|BDR能夠監(jiān)聽這個地址