[i=s] 本帖最后由 network123 于 2025-8-6 15:51 编辑 [/i]
路由双点双向重发布是网络中一个热点话题,无论是实际项目,还是各种考试,都会遇到这一场景。这一场景涉及到非常复杂的路由知识点,可以考察一位网络工程师对路由知识的综合掌握程度。本文将系统剖析这一场景,并针对出现的问题,给出详尽的解法。
1,案例背景
本案例的拓扑图如下,左边是ISIS路由域,采用10.1.X.X 的IP地址段,在R5,R1上引入直连路由;右边是OSPF路由域,采用10.2.X.X的IP地址段,在R4,R6上引入直连路由。
R2,R3是两台华为防火墙,作为路由边界设备,中间互联链路分别属于ISIS和OSPF路由域。为了实现两个路由域的互联互通,需要在R2,R3上配置路由双点双向重发布。

2,问题探究
在路由双点双向重发布场景中,会出现三个重要问题:次优路径,路由回馈,路由环路,下面将结合实际案例,详解介绍这三类问题的产生原因。
2.1 次优路径
先查看R2,R3设备上没有做路由重发布之前的路由表,查看各自路由的学习情况。

R2的路由表

R3的路由表
在配置路由双点双向重发布之前,两台路由边界设备的路由学习是正常的,10.1.X.X的路由从ISIS路由域获得;10.2.X.X的路由从OSPF路由域获得。
现在先在R2上配置ISIS重发布OSPF,再次查看R2,R3的路由表。
!
isis 100
is-level level-2
cost-style wide
network-entity 49.0001.2222.2222.2222.00
import-route ospf 100
!

R2的路由学习正常,没有变化。

此时R3的路由学习异常,原本两条OSPF路由域的域外路由10.2.41.0/24,10.2.61.0/24现在通过ISIS路由域学习,下一跳错误的指向10.1.23.2(R2),在R3上产生次优路径,究其原因是:
1,R2配置ISIS重发布OSPF后,引入后的路由在ISIS路由域通告。
2,R3上存在两条针对10.2.61.0/24的路由信息:一条是R2通告的路由源是ISIS,另外一条是R6通告的路由源是OSPF。
3,针对多条相同的路由信息(路由前缀,前缀长度均相同),R3比较不同路由源的Preference,ISIS(15)优于OSPF外部路由(150),因此R2通告的ISIS路由信息优选成功,加载进全局路由表,这样R3上针对原本OSPF的域外路由产生次优路由问题。

图示次优路由产生原因
Note:在路由重发布点上,源于Preference值大的路由域的某条路由反而通过Preference值小的路由域到达,此时产生次优路由问题。
OSPF为域外路由分配的Preference是150,大于ISIS的15,因此在ISIS路由域,不会产生次优路径。
2.2 路由回馈
然后在R3上配置OSPF重发布ISIS。
!
ospf 100 router-id 3.3.3.3
import-route isis 100 type 1
area 0.0.0.1
!
由于现在R3上,针对10.2.41.0/24,10.2.61.0/24的路由,通过ISIS路由域错误获得,因此可以再引入回OSPF路由域,在OSPF路由域内通告,产生路由回馈问题。
2.3 路由环路
R3上配置OSPF重发布ISIS时,针对引入的外部路由,设置Metric Type为Type1,再次查看R2,R3,R4的路由表。
!
ospf 100 router-id 3.3.3.3
import-route isis 100 type 1
area 0.0.0.1
!

R2的路由学习异常,原本两条OSPF路由域的域外路由10.2.41.0/24,10.2.61.0/24下一跳指向10.2.24.4(R4),现在错误地指向10.2.23.3(R3)。

R3的路由表没有变化,针对10.2.41.0/24,10.2.61.0/24的路由,依然通过ISIS路由域获得,下一跳指向10.1.23.2(R2)。

