当一台路由器同时运行两个OSPF时,选路的时候会有个有趣的现象:

路由器在多个OSPF进程下的路由学习问题_OSPF多进程

这里我们的R1-R2是快速以太口,自然在R2上 到192.168.1.1/32的开销就是2!

然后我们把R2的fa0/1口的带宽改成64,开销就成了1563了,自然R2去往192.168.1.1/32会选择R1那条路!现在在R1上down掉lo3,R2自然也就选择R3去往192.168.1.1/32了;接着我们在激活R1的lo3,按理说R2又会重新选择R1去往192.168.1.1/32,可是实际上并不是这样的,它依旧选择R3去往192.168.1.1/32


路由器在多个OSPF进程下的路由学习问题_OSPF多进程_02

如上图,最开始是选择R1去往192.168.1.1

现在我们在R1上down掉lo3

路由器在多个OSPF进程下的路由学习问题_OSPF多进程_03

自然R1上去往192.168.1.1就会选择R3了!

路由器在多个OSPF进程下的路由学习问题_OSPF多进程_04

现在我们再重新激活R1的lo3

路由器在多个OSPF进程下的路由学习问题_OSPF多进程_05

那么R2上的关于192.168.1.1的路径是否改变啦?

路由器在多个OSPF进程下的路由学习问题_OSPF多进程_06

可以看到R2去往192.168.1.1的路由,并没有随之R1上的lo3的恢复而改变!


接着我们分别以不同的先后顺序在R1和R2上刷新下OSPF进程,看看R2上去往192.168.1.1的路径会发生什么变化!

我们先刷新下R3的ospf进程(命令:clear ip os process),再来看看R2的路由表:

路由器在多个OSPF进程下的路由学习问题_OSPF多进程_07

接着刷新下R1的ospf进程,再来看看R2的路由表:

路由器在多个OSPF进程下的路由学习问题_OSPF多进程_08

然后再反复初始化几次进程,我们会发现在R2上会根据OSPF进程的启动收敛顺序,来决定把谁通告的路由注入到ospf路由表!这是因为METRIC值只会在同一进程内进行比较。在多进程OSPF的路由器上,不同进程的路由OSPF路由表只会按照进程收敛的顺序来选择一条作为最佳路由放在全局路由表中,而不会针对metric属性进行选择。

如果要避免这个问题,就只有通过修改一方的管理距离了!