BGP對(duì)等體的交互過(guò)程中存在6種狀態(tài)機(jī): 空閑(Idle) 神帅、連接(Connect) 、活躍(Active) 、Open報(bào)文已發(fā)送(OpenSent) 婚陪、Open報(bào)文已確認(rèn)(OpenConfirm)和連接已建立(Established) 。
在BGP對(duì)等體建立的過(guò)程中频祝,通趁诓危可見(jiàn)的3個(gè)狀態(tài)是:Idle脆淹、Active和Established。
Idle狀態(tài):
Idle狀態(tài)是BGP初始狀態(tài)沽一。在Idle狀態(tài)下盖溺,BGP拒絕鄰居發(fā)送的連接請(qǐng)求。只有在收到本設(shè)備的Start事件后锯玛,BGP才開(kāi)始嘗試和其它BGP對(duì)等體進(jìn)行TCP連接咐柜,并轉(zhuǎn)至Connect狀態(tài)。
Connect狀態(tài)
在Connect狀態(tài)下攘残,BGP啟動(dòng)重傳定時(shí)器(Connect Retry)拙友,等待TCP完成連接。
??如果TCP連接成功歼郭,那么BGP向?qū)Φ润w發(fā)送Open報(bào)文遗契,并轉(zhuǎn)至OpenSent狀態(tài)。
??如果TCP連接失敗病曾,那么BGP轉(zhuǎn)至Active狀態(tài)牍蜂。
??如果連接重傳定時(shí)器超時(shí),BGP仍沒(méi)有收到BGP對(duì)等體的響應(yīng)泰涂,那么BGP繼續(xù)嘗試和其它BGP對(duì)等體進(jìn)行TCP連接鲫竞,停留在Connect狀態(tài)。
Active狀態(tài)
在Active狀態(tài)下逼蒙,BGP總是在試圖建立TCP連接从绘。
??如果TCP連接成功,那么BGP向?qū)Φ润w發(fā)送Open報(bào)文是牢,關(guān)閉連接重傳定時(shí)器僵井,并轉(zhuǎn)至OpenSent狀態(tài)。
??如果TCP連接失敗驳棱,那么BGP停留在Active狀態(tài)批什。
??如果連接重傳定時(shí)器超時(shí),BGP仍沒(méi)有收到BGP對(duì)等體的響應(yīng)社搅,那么BGP轉(zhuǎn)至Connect狀態(tài)驻债。
OpenSent狀態(tài)
在OpenSent狀態(tài)下,BGP等待對(duì)等體的Open報(bào)文形葬,并對(duì)收到的Open報(bào)文中的AS號(hào)却汉、版本號(hào)、認(rèn)證碼等進(jìn)行檢查荷并。
??如果收到的Open報(bào)文正確合砂,那么BGP發(fā)送Keepalive報(bào)文,并轉(zhuǎn)至OpenConfirm狀態(tài)。
??如果發(fā)現(xiàn)收到的Open報(bào)文有錯(cuò)誤翩伪,那么BGP發(fā)送Notification報(bào)文給對(duì)等體微猖,并轉(zhuǎn)至Idle狀態(tài)。
OpenConfirm狀態(tài)
在OpenConfirm狀態(tài)下缘屹,BGP等待Keepalive或Notification報(bào)文凛剥。如果收到Keepalive報(bào)文,則轉(zhuǎn)至Established狀態(tài)轻姿,如果收到Notification報(bào)文犁珠,則轉(zhuǎn)至Idle狀態(tài)。
Established狀態(tài)
在Established狀態(tài)下互亮,BGP可以和對(duì)等體交換Update犁享、Keepalive、Route-refresh報(bào)文和Notification報(bào)文豹休。
??如果收到正確的Update或Keepalive報(bào)文炊昆,那么BGP就認(rèn)為對(duì)端處于正常運(yùn)行狀態(tài),將保持BGP連接威根。
??如果收到錯(cuò)誤的Update或Keepalive報(bào)文凤巨,那么BGP發(fā)送Notification報(bào)文通知對(duì)端,并轉(zhuǎn)至Idle狀態(tài)洛搀。
??Route-refresh報(bào)文不會(huì)改變BGP狀態(tài)敢茁。
??如果收到Notification報(bào)文,那么BGP轉(zhuǎn)至Idle狀態(tài)留美。
??如果收到TCP拆鏈通知卷要,那么BGP斷開(kāi)連接,轉(zhuǎn)至Idle狀態(tài)