口字形组网,四台MSR路由器对接的接口宣告进ospf一个area区域中(非0.0.0.0骨干),且该区域为nssa区域。MSR-1和MSR-2在area里发布nssa default-route-advertise,引入缺省路由。MSR-4和MSR-3路由器上学习到对应的缺省路由,因为cost小优选的缘故,和MSR-3和MSR-4缺省路由器优选走上行链路。计划当上行链路断的时候,切到横联链路。现场发现当SW-1和SW-2中间的链路断开了,MSR-1和MSR-4之间的ospf peer中断,但是MSR-4仍然走上行链路未切到横联链路,导致业务异常。
链路断开前:
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/0 O_NSSA2 150 1 11.XX.241.193 GE0/1
链路断开后:
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/0 O_NSSA2 150 1 11.XX.241.193 GE0/1
SW之间的链路断开后,不影响MSR-4和MSR-1的接口状态,接口仍然是up的,虽然hello报文在sw之间丢了,ospf的邻居down。但是因为MSR1----MSR2 -----MSR3 ----MSR4的邻居还在,MSR-4上仍能学习的MSR-1和MSR-2发布的缺省路由。
这个问题本质是MSR-4上收到两个缺省路由的lsdb为什么加表的是上行路由的LSDB而不是横联LSDB。查看MSR-4上收到的lsdb,发现两个lsdb上存在FA地址。ospf lsdb 如果存在FA地址,会比较去往哪个FA地址的ospf路由更优,优则加表对应的lsdb。因为MSR-4上上行的接口还是up, MSR-4去往11.XX.241.193的ospf路由(自己network宣告的)更优于从横联学到的去往11.XX.240.205的路由,所以加表上行的ospf路由,导致业务异常。
Type : NSSA
LS ID : 0.0.0.0
Adv Rtr : 11.XX.208.222
LS age : 883
Len : 36
Options : O NP
Seq# : 80000001
Checksum : 0x1f17
Net Mask : 0.0.0.0
TOS 0
Metric: 1 E
Type : 2
Forwarding Address : 11.XX.241.193
Tag : 1
Type : NSSA
LS ID : 0.0.0.0
Adv Rtr : 11.XX.208.221
LS age : 889
Len : 36
Options : O NP
Seq# : 80000001
Checksum : 0x3303
Net Mask : 0.0.0.0
TOS 0
Metric: 1 E
Type : 2
Forwarding Address : 11.XX.240.205
Tag : 1
解决思路:调整缺省路由中的FA地址,让中间链路断开后,设备的ospf路由表中去往两个FA的地址的路由,横联优于上行。
FA地址的添加原则如下:
如果LOOPBACK接口和物理口都使能了OSPF,用LOOPBACK接口地址填充FA;
如果存在多个LOOPBACK接口,用第一个使能OSPF的LOOPBACK接口地址填充FA;
如果不存在LOOPBACK接口,用第一个使能OSPF的接口地址填充FA。//现场原先FA地址的填充匹配的是这一条
解决方案:在MSR-1和MSR-2上新增loopback接口,接口中填入32位的ip地址,并宣告进nssa区域。让lsdb中的FA地址变为loopback接口地址。这个时候,SW之间中间链路断开,MSR-4上去往MSR-1/MSR-2的FA地址(即 MSR-1/MSR-2上的loopback接口)都只能走横联链路,ospf路由加表能够完成备用链路的切换。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作