BGP状态机
①、 在 Idle 状态下,BGP 拒绝邻居发送的连接请求。只有在收到本设备的 Start 事件 后,BGP 才开始尝试和其它 BGP 对等体进行 TCP 连接,并转至 Connect 状态。 Start 事
件是由一个操作者配置一个 BGP 过程,或者重置一个已经存在的过程或者路由器软件重 置 BGP 过程引起的。
②、 在 Connect 状态下,BGP 启动连接重传定时器(Connect Retry),等待 TCP 完成连 接。
◼ 如果 TCP 连接成功,那么 BGP 向对等体发送 Open 报文,并转至 OpenSent 状态。
◼ 如果 TCP 连接失败,那么 BGP 转至 Active 状态。
◼ 如果连接重传定时器超时,BGP 仍没有收到 BGP 对等体的响应,那么 BGP 继续尝 试和其它 BGP 对等体进行 TCP 连接,停留在 Connect 状态。
③、在 Active 状态下,BGP 总是在试图建立 TCP 连接。
◼ 如果 TCP 连接成功,那么 BGP 向对等体发送 Open 报文,关闭连接重传定时器, 并转至 OpenSent 状态。
◼ 如果 TCP 连接失败,那么 BGP 停留在 Active 状态。
◼ 如果连接重传定时器超时,BGP 仍没有收到 BGP 对等体的响应,那么 BGP 转至
Connect 状态。
④、 在 OpenSent 状态下,BGP 等待对等体的 Open 报文,并对收到的 Open 报文中的
AS 号、版本号、认证码等进行检查。
◼ 如果收到的 Open 报文正确,那么 BGP 发送 Keepalive 报文,并转至 OpenConfirm
状态。
◼ 如果发现收到的 Open 报文有错误,那么 BGP 发送 Notification 报文给对等体,并 转至 Idle 状态。
⑤、 在 OpenConfirm 状态下,BGP 等待 Keepalive 或 Notification 报文。如果收到 Keepalive
报文,则转至 Established 状态,如果收到 Notification 报文,则转至 Idle 状态。
⑥、 在 Established 状态下,BGP 可以和对等体交换 Update、Keepalive、Route-refresh
报文和 Notification 报文。
◼ 如果收到正确的 Update 或 Keepalive 报文,那么 BGP 就认为对端处于正常运行状 态,将保持 BGP 连接。
◼ 如果收到错误的 Update 或 Keepalive 报文,那么 BGP 发送 Notification 报文通知对 端,并转至 Idle 状态。
◼ Route-refresh 报文不会改变 BGP 状态。
◼ 如果收到 Notification 报文,那么 BGP 转至 Idle 状态。
◼ 如果收到 TCP 拆链通知,那么 BGP 断开连接,转至 Idle 状态