一、BGP邻居状态

BGP邻居状态与邻居类型-下一朵云
图1 BGP邻居状态

BGP路由报文交互过程

Idle状态是BGP初始状态,在Idle状态下,BGP路由器拒绝邻居发送的链接请求。只有在收到本设备的Start事件后,BGP路由器才开始尝试与其邻居进行TCP连接,并转至Connect状态。

Connect状态下,BGP路由器启动连接重传定时器(Connect Retry),等待TCP完成连接:

  • 如果TCP连接成功,那么BGP路由器向邻居返送Open报文,并转至OpenSent状态。
  • 如果TCP连接失败,那么BGP路由器转至Active状态。
  • 如果连接重传定时器超时,BGP路由器仍没有收到邻居响应,那么BGP路由器继续尝试与其邻居进行TCP连接,停留在Connect状态。

Active状态下,BGP路由器总是在试图建立TCP连接。

  • 如果TCP连接成功,那么BGP路由器向邻居发送Open报文,关闭连接重传定时器,并转至OpenSent状态。
  • 如果TCP连接失败,那么BGP路由器停留在Active状态。
  • 如果连接重传定时器超时,BGP路由器仍没有收到邻居的响应,那么BGP路由器转至Connect状态。

OpenSent状态下,BGP路由器等待邻居的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查。

  • 如果收到的Open报文正确,那么BGP路由器发送Keepalive报文,并转至Openconfirm状态。
  • 如果发现收到的Open报文有错误,那么BGP路由器发送Notification报文给邻居,并转至Idle状态。

Openconfirm状态下,BGP路由器等待Keepalive或Notification报文,如果收到Keepalive报文,则转至Establish状态,如果收到Notification报文,则转至Idle状态。

Establish状态下,BGP路由器可以和邻居交换Update、Keepalive、Route-refresh报文和Notification报文。

注:
* Active状态:TCP连接失败,启动BGP重传定时器。BGP路由器再次尝试与对方建立TCP连接。被动等待TCP连接
* Connect状态:如果对方没有配置BGP进程,会处于此状态。开始主动建立TCP连接。

二、BGP邻居类型

EBGP:

BGP邻居状态与邻居类型-下一朵云
图1 EBGP邻居

运行在不同AS之间的路由器建立的邻居关系为EBGP(External BGP)邻居关系

IBGP:

BGP邻居状态与邻居类型-下一朵云
图3 IBGP邻居

运行在相同的AS内的BGP路由器建立的邻居关系为IBGP(Internal BGP)关系

如图3,因为BGP使用TCP作为其承载协议,所以可以跨设备建立邻居关系,RTB与RTC之间建立IBGP邻居关系,并各自将从其他AS学习到的路由传递给对端,实现BGP路由在AS内的传递。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。