當建立一個BGP回話將經歷一下幾種狀態:
Idle(空閒):路由器搜索路由表,看是否存在路由到達鄰居
Connect(連接):路由器發現了去往鄰居的路由並準備TCP的三次握手。建立成功則進入open sent,否則,變爲active(激活)等待重新建立TCP連接。
Open sent(發送):發送OPEN消息,然後等待一個OPEN的到來
Open confirm(確認):路由器收到一個OPEN,檢查BGP會話參數,匹配後發送keep alive確認,然後進入到等待自己的OPEN保溫被確認。
Established(建立):收到了對自己的OPEN保溫的keep alive確認,對等體建立;準備交接路由
如果收到一個Notification消息,則說明自己的OPEN不被認可,則斷開TCP連接,遷移到Idle狀態。
Active:改狀態正常不會發生,只有當參數不匹配,TCP建立不成功等,BGP進程會初始化與鄰居的TCP連接嘗試重新建立時纔會進入的狀態。
鄰居無法建立的情況:
TCP建立不成功(
ACL
IP不可達)
參數不匹配導致鄰居無法建立(
1 ipv4 to ipv6
)
AS號不匹配,也無法建立鄰居
BGP定義了以下幾種消息類型:
Open
包含hold time以及BGP router ID
Keepalive
Update
發送如何到達目的的網絡路由更新
包含路徑屬性以及網絡
Notification
檢測到錯誤
BGP連接關閉消息的發送
Route-refresh message