X 区的双出口选路与 PE 设备之间的 AB 平面选路

一、X 区双出口选路:

X 区有两台出口路由器:XCE1 和 XCE2,分别连接主干网 Z 区的 XPE1 和 XPE2,两台出口路由器下挂核心 Core,形成三角形拓扑,这 3 台设备之间用 IGP OSPF 互通,并由两台 CE 路由器下发默认路由, Core 会获取到两条出口等价路由。

终端上到核心以后,会通过 hash 或者策略确认通过哪台出口出去,如果一台 CE 挂掉,则 Core 上这条默认路由失效,终端流量到核心以后,会走另一台 CE 出口。这样通过路由形成了主备链路的切换。

如果 Core 上存在 VRF 实例,则实现原理相同。

二、X 区和 Z 区的 AB 双平面选路:

X 区两台出口路由器:X_Export1 和 X_Export2 做为 CE 端设备,分别与 Z 区 A、B 平面的两台 PE 设备实现连接,形成 口 字型拓扑,两台 PE 设备 之间分别连接,那么,如何让两台 CE 设备实现主路径走 A(Z_PE1),备路径走B(Z_PE2)呢?

我们在 PE 和 CE 之间分别建立 EBGP 邻居关系,PE 将 Z 区的 OA 路由传递过来,两台 CE 通过 EBGP 获取到 OA 路由后,为了让 Core 获取到外部 OA 路由,我们让 IGP 对 EBGP 进行了双向引入。这里有两个问题需要解决:

1、出口选路问题:

如何让一台 X 区的流量 优先走 A 平面出口,即优先走 PE1 呢?这里我们让 PE 在用 EBGP 传递 OA 路由时,用路由策略,增大 B 平面(PE2)的 med 值,如从10 改为14,这样在传递给 CE 时,CE 再引入到 OSPF,传递给 Core 时,Core 会收到一个走 CE1 cost 10、 CE2 cost 14 的两条路由,本来等价的两条路由,走 CE1 更优,CE1 再走 PE1,从而实现了 AB 平面选路!

如果,A 平面的 PE 或者其直连设备挂了的话,则 Core 不再收到 CE1 的路由,CE2 传来的路由会上浮到公共路由表内,转而走 CE2,即走 B 平面出口,实现了主备的快速切换!

在这里,Z 区是两个三角形的平面,为了让 B 平面完整地走完,不再 AB 交叉走,我们对两台 PE 设备之间的直连定义了 内部 cost 值如 4,Z 区绕行两个路由器会使两个内部 cost 值 等于14,大于直连的 cost 值 10,实现了走同平面的路径控制。

2. 由双点双向引入造成的问题:

出于 X/Z 通信的需要,我们需要让 X/Z 区业务路由互通:X 可以获取到 Z 区 10.3.101.254/24 的路由;让 Z 区获取到 X 区 10.1.0.3/32 的路由。这里,我们使用了双点双向引入:

  • 问题1:环路和次优路径问题:
    在 CE 上,当从 EBGP 引入到 IGP 前,EBGP 的路由优先级是 255,进入 OSPF 后,它变成了 ASE 外部路由,优先级为 150。因为 IGP 150 优于 EBGP 255,相同的路由,IGP 路由更优!本地的公共路由表会优选这条 ASE 路由,并将它在 OSPF 区域内泛洪,这时另一台 CE 和 Core 会同时收到,由于两台 CE 会同时引入外部路由,那么,两台 CE 都会认为,走 Z 区应该从对端走,从而形成路由环路。
    怎么解决这个问题呢?我们在 CE 和 PE 建立 EBGP 连接时,在 BGP 进程下,直接用** preference 120 255 255**,让 OSPF 在引入时,继承外部开销** default cost inherit**,直接让 EBGP 进入 OSPF 时,优先级高于OSPF ASE 路由,那么就避免了 CE 之间走环路和次优路径问题!
    问题2:虚假路由(重复引入)问题:
    除了 EBGP 在引入到 IGP时,配置更小的优先级之外,还有一种情况,就是重复引入,PE1/2 的路由是相同的,都在 CE 端被引入到 CE1/2 中,那么为了避免重复引入对端 CE 和 Core 用 IGP 传过来的路由,我们在 IGP 引入 EBGP 时,打上自己的 tag,同时做路由策略,让对端 CE 在做 EBGP 引入 IGP 路由时,不再重复引入带有对端 tag 的 EBGP 路由,从而避免环路。
    我们在两个 CE 上看:通往 Z 区 10.3.101.0/24 的路由就只有各自直连 PE 传过来的一条路由了,但到 Core 上看,Core 会有两条 CE 各自传过来的路由了,结合问题 1 的处理,Core 上的两条路由,会通过 CE1 走主路径 A 平面

    CE1/2:
    ospf 1 rou 10.1.0.1
    default cost inherit
    import bgp tag 10
    a 0
    n 10.1.0.0 0.0.255.255

    route-policy o2b deny node 10
    if-match tag 20
    route-policy o2b p node 20

    bgp 65001
    router-id 65001:1
    preference 120 255 255
    import ospf 1 route-policy o2b
    peer 10.20.1.2 as 65000

