BGP

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


BGP简介

BGP-Border Gateway Protocol边界网关协议,是一种在自治系统AS(Autononmous System)之间传递并选择最佳路由的高级矢量路由协议。

路由协议通常分为内部网关协议(IGP)和外部网关协议(EGP)两大类。

BGP虽然是一种动态路由协议,但它实际上本身并不产生路由、不发现路由、不计算路由,其主要功能是完成最佳路由的选择并在BGP邻居之间进行最佳路由的传递。BGP选择了TCP作为其传输协议,端口号是179。

BGP的邻居关系分为IBGP和EBGP两种:两台BGP路由器位于同一AS时,它们的邻居关系为IBGP邻居关系;两台BGP路由器位于不同的AS时,它们的邻居关系为EBGP邻居关系。BGP没有自动建立邻居关系的能力,邻居关系必须通过手动配置来建立。

特点

(1)BGP拥有丰富的选路参考属性,灵活组合可以实现路由的优选和避免路由环路,能够高效率的传递路由和维护大量的路由信息;
(2)BGP提供了丰富的路由策略,能够灵活的进行路由选路,并且能指导邻居按策略发布路由;
(3)BGP提供了路由聚合和路由衰减功能,用于防止路由振荡,有效提高网络的稳定性;
(4)BGP是一种距离矢量协议,将AS作为一个节点来计算;IGP协议以一个路由器为节点;
(5)BGP使用TCP(端口号179)作为底层传输协议,与每个BGP对等体形成独特的基于单播的连接 并支持BGP于BFD联动,提高了网络的可靠性。

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

AS

(1)BGP的AS是指在一个组织机构管辖下拥有相同选路策略的IP网络,BGP网络中的每个AS都被分配了一个唯一的AS号,用于区域不同的AS。
(2)BGP的AS号分为2字节和4字节的AS号,
2字节AS号范围1----65535的整数,
4字节AS号范围2----4 294 967 295的整数(可以有不同的表示格式)
RFC 5389规定在2字节的AS号中;1–64511是公网AS,64512—65534为私网AS,65535保留用于特殊用途。

IBGP对等体

1.处于同一个AS的BGP对等体为IBGP对等体(或者是IBGP邻居)
IBGP对等体不一定是物理直连,但是一定要TCP可达。
2.从IBGP对等体获得的路由不向它的IBGP对等体发布
为了防止环路,BGP协议规定BGP发言者从IBGP获得的路由不向它的IBGP对等体发布。
3.从IBGP对等体获得的路由是否发布给它的EBGP对等体与BGP是否同步相关。
另外为了防止路由黑洞的产生,协议还规定BGP发言者从IBGP获得的路由是否发布给它的EBGP对等体与BGP是否同步相关。
IBGP的全连接
4.BGP会话是基于TCP的点到点的单播链接
TCP的可靠传输机制和滑动窗口机制可以确保承载与TCP之上的BGP可以可靠传递大量路由。但是TCP链接是点到点的单播方式来进行报文传输的,因此BGP链接只能是基于点到点的链接。同时BGP是一种距离矢量路由协议,为了防止产生路由环路,协议规定BGP发言者从IBGP对等体获得的路由不能向其他的IBGP对等体发布。这样,在运行了BGP协议的AS内,为了确保所有BGP路由器的路由信息向,则需要使所有的IBGP路由器保持全连接。
5.BGP发言者从IBGP对等体获得的路由不向其他的IBGP对等体发布

BGP消息种类

在这里插入图片描述

BGP协议状态机包含6个状态

1.Idle状态(空闲状态):是初始状态,不接受任何BGP连接,等待start时间的产生。如果有start事件产生则系统开启ConnectRetry定时器,向邻居发起TCP连接,将状态变为Connect。

2.Connect状态(连接状态):在Connect状态,系统会等待TCP连接建立完成。
如果TCP状态为Established,则拆除ConnectRetry定时器,并发送OPEN消息,将状态变为Opensent状态;
如果TCP连接失败则重置ConnectRetry定时器,并发送OPEN消息,将状态变为Active;
如果ConnectRetry timer expired(重传定时器)超时,则重新连接,扔处于Connect状态

3.Active状态(活跃状态):如果有启动时间但是TCP连接未完成则处于Active状态,在Active状态系统会响应ConnectRetry timer expired事件,重新进行TCP连接,同时重置ConnectRetry定时器,变为Connect状态;
如果与对方的TCP连接成功建立则会发送OPEN消息,将状态变为OpenSend,并清除ConnectRetry定时器,重置HoldTime定时器。

4.Openset状态(OPEN消息已发送):此状态表明系统已经发出Open消息,在等待BGP邻居发给自己的OPEN消息。如果收到BGP邻居发来的OPEN消息,并且没有错误的话,则转向Openconfirm状态,同时将HoldTime定时器的值置为协商值,发送Keepalive消息并置Keepalive定时器;
如果有错误则发送Notification消息并断开链接。

5.OpenConfirm状态(OPEN消息确认):此状态表明系统已经发出Keepalive消息,并等待BGP邻居的Keepalive消息。
如果收到邻居的Keepalive消息则转向Established状态并重置HoldTime定时器;
如果KeepAlive定时器超时则重置并发送KeepAlive消息;
如果收到Notification消息,则断开链接。

6.Established状态(连接建立):如果处于Established状态,则说明BGP链接建立完成,可以发送Update消息交换路由信息;
如果KeepAlive定时器超时则重置KeepAlive定时器并发送KeepAlive消息;
如果收到KeepAlive消息则重置HoldTime定时器:
如果检测到错误或者收到Notification消息则断开链接。

实验

在这里插入图片描述
1.配置ip
在这里插入图片描述2.配置回环接口
在这里插入图片描述
3.rip(R1R2R6R7同理)
在这里插入图片描述
4.配置对等体
在这里插入图片描述
5.配置静态路由
6.宣告各自的网段和IP每个都要宣告哦
7.测试
在这里插入图片描述


版权声明:本文为luochu000原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。