Active:BGP不断发起TCP连接建立,如果连接重试计时器超时,就回退到Connect状态,TCP连接失败,就继续保持在Active状态,并继续发起TCP连接。
首先BGP是通过TCP建立连接的,不是物理也可以是逻辑的,但是一定要有连接,你上面说的看你是建立的什么关系,如果是IBGP的话,那么就不发送给第三方IBGP对等体,也是就是说从IBGP 学来的路由吧传提给IBGP邻居,如果是EBGP的话就没有问题了,但是网络层一定要有连接,必须连接,不管是物理上还是逻辑上BGP 是一种基于路径矢量的 EGP,主要用于 AS 之间的路由传递与控制,而 IGP 主要负责 AS 内部的路由发现和计算。 BGP 是基于 TCP 端口号 179 的路由协议,基于 TCP 的优点体现在:三次握手建立邻居的可靠机制;可以跨链路建立邻居关系; TCP 有确认重传机制,无需在 BGP 中完成; BGP 的认证由 TCP 完成的,认证字段在 TCP 头部的 option 中。BGP的状态机
Idle 状态是 BGP 初始状态。在 Idle 状态下, BGP 拒绝邻居发送的连接请求。只有在收到本设备的 Start 事件后, BGP 才开始尝试和其它 BGP 对等体进行 TCP 连接,并转至 Connect 状态。
在 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、 Routerefresh 报文和 Notification 报文。
如果收到正确的 Update 或 Keepalive 报文,那么 BGP 就认为对端处于正常运行状态,将保持 BGP 连接。
如果收到错误的 Update 或 Keepalive 报文,那么 BGP 发送 Notification 报文通知对端,并转至 Idle 状态。
Route-refresh 报文不会改变 BGP 状态。
如果收到 Notification 报文,那么 BGP 转至 Idle 状态。
如果收到 TCP 拆链通知,那么 BGP 断开连接,转至 Idle 状态。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)