三、回包 AB 平面选路问题:

我们的 X 区的流量到了 ZPE,ZPE 回包时,发现它收到了 XPE1、XPE2 的两条等价路由,它会通过 hash 选择一条路径回包,这样就造成了来回路由不一致,即 AB 平面互跳问题,怎么解决这个问题呢?我们让 XPE1/2 在 IBGP 传递 X 区路由时,手动调大 XPE2 的 med 值为 12,让 ZPE 优选 XPE1 的默认 med 10 路由,让回包优先走 XPE1(A平面)

复制代码
XPE1/2:
route-policy med_internal permit node 10
apply cost internal
route-policy med12 permit node 10:
apply cost 12

四、踩坑总结:

  1. 在 XPE 向 ZPE 传递引入的路由时,需要配置 peer ZPE next-hop-local,否则路由到了 ZPE 上就会出现路由 imcomplete ?的错误信息;EBGP引入的路由,向IBGP传的时候,是imcomplete属性,需要在本端配peer ZPE next-hop-local,IBGP才会认为是优。同理,回包路由也需要配置,即 ZPE 向 XPE 传递时,也要对等地写上这条命令
  2. 在配置 route-policy o2b 的时候,不要只写拒绝对端 tag 的路由策略,还要加一条允许路由的策略,否则就无任何路由可以被引入到 EBGP 了
相关推荐
独行soc2 小时前
2026年渗透测试面试题总结-36(题目+回答)
网络·python·安全·web安全·网络安全·渗透测试·安全狮
L***一2 小时前
网络安全专业入门级认证体系分析与路径规划
网络·安全·web安全
深念Y3 小时前
腾达路由器无线中继模式:WISP与Client+AP什么意思
网络·wifi·智能路由器·路由器·ssid·腾达·无线中继
天远Date Lab3 小时前
天远企业司法认证API实战:Python构建企业级供应链合规审查防火墙
大数据·开发语言·网络·python
进击的雷神3 小时前
ID隐式传参、多页面字段分散、数据强制覆盖、无分页列表解析——巴西展会爬虫四大技术难关攻克纪实
服务器·网络·爬虫·python
虾..3 小时前
Linux 网络套接字编程
linux·运维·网络
皮皮哎哟4 小时前
linux网络编程:UDP
网络·udp·socket·sendto·udp包头
失途老马4 小时前
EdgeRouter PPPoE IPv6 完整配置指南(从 0 到通)
网络·飞牛os
2401_858936884 小时前
深入浅出 TCP 通信:从基础到并发服务器实现
服务器·网络·tcp/ip
野犬寒鸦5 小时前
SAP后端实习开发面试:操作系统与网络核心考点及Linux与Redis
java·服务器·网络·后端·面试