BGP:边界网关路由协议,无类别路径矢量的EGP协议
三大特性:可控性—BGP共享其他协议产生的路由,正常不关注选路
可靠性—tcp三次握手 增量更新 单播非直连建邻 EGP承载与IGP之上
以一个AS为一跳
BGP特点:
使用单播更新来发送所有信息;基于TCP 179端口工作
通过各种选路规则仅仅产生一条最佳路径
多个参数控制协议
可控性
增量更新
支持认证和汇总
基于TCP传输的四种数据包:
Open 建邻
Keeplive 保活
Update 更新
Notification 报错
BGP的路由黑洞:
一个AS中chuxian 有不运行BGP的路由;导致BGP可以邻居间正常传递路由,实现控制层面可达,但数据层面在未运行BGP协议的设备上不可达;
解决方法:物理链路全连--所有BGP设备间直连,不能非直连建邻;
邻居关系全连--所有设备运行BGP;
将BGP路由条目重发布到IGP;(LAB
最佳方案---MPLS-多协议标签交换;
TTL值:
默认IBGP邻居间数据包TTL=255,EBGP邻居间TTL=1;
故一旦使用环回地址建立EBGP邻居关系,那么必须修改TTL值;
BGP的汇总
先在本地配置一条到达汇总地址的空接口防环路由null0,
然后再在BGP协议中宣告这种汇总路由
为精确的选路,AS间常常在发送了聚合路由条目后,还需要酌情发送部分的明细路由,来保障选路;
BGP的标准聚合
逐条宣告明细路由,然后再在更新源上进行聚合配置
默认所有的明细和聚合条目同时发送
仅发送汇总路由,所有的明细路由被S-抑制传输;
标准的聚合配置将自动产生空接口防环路由;
为了精确的选路,AS间常常在发送了聚合路由条目后,还需要酌情发送部分的明细路由,来保障选路;
抑制列表 必须在进行标准聚合配置才能使用
Route-map
分发列表
前缀列表直接作为分发列表
反射器
存在客户端、非客户端、RR(反射器)三种角色;构成一个簇(组)
客户端、非客户端在一个组内数量不限制客户端必须至少一台,所有的客户端、非客户端与RR间必须为IBGP邻居关系;
规则:
RR从一台EBGP邻居处学习到的路由,可以传递给本地客户端、非客户端、EBGP邻居
RR从客户端学习到的路由,可以传递给本地的其他客户端、非客户端、EBGP邻居
RR从非客户端学习到的路由,可以传递给本地的其他的客户端/EBGP邻居,当不能传递
切记:反射器仅反射优的路径,因为只有优的路径存在传递性;
若在真机上,一台设备成为RR或者客户端,那么在 这个设备配置修改下一跳为本地后无效;模拟器上均生效;
联邦
在一个真实的AS中,逻辑的划分出多个小AS;
小AS之间为联邦内的EBGP邻居关系,这种关系可以向EBGP关系一样传递路由,但不能修改属性;学习的路由管理距离200
所有配置均基于小AS号进行---启动、建邻、策略
实验:
地址划分:
配置底层IP
R2到R7起OSPF
联邦内所有BGP(R2/R7)设备声明自己所在的大AS号
R2/R5/R4/R7间互指peer
四题:R3为R4的RR,R7为R6的RR
4为3的客户端////2为3的非客户端
7为6的客户端////5为6的非客户端
R6告诉R7我是你的反射器
R3告诉R4我是你的反射器
注:因为R2可以把路由给R3,R3不能给R4。所以需要反射器给R4 (运行的IBGP)
R2可以把路由给R5,R5不能给R7。所以需要反射器给R7 (运行的IBGP)
路由宣告
在本地配置一条到达汇总地址的空接口防环路由,然后再在BGP协议中宣告这种汇总路由
R1路由表:
宣告
查看R1
R2优
R3不优(R5同) 下一跳
注:若在真机上,一台设备成为RR或者客户端,那么在 这个设备配置修改下一跳为本地后无效;模拟器上均生效。
“next-hop-self“ 可以在真机上使用route-map来替代。
修改下一跳
在R7出现了环路
查看路径
使用完关闭 no neighbor 172.16.4.1 soft-reconfiguration inbound
宣告R8
修改下一跳
至此,全网认识R1 R8的环回
宣告
R8同样宣告 出现环路
利用route-map干涉选路
R2
R1
R2
R3
R4
R5
R7
R8