ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

华为路由器BGP/OSPF互引环路的成因与防环方案

华为路由器BGP/OSPF互引环路的成因与防环方案 简介华为路由器三层路由防环专题 03 围绕 BGP 与 OSPF 协议互引路由场景展开面向网络工程师与运维人员系统梳理三层路由环路问题及其防护方法。下载包为单份 PDF 文档压缩后大小约 211KB内容完整涵盖典型组网、环路产生原理、导致环路的错误配置示例、防止环路的建议配置示例以及适用产品和版本说明重点分析了 BGP/OSPF 路由互相引入时因 MED 值、路由优先级差异而触发稳定环路的过程。文中以 DeviceA 发布 10.10.10.10/32 为例分阶段还原 MED 值引发稳定环路的完整过程并附带 display bgp routing-table 输出便于读者对照设备状态理解路由择优与防环配置同时可学习通过 route-policy 限制导入导出、通过 AS_PATH 和 Loopback 增强防环能力以及通过 MED 值影响路由选择等具体手段。已有 2128 人学习下载适合需要深入掌握协议互引防环机制、提升三层网络配置与故障排查能力的读者。1. BGP/OSPF 互引为何成为三层路由环路的重灾区一次凌晨割接后核心设备的 BGP 路由表开始震荡10.10.10.10/32 这条路由的 MED 值在 50 和 1 之间反复横跳下一跳在 1.1.1.1 和 5.5.5.5 之间来回切换业务流量像坐过山车一样抖动。排障三个小时后才发现根因不在设备故障而在于华为路由器上 BGP 与 OSPF 协议互引时路由从 OSPPF 域绕了一圈回来MED 值被重写成了 1BGP 优选逻辑把流量引回了一条稳定环路。这份华为路由器三层路由防环专题讲的就是 BGP/OSPF 互引场景下环路怎么产生、错误配置长什么样以及用 local-preference 和地址前缀列表两种方式怎么治。适合做企业网割接和运维排障的工程师也适合正在学 HCIP 里 BGP/OSPF 互操作的人照着实机复现。2. 环路产生的四个阶段MED 值从 50 到 1 的翻转是如何发生的想要彻底理解这个环路不能只记结论得顺着路由的传播路径一步步推演。下面把典型组网拆开再逐个阶段分析 MED 值怎么被重写、BGP 优选为什么会上当。2.1 互引组网谁是边界设备谁是路由的二传手先看组网结构。DeviceA、DeviceB、DeviceE、DeviceF 处于 AS 65500部署 BGP 协议其中 DeviceA、DeviceB、DeviceE 构成 IBGP 对等体关系。DeviceB、DeviceC、DeviceD、DeviceE 同时运行 OSPF 100 进程来计算路由。DeviceB 是第一个协议互引点负责把 BGP 路由引入 OSPFDeviceE 是第二个协议互引点负责把 OSPF 路由引入 BGP。这里有个容易被忽略的细节DeviceB 和 DeviceE 之间跑 IBGPLoopback 地址和互联地址需要 IGP 可达所以组网里额外运行了一个 OSPF 10 进程专门宣告 Loopback 和 10.1.5.0/24 网段。很多人在 eNSP 上复现时发现 IBGP 邻居起不来就是因为漏掉了这个承载进程。OSPF 100 是业务承载进程负责传递外部路由OSPF 10 是底层可达性进程负责让 BGP 的下一跳能解析到出接口两个进程各司其职。DeviceB 在 OSPF 100 里执行了 import-route bgpDeviceE 在 BGP 里执行了 import-route ospf 100这两个引入点构成了一条完整的双向互引闭环。如果其中任何一个方向没有路由策略控制环路就有机会形成。2.2 阶段一与阶段二MED 从 50 被重写成 1以 DeviceA 发布的静态路由 10.10.10.10/32 为例整个环路形成分成四个阶段。阶段一里DeviceA 在 BGP 视图下配置 import-route static把静态路由引入 BGP并通过出口路由策略 route-policy cost 把这条 BGP 路由的 MED 设置为 50。DeviceA 将路由发布给 DeviceB 后DeviceB 在 OSPF 100 进程里执行 import-route bgp permit-ibgp把这条 IBGP 路由引入 OSPF以 O_ASE 外部路由的形式依次传递给 DeviceC、DeviceD再到 DeviceE。外部路由在 OSPF 域内传递时cost 值逐跳累加最终到达 DeviceE 时 cost 为 1。阶段二是环路形成的关键转折。DeviceE 同时收到了两条关于 10.10.10.10/32 的路由一条是 DeviceB 通过 BGP 发来的MED 为 50另一条是 OSPF 100 从 DeviceD 学到的外部路由cost 为 1。DeviceE 在 BGP 视图下配置了 import-route ospf 100把 OSPF 路由引入 BGP而引入时 BGP 路由的 MED 值默认取的是 OSPF 路由的 cost也就是 1。DeviceE 自身路由表的优选结果是 OSPF 外部路由原因是路由优先级不同OSPF ASE 路由的优先级是 150BGP 路由的优先级是 255数值越小越优。因此 DeviceE 把 OSPF 引入的这条路由作为 BGP 最优路径通过 IBGP 发给 DeviceB。MED 值在这一步完成了从 50 到 1 的翻转而 DeviceA 原本设置的 MED 50 在 OSPF 域内根本没有被保留。设备路由来源协议优先级Cost/MED优选结果DeviceA静态引入 BGP60静态MED 50发布给 DeviceBDeviceBBGP来自 DeviceA255MED 50引入 OSPF 100DeviceCOSPF ASE150cost 1转发给 DeviceDDeviceDOSPF ASE150cost 1转发给 DeviceEDeviceEOSPF vs BGP150 vs 255cost 1 vs MED 50优选 OSPF引入 BGP 后 MED12.3 阶段三与阶段四MED 1 打败 MED 50稳态环路形成阶段三里DeviceB 的 BGP 路由表里出现了同一条 10.10.10.10/32 的两条路径一条来自 DeviceAMED 为 50一条来自 DeviceEMED 为 1。BGP 默认的优选顺序里local-preference 优先比较两条路径默认都是 100打平接着比较 AS-path两条路径的 AS-path 都是空再次打平再往下比较 MED1 小于 50于是 DeviceB 优选来自 DeviceE 的路径。这个选择看起来符合 BGP 规则但代价是灾难性的。DeviceB 把最优路径切换为来自 DeviceE 的 MED 1 路由后继续在 OSPF 100 里执行 import-route bgp把这条路由再次引入 OSPF 域传给 DeviceC、DeviceD、DeviceE。DeviceE 把 OSPF 路由引入 BGP 后再次发回 DeviceB环路进入稳态。每台设备的 BGP 表或路由表里都有一条看起来合法的路由但数据包如果发往 10.10.10.10会在 DeviceB 和 DeviceE 之间的逻辑路径上来回打转。从回显看DeviceB 上两条路径都标记为 valid、internal。注意来自 DeviceE 那条路径的 MED 字段显示为 1来自 DeviceA 的显示为 50且明确标注了 not preferred for MED。BGP 自带的防环机制在同一个 AS 内基本失效因为 IBGP 路由不会修改 AS-path两条路径的 AS-path 都是 NilBGP 无法靠 AS-path 识别出这是绕回来的路由。3. 错误配置复现双向 import-route 无过滤的完整配置拆解这一章把能复现环路的三台关键设备配置完整列出来并在每段配置后面说明每条命令在环路形成中扮演的角色。建议在 eNSP 里按这个地址规划搭一套亲眼看着环路形成比背原理深刻得多。3.1 复现环境与数据准备在搭环境之前先把设备参数整理清楚。Router ID、AS 号、OSPF 进程号、接口地址这些数据直接决定后续配置能不能对上。设备Router IDBGP AS / OSPF 进程关键接口接口地址DeviceA1.1.1.1BGP 65500GE0/1/0、Loopback010.1.1.1/24、1.1.1.1/32DeviceB2.2.2.2BGP 65500 OSPF 100GE0/1/0、GE0/2/0、GE0/3/0、Loopback010.1.1.2/24、10.1.2.1/24、10.1.5.2/24、2.2.2.2/32DeviceC3.3.3.3OSPF 100GE0/1/0、GE0/2/010.1.2.2/24、10.1.3.1/24DeviceD4.4.4.4OSPF 100GE0/1/0、GE0/2/010.1.3.2/24、10.1.4.1/24DeviceE5.5.5.5OSPF 100 BGP 65500GE0/1/0、GE0/2/0、Loopback010.1.4.2/24、10.1.5.1/24、5.5.5.5/32接口连线关系对应为DeviceB GE0/1/0 连 DeviceA GE0/1/0DeviceB GE0/2/0 连 DeviceC GE0/1/0DeviceC GE0/2/0 连 DeviceD GE0/1/0DeviceD GE0/2/0 连 DeviceE GE0/1/0DeviceE GE0/2/0 连 DeviceB GE0/3/0。OSPF 100 运行在 DeviceB GE0/2/0、DeviceC 两个接口、DeviceD 两个接口、DeviceE GE0/1/0 上而 OSPF 10 运行在 DeviceB 和 DeviceE 的 Loopback 及 10.1.5.0/24 网段上。3.2 DeviceA 与 DeviceBBGP 引入 OSPF 这一侧的配置DeviceA 的角色是外部路由的源头。它配置了一条指向 NULL0 的静态路由通过 import-route static 引入 BGP再用 route-policy 给这条路由打上 MED 50。用静态路由指向 NULL0 是一种常见的模拟手段用来代表从外部学到的不可达路由实际组网里可能是从下游 AS 学来的真实路由。# DeviceA 配置 # interface GigabitEthernet0/1/0 undo shutdown ip address 10.1.1.1 255.255.255.0 # interface LoopBack0 ip address 1.1.1.1 255.255.255.255 # route-policy cost permit node 10 apply cost 50 # bgp 65500 router-id 1.1.1.1 peer 2.2.2.2 as-number 65500 peer 2.2.2.2 connect-interface LoopBack0 ipv4-family unicast undo synchronization import-route static peer 2.2.2.2 enable peer 2.2.2.2 route-policy cost export # ospf 10 area 0.0.0.0 network 1.1.1.1 0.0.0.0 network 10.1.1.0 0.0.0.255 # ip route-static 10.10.10.10 255.255.255.255 NULL0 # returnroute-policy cost permit node 10 里的 apply cost 50是把路由的 MED 值强制修改为 50。cost 参数在 BGP 出口策略里对应的就是 MED 属性。把 route-policy 绑定到 peer 2.2.2.2 的 export 方向意思是只对发往 DeviceB 的 BGP 路由生效。OSPF 10 进程在这里的作用是承载 DeviceA 的 Loopback 地址和互联地址保证 DeviceA 与 DeviceB 的 IBGP 邻居能正常建立。DeviceB 的配置是整个环路的核心枢纽。它同时运行 BGP 和 OSPF 100并把 BGP 路由引入 OSPF。注意 import-route bgp 后面必须带 permit-ibgp 参数否则默认只引入 EBGP 路由IBGP 路由会被丢弃环路反而形不成。# DeviceB 配置 # interface GigabitEthernet0/1/0 undo shutdown ip address 10.1.1.2 255.255.255.0 # interface GigabitEthernet0/2/0 undo shutdown ip address 10.1.2.1 255.255.255.0 ospf enable 100 area 0.0.0.0 # interface GigabitEthernet0/3/0 undo shutdown ip address 10.1.5.2 255.255.255.0 # interface LoopBack0 ip address 2.2.2.2 255.255.255.255 # ospf 100 router-id 2.2.2.2 import-route bgp permit-ibgp area 0.0.0.0 # bgp 65500 router-id 2.2.2.2 peer 1.1.1.1 as-number 65500 peer 1.1.1.1 connect-interface LoopBack0 peer 5.5.5.5 as-number 65500 peer 5.5.5.5 connect-interface LoopBack0 ipv4-family unicast undo synchronization peer 1.1.1.1 enable peer 5.5.5.5 enable peer 5.5.5.5 reflect-client # ospf 10 area 0.0.0.0 network 2.2.2.2 0.0.0.0 network 10.1.1.0 0.0.0.255 network 10.1.5.0 0.0.0.255 # returnospf 100 里的 import-route bgp permit-ibgp把 DeviceB 从 IBGP 学到的路由全部引入 OSPF 100没有任何前缀过滤这是环路的第一条通路。peer 5.5.5.5 reflect-client 把 DeviceB 配置为路由反射器DeviceE 是它的客户端这样 DeviceE 不需要与 DeviceA 建立 IBGP 邻居也能收到来自 DeviceA 的路由减少了 IBGP 全互联需求。OSPF 10 进程宣告了 10.1.5.0/24 网段保证 DeviceB 和 DeviceE 之间 IBGP 下一跳可达。3.3 DeviceEOSPF 引入 BGP 的配置与环路验证手段DeviceE 是环路的第二个引入点也是 MED 值被重写的现场。它的 BGP 配置里只有一行 import-route ospf 100没有任何 route-policy 或前缀过滤这等于把 OSPF 域内所有路由都不加区分地灌入 BGP。# DeviceE 配置 # interface GigabitEthernet0/1/0 undo shutdown ip address 10.1.4.2 255.255.255.0 ospf enable 100 area 0.0.0.0 # interface GigabitEthernet0/2/0 undo shutdown ip address 10.1.5.1 255.255.255.0 # interface LoopBack0 ip address 5.5.5.5 255.255.255.255 # ospf 100 router-id 5.5.5.5 area 0.0.0.0 # bgp 65500 router-id 5.5.5.5 peer 2.2.2.2 as-number 65500 peer 2.2.2.2 connect-interface LoopBack0 ipv4-family unicast undo synchronization import-route ospf 100 peer 2.2.2.2 enable # ospf 10 area 0.0.0.0 network 5.5.5.5 0.0.0.0 network 10.1.5.0 0.0.0.255 # returnimport-route ospf 100 没有关联任何 route-policy引入时 MED 默认继承 OSPF 的 cost 值。DeviceE 从 OSPF 学到 10.10.10.10/32 时 cost 是 1所以引入 BGP 后 MED 就是 1。这条命令是环路形成的第二个必要条件与 DeviceB 的 import-route bgp permit-ibgp 一起构成了完整的回灌闭环。配置完成后在 DeviceB 上执行 display bgp routing-table 10.10.10.10能看到两条路径的完整对比。来自 5.5.5.5 的路径 MED 是 1状态为 best、select来自 1.1.1.1 的路径 MED 是 50状态为 not preferred for MED。这两条路径的 AS-path 都是 Nillocalpref 都是 100BGP 完全靠 MED 分出了胜负。验证环路是否真的形成除了看 BGP 表还可以在 DeviceB 上执行 display ip routing-table 10.10.10.10会看到这条路由的协议来源是 IBGP优先级 255下一跳指向 10.1.1.1出接口是 GE0/1/0。如果在 DeviceB 上 tracert 10.10.10.10数据包会在 DeviceB 和 DeviceE 之间来回往返永远到达不了真正的目的地。4. 防环方案一用 local-preference 110 锁定 BGP 优选路径理解了环路成因防环思路就很清晰了只要让 DeviceB 始终优选来自 DeviceA 的原始路由而不是来自 DeviceE 的回灌路由环路就在最后一环被切断。local-preference 是这个场景里改动最小、见效最快的方案。4.1 为什么首选 local-preference 而不是修改 MEDMED 值是导致这条环路翻转的直接原因但直接在 DeviceA 上把 MED 改大并不能根治问题。原因是 MED 经过 OSPF 域后再引回 BGP会被 OSPF 的 cost 值覆盖DeviceA 出口策略设置的 MED 到不了 DeviceB 与 DeviceE 之间的比较环节。换句话说MED 在这个互引链路里是不可靠的传递属性。local-preference 则不同。它是 BGP 路由的本地优先级属性只在 IBGP 邻居之间传递优先级高于 MED。BGP 优选顺序里先比较 local-preference再比较 AS-path然后才轮到 MED。只要 DeviceB 对来自 DeviceA 的 BGP 路由设置 local-preference 110而来自 DeviceE 的路由保持默认的 100即使 MED 1 远小于 MED 50DeviceB 也一定会选 local-preference 更高的那条路径。这个方案的另一个优点是对下游透明。local-preference 是本地属性不会被通告给 EBGP 邻居OSPF 域内的路由计算完全不感知这个改动不需要动 DeviceC、DeviceD 的任何配置。4.2 DeviceB 上的入口路由策略配置核心配置只在 DeviceB 上一台设备完成分为两步定义 route-policy然后在 BGP 的 IBGP 邻居入方向调用。# DeviceB 上新增的防环配置 # route-policy localPre permit node 10 apply local-preference 110 # bgp 65500 ipv4-family unicast peer 1.1.1.1 route-policy localPre import # returnroute-policy localPre permit node 10 里只做了一件事把匹配到的路由的 local-preference 设置为 110。apply local-preference 的取值范围是 0 到 4294967295华为设备默认值是 100数值越大越优。peer 1.1.1.1 route-policy localPre import 里的方向是 import作用对象是来自 DeviceA 的 BGP 路由这一点很容易配错。如果误写成 export策略会作用在 DeviceB 发往 DeviceA 的路由上环路照旧。4.3 配置生效后的回显验证配置完成后不需要重启 BGP 或 OSPF 进程策略是动态生效的。在 DeviceB 上再次执行 display bgp routing-table 10.10.10.10两条路径的胜负关系已经完全反转。来自 1.1.1.1 的路径现在显示 localpref 110状态为 best、selectAdvertised to such 1 peers 指向 5.5.5.5。来自 5.5.5.5 的路径 localpref 仍然是默认的 100状态变为 not preferred for Local_Pref不再被通告。DeviceE 那边也能观察到变化它从 DeviceB 收到的路径 localpref 是 110本地从 OSPF 引入的路径 localpref 是 100所以 DeviceE 的 BGP 最优路由也切回了从 DeviceB 学到的路径。此时再看 DeviceC 和 DeviceD 的路由表10.10.10.10/32 仍然以 O_ASE 形式存在cost 为 1来源方向保持 DeviceB 到 DeviceC 到 DeviceD 再到 DeviceE 单向传递不再有回灌路径。路由发布方向从之前的乱转变成了一条从 DeviceA 出发、贯穿 OSPF 域、最终停在 DeviceE 的单向链路。4.4 这个方案的适用边界和失效场景local-preference 方案解决的是DeviceB 选错路的问题它不改变路由的传播范围。如果 DeviceA 侧的路由因为故障被撤销DeviceB 上来自 DeviceA 的路径消失BGP 会自然切换到来自 DeviceE 的路径此时不会形成环路因为 DeviceA 的静态路由已经在源头上撤销OSPF 域内不会再收到新的引入。这个方案在多出口场景下需要额外评估。如果 DeviceE 同时连接了另一个 AS并且那个 AS 也发布了同前缀路由AS-path 长度和 local-preference 会同时参与比较。只要 local-preference 110 保持高位DeviceB 仍然会选 DeviceA 方向但 DeviceE 自身的路由选择可能受外部 AS 影响需要单独分析。另外要注意local-preference 只在 IBGP 域内有效如果 DeviceB 和 DeviceE 之间跨越了多个 AS这个属性不会原样传给 EBGP 邻居防环效果会打折扣。5. 避坑排查BGP/OSPF 互引防环中常见的五个隐蔽错误互引场景的排障往往不是问题本身有多难而是出错的位置太隐蔽。下面按现象、原因、解决的顺序整理五条实际排查中容易翻车的记录。5.1 两条 BGP 路径的 AS-path 都是空无法靠 AS-path 防环现象在 DeviceB 上 display bgp routing-table 10.10.10.10看到两条路径的 AS-path 都显示 Nil误以为 BGP 自带防环机制会拦截回灌路由但环路照样形成。原因IBGP 路由在 AS 内部传递时不会追加 AS-path。DeviceA 引入的是静态路由origin 为 incomplete发布到 DeviceB 时 AS-path 就是空的。DeviceE 把 OSPF 路由引入 BGP 再发回 DeviceB同样不经过任何 EBGP 邻居AS-path 也是空的。BGP 的 AS-path 防环机制在这种同 AS 互引场景下完全失效。解决不依赖 AS-path 判断环路改用 local-preference 或出口前缀过滤。判断环路更可靠的依据是 Originator 属性。配置了路由反射器后回灌路由会携带 Originator 1.1.1.1看到 Originator 与 AS 内某台已知设备的 Router ID 重合时就要警惕环路。5.2 import-route bgp 配置了但 OSPF 域里看不到外部路由现象DeviceB 上执行了 import-route bgp但 DeviceC 的 OSPF 路由表里始终没有 10.10.10.10/32OSPF 域内设备访问不了这段地址。原因OSPF 的 import-route bgp 默认只引入 EBGP 路由。DeviceB 从 DeviceA 学到的是 IBGP 路由必须显式增加 permit-ibgp 参数才会被引入。这个参数不带OSPF 进程会静默丢弃 IBGP 路由不报任何错误。解决在 OSPF 100 进程视图下修改为 import-route bgp permit-ibgp。顺带检查一下进程号是否填对如果 DeviceB 上跑了 OSPF 100 和 OSPF 10 两个进程引入命令错配到 OSPF 10 上路由会进错域排查时容易误判。5.3 local-preference 策略配了但 BGP 表里 localpref 还是 100现象在 DeviceB 上按方案一配置了 route-policy localPre也调用了 peer 1.1.1.1 route-policy localPre import但 display bgp routing-table 里所有路径的 localpref 仍然显示 100。原因最常见的是策略绑定方向写反了。route-policy 被绑定到 export 方向时作用的是 DeviceB 发给邻居的路由不会影响从 DeviceA 收到的路由。另一个常见原因是 route-policy 节点逻辑错误node 10 之前定义了 deny 规则把所有路由都拒掉了策略匹配不到任何路由。解决先检查 peer 方向import 方向是处理入向路由的export 方向是处理出向路由的。再执行 display route-policy localPre 查看策略配置内容确认 node 10 的匹配条件是否会把目标路由放行。排障时可以临时把 local-preference 改为 200 做对比测试如果生效说明策略本身没问题问题出在参数理解上。5.4 前缀列表 deny 之后OSPF 引入 BGP 的路由全部消失现象在 DeviceE 上配置 ip-prefix no_need_send 匹配 10.10.10.10/32并配置 route-policy 进行 deny结果 BGP 表里 OSPF 引入的路由一条都不剩正常的业务路由也丢了。原因route-policy 的匹配规则是顺序执行的如果只定义了 deny node 10没有后续节点所有未被 node 10 匹配的路由会在策略末尾被默认拒绝。OSPF 域内除了 10.10.10.10/32 之外的其他路由也被一并过滤掉了。解决在 deny node 10 之后增加一个空的 permit node 20放行所有其他路由。这是华为路由策略配置里最容易踩的坑deny 节点和 permit 节点必须成对出现除非你的本意就是全部拒绝。5.5 MED 值像黑匣子一样被改写源头策略看不到现象在 DeviceA 上明明设置了 MED 50排障时在 DeviceE 上看到引入 BGP 的路由 MED 却是 1怀疑 DeviceA 的配置没生效。原因MED 在 BGP 引入 OSPF 路由时被重新计算取的是 OSPF 路由的 cost 值而不是原 BGP 路由的 MED。如果 OSPF 域内 cost 是 1引入后 MED 就是 1。原 MED 50 只在 DeviceB 和 DeviceE 之间的 IBGP 直连路径上保留绕了 OSPF 一圈后已经被覆盖。解决查看 DeviceE 的 IP 路由表如果 10.10.10.10/32 的协议类型是 O_ASE、pref 为 150、cost 为 1那 MED 1 的来源就清楚了。如果确实需要保留原始 MED必须在 import-route 时用 route-policy 重新设置 MED 值不能指望 BGP 自动传递。6. 防环方案二在 DeviceE 的引入点用前缀列表掐断回灌路由local-preference 方案是让 DeviceB 选好路前缀列表方案则是直接从源头不让坏路上桌。思路是环路之所以形成是因为 DeviceE 把从 OSPF 学到的、源点其实是 DeviceA 的路由又灌回了 BGP。那就在 DeviceE 的 BGP 引入 OSPF 处用前缀列表把这条路由过滤掉。# DeviceE 上配置前缀过滤 # ip ip-prefix no_need_send index 10 permit 10.10.10.10 32 # route-policy no_need_send deny node 10 if-match ip-prefix no_need_send # route-policy no_need_send permit node 20 # bgp 65500 ipv4-family unicast import-route ospf 100 route-policy no_need_send # return这段配置中ip-prefix 精确匹配 10.10.10.10/32route-policy 的 node 10 执行 denynode 20 放行其他所有路由最后把策略绑定到 import-route ospf 100 上。DeviceE 在引入 OSPF 路由时发现这条前缀被拒绝就不会把它写进 BGP 表回灌路径在源头被切断。验证时在 DeviceE 上执行 display bgp routing-table 10.10.10.10只会看到从 DeviceB 学到的路径不再有 From 0.0.0.0 的 Imported route 条目。两种方案各有适用的场景实际选型时可以按表对比。对比项local-preference 方案前缀列表方案控制点DeviceB 入方向DeviceE 引入点治理思路改变优选结果让设备选择正确路径阻止环路路由产生从源头过滤影响范围仅影响 IBGP 域内选路影响 DeviceE 引入 BGP 的整段路由配置复杂度低一台设备两条命令低一台设备三段配置风险点源路由撤销时发生路径切换前缀列表写错会误伤其他路由适用场景多出口、需要保留路由的场景明确知道哪些前缀不该回灌的场景做互引防环配置这些年我养成了一个习惯每次割接前先把路由流向图画出来标清楚这条路从哪台设备进、从哪台设备出、经过哪几个引入点然后强制检查每个 import-route 命令是否都挂了 route-policy最后再看 MED 和 local-preference 的比较方向。这套动作帮我拦下过好几次割接事故也希望帮到你。本文还有配套的精品资源点击获取
返回列表