在这张拓扑图上,R1-R2-R3 底层使用OSPF 打通,然后建立 MPLSLDP,R1-R3 又互为IBGP 邻居。
同时,R1 有个 loopback10 地址:10.1.1.1/32;R3 有个 loopback10 地址:10.3.3.3/32。在 R1 和 R3 上分别使用 BGP 进行 network
由于R2 没有建立 BGP,在R1 去访问R3 时,在 R2 上会现路由黑洞,丢弃数据包。要求如下:10.1.1.1/32 去访问 10.3.3.3/32 时,走 MPLS 隧道,而不使用 IGP 进行宣告,同时解决了 BGP 的路由黑洞问题。
可以在 R1 和 R3 上分别使用 route recursive-lookup tunnel该命令,可将 10.1.1.1-->10.3.3.3 的流量引到 MPLS 中,从而使流量走隧道路径。
实现原理:由于 R1 和 R3 互为 IBGP邻居,所以在 R1 的 BGP 路由表中,会有 10.3.3.3的路由,下一跳指向 R3,在 R1 去访问 10.3.3.3 时,R1 查看 FIB表,隧道 ID 为 0,从而走 IP 路径,但由于到达 R2 时,R2 没有这条路由,将数据包丢弃,由此可见走IP 路径失败。但是 R1 与 R3 之间是有一条隧道的,在他们的 BGP 路由表的下一跳又互相指向对方,所以可借助 R1 和 R3 之间的隧道,将该流量引入到 MPLS 隧道中,从而实现 10.1.1.1-->10.3.3.3走标签路径。