BGP下一跳问题
实验设备 2台华三路由设备(R1、R3)、2台思科设备(R2、R4)
前提
- 完成相应路由器的基本配置在 OSPF 区域和 RIP 区域的各路由器上,分别创建一个 loopback接口,作为各路由器的 RID 使用
- R1与 R2 建立 IBGP R3 与 R4建立 IBGP
- R2与 R3 建立 EBGP
实现 R1回环口能否访问 R4
BGP配置
R1(华三设备)
bgp 100
router-id 1.1.1.1
peer 2.2.2.2 as-number 100
peer 2.2.2.2 connect-interface LoopBack1
address-family ipv4 unicast
network 1.1.1.0 255.255.255.0
network 2.2.2.0 255.255.255.0
peer 2.2.2.2 enable
R2(思科设备)
router bgp 100
bgp log-neighbor-changes
neighbor 1.1.1.1 remote-as 100
neighbor 1.1.1.1 update-source Loopback1
neighbor 23.23.23.3 remote-as 200
R3(华三设备)
bgp 200
router-id 3.3.3.3
peer 4.4.4.4 as-number 200
peer 4.4.4.4 connect-interface LoopBack1
peer 23.23.23.2 as-number 10
R4(思科设备)
router bgp 200
bgp log-neighbor-changes
network 4.4.4.0 mask 255.255.255.0
neighbor 3.3.3.3 remote-as 200
neighbor 3.3.3.3 update-source Loopback1
测试 1
发现 无法访问R4的环回口地址
分析 为什么R1回环口不能访问R4 回环口
1、查看 R1 路由表发现去往4.4.4.0 网段路由下一跳为23.23.23.3 (R3),不是R2,无法找到去往目的路由条目的路口,出现丢包情况
2、再查看 R2 的路由表 分析去往4.4.4.0 网段路由下一跳为23.23.23.3(R3)
分析 R2上BGP 4.4.4.0 路由条目来自对等体EBGP R3 传递过来
而 R1学习到4.4.4.0 路由条目来自对等体IBGP R2传递过来,但下一跳传递过来未改变
再看R3、R4路由表
针对于R4学习到1.1.1.0 路由条目的下一跳来自R2
且R4未出现去往该下一跳路由条目的路由
发现问题 :IBGP收到路由时,下一跳不可达
根据BGP对等体路由传递规则
IBGP
从IBGP对等体学习到的IBGP路由时,下一跳保持不变
传递的路由AD值:200 pre:255
EBGP
从到EBGP对等体的EBGP路由时,下一跳会变成EBGP对等体的地址
传递的路由AD值:20 pre:255
分析:
IBGP: R4 去往 R1路径 R4 —> R3 下一跳为 4.4.4.4
EBGP: R3 -->R2 传递过程 R2 收到4.4.4.0的下一跳为 23.23.23.23
IBGP: R2 --> R1 下一跳的 为23.23.23.23 下一跳保持不变
根据R4转发表可知转发路径 R4—> R2 --> R1
R1去往R4路径反之 R4学习1.1.1.0网段路由下一跳仍然是23.23.23.2
同理 R1转发路径 R1—> R3 --> R4
解决方法:
可以在收到EBGP路由,传给IBGP邻居时修改下一跳为自己
使得 R1 — > R2 — > R3 — > R4 同理 R4 — > R3— > R2 — > R1
且修改下一跳条件
①本台设备是边界
②传递给IBGP邻居时
R2
#思科配置 neighbor 1.1.1.1 next-hop-self
R3
华三/华为设备
bgp 200
address-family ipv4 unicast
peer 4.4.4.4 enable
peer 4.4.4.4 next-hop-local
分析 查看R1转发表
再 查看R4转发表
同理 查看R1、R4路由表
发现 R1 去往R4 下跳地址可达
再次测试
总结
1、将通过BGP学习到的最优且有效的路由加入进路由表
2、 从EBGP对等体获取的路由,会发布给所有BGP对等体。
3、IBGP水平分割(防护机制): 从IBGP对等体获取的BGP路由,不会再发送给其他IBGP对等体。
4、BGP同步原则:当一台路由器从自己的 IBGP对等体学习到一条BGP路由时(这类路由被称为IBGP路由), 它将不能使用该条路由或把这条路由通告给自己的EBGP对等体,除非它又从IGP协议(例如OSPF、静态路由等)学习到这条路由。----> 实现BGP和IGP的一个同步 ,否则会造成BGP 路由黑洞。
路由黑洞指当数据报文被转发到某个路由器时,该路由器没有关于目标网络的路由而造成丢包的现象。
5、BGP路由表查表原则
- 当路由器学习到BGP路由后,需对路由的下一跳进行检查
下一跳在路由表中可达,正常加表
下一跳在路由表中不可达,丢弃该路由