BGP

BGP

一、BGP基础

1、BGM概述

边界网关协议(Border Gateway Protocol,BGP )是一种实现自治系统AS之间的路由可达,并选择最佳路由的矢量性协议。早期发布的三个版本分别是BGP-1 ( RFC1105 )、BGP-2(RFC1163 )和BGP- 3(RFC1267 ),1994年开始使用BGP-4(RFC1771),2006年之后单播IPv4网络使用的版本是BGP-4(RFC4271 ),其他网络使用的版本是MP-BGP (RFC4760 )。
特点:
使AS之间的路由可达,选择最佳路径
可以承载大批量路由信息
提供丰富路由策略,进行选路、指导
支撑MPLS/VPN应用
提供路由聚合和衰减功能,稳定
*使用TCP作为传输层协议(179),提升可靠性

2、BGP工作场景

在这里插入图片描述

3、BGP的路径矢量特征

BGP通常被称为路径矢量路由协议(Path-Vector Routing Protocol ).
每条BGP路由都携带着多种路径属性(Path attribute ),在各种路径属性中,AS_Path属性是非常关键的一个。AS_Path属性记录了BGP路由传递过程中所经过的AS号,实际上它是一个AS号的列表。
BGP路由器不接受AS_Path中包含其自身AS号的路由更新。AS_Path属性值的长短(AS号的个数)会作为一个比较的依据,影响BGP路由选择的决策。
在这里插入图片描述
AS_Path(防环)记录经过的AS号,是AS号的列表
传输到到AS100的时候,只携带AS500
在不同AS之间传递才会记录,在AS100内传输不记录
防环:到达AS500时,AS500发现已经有,认为环路产生,不接收丢弃
2条路,选路径短的。

4、BGP协议特征

BGP使用TCP为传输层协议,TCP端口号179。路由器之间的BGP会话基于TCP连接而建立。运行BGP的路由器被称为BGP发言者(BGP Speaker ) ,或BGP路由器。
两个建立BGP会话的路由器互为对等体(Peer )。BGP对等体之间交换BGP路由表。BGP路由器只发送增量的BGP路由更新,或进行触发更新(不会周期性更新)。BGP具有丰富的路径属性和强大的路由策略工具。
BGP能够承载大批量的路由前缀,用于大规模的网络中。
在这里插入图片描述

二、BGP报文类型(五种)

五种报文包

OPEN:2个建立了TCP连接对等体(不一定直连),中间可以跨越N个路由器
UPDATE:路由变化时更新信息
NOTIFICATION:报错信息,终止对等关系
KEEPALIVE:60S一次,保持对等关系有效性;发open报文等待keepalive回应 。死亡时间:180s
ROUTE-REFRESH:路由更新。路由策略改变时重新发送路由信息告知,刷新路由信息。

三、BGP状态机(六种状态)

在这里插入图片描述

四、BGP peer

运行BGP的路由器被称为BGP发言者,或者BGP路由器。
BGP对等体也叫BGP邻居,与OSPF、RIP等协议不同,BGP的会话是基于TCP建立的。建立BGP对等体关系的两台路由器并不要求必须直连。
BGP存在两种对等体关系类型:EBGP及BGP,针对这两种对等体类型,BGP处理路由的操作存在较大差异。

注:对等体要求路由可达
EBGP ( External BGP):位于不同自治系统的BGP路由器之间的BGP邻接关系。两台路由器之间要建立EBGP对等体关系,必须满足两个条件∶
1、两个路由器所属AS不同(也即AS号不同)。
2、在配置BGP时,Peer命令所指定的对等体P地址要求路由可达,并且TCP连接能够正确建立。

IBGP ( lnternal BGP)∶位于相同自治系统的BGP路由器之间的BGP邻接关系。两台路由器之间要建立IBGP对等体关系,必须满足两个条件︰
1、两个路由器所属AS需相同(t也即AS号相同)。
2、在配置BGP时,Peer命令所指定的对等体IP地址要求路由可达,并且TCP连接能够正确建立。

命令

看邻居:dis bgp peer
看bgp表:dis bgp routing-table
BGP不能自己发现邻居,不能自己发现路由,需要手动配置

五、黑洞问题

在传输AS (Transit As ) 65102中,BCDE四台路由器运行了OSPF,确保AS内部路由实现互通。
B与E运行BGP,并且两者建立IBGP对等体关系(两者并非直连,但是对于BGP,这是允许的,仅需确保两者之间能够正确建立TCP连接即可)。C与D并未运行BGP。
A将本地路由1.1.1.0/24通告到BGP,最终F能够通过BGP学习到该条路由。C、D由于并未运行BGP,因此无法通过BGP学习到1.1.1.0/24路由。
如此一来,F发往1.1.1.0/24网络的数据包在到达C/D后将被丢弃,在C及D路由器这里,就出现了黑洞。
在这里插入图片描述

解决办法

一、BGP同步

若路由器从IBGP对等体学习到一条BGP路由,它不能使用该条路由,更不能将路由传递给自己的EBGP对等体,除非它又从IGP学习到该条路由,这就是BGP的同步规则。
同步规则的存在,可以防止数据在传输AS内由于转发设备没有目标网络的路由而被丢弃的问题,也就是所谓的黑洞问题。
为了使得BGP路由能够正常交互,我们就不得不在该传输AS内所有路由器上都运行BGP,且构建全互联的IBGP对等体关系;或者在AS边界上将BGP路由引入IGP。显然这两种方法各有利弊,尤其是后者,盲目地将BGP路由引入IGP是非常危险的。
同步规则的存在意义是避免出现黑洞问题,而如果AS内路由问题已经解决,那么同步规则也就没有必要再开启了。华为路由交换产品缺省关闭同步规则。
1、将BGP路由引入到IGP,并关闭同步规则。
2、传输AS内所有路由器均运行BGP,实现BGP对等体关系得全互联,并关闭同步规则。

二、IBGP水平分割规则

BGP路由在AS之间的防环依赖于AS_Path路径属性,当路由器收到BGP路由后,发现该路由所携带的AS_Path属性中出现了其自己所处的AS号,则路由器认为出现了路由环路,它将忽略该条路由。
AS_Path属性仅在路由离开AS时才会被更改,而BGP路由在AS内部传递时,路由的AS_Path属性值不会发生改变,如此一来,IBGP路由的防环就无法依赖AS_Path了。
为了防止BGP路由在AS内部传递时发生环路,BGP要求︰“路由器不能将自己从IBGP对等体学习到的路由再传递给其他IBGP对等体”,这就是IBGP水平分割规则。
由于IBGP水平分割原则的存在,BGP要求AS内须保证IBGP对等体关系的全互联,因为只有这样,才能够确保每一个路由器都能学习到路由。
2从1学到的不能发给3,3从1学到的不能发给2
在这里插入图片描述

BGP路由通告规则

当存在多条路径时,路由器只选取最优( Best )的BGP路由来使用(没有激活负载均衡的情况下)。BGP只把自己使用的路由,也就是自己认为最优的路由传递给对等体。
路由器从EBGP对等体获得的路由会传递给它所有的BGP对等体(包括EBGP和IBGP对等体)。路由器从IBGP对等体获得的路由不会传递给它的IBGP对等体(存在反射器RR的情况除外)。路由器从IBGP对等体获得的路由是否通告给它的EBGP对等体要视IGP和BGP同步的情况来决定。
=在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值