是的,BGP是外部网关路由协议,是运行于TCP上的一种自治系统的路由协议,用来在AS之间传递路由信息。BGP是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。
本教程操作环境:windows10系统、Dell G3电脑。
外部网关协议(Exterior Gateway Protocol)是AS之间使用的路由协议,最初于1982年由BBN技术公司的EricC.Rosen及DavidL.Mills提出。其最早在RFC827中描述,并于1984年在RFC904中被正式规范。EGP是一种简单的(网络)可达性协议,其与现代的距离-矢量协议和路径-矢量协议不同,它仅限适用于树状拓扑的网络。
由于EGP存在很多的局限性,IETF边界网关协议工作组制定了标准的边界网关协议(BGP),当前被广泛使用。
BGP的介绍
BGP是外部网关路由协议,用来在AS之间传递路由信息;BGP协议属于TCP协议,端口号为179
边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在 EGP 的经验之上。 BGP 系统的主要功能是和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓扑图并由此清除了路由环路,同时在 AS 级别上可实施策略决策。
BGP特点
(1)是一种增强的路径矢量路由协议,拥有可靠的路由更新机制;
(2)具备丰富的Metric度量方法;
(3)无环路协议设计;
(4)为路由条目附带多种属性信息;
(5)支持CIDR(无类别域间选路);
(6)丰富的路由过滤和路由策略;
(7)无需周期性更新:
(8)路由更新时只发送增量路由;
(9)周期性发送KeepAlive报文以保持TCP的连通性。
扩展:
- BGP邻居关系就是对等体关系;
- BGP邻居就是BGP对等体(peer)。
BGP消息类型
- 运行BGP的路由器称之为BGP Speaker,BGP Speaker之间将会交换五种类型的报文,其中OPEN报文,KEEPALIVE报文以及NOTIFICATION报文用于邻居关系的建立和维护。
BGP的五种报文如下:
- Open:负责和对等体建立邻居关系;主要包括BGP版本、AS号等信息;试图建立BGP邻居关系的两个路由器在建立了TCP会话连接之后开始交换OPEN信息以确认能否形成邻居关系。
- KeepAlive:该报文在对等体之间周期性的发送,用于判断对等体之间的可达性,实现BGP邻居关系的维护;
- Update:该报文用于在BGP对等体之间用于交换路由信息。其中包括撤销路由信息和可达路由信息及其各种路由属性;
- Notification:BGP的差错检测机制;一旦检测带任何形式的差错,BGP Speaker会发送一个NPTIFICATION报文,随后与之相关的邻居关系将被关闭;
- Route-refresh:用来通知BGP对等体自己支持路由刷新能力。
BGP数据库类型:
- IP路由表————–IGP
- BGP路由表———–EGP
BGP的6个状态机
- Idle–空闲:Idle是BGP连接的第一个状态,在空闲状态,BGP在等待一个启动事件,启动事件出现以后,BGP初始化资源,复位连接重试计时器,发起一条TCP连接,同时转入Connect状态;
- Connect–连接:在Connect状态,BGP发起第一个TCP连接,如果连接重试计时器(Connect-Retry)超时,就重新发起TCP连接,并继续保持在Connect状态,如果TCP连接成功,就转入OpenSent状态,如果TCP连接失败,就转入Active状态;
- Active–活跃:在Active状态,BGP总是在试图建立TCP连接,如果连接重试计时器超时,就会退回到Connect状态,如果连接TCP成功,就转入OpenSent状态。如果TCP连接失败,就继续保持在Active状态,并继续发起TCP连接;
- OpenSent–打开消息已发送:在OpenSent状态,TCP连接已经建立,BGP也已经发送了第一个Open报文,剩下的工作,BGP就在等待其对等体发送Open报文。并对收到的Open报文进行正确性检查,如果有错误,系统就会发送一条出错通知消息并退回到Idle状态,如果没有错误,BGP就开始发送Keepalive报文,并复位Keepalive计时器,开始计时。同时转入OpenConfirm状态;
- OpenConfirm–打开消息确认:在OpenConfirm状态,BGP发送一个Keepalive报文,同时复位保持计时器,如果收到了一个Keepalive报文,就转入Established阶段,BGP邻居关系就建立起来了。如果TCP连接中断,就退回到Idle状态;
- Established–连接已建立:在Established状态,BGP邻居关系已经建立,这时,BGP将和它的邻居们交换Update报文,同时复位保持计时器。