BGP鄰居狀態機
能夠利用鄰居狀態機描述BGP鏈接的創建和維護,它將有如下的6中狀態:
1.ldle (空閒)狀態
BGP總以ldle狀態爲起點,該狀態拒絕全部入站的鏈接。只有在BGP起動以後,BGP進程將初始化全部BGP資源,初始化去往鄰居的TCP鏈接,監聽來自鄰居的TCP初始化消息,並更改成鏈接狀態。啓動事件通常是配置BGP進程。
2. Connect(鏈接)狀態
進入Connect狀態後,BGP進程將一直等待TCP鏈接的完成(三次握手),當TCP鏈接創建成功,BGP將會向鄰居發送Open消息,並進入OpenSent(打開發送)狀態。若是TCP會話沒有創建,BGP將繼續監聽鄰居初始化的鏈接,開啓鏈接重試定時器,遷移到Active(激活)狀態。Connect→→OpenSent(TCP鏈接創建);Connect→→Active(TCP鏈接暫未創建)。
3.Active(激活)狀態
該狀態下,BGP進程繼續嘗試和鄰居創建TCP鏈接,若是TCP鏈接創建成功,BGP進程清除鏈接重試定時器,完成初始化過程,並向鄰居發送Open報文,遷移到OpenSent(打開發送)狀態。
若是鏈接重試定時器到期BGP進程依然處在激活狀態,進程將返回鏈接狀態,監聽鄰居發起的TCP會話,這個過程將反覆循環,直到監聽到由鄰居發起的TCP會話。
4.OpenSent(打開發送)狀態
進入了該狀態,已經發送了Open消息,BGP將一直等待來自鄰居的Open消息。一旦接收到Open消息後,將檢查該消息的每個字段,若是有差錯,將會發送Notification消息遷入Idle狀態。
若是接收到的Open消息沒錯,就會發送Keepalive消息並商討Keepalive定時器和Keepalive發送的時間。 並遷移到OpenConfirm(打開確認)狀態。
5.OpenConfirm(打開確認)狀態
進入了這個狀態下,BGP進程將等待鄰居確認的Keepalive或Notification消息。若是接收到的是Keepalive消息則遷移到Established(創建)狀態,若是是Notification消息那麼就將遷移到Idle狀態。
6.Established(創建)狀態
進入了這個狀態就說明了BGP的對等鏈接正式創建了,對等體之間交互Update,Keepalive和Notification消息,若是接受到的是Update或Keepalive消息,則重啓保持定時器,若是接受到一個Notification消息,則會遷移到Idle狀態。
注:①Q:長時間停留在Active或ldle狀態,可能的緣由是什麼?
A:a)本路由器沒有到達BGP Open報文中源IP地址的路由(debug ip bgp輸出:no route)
b)neighbor命令中配置了錯誤的IP地址(debug ip bgp輸出:no route)
c)neighbor命令中沒有配置更新源地址(debug ip bgp輸出:Connection refused by remote host)
d)在創建eBGP鄰居是的neighbor命令中沒有考慮到TTL值問題
e)沒有配置neighbor命令
f)AS號配置錯誤(debug ip bgp輸出:Connection refused by remote host)
②咱們在實際網絡中操做BGP時,爲了不路由動盪,能夠使用命令router(config-router)# neighbor A.B.C.D shutdown來暫時的關閉BGP鄰居,此時鄰居配置未刪除可是路由丟失。
③查看命令show ip bgp summary #觀察最後1列顯示爲空白或數字,表示該鄰居正常創建。
查看命令show ip bgp neighbors #觀察BGP State顯示爲Established表示鄰居正常創建。
彙總貼:http://bbs.51cto.com/thread-919144-1.htmlphp
1.png (92.45 KB)html
2012-5-30 08:25 網絡
2.png (49.57 KB)ide
2012-5-30 08:25 spa