邊界網(wǎng)關(guān)協(xié)議:BGP鄰居的6種狀態(tài)
BGP(border gateway protocol)邊界網(wǎng)關(guān)協(xié)議,應(yīng)用層協(xié)議,基于tcp,端口號179,報文結(jié)構(gòu):bgp header|tcp|ip|二層。
今天就詳細(xì)給大家介紹一下BGP鄰居狀態(tài)機(jī)。
可以利用鄰居狀態(tài)機(jī)描述BGP連接的建立和維護(hù),它將有以下的6種狀態(tài):
1. ldle (空閑)狀態(tài)
BGP總以ldle狀態(tài)為起點(diǎn),該狀態(tài)拒絕所有入站的連接。只有在BGP起動之后,BGP進(jìn)程將初始化所有BGP資源,初始化去往鄰居的TCP連接,監(jiān)聽來自鄰居的TCP初始化消息,并更改為連接狀態(tài)。啟動事件一般是配置BGP進(jìn)程。
2. Connect(連接)狀態(tài)
進(jìn)入Connect狀態(tài)后,BGP進(jìn)程將一直等待TCP連接的完成(三次握手),當(dāng)TCP連接建立成功,BGP將會向鄰居發(fā)送Open消息,并進(jìn)入OpenSent(打開發(fā)送)狀態(tài)。如果TCP會話沒有建立,BGP將繼續(xù)監(jiān)聽鄰居初始化的連接,開啟連接重試定時器,遷移到Active(激活)狀態(tài)。
- Connect→→OpenSent(TCP連接建立);
- Connect→→Active(TCP連接暫未建立)。
3. Active(激活)狀態(tài)
該狀態(tài)下,BGP進(jìn)程繼續(xù)嘗試和鄰居建立TCP連接,如果TCP連接建立成功,BGP進(jìn)程清除連接重試定時器,完成初始化過程,并向鄰居發(fā)送Open報文,遷移到OpenSent(打開發(fā)送)狀態(tài)。
如果連接重試定時器到期BGP進(jìn)程依然處在激活狀態(tài),進(jìn)程將返回連接狀態(tài),監(jiān)聽鄰居發(fā)起的TCP會話,這個過程將反復(fù)循環(huán),直到監(jiān)聽到由鄰居發(fā)起的TCP會話。
4. OpenSent(打開發(fā)送)狀態(tài)
進(jìn)入了該狀態(tài),已經(jīng)發(fā)送了Open消息,BGP將一直等待來自鄰居的Open消息。一旦接收到Open消息后,將檢查該消息的每一個字段,如果有差錯,將會發(fā)送Notification消息遷入Idle狀態(tài)。
如果接收到的Open消息沒錯,就會發(fā)送Keepalive消息并商討Keepalive定時器和Keepalive發(fā)送的時間。并遷移到OpenConfirm(打開確認(rèn))狀態(tài)。
5. OpenConfirm(打開確認(rèn))狀態(tài)
進(jìn)入了這個狀態(tài)下,BGP進(jìn)程將等待鄰居確認(rèn)的Keepalive或Notification消息。如果接收到的是Keepalive消息則遷移到Established(建立)狀態(tài),如果是Notification消息那么就將遷移到Idle狀態(tài)。
6. Established(建立)狀態(tài)
進(jìn)入了這個狀態(tài)就說明了BGP的對等連接正式建立了,對等體之間交互Update,Keepalive和Notification消息,如果接受到的是Update或Keepalive消息,則重啟保持定時器,如果接受到一個Notification消息,則會遷移到Idle狀態(tài)。
注:
① 問:長時間停留在Active或ldle狀態(tài),可能的原因是什么?
答:
- 本路由器沒有到達(dá)BGP Open報文中源IP地址的路由(debug ip bgp輸出:no route)
- neighbor命令中配置了錯誤的IP地址(debug ip bgp輸出:no route)
- neighbor命令中沒有配置更新源地址(debug ip bgp輸出:Connection refused by remote host)
- 在建立eBGP鄰居是的neighbor命令中沒有考慮到TTL值問題
- 沒有配置neighbor命令
- AS號配置錯誤(debug ip bgp輸出:Connection refused by remote host)
② 我們在實際網(wǎng)絡(luò)中操作BGP時,為了避免路由動蕩,可以使用命令router(config-router)# neighbor A.B.C.D shutdown來暫時的關(guān)閉BGP鄰居,此時鄰居配置未刪除但是路由丟失。
③ 查看命令show ip bgp summary #觀察最后1列顯示為空白或數(shù)字,表示該鄰居正常建立。
查看命令show ip bgp neighbors #觀察BGP State顯示為Established表示鄰居正常建立。





