R4的路由学习也存在异常,原本OSPF路由域的域外路由10.2.61.0/24 下一跳指向10.2.46.6(R6),现在错误地指向10.2.34.3(R3)。
这样针对域外路由10.2.61.0/24,在OSPF路由域内产生路由环路:
R4下一跳错误指向10.2.34.3 (R3);
R3下一跳错误指向10.1.23.2(R2);
R2下一跳错误指向10.2.23.3(R3)。

我们在R4上traceroute 10.2.61.1进行验证,

R4上针对10.2.61.0/24的路由产生环路
现在我们来分析路由环路产生的原因。
1, R3配置OSPF重发布ISIS时,分配Metric-Type为Type1,并将引入的外部路由在OSPF路由域通告。
2,R4上收到两条针对10.2.61.0/24的OSPF域外路由:一条是R6通告的Metric-Type为Type2,另外一条是R3通告的的Metric-Type为Type1。

3,OSPF在计算域外路由时,Type-1优于Type-2,因此R4把R3通告的域外路由加载进全局路由表,下一跳错误指向10.2.34.3(R3)。
4,R2上针对OSPF域外路由10.2.61.0/24的路由优选方式和R4一样,也把R3通告的域外路由加载进全局路由表,下一跳错误指向10.2.23.3(R3)。
5,这样针对路由10.2.61.0/24,在OSPF路由域内产生路由环路。

Note:源路由域的某条路由重发布到目标路由域,然后又以一个比较优的Metric值/路由类型重新发布回源路由域,此时将产生路由环路问题。
以上案例介绍的仅为多点单向路由重发布,双点双向重发布原理一样,下面将图示路由双点双向重发布产生上述问题的原因:

3,终极解法
上图所示路由多点双向重发布场景产生诸多问题的根源是,在路由重发布点上,由于路由优先级或Metric值错误优选,产生次优路径,才导致一系列问题的产生。
因此只要在路由重发布点上解决次优路径问题,路由回馈,路由环路问题随即解决。常用的方法有:次优路由信息过滤;基于具体路由调整Preference值;重发布静态聚合路由。
3.1 次优路由信息过滤
路由重发布点上,在ISIS路由进程内使用如下命令
filter-policy ACL/IP Prefix/ route-policy import,将根据对端(路由重发布点)通告的外部路由信息计算出的最佳路由过滤掉,阻止其加载进全局路由表,保证在路由重发布点上通过正确的路由域获取相应的路由。
在多个路由重发布点上需要做对称配置,推荐方法如下:

Note:路由重发布是从全局路由表中取路由,如果全局路由表中没有对应路由,重发布自然失败。在实际项目中,尽量避免在路由重发布时实施复杂的路由策略,推荐在路由进程下直接过滤掉次优路由即可,简单高效。
ISIS的Cost类型需修改为wide,这样引入的外部路由才可以携带Tag标记。
在OSPF多进程之间路由重发布时,需采用“4 Tag”方法解决上述问题。

Note:华为,H3C,锐捷的设备,在OSPF多进程场景中,忽略E1,E2的区别,优选路径Cost最小的域外路由。
3.2 基于具体路由调整Preference值
路由重发布点上,在ISIS路由进程内,将对端(路由重发布点)通告的相应外部路由的Preference值调整为255即可。Preference值的修改只具有本地意义,不影响其他设备路由优选。
在多个路由重发布点上需要做对称配置,推荐方法如下:

**Note:**Preference值是255的路由代表路由源不可信,同时该路由不会加载进全局路由表。通过把路由Preference值设置为255,可以避免路由发生震荡时,相应的路由信息错误地加载进全局路由表,引发临时路由环路。
华为,H3C设备针对优先级为255的路由依然会加载进全局路由表,但不影响效果。
3.3重发布静态聚合路由
在路由重发布点上,如果出现问题的路由域的路由可以进行聚合,可以先配置指向Null 0的静态聚合路由,然后在ISIS路由进程内重发布该静态聚合路由即可。
在多个路由重发布点上需要做对称配置,推荐方法如下:

上述方法各有优劣,需要根据项目实际,灵活选用。实施后,域内路由器,边界路由器的路由学习均正常,数据转发也没有问题。
