前期回顧:
BGPTCP三次握手后發(fā)送的報文:
open報文:
鄰居建立和能力參數(shù)協(xié)商,(至少有一個地址簇能力要一致)
keepalive報文:
默認每隔60s周期性發(fā)送,如果180s沒有收到keepalive報文,則認為BGP鄰居失效
斷開TCP連接。
update報文:
BGP路由傳遞以及撤銷
Route-refresh報文:
用于手動進行BGP路由的觸發(fā)更新,或者用于ORF功能。
Notificationn報文:
通知報文,用于報錯,收到該報文會斷開TCP連接。
BGP的狀態(tài)機:
Idle:
產(chǎn)生原因:
1、沒有去往鄰居地址的路由,無法發(fā)起TCP三次握手,也無法完成TCP的三次握手。
2、發(fā)起TCP連接請求后被對端拒絕,發(fā)起TCP報文的源地址,不是本端指定的鄰居地址。
Connect(連接):
產(chǎn)生原因:發(fā)起TCP連接路由器,無法收到鄰居的TCP回應報文時會變?yōu)閏onnect狀態(tài),并且5s后重傳一次TCP連接請求,再等待32s左右,重新發(fā)起TCP連接請求。
Active狀態(tài):
產(chǎn)生原因:
本節(jié)我們繼續(xù)從BGP建立鄰居前的TCP三次握手到發(fā)送Open報文、Keepalive報文。鄰居建立之后,我們對現(xiàn)網(wǎng)的操作可能會產(chǎn)生update報文。
現(xiàn)在我們談一談Update報文
Update報文
BGP通過Network和Import兩種方式生成BGP路由,BGP路由封裝在Update報文中通告給鄰居,BGP在鄰居關系建立后才開始通告路由信息。
Update消息主要用來發(fā)布可用路由和撤銷路由,Update中包含以下信息:
1、網(wǎng)絡層可達信息(NLRI):用來公布IP前綴和前綴長度。
2、路由屬性:為BGP提供環(huán)路檢測,控制路由優(yōu)選。
3、撤銷路由:用來描述無法到達且從業(yè)務中撤銷的路由前綴和前綴長度。
再通告BGP路由時,由于各種因素的影響,為了避免路由通告過程中出現(xiàn)的問題,BGP路由通告需要遵守一定的規(guī)則,下面進行詳細分析。
1、BGP通告原則之一:僅將自己最優(yōu)的路由發(fā)布給鄰居
[R1]dis bgp routing-table
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 2.2.2.2/32 0.0.0.0 0 0 ?
*> 10.1.12.0/24 0.0.0.0 0 0 i
BGP路由信息中如何看一條鄰居是最好的路由?
在BGP路由表中,帶>的路由是最優(yōu)的路由。
2、BGP通告原則之二:通過EBGP獲得的最優(yōu)路由發(fā)布給所有BGP鄰居
3、BGP通告原則之三:通過IBGP獲得的最優(yōu)路由不會發(fā)布給其他的IBGP鄰居
這是IBGP中重要的防止環(huán)路規(guī)則之一,又稱之為IBGP的水平分割。
4、BGP通告原則之四:BGP與IGP同步
這個只會產(chǎn)生在BGP非全互聯(lián)的拓撲中,即同一個AS內(nèi)存在沒有做BGP處理的路由器中,才會進行BGP與IGP的同步。
路由黑洞
我們看以下實驗:

在這個拓撲圖中,BGP傳播路由是可以跨路由器傳遞的,A路由器可以將路由通過EBGP傳遞給B,B可以通過IBGP傳遞給D,因為B路由器到D路由器有運行OSPF協(xié)議,路由可達,D再次通過EBGP傳遞給E。
但是C路由器上卻沒有A路由器100.0.o.o的路由,因為C路由器沒有運行BGP協(xié)議。
這樣就會導致E路由器在回包的時候,將100.0.o.o的路由先發(fā)送給D,D繼續(xù)轉(zhuǎn)發(fā)給C,C直接丟棄。這就出現(xiàn)了BGP的路由黑洞。最終導致路由不通。
這種又該怎么處理呢?
其實,我們的D路由器會在IBGP報文發(fā)送過來之后,查詢自己的IGP路由表中是否存在該路由,如果存在,則認為在這個區(qū)域內(nèi),其他路由器都存在該條路由,就認為是同步了,繼續(xù)通過EBGP傳遞給E路由器,反之,則認為在這個區(qū)域內(nèi),其他路由器都不存在該條路由,直接丟棄。
*1、將EBGP路由引入到IGP協(xié)議中,(基本被淘汰)比較消耗設備資源,因為BGP路由數(shù)量過于龐大,引入到IGP協(xié)議,增加的IGP協(xié)議計算路由負擔。BGP路由震蕩,IGP路由也會產(chǎn)生震蕩。
*2、AS內(nèi)部所有路由器均運行BGP協(xié)議,即IBGP全互聯(lián)。主流架構,此時不再需要同步檢測。
從IBGP鄰居得到的路由不會傳遞給IBGP鄰居
從IBGP鄰居得到的路由同步檢測后傳遞給EBGP
記錄:
BGP防環(huán)機制:
1、AS內(nèi)部防患,IBGP的水平分割:通過IBGP獲得的最優(yōu)路由不會發(fā)布給其他的IBGP鄰居。