BGP:边界网关协议

运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在 EGP 的经验之上。 BGP 系统的主要功能是和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓朴图并由此清除了路由环路,同时在 AS 级别上可实施策略决策。

BGP特性:

传输协议:TCP,端口号179
外部路由协议,用来在AS之间传递路由协议
一种增强的路径矢量路由协议
拥有可靠的路由更新机制
具备丰富的Metric度量方法
无环路协议设计
为路由条目附带多种属性信息
支持CIDR(无类别域间路由选路)
丰富的路由过滤和路由策略
无需周期性更新
路由更新时只发送增量路由
周期性发送keepalive报文以保持TCP连通性

BGP报文

Open

Uplate

Notification

Route-refresh

KeepAlive

发hello建立邻居关系

更新路由

报错

刷新路由表

不断的发送hello报文,维护邻居关系

BGP状态机:

支持BGP路由协议 bgp路由协议的作用_支持BGP路由协议


1.ldle (空闲)状态

BGP总以ldle状态为起点,该状态拒绝所有入站的连接。只有在BGP起动之后,BGP进程将初始化所有BGP资源,初始化去往邻居的TCP连接,监听来自邻居的TCP初始化消息,并更改为连接状态。启动事件一般是配置BGP进程。

2. Connect(连接)状态

进入Connect状态后,BGP进程将一直等待TCP连接的完成(三次握手),当TCP连接建立成功,BGP将会向邻居发送Open消息,并进入OpenSent(打开发送)状态。如果TCP会话没有建立,BGP将继续监听邻居初始化的连接,开启连接重试定时器,迁移到Active(激活)状态。Connect→→OpenSent(TCP连接建立);Connect→→Active(TCP连接暂未建立)。

3.Active(激活)状态

该状态下,BGP进程继续尝试和邻居建立TCP连接,如果TCP连接建立成功,BGP进程清除连接重试定时器,完成初始化过程,并向邻居发送Open报文,迁移到OpenSent(打开发送)状态。

如果连接重试定时器到期BGP进程依然处在激活状态,进程将返回连接状态,监听邻居发起的TCP会话,这个过程将反复循环,直到监听到由邻居发起的TCP会话。

4.OpenSent(打开发送)状态

进入了该状态,已经发送了Open消息,BGP将一直等待来自邻居的Open消息。一旦接收到Open消息后,将检查该消息的每一个字段,如果有差错,将会发送Notification消息迁入Idle状态。

如果接收到的Open消息没错,就会发送Keepalive消息并商讨Keepalive定时器和Keepalive发送的时间。 并迁移到OpenConfirm(打开确认)状态。

5.OpenConfirm(打开确认)状态

进入了这个状态下,BGP进程将等待邻居确认的Keepalive或Notification消息。如果接收到的是Keepalive消息则迁移到Established(建立)状态,如果是Notification消息那么就将迁移到Idle状态。

6.Established(建立)状态

进入了这个状态就说明了BGP的对等连接正式建立了,对等体之间交互Update,Keepalive和Notification消息,如果接受到的是Update或Keepalive消息,则重启保持定时器,如果接受到一个Notification消息,则会迁移到Idle状态。