BGP有限狀態機共有六種狀態,分別是Idle、Connect、Active、OpenSent、OpenConfirm和Established。
Idle狀態是BGP初始狀態。在Idle狀態下,BGP拒絕鄰居發送的連接請求。只有在收到本設備的Start事件后,BGP才開始嘗試和其它BGP對等體進行TCP連接,并轉至Connect狀態。
Start事件是由一個操作者配置一個BGP過程,或者重置一個已經存在的過程或者路由器軟件重置BGP過程引起的。
任何狀態中收到Notification報文或TCP拆除鏈路通知等Error事件后,BGP都會轉至Idle狀態。
在Connect狀態下,BGP啟動連接重傳定時器(Connect Retry,缺省為32秒),等待TCP完成連接。
此階段主動發起TCP連接;
如果TCP連接成功,那么BGP向對等體發送Open報文,并轉至OpenSent狀態;
如果TCP連接失敗,那么BGP轉至Active狀態;
如果連接重傳定時器超時,BGP仍沒有收到BGP對等體的響應,那么BGP繼續嘗試和其它BGP對等體進行TCP連接,停留在Connect狀態。
如果發生其他事件(由系統或者操作人員啟動的),則退回到Idle狀態。
在Active狀態下,BGP總是在試圖建立TCP連接。
此階段等待對方發起TCP連接;
如果TCP連接成功,那么BGP向對等體發送Open報文,關閉連接重傳定時器,并轉至OpenSent狀態;
如果TCP連接失敗,那么BGP停留在Active狀態;
如果連接重傳定時器超時,BGP仍沒有收到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報文。
如果收到正確的Update或Keepalive報文,那么BGP就認為對端處于正常運行狀態,將保持BGP連接。
如果收到錯誤的Update或Keepalive報文,那么BGP發送Notification報文通知對端,并轉至Idle狀態。
Route-refresh報文不會改變BGP狀態。
如果收到Notification報文,那么BGP轉至Idle狀態。
如果收到TCP連接斷開消息,那么BGP斷開連接,轉至Idle狀態。
審核編輯:劉清
-
定時器
+關注
關注
23文章
3255瀏覽量
115387 -
有限狀態機
+關注
關注
0文章
52瀏覽量
10372 -
狀態機
+關注
關注
2文章
492瀏覽量
27652 -
BGP
+關注
關注
0文章
84瀏覽量
15365 -
TCP通信
+關注
關注
0文章
146瀏覽量
4292
原文標題:BGP工作原理-狀態機
文章出處:【微信號:網絡技術干貨圈,微信公眾號:網絡技術干貨圈】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論