上節回顧
HCIP之OSPF(六)
1. BGP基礎
1.1 基礎概述
- BGP 邊界網關路由協議 (屬於外部網關路由協議)
運用於大型網絡、跨國、運營商、國家之間的路由 - AS:自治系統,是由一個技術管理機構管理、使用統一選路策略的一些路由器集合
- 路由協議分類:
內部網關路由協議IGP:rip ospf isis (eigrp)
外部網關路由協議EGP:EGP(淘汰) BGP - 特徵:
1、增強型的距離矢量路由協議
2、可靠的路由更新機制
3、Metric度量方法
4、設計上避免了環路的發生
5、支持CIDR
6、路由過濾和路由策略
1.2 BGP鄰居關係建立
1.2.1 鄰居關係
- BGP鄰居關係:
BGP是基於TCP進行封裝的,故先啓動BGP的一端發起TCP連接,使用隨機端口號向需要建立鄰居的路由器的179端口發起TCP連接
可靠性保證:
數據包在廣域網中傳遞可能會出現丟包問題或鏈路擁塞等,使用TCP連接來保證可靠性
建鄰:
BGP使用TCP封裝建立鄰居關係,採用單播建立連接,且BGP只能手動指定鄰居
鄰居類型:
1、IBGP:相同自制系統路由器之間建立的鄰居
BGP使用TCP作爲其承載協議,所以能夠跨設備建立鄰居關係
2、EBGP:不同自治系統路由器之間建立的鄰居
注:一般EBGP鄰居關係使用直連接口IP地址 TTL=1
IBGP鄰居關係使用環回接口IP地址 TTL=255
1.2.2 報文類型與狀態機
-
TCP報文類型(TCP會話成功建立後纔會產生報文)
1、Open:負責對等體之間建立鄰居關係
2、KeepAlive:當鄰居建立後,週期性發送該報文,用於維持TCP會話的連接
3、Update:用來在BGP鄰居之間傳遞路由信息。
4、Notification:當檢測到錯誤時會發送此報文,之後就會斷開BGP連接
5、Route-refresh
Open報文:
版本號、AS、保持時間(默認180s,不一致時默認最小的)、BGP身份(RID) -
BGP狀態機:
1、Idle狀態是BGP初始狀態。
在Idle狀態下BGP路由器拒絕鄰居發送的連接請求。只有在收到本設備的Start事件後,BGP路由器纔開始嘗試與其鄰居進行TCP連接。並轉至Connect狀態。
2、在Connect狀態下, BGP路由器啓動連接重傳定時器, 等待TCP完成連接。
如果TCP連接成功,那麼BGP路由器向鄰居發送Open報文,並轉至OpenSent狀態。
如果TCP連接失敗,那麼BGP路由器轉至Active狀態。
如果連接重傳定時器超時,BGP路由器仍沒有收到鄰居的響應,那麼BGP路由器繼續嘗試與其鄰居進行TCP連接,停留在Connect狀態。
3、在Active狀態下, BGP路由器總是在試圖建立TCP連接。
如果TCP連接成功,那麼BGP路由器向鄰居發送Open報文,關閉連接重傳定時器,並轉至OpenSent狀態。
如果TCP連接失敗,那麼BGP路由器停留在Active狀態。
如果連接重傳定時器超時,BGP路由器仍沒有收到鄰居的響應,那麼BGP路由器轉至Connect狀態。
4、在OpenSent狀態下,BGP路由器等待鄰居的Open報文,並對收到的Open報文中的AS號、版本號、認證碼等進行檢查。
如果收到的Open報文正確,那麼BGP路由器發送Keepalive報文,並轉至OpenConfirm狀態。
如果發現收到的Open報文有錯誤.那麼BGP路由器發送Notification報文給鄰居,並轉至Idle狀態。
5、在OpenConfirm狀態下。BGP路由器等待Keepalive或Notification報文。
如果收到Keepalive報文,則轉至Established狀態,如果收到Notification報文,則轉至Idle狀態。
6、在Established狀態下,BGP路由器可以和鄰居交換Update、Keepalive、Route -efresh報文和Notification報文。1.2.3 路由通告原則
-
updtae包主要用來公佈路由和撤銷路由,包含內容如下:
網絡層可達信息:用來公佈IP前綴和前綴長度
路徑屬性:爲BGP提供環路檢測,控制路由優選
撤銷路由:用來描述無法到達從而撤銷路由前綴和前綴長度
1、僅將自己最優的路由傳遞給鄰居
2、通過EBGP獲得的最優路由發佈給所有BGP鄰居
3、通過IBGP獲得的最優路由不會發布給其他IBGP鄰居
4、BGP與IGP同步:一條IBGP鄰居學來的路由在發佈給一個BGP鄰居之前,通過IGP指導該路由,即BGP與IGP同步
華爲設備默認關閉同步檢測,在於爲實現IBGP的正常通告。但是會產生路由黑洞
將BGP引入IGP,保證同步
IBGP路由器必須是全互聯,確保所有路由器都能學習到通告的路由。可以解決關閉同步後產生的黑洞問題