bgp鄰居發現如下圖:
先啟動bgp的一端發起tcp連線,rtb先啟動bgp協議,rtb使用隨機埠號向rta的179埠發起tcp連線。
bgp報文如下:
前三個包不難看出並沒有包含任何bgp資訊。
bgp協議被設計執行在as之間傳遞路由, as之間是廣域網鏈路資料報在廣域網上傳遞是可能出現不可**的鏈路擁塞或丟失等情況,因此bgp使用tcp作為其承載協議來保證可靠性。
bgp使用tcp封裝建立鄰居關係,埠號為179, tcp採用單播建立連線,因此bgp協議並不像rip和ospf一樣使用組播發現鄰居。單播建立連線也使bgp只能手動指定鄰居。
鄰居建立過程圖如下:
①open
是tcp連線建立後傳送的第乙個報文,用於建立bgp鄰居之間的連線關係。bgp鄰居在接收到open報文並協商成功後, 將傳送keepalive報文確認並保持連線的有效性。確認後, bgp鄰居間可以進行update, notification keepalive和route-refresh報文的交換。
②keepalive
bgp路由器會週期性的向鄰居發出keepalive報文,用來保持連線的有效性。
③update
用於在bgp鄰居之間交換路由資訊。update報文可以發布多條屬性相同的可達路由資訊,也可以撤銷多條不可達路由資訊。一條update報文可以發布多條具有相同路由屬性的可達路由,這些路由可共享一組路由屬性。所有包含在乙個給定的update報文裡的路由屬性適用於該update報文中的nlri (network layer reachability inforiation)欄位裡的所有目的地(用ip字首表示) 。
一條update報文可以撤銷多條不可達路由。每乙個路由通過目的地(用ip字首表示) ,清楚地定義了bgp路由器之間先前通告過的路由。
一條update報文可以只用於撤銷路由,這樣就不需要包括路徑屬性或者nlri。相反,也可以只用於通告可達路由,就不需要攜帶撤銷路由資訊了。
④route-refresh
route-refresh用於在改變路由策略後請求對等體重新傳送路由資訊。
⑤notification
當bgp路由器檢測到錯誤狀態時,就向鄰居發出notification報文,之後bgp連線會立即中斷。
bgp報文互動過程
idle狀態是bgp初始狀態。
在idle狀態下, bgp路由器拒絕鄰居傳送的連線請求。只有在收到本裝置的start事件後, bgp路由器才開始嘗試與其鄰居進行tcp連線,並轉至connect狀態。
在connect狀態下, bgp路由器啟動連線重傳定時器(connect retry) ,等待tcp完成連線。
如果tcp連線成功,那麼bgp路由器向鄰居傳送open報文,並轉至opensent狀態。
如果tcp連線失敗,那麼bgp路由器轉至active狀態。
如果連線重傳定時器超時, bgp路由器仍沒有收到鄰居的響應,那麼bgp路由器繼續嘗試與其鄰居進行tcp連線,停留在connect狀態。
在active狀態下, bgp路由器總是在試圖建立tcp連線。
如果tcp連線成功,那麼bgp路由器向鄰居傳送open報文,關閉連線重傳定時器,並轉至opensent狀態。
如果tcp連線失敗,那麼bgp路由器停留在active狀態。
如果連線重傳定時器超時, bgp路由器仍沒有收到鄰居的響應,那麼bgp由器轉connect狀態
在opensent狀態下, bgp路由器等待鄰居的open報文,並對收到的open報文中的as號、版本號、認證碼等進行檢查。
如果收到的open報文正確,那麼bgp路由器傳送keepalive報文,並轉至openconfirm狀態。
如果發現收到的open報文有錯誤,那麼bgp路由器傳送notification報文給鄰居,並轉至idle狀態。
在openconfirm狀態下, bgp路由器等待keepalive或notification報文。如果收到keepalive報文,則轉至established狀態,如果收到notification報文,則轉至idle狀態。
在established狀態下, bgp路由器可以和鄰居交換update, keepalive,route-refresh報文和notification報文。
BGP建立鄰居過程
1 idle 此狀態不允許bgp連線,不分配網路資源 2 connection 此時已完成3次握手 3 active connection失敗或者open報文傳送沒有響應進入active狀態 4 openset connection後會傳送open報文,相當於進行同步as 版本號 keepalive...
BGP之間建立鄰居
idle bgp程序被啟動或被重置,這個狀態是等待開始,比如等於指定乙個bgp peer,當收到tcp連線請求後,便初始化另外乙個事件,當路由器或peer重置,都會回到idle狀態。connect 檢測到有peer要嘗試建立tcp連線。active 嘗試和對方peer建立tcp連線,如有故障,則回到...
BGP之間建立鄰居
bgp之間建立鄰居 idle bgp程序被啟動或被重置,這個狀態是等待開始,比如等於指定乙個bgp peer,當收到tcp連線請求後,便初始化另外乙個事件,當路由器或peer重置,都會回到idle狀態。www.2cto.com connect 檢測到有peer要嘗試建立tcp連線。active 嘗試...