|
|
51CTO旗下网站
|
|
移动端

2.2.2 BGP有限状态机

《TCP/IP路由技术(第2卷)(第2版)》第2章BGP简介,本章将讨论BGP的基本操作,包括BGP的消息类型、消息使用方式以及消息格式。此外,本章还要讨论与路由相关联的各种基本的BGP属性以及利用这些属性选择最佳路由的方式,最后将解释BGP对等会话的配置以及故障检测与排除方式。本节为大家介绍BGP有限状态机。

作者:夏俊杰 译来源:人民邮电出版社|2017-09-05 17:57

2.2.2 BGP有限状态机

可以利用有限状态机来描述BGP连接的建立和维护阶段,图2-9和表2-1给出了完整的BGP有限状态机以及触发状态迁移的各种输入事件。

表2-1 图2-9的输入事件(IE)


下面将逐一介绍图2-9中的6种邻居状态。

1.Idle(空闲)状态

BGP总是以Idle状态为起始点,该状态拒绝所有入站连接。启动(Start)事件(IE 1)发生后,BGP进程会初始化所有BGP资源、启动ConnectRety(连接重试)定时器、初始化去往邻居的TCP连接、侦听来自邻居的TCP初始化并将状态更改为Connect(连接)状态。启动事件由配置BGP进程或重置现有进程的操作员发起,或者由重置BGP进程的路由器软件发起。

如果发生差错,BGP进程将迁移到Idle状态。此时,路由器可能会自动尝试发起另一个启动事件,但应对路由器的这种行为做一定的限制——这是因为在持续性地差错条件下,经常性地重启会导致波动。因而在***次迁移到Idle状态之后,路由器会设置ConnectRety定时器,在定时器到期时才会重新再启BGP。IOS的初始ConnectRety时间为120秒,该值不可更改,以后每次ConnectRety时间都是之前的两倍,也就是说,连续等待时间呈指数式递增。

2.Connect(连接)状态

该状态下,BGP进程一直等待TCP连接的完成。如果TCP连接建立成功,BGP进程将会向邻居发送Open消息并进入OpenSent(打开发送)状态。如果TCP连接建立不成功,BGP进程将继续侦听由邻居初始化的连接、重置ConnectRety定时器,并迁移到Active(激活)状态。

如果ConnectRety定时器到期时仍处于Connect状态,则重置定时器,并再次尝试与邻居建立TCP连接,进程也将继续维持在Connect状态,其他输入事件将会让BGP进程迁移到Idle状态。

3.Active(激活)状态

该状态下,BGP进程会尝试与邻居初始化TCP连接。如果TCP连接建立成功,BGP进程会清除ConnectRetry定时器、完成初始化过程、向其邻居发送Open消息,并迁移到OpenSent(打开发送)状态。IOS默认的保持时间为180秒(3分钟),可以通过timers bgp statement命令设置保持时间。

如果ConnectRetry定时器到期时BGP进程仍处于Active状态,那么进程将返回Connect状态并重置ConnectRetry定时器,而且还要与对等体进行TCP连接的初始化并继续侦听来自对等体的连接。如果邻居试图以非期望的IP地址建立TCP会话,则重置ConnectRetry定时器、拒绝该连接,且继续维持在Active状态,其他输入事件(启动事件除外,因为Active状态会忽略启动事件)将会让BGP进程迁移到Idle状态。

4.OpenSent(打开发送)状态

该状态下,已经发送了Open消息,BGP会一直等待直至侦听到来自邻居的Open消息。接收到Open消息后,会检查该消息的每个字段,如果存在差错,则会发送Notification消息并迁移到Idle状态。

如果接收到的Open消息没有差错,则发送Keepalive消息并设置Keepalive定时器,此外还要协商保持时间,以确定一个较小的保持时间值,如果协商后的保持时间为零,则不启动保持定时器和Keepalive定时器。根据对等体的AS号,可以确定对等连接是内部连接还是外部连接,并迁移到OpenConfirm(打开确认)状态。

如果收到断开TCP连接的请求,则本地进程将关闭BGP连接、重置ConnectRetry定时器、开始侦听由邻居发起的新连接,并迁移到Active状态。其他输入事件(启动事件除外,因为该状态会忽略启动事件)则会让BGP进程迁移到Idle状态。

5.OpenConfirm(打开确认)状态

该状态下,BGP进程将等待Keepalive消息或Notification消息,如果收到的是Keepalive消息,则迁移到Established(建立)状态;如果接收到的是Notification消息或断开TCP连接请求,则迁移到Idle状态。

如果保持定时器到期,或检测到差错,或发生了终止事件,则向邻居发送一条Notification消息、关闭BGP连接,并将状态更改为Idle状态。

6.Established(建立)状态

该状态下,BGP对等连接已完全建立,对等体之间可以相互交换Update、Keepalive和Notification消息。如果接收到的是Update或Keepalive消息,则重新启动保持定时器(如果协商好的保持时间不是零)。如果接收到的是Notification消息,则迁移到Idle状态。其他事件(启动事件除外,因为该状态会忽略启动事件)将会让BGP进程发送一条Notification消息并迁移到空闲状态。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
大家都在看
猜你喜欢

订阅专栏+更多

16招轻松掌握PPT技巧

16招轻松掌握PPT技巧

GET职场加薪技能
共16章 | 晒书包

289人订阅学习

20个局域网建设改造案例

20个局域网建设改造案例

网络搭建技巧
共20章 | 捷哥CCIE

645人订阅学习

WOT2019全球人工智能技术峰会

WOT2019全球人工智能技术峰会

通用技术、应用领域、企业赋能三大章节,13大技术专场,60+国内外一线人工智能精英大咖站台,分享人工智能的平台工具、算法模型、语音视觉等技术主题,助力人工智能落地。
共50章 | WOT峰会

0人订阅学习

读 书 +更多

网管员必读—网络应用(第2版)

本书虽然是《网管员必读—网络应用》的改版,但它绝不是简单的修改,而是完完全全的重写,内容更实用、更专业。全书共9章,13个大小方案,...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客