BGP協(xié)議精簡(jiǎn)技術(shù)要點(diǎn)
BGP 是唯一一個(gè)用來處理像因特網(wǎng)大小的網(wǎng)絡(luò)的協(xié)議,也是唯一能夠妥善處理好不相關(guān)路由域間的多路連接的協(xié)議。
1. BGP特征1) BGP是一種域間路由選擇協(xié)議(IDRP),自主系統(tǒng)號(hào)是一個(gè)16位的數(shù)字,其取值范圍為1~65535,64512~65535的AS號(hào)保留給私有:
2) 在不同自主系統(tǒng)中的路由器之間運(yùn)行BGP時(shí),被稱為外部BGP(EBGP);在位于同一個(gè)自主系統(tǒng)中的路由器之間運(yùn)行BGP時(shí),被稱為內(nèi)部BGP(IBGP);
3) EBGP通常彼此直接連接的,TTL值默認(rèn)值為1;IBGP路由器無需直接連接,但鄰居的建立需要IGP,傳輸是不需要IGP的;
4) BGP路由器只需發(fā)送增量更新,BGP發(fā)送存活消息;
5) 獲悉外部網(wǎng)絡(luò)的方式:將所有BGP路由重分布到IGP;在AS的所有路由器運(yùn)行IBGP;
6) BGP維護(hù):優(yōu)化;與IGP同步;下一跳可達(dá);
7) 運(yùn)行IBGP的路由器從鄰居學(xué)到的路由不會(huì)傳給其它的路由器;
8) BGP水平分割,只有優(yōu)化的路由才有可能傳播;
2. BGP消息類型1) 打開消息(open):包含hold time和BGP路由ID;
2) 存活消息(keeplive):三倍于hold時(shí)間;
3) 更新消息(update):在BGP***的路由才能更新;
4) 通知消息(notification):BGP路由出錯(cuò)和BGP連接被管理性關(guān)閉;
3. BGP狀態(tài)1) Idle:查找路由表,路由器執(zhí)行資源初始化,發(fā)起一個(gè)TCP連接,并且傾聽遠(yuǎn)程BGP
2) Connect:找到路由表進(jìn)行TCP的三次握手,TCP連接成功轉(zhuǎn)到Open sent狀態(tài),如果失敗,轉(zhuǎn)到idle重新連接;
3) Open sent:打開信息發(fā)送報(bào)文;
4) Open confirm:收到對(duì)方發(fā)來的open消息,鄰居關(guān)系協(xié)商完成;
5) Established:最終狀態(tài)。
4. BGP屬性1) 公認(rèn)屬性:公認(rèn)屬性是所有廠商BGP實(shí)現(xiàn)都必須能夠識(shí)別的屬性,公認(rèn)強(qiáng)制屬性必須出現(xiàn)所有BGP路由更新中;公認(rèn)自由決定屬性可以不出現(xiàn)在BGP更新中;
2) 可選屬性:非公認(rèn)屬性被稱為是可選的,可選屬性可以是傳遞的或非傳遞的;
3) BGP定義的屬性:公認(rèn)強(qiáng)制屬性;公認(rèn)自由決定的屬性;可選傳遞屬性;可選非傳遞屬性;
4) AS路徑屬性:一種公認(rèn)強(qiáng)制屬性,用來避免環(huán)路;
5) 下一跳屬性:BGP中的跳指的是AS,而不是路由器,對(duì)于另一個(gè)AS中的網(wǎng)絡(luò)而言,下一跳是前往該網(wǎng)絡(luò)的路徑中,下一個(gè)AS的入口IP地址;
6) 源頭:源頭是公認(rèn)強(qiáng)制屬性,它定義路徑信息的源頭,指明路由是通過什么方式學(xué)到的。
n IGP:路由在起始AS的內(nèi)部;
n EGP:路由是通過EGP獲悉的,在BGP表中用e表示,例如:重分布;
n 不完全:路由的源頭未知或是通過其它方法獲悉的,例如:重分布或靜態(tài)路由過來的;
7) 本地優(yōu)先級(jí):本地AS到其它AS多條路徑優(yōu)先選一條路徑,默認(rèn)本地優(yōu)先級(jí)值為100,值越大,優(yōu)先級(jí)越高;
8) 共同體:一種用于過濾入站和出站路由的方法;共同體是可選傳遞屬性,如果路由器不能識(shí)別共同體,則將把它留給下一臺(tái)路由器去處理;如果路由器能夠識(shí)別共同體,則必須對(duì)其進(jìn)行配置,使之傳播共同體,否則共同體將被丟棄;
9) MED(多出口鑒別屬性):用于向外部鄰居指出進(jìn)入AS的***路徑。當(dāng)入口有多個(gè)時(shí),AS可以使用MED來動(dòng)態(tài)地影響其它AS如何選擇進(jìn)入路徑,MED是唯一一個(gè)可影響數(shù)據(jù)如何進(jìn)入AS的屬性,MED只在EBGP傳遞,MED值越小,路徑就越優(yōu);
注意:MED影響進(jìn)入AS的數(shù)據(jù)流,而本地優(yōu)先級(jí)影響離開AS的數(shù)據(jù)流。
10) 權(quán)重(Cisco專用):是路由器的出口,而本地優(yōu)先級(jí)屬性指AS出口,權(quán)重屬性是在路由器本地配置的,不會(huì)傳播給任何其它路由器,只有本地進(jìn)行傳遞,值越大,優(yōu)先級(jí)越高,路徑越優(yōu);取值范圍0~65535,路由器通告的路徑的默認(rèn)權(quán)重值為32768;
5. 路由選擇決策過程1) ***權(quán)重***路由器;(Cisco專用,只用于當(dāng)前路由器)
2) 選擇本地優(yōu)先級(jí)***的路由;(本地優(yōu)先級(jí)用于AS內(nèi)部)
3) 優(yōu)先本地始發(fā)的路由:本地network,重分布或IGP中需要配置匯總的;(當(dāng)前路由器通告的路由的下一跳為0.0.0.0)
4) 選擇AS路徑最短的路由;
5) 選擇源頭編碼最小的路徑(IGP<EGP<不完全);
6) 選擇MED最小的路徑:只有在通過兩條路徑得到***個(gè)AS才進(jìn)行MED比較,任何自治域,聯(lián)盟體都會(huì)被忽略;
7) EBGP優(yōu)于IBGP;
8) 前往BGP下一跳最短的路徑;
9) EBGP,如果在路由器上配置max-paths 1~16;
10) 選擇最老的路由;
11) 路由器ID最小的路由;
12) 如果路由是從路由反射器上學(xué)到的,優(yōu)先cluster-id最小的路由(其實(shí)最終比較的是cluster-list);
13) 選擇鄰居IP地址最小的路由。
6. 配置BGP1) 對(duì)等體組:BGP對(duì)等體組是一組采用相同更新策略的BGP鄰居;
2) 對(duì)等體組的名稱只在當(dāng)前路由器上有意義,而不會(huì)傳給其它路由器;
3) 在路由器上,只能配置一個(gè)BGP實(shí)例;
4) 當(dāng)IBGP鄰居之間有多條路徑時(shí),使用環(huán)回接口地址來建立IBGP會(huì)話;
5) BGP不執(zhí)行負(fù)載均衡,路徑是根據(jù)策略而不是帶寬選擇的,BGP只選擇一條***路徑,neibhgor ebgp-multihop,可以在自主系統(tǒng)之間的兩條路徑上進(jìn)行負(fù)載均衡,并提供了冗余性;
6) 使用命令auto-summary啟用BGP匯總后,所有重分發(fā)而來的子網(wǎng)都將匯總成分類網(wǎng)絡(luò),然后加入到BGP表中;
7) 在同步被禁用的情況下,BGP可以使用從IBGP鄰居獲悉且沒有出現(xiàn)在本地路由選擇表中的路由,并將其通告給外部BGP鄰居;
7. 重置BGP會(huì)話1) Cisco IOS軟件僅將變更應(yīng)用于修改BGP策略配置后收到或發(fā)送的更新。由新的過濾實(shí)施的新策略僅被應(yīng)用于修改策略后收到或發(fā)送的路由;
2) 三種觸發(fā)更新的方法:
硬重置:如果BGP會(huì)話被重置,則通過這些會(huì)話收到的所有信息都將失效,并從BGP表中被刪除,同樣遠(yuǎn)程鄰居檢測(cè)到鄰居處于down狀態(tài)后,也將把收到的路由作廢。過30~60秒后,自動(dòng)重建BGP會(huì)話,并再次交換BGP表,但需要經(jīng)過重新過濾器的檢查。然而,重置BGP會(huì)話將中斷分組轉(zhuǎn)發(fā);
軟重置:
BGP出站軟重置:clear ip bgp soft out的路由器不會(huì)重置BGP會(huì)話,而是創(chuàng)建一條新的更新,并將整個(gè)BGP表發(fā)送給指定的鄰居;在需要修改出站策略時(shí),強(qiáng)烈建議使用該命令;但如果要修改入站策略,使用她將沒有任何幫助;
BGP入站軟重置:neighbor [ip-address] soft-reconfiguration inbound告訴BGP進(jìn)程保存從指定鄰居那里獲悉的所有更新;clear ip bgp soft in 讓路由器使用存儲(chǔ)的未過濾表來生成新的入站更新,并將新的結(jié)果加入到BGP轉(zhuǎn)發(fā)數(shù)據(jù)庫中。
路由刷新:動(dòng)態(tài)的入站軟重置
只需在特權(quán)模式下使用命令Clear ip bgp {*|neighbor-address} soft in即可。