当建立一个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