一、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:
运行在不同AS之间的路由器建立的邻居关系为EBGP(External BGP)邻居关系
IBGP:
运行在相同的AS内的BGP路由器建立的邻居关系为IBGP(Internal BGP)关系
如图3,因为BGP使用TCP作为其承载协议,所以可以跨设备建立邻居关系,RTB与RTC之间建立IBGP邻居关系,并各自将从其他AS学习到的路由传递给对端,实现BGP路由在AS内的传递。
评论(0)