边界网关协议(Border Gateway Protocol,BGP)是一种用来在路由选择域之间交换网络层可达性信息(Network Layer Reachability Information,NLRI)的路由选择协议。由于不同的管理机构分别控制着他们各自的路由选择域,因此,路由选择域经常被称为自治系统AS(Autonomous System)。现在的Internet是一个由多个自治系统相互连接构成的大网络,BGP作为事实上的Internet外部路由协议标准,被广泛应用于ISP(Internet Service Provider)之间。
早期发布的三个版本分别是BGP-1、BGP-2和BGP-3,主要用于交换AS之间的可达路由信息,构建AS域间的传播路径,防止路由环路的产生,并在AS级别应用一些路由策略。当前使用的版本是BGP-4。
BGP协议自身不能发现路由,所以需要引入其他协议的路由,它是以AS与AS之间传的
BGP的宣告
- 在BGP协议中每台运行BGP的设备上,宣告本地直连路由
- 在BGP协议中运行BGP协议的设备来宣告,它是通过IGP学习的
bgp在宣告本地路由时会带度量值
若一台BGP设备,通过IBGP邻居学习到一条路由,存在度量值;同时本地需要将这些路由传输给本地其他的EBGP邻居时,只能将度量取消,按0进行传输;导致选路参考值不优;
bgp的自动汇总
现在的路由器设备默认关闭了自动汇总功能
自动汇总规则和正常bgp协议共享路由,bgp通过network宣告命令产生的路由条是没有关系的bgp宣告是逐条重发布IGP到BGP,宣告是优于重发布的,bgp的认证是通过另据建进行的身份核实的方法
在实际的工程中由于AS之间一定存在大量的EBGP邻居关系,因此总是不能做到优选的路径,所以在汇总配置完成后,要是还需要同时传输部分明细路由,需要再逐一宣告需要传递的明细路由
可以用到路由传递的干涉策略,
抑制列表 – 先让设备将所有路由传递出去,再调用抑制策,分发列表
有条件的打破水平分割,是指再保证无环的前提下消除ibgp水平分割的机制
路由反射器 角色:RR反射器 客户端 非客户端
反射规则:不优路由不能被传递,自然也不能被反射;
- RR从一个EBGP邻居处学习到的路由,可以传输给客户端、非客户端,已经本地的其他EBGP邻居;
- RR从一个客户端学习到的路由,可以传递给本地其他的客户端、非客户端、其他的EBGP邻居;
- RR从一个非客户端学习到的路由,可以传递给本地的其他客户端、EBGP邻居;不能传递给其他的非客户端;
联邦-是将一个AS,逻辑分成多个小AS对外依然是遵循大AS号传递的规则:
但小AS间为联邦内的EBGP邻居关系,可以向EBGP关系一样传递路由默认不对外修改属性
所有操作基于小AS号进行
AS内所有设备需要定义自己所在的大AS号
小AS之间的BGP需要告知对端的小AS号
一、BGP的属性—基础属性
1、PrefVal(优先级)
2、LocPrf 本地优先级 整个AS内部-IBGP邻居间
3、优先本地下一跳
4、AS-PATH – 记录条目经过的所有AS编号
5、起源属性 – 该条目的来源—通过什么方法进入到BGP协议的
6、MED -多出口鉴别属性
二、BGP选路规则
1、优选协议首选值(pref val) 最高的值
2、优选本地优先级(local_pref)最高的路由
3、依次优选手动聚合路由,自动聚合路由,network命令引入的路由,import-route命令引入的路由,从对等体学到的路由
4、优选AS_PATH最短的路由
5、依次优选origin类型为IGP,EGP,incomplete的路由
6、对于来自同一AS的路由,优选MED值最低的路由。
7、依次优选EBGP路由、IBGP路由、local cross路由、remote cross路由。
8、优选BGP下一跳IGP度量值metric最小的路由
9、优选cluster_list最短的路由
10、优选router ID最小的设备发布的路由(如果路由携带originator_ID属性,选路过程中将比较originator_ID的大小,不再比较router ID,并优选originator_ID最小的路由)
11、优选从具有最小IP address的对等体学来的路由。
三、MPLS:多协议标签交换
多协议:可以基于多种不同的3层协议来生成2.5层的标签信息
标签交换:数据包在进入到的MPLS的域内后,将在第2层和3层中间压入标签号;使得域内的路由器在转发该数据包时,基于2.5层的标签号仅需要查询本地的一张LFIB表(标签转发信息数据库)
标签被压入在2层与3层之间,称为2.5层
MPLS的次末跳 – 倒数第二跳 默认执行
边界LSR将本地的直连网段传递给MPLS域内邻居后,LDP分配标签号为3,告知倒数第二跳设备它的身份;导致倒数第二跳设备在查询LFIB表后,已知转发路径的前提下提前弹出标签,使得最后一跳路由器均只需要查询FIB表; 否则最后一跳路由器在查询LFIB表后,弹出标签还需要查询FIB;
使用mpls解决BGP的路由黑洞
MPLS协议并不会为通过BGP协议学习的路由条目分配标签号;
而是在访问这些BGP路由目标网段时,在流量中压入到达这些网段的BGP下一跳设备地址的标签号;
MPLS VPN
可以将路由进行分区mpls再数据包中压入两层标签,外层标签用于穿越中间的设备,打破bgp路由黑洞,内层标签用于对应的vrf空间