您好,登錄后才能下訂單哦!
BGP有5種message
1. Open (code 1):用于建立連接,包含版本號(如BGP3/BGP4)Hold Time=90s(RFC1771規定的。是一個協商的過程,以較小的Hold Time為準),Router-ID(OSPF和BGP可以手動配置),AS號(范圍從1~65535,其中64512~65535 的AS編號范圍留作私有);
2. KeepAlives(code 4):周期發送用于維護連接檢查路徑(這個包是不可靠的),T=Hold Time/3, Hold Time=0 => No KeepAlive.,keepalive 是個19 字節周期發送的BGP 消息頭標,沒有數據域。
3. Update(code 2):消息包含了三個組件:網絡層可達性消息(NLRI)、路徑屬性和被撤銷的路由。包括到達目的網絡的路徑和屬性,更新路由信息用,一次更新只有一條路徑,但可以有多條網絡。Update可以刪除(宣告不可達)和增加(宣告可達)路由.其內容是前綴的長度。
4. Notification(code 3):網絡中出現錯誤(Error),檢測到后斷開連接并發送通知給對方。
5.Route-Reflesh message:一個可選的message (negotiated during capability advertisement) that is sent to request dynamic BGP route updates from the Adj-RIB-Out table of a remote BGP speaker
協商過程基本上是:Idel,connect,open sent,open confirm,establish。
BGP鄰居建立會話的5種狀態:
1. Idle:查找路由表,該過程BGP對它的資源進行初始化,復位一個連接重試計時器,發起一條TCP 連接,并開始傾聽遠程對等體所發起的連接。
2. Connect:找到路由表后進行TCP三次握手,TCP 連接成功,則轉到OpenSent狀態,TCP連接失敗,則轉到active 狀態,將嘗試再次連接。
3. Open Sent:握上手后發送Open message消息,等待其對等體發送打開消息,如果出錯,則發送一條出錯消息并退回空閑狀態,如果無錯,則開始發送Keepalive 并復位keepalive 計時器。
4. Open Confirm:收到對方發來的Open消息,如果收到keepalive 消息,BGP 就進入established狀態,鄰居關系協商完成;如果系統收到一條更新或keepalive 消息,它將重新啟動保持計時器;如果收到Notification消息,BGP 就退回到空閑狀態。
5. Established:會話建立,鄰居關系協商過程最終狀態;這時BGP將開始與它的對等體交換路由更新數據包。
PS: Active狀態:當路由器發送出OPEN包給鄰居等待回應,如果長時間未接收到回應則超時,超時后狀態更改為Idle還是connect狀態?試圖發起TCP連接獲得對等體,成功轉到Open Sent狀態,連接重試計時器超時,退回連接狀態,這是由于TCP鏈路上出現了問題所致。??
產生問題的原因主要有:
1. Neighbor命令后面的ip-address配置有錯;
2. 沒有打上Neighbor命令(兩邊都要)
3. 更新源錯誤,或者更新源不可達。
answer:
1.當BGP speaker處于active狀態,BGP嘗試通過初始化傳輸協議連接來形成peer。如果傳輸連接建立,則進入OpenSent狀態。(同時發送OPEN信息)。如果ConnectRetry 計時器超時,BGP重啟ConnectRetry計時器,并且退回到Connect 狀態。只有當系統中止,或者人為地把TCP中止時才退到Idle狀態。
2.問:在IBGP關系中,在sh ip b的時候看到的那個next-hop的ip 地址。下一跳地址,就是通告該路由的IBGP 的 更新源。???還是Router-id???
answer:next-hop的IP地址是更新源地址。Router-ID其實只是路由器的一個標識而已,沒有太多的意義。可以是虛擬的。比如,它通常就是loopback地址。不要求一定TCP可達。但是更新源必須TCP可達。否則怎么保障路由信息更新的一定傳達目的地?對吧。
還有一個解決方法關鍵看sh ip bgp nei里面的tcp會話那一塊,又還是沒有。如果沒有,檢查路由和acl。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。