BGP对等体关系建立

状态名称及用途

Idle:开始准备TCP的连接并监视远程对等体,启用BGP时,要准备足够的资源
Connect:正在进行TCP连接,等待完成中。认证都是在TCP建立期间完成的。
Active:如果TCP连接建立失败则进入Active状态,反复尝试连接
OpenSent:TCP连接已经建立成功,开始发送Open包,Open包携带参数协商对等体的建立
OpenConfirm:参数、能力特性协商成功。自己发送Keepalive包,等待对方的Keepalive包
Established:已收到对方的Keepalive包,双方能力特性经协商发现一致,开始使用Update通告路由信息

状态变迁过程

BGP对等体关系建立

Idle

Idle 状态是BGP初始状态;在任何状态中,若收到 Notification 报文或 TCP 拆链通知等 Error 事件,BGP 都会转至 Idle 状态。

在 Idle 状态下,BGP 拒绝 Peer 发送的连接请求。只有在收到本设备的 Start Event 后,BGP 才开始尝试和其它 BGP Peer 进行 TCP 连接,并转至Connect状态。Start Event 是由一个操作者配置一个BGP过程,或者重置一个已经存在的过程或者路由器软件重置BGP过程引起的。

当配置 BGP Peer 完成后,设备会尝试 TCP 连接建立。此时,如果无法发起 TCP 连接(常见原因,比如缺乏去往BGP对等体的路由),设备将会处于 Idle 状态。

Connect ⇒ Active

当配置完 BGP Peer,并成功查找到去往 Peer 地址的路由后,会发起 TCP 三次握手:
1)在建立 TCP 三次握手过程中,处于 Connect 状态,
2)如果 TCP 连接长期无法建立,则进入 Active 状态。

在 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状态。

Open Sent ⇒ Open Confirm

当建立 TCP 三次握手完成后,发送 Open 报文建立对等体关系,此时进入Open Sent状态。

当收到对端回应的 Open 报文,并且参数检查无误,在发送 keepalive 报文之后进入 Open Confirm 状态。

Established

当进入 Open Confirm 状态后,BGP 路由器如果收到 Peer 发送的 Keeaplive 报文,则进入 Established 状态,对等体关系建立过程就此完成。

TCP Connection

1)先启动 BGP 的一端先发起TCP连接,如左图所示,R1先启动BGP,R1使用随机端口号向R2的179端口发起TCP连接,完成TCP连接的建立。

两个 TCP 连接

对等体都会发起 TCP 三次握手,所以会建立两个 TCP 连接,但是实际 BGP 只会保留其中一个 TCP 连接。方法如下:
1)从 Open 报文中获取对端 BGP Identifier 后,BGP Peer 会比较本端的 Router ID 和对端的 Router ID 大小。
—- 如果本端 Router ID 小于对端 Router ID,则会关闭该 TCP 连接,使用由对端主动发起创建的 TCP 连接进行后续的 BGP 报文交互。

BGP对等体关系建立

在环境中有两个路由器10.1.12.1(Router ID 10.1.1.1)与 10.1.12.2(Router ID 10.2.2.2),其 BGP 交互过程如图所示:
1)10.1.12.1(Router ID 10.1.1.1) 先发起 TCP 连接,并成功;
2)然后 10.1.12.1 发送首个 Open 报文;
3)10.1.12.2(Router ID 10.2.2.2)收到后,发现对方 Router ID 较小,直接 FIN ACK 关闭连接;
4)然后 10.1.12.2 又主动向 10.1.12.1 发起连接

Open Packet

2)三次握手建立完成之后,R1、R2之间相互发送Open报文,携带参数用于对等体建立。参数协商正常之后双方相互发送Keepalive报文,收到对端发送的Keepalive报文之后对等体建立成功。

其中 Open 报文携带:
My Autonomous System:自身 AS Number
Hold Time:用于协商后续 Keepalive 报文发送时间;KeepAlive 发送时间 1min,Hold Time 为 3min;
BGP Identifier:自身 Router ID

Keepalive Packet

3)同时双方定期发送Keepalive报文用于保持连接。

Update Packet

BGP对等体关系建立之后,BGP路由器发送BGP Update(更新)报文通告路由到对等体。

The post 「BGP」- 对等体关系建立 appeared first on K4NZ BLOG.

本文《BGP对等体关系建立》由网赚联盟( wangzhuan.org.cn )整理或原创,感谢您的阅读。

随机文章

SEO小小课堂网
SEO教程
站长导航
关键词排名优化
GEO培训
SEO小小课堂网
SEO教程
站长导航

百度搜索“网赚联盟”即可找到本站,微信搜索“小小课堂网”关注小小课堂网公众号。网赚联盟( wangzhuan.org.cn )欢迎用户投稿,发布者:用户投稿,文章版权归作者所有,投稿文章不代表网赚联盟立场,中二少年发布为网赚联盟原创文章,转载请注明出处:https://wangzhuan.org.cn/176416.html