BGP邊界網關協議 之一
IGP與EGP
IGP是運行於AS內部的路由協議,主要有: RIP, OSPF及ISIS。IGP著重於發現和計算路由。EGP是運行於AS之間的路由協議,現通常都是指BGP。BGP著重於控制路由的傳播和選擇最優的路由。
BGP全稱Border Gateway Protocol,邊界網關協議,是一種AS之間的動態路由協議,BGP採用TCP作為傳輸協議。
運行BGP路由協議的路由器叫作BGP Speaker,主要包括五種報文。
Open:該消息中包括了BGP的版本以及AS號等信息。
Keepalive:用來維護BGP鄰居關係,能夠週期性的交換該報文,進而達到判斷對等體之間的存活。
Update:用來交互路由信息的報文,也包括撤銷路由信息和可達路由信息的路由屬性。
Notification:該報文用來檢測BGP的差錯。
Route-refresh:用來通知對等體自己支持路由刷新能力。
報文格式
BGP報文頭
其中Marker為16字節,固定值為1;Length為2字節,代表消息的總長度;Type為1字節,代表消息類型,即五種報文類型。
Open報文
Version為1字節,代表BGP的版本號;
My AutonomousSystem為2字節,代表本地AS編號,此字段可以通過比較兩端的AS編號來判斷是EBGP連接還是IBGP連接;
Hold Time為2字節,如果Hold Time時間內未收到對端發來的Keepalive消息,則認為BGP連接中斷;
BGP Identifier為4字節,用來識別BGP路由器。如果沒有配置router id那麼選擇Loopback接口地址中最大的作為RouterID;如果也沒有Loopback接口;就從物理接口中選擇一個IP地址最大的作為Router ID。
KeepAlive報文
KeepAlive報文用於檢測對等體路由器間的運行狀態以及鏈路。
BGP Speaker建立鄰居後,會週期性地向對等體發送KeepAlive 報文,表明該連接是否還可保持。缺省情況下,發送KeepAlive 的時間間隔為 60 秒,Hold Time是180秒。每次從鄰居處接收到KeepAlive 報文將重置Hold Time定時器,如果Hold Time定時器超時,就認為對等體Down掉。兩邊時間不同時,協商Hold Time,Hold Time選擇小的。此時當Keepalive大於hold time/3,則為hold time/3;小於則不變。
Update報文
Withdrawn RoutesLength 代表不可達路由長度;
Withdrawn Routes:(變長) 撤銷路由。該字段包括一系列的IP地址前綴信息,以
Path Attribute Length 代表 路由屬性長度;
Path Attributes :(變長)路徑屬性。每個路徑屬性都是由三元組所組成:
Network LayerReachability Information :(變長) 網絡可達信息,。格式與撤消路由字段一樣;
一條UPDATE消息可以發佈多條具有相同路由屬性的可達路由,這些路由可共享一組路由屬性。所有包含在一個給定的Update消息裡的路由屬性適用於該Update消息中的NLRI字段裡的所有目的地(用IP前綴表示)。一條UPDATE消息可以撤銷多條不可達路由。
Notification
Route-Refresh報文
華為文檔解釋:
閱讀更多 我叫王小壹 的文章