路由重分发注意事项:这些坑你踩过吗?

路由重分发不是简单一配就完事

搞网络的兄弟都知道,当多个路由协议共存时,比如OSPF和EIGRP,或者静态路由要引入动态协议,就得靠路由重分发(Redistribution)打通“任督二脉”。但很多人以为只要敲条命令把路由导进去就完活了,结果第二天用户喊上不了网,排查半天才发现是自己埋的雷。

别忘了设置种子度量值(Seed Metric)

每个路由协议对“这条路有多远”有自己的理解。比如EIGRP用带宽、延迟算复合度量,而OSPF看的是开销(Cost)。当你从OSPF往EIGRP重分发时,如果没有手动指定metric,EIGRP那边会直接拒收——因为它不知道这个外来路由该给多少分。

举个例子,你在路由器上执行重分发,得明确告诉它:“这条路按EIGRP标准算是多远”:

router eigrp 100<br> redistribute ospf 1 metric 10000 100 255 1 1500

这串数字就是模拟EIGRP的五元组参数,不写清楚,路由根本进不去。

双向重分发小心环路

最常见也最危险的操作就是两边互相导入。比如R1把OSPF路由丢给EIGRP,隔壁R2又把EIGRP的路由扔回OSPF,结果一条原本只该出现在区域A的路由,绕一圈又杀回来了,最后形成环路,甚至触发毒性反转或无限计数。

更麻烦的是,某些低端设备处理这种反复震荡的路由更新时,CPU直接飙到90%以上,整个网络卡成PPT。这时候你去看日志,满屏都是“Route flapping detected”。

用路由映射控制放行范围

不是所有路由都值得被重分发出去。你总不能把默认路由、测试网段、甚至是私有地址段一股脑全播出去吧?这时候就得靠route-map来过滤。

比如只想放行192.168.10.0/24这个业务子网:

route-map REDISTRIBUTE-ONLY-10 permit 10<br> match ip address 10<br><br>access-list 10 permit 192.168.10.0 0.0.0.255<br><br>router ospf 1<br> redistribute eigrp 100 subnets route-map REDISTRIBUTE-ONLY-10

这样既精准又安全,避免把不该暴露的内网结构泄露出去。

注意管理距离引发的优先级冲突

不同协议默认管理距离不一样,比如静态是1,OSPF是110,EIGRP是90。如果你把静态路由重分发进OSPF,那这条路由在其他OSPF路由器上看到的AD就是110,而不是原来的1。万一本地还配了浮动静态路由做备份,可能主链路没断就提前切走了,造成误切换。

解决办法要么调高重分发后的AD,要么干脆限制特定路由不参与重分发。

记得检查下一跳可达性

重分发只是把路由条目传过去,并不保证下一跳能通。特别是在MPLS环境或者跨三层转发场景下,如果中间设备没有去往原始下一跳的路径,这条路由就算学到了也是无效的。

建议在部署后立刻用traceroute验证端到端连通性,别光盯着show ip route看有没有前缀。

测试变更前先备份配置

曾经有个同事在核心路由器上直接改重分发策略,顺手删了个route-map,结果公司海外分支集体断网半小时。后来查日志才发现是ACL被清空导致大量私网路由外泄,触发了防火墙策略拦截。

现在我们都养成习惯:改之前copy running-config startup-config,再加一句write memory,心里才踏实。真出问题也能快速rollback。