BGP协议
这节的主要目的是了解概念性的知识点,什么是BGP?BGP属于哪种网关协议?BGP的建立过程的报文和状态,以及BGP的两种不同的IBGP和EBGP的基本概念。
目录
AS,IGP与 EGP概念
AS自治系统
AS【autonomous system】自治系统4一组内部管理下的网络,运行在BGP上,作用就是在运行BGP等外部路由协议时,通过AS号 区分不同自治系统。
AS号取值范围1-65535,私有AS号范围是64512-65535。
AS号由IANA机构负责分发
- 中国电信163 AS号:4134号
- 中国联通 AS号:9800号
- 中国教育网骨干网AS号:4538号
IGP与EGP
在自治系统内部使用IGP内部网关协议,而在不同的自治系统之间使用EGP外部网关协议。 。
IGP【Interior Gateway Protocol】内部网关协议,主要作用是发现和计算自治域内的路由信息,包括RIP,OSPF,IS-IS,IGRP等
EGP【Exterior Gateway Protocol】外部网关协议,一种自治系统相邻两个网关之间交换路由信息的协议,BGP是最新的外部网关协议
IGP只能承受上千条路由条目,如:OSPF使用SPF算法运算量大,可以自主选路建立邻居。所有承受的路由条目受限。 而BGP需要手动建立邻居不需要进行大量运算,因此可以承载上万条路由条目
BGP 基本概念
BGP概念
BGP【Border Gateway Protocol】边界网关协议,运行在自制系统间的路由协议,主要作用交换域间路由协议
相较IGP协议,BGP协议有以下优势:
- BGP基于TCP工作(端口号179),因此只要能够建立TCP连接就可以建立BGP邻居关系;
- BGP能够承载上万条路由条目,而IGP仅能上千条;
- BGP路由器只传递路由条目,不会暴露AS内的拓扑信息,更加安全;
- 支持MPLS/VPN协议,用于传递客户VPN路由
BGP特征
- BGP是建立矢量路由协议,邻居之间直接传递路由,每条BGP路由都携带多种属性。
- 可以使用这些属性配置路由策略,实现灵活的路由选路
BGP的工作原理
BGP报文
BGP协议报文以单播的形式发送,BGP共有5种,其中路由是承载在Update报文中。
OPEN报文:邻居建立时,协商参数
Keepalive报文:维护邻居关系,定期发送60s发送一次,180未收到BGP断开,对应open报文的确认,hold time时间决定keepalive报文的存活时间
Update报文:BGP路由更新报文,用以更新BGP路由信或者撤销BGP路由信息,携带丰富的路由属性描述路由(origin,AS PATH等),触发更新,使用NLRI【网络层可达信息】字段携带路由,撤销路由时,使用withdraw routes携带撤销的路由【不携带路由属性】
Route-refresh报文:用于请求邻居再次发送update报文,用于手动输入命令后刷新报文重新大宋路由信息
Notification报文:用于告警,检测错误信息,断开邻居关系,TCP连接
BGP状态
idle:初始状态,TCP连接未建立,等待start事件【配置peer命令】
- 由开始start事件路由器先发起TCP连接,进入下一个状态connect状态
connect:等待TCP完成连接,TCP建立过程中
- 如果连接成功,向对等体发送open报文,转至opensent状态
- 如果连接失败,进入active状态
- 如果连接重传定时器超时(32s),对等体没有回应,继续尝试。停留在connect状态
active:TCP建立失败,重新发起TCP连接
- 如果连接成功,像对等体发送open报文,转至opensent状态
- 如果连接失败,停留在active状态
- 如果连接重传定时器超时,对等体没有回应,转至connect状态
opensent: 发出open报文进入该状态,收到open报文,进行open报文参数的协商
- 参数协商正常,向对等体发送keepalive报文,转至openconfirm状态
- 参数协商失败,向对等体发送notification报文,转至idle状态
openconfirm: 发出keepalive报文进入该状态,keepalive报文对邻居的open报文进行确认,发出后等待keepalive报文。需要在5秒内收到
- 收到keepalive报文,转至established状态
- 收到notification报文,转至idle状态
established:邻居建立成功,发送update报文,可以和对等体交换update、keepalive、route-refresh、notification报文
- 收到正确的update或keepalive报文。运行正常、保持TCP连接
- 收到错误的update或keepalive报文。发出notification报文通知对等体,进入idle状态
- 收到notification报文,将进入idle状态
- 收到TCP拆链通知。断开TCP连接 。进入idle状态
route-refresh报文不会改变BGP状态
BGP正常建立过程
因为BGP的传输层协议是TCP协议,所以在BGP对等体建立之前,对等体之间首先进行TCP连接。BGP邻居间会通过Open报文协商相关参数,建立起BGP对等体关系。建立连接后,BGP邻居之间交换整个BGP路由表。BGP会发送Keepalive报文来维持邻居间的BGP连接,BGP协议不会定期更新路由表,但当BGP路由发生变化时,会通过Update报文增量地更新路由表。当BGP检测到网络中的错误状态时(例如收到错误报文时),BGP会发送Notification报文进行报错,BGP连接会随即中断。
BGP表
BGP邻居表
BGP邻居表:包含此台BGP路由器所有的邻居,以及他们之间的 状态
BGP默认每隔60秒发送一次BGP/TCP存活消息,保持时间180秒,保持时间内未收到存活消BGP连接断开
BGP路由表
每台BGP路由器独立维护一张BGP路由表,包含本地导入以及BGP peer学习所有BGP路由
BGP路由表中可用,最优的路由【标记为*>】将会加载到全局IP路由表
BGP分类
运行BGP的路由器被称为BGP Speaker或者BGP路由器
两台BGP路由器之间建立的关系叫BGP对等体(Peer)也叫BGP邻居,对等体之间交换BGP路由表
BGP的Peer分为:EBGP和IBGP
EBGP概念
EBGP【Externel BGP】外部边界网关协议,如果两个交换BGP报文的对等实体属于不同的自治系统,那么这两个对等实体就是EBGP对等实体;
- EBGP Peer一般直连建立
- 互为EBGP Peer的路由器彼此所属的AS号不同
- Neighbor命令所指定的邻居IP要可达,TCP连接要能够正确建立
- EBGP的路由管理距离为20,因为AS之间BGP比IGP更优
IBGP概念
IBGP【Internel BGP】内部边界网关协议,如果两个交换BGP报文的对等实体属于同一个自治系统,那么这两个对等实体就是IBGP对等实体;
- 互为IBGP Peer的BGP路由器属于同一个AS
- IBGP Peer一般基于loopback接口建立,Peer之间可以跨越路由器,只要TCP连接能够正确建立
- IBGP的路由管理距离为200,因此AS内部IGP更优
有问题大家可以留言讨论,关注IT其他方面的小伙伴们可以参考尚文网络其他老师文章,也可以微信搜索尚文网络公众号,有详细资讯发布,认准尚文网络成为一名优秀的IT人。