组网如上:路由器均启用ospf协议,RTA和RTB属于area 0,RTB和RTC以及RTC和RTD互联链路属于area 1,并配置为Totally NSSA区域
现场拓扑中的RTD作为Totally NSSA区域的ASBR设备,本地存在缺省路由, 配置了nssa default-route-advertise命令,并产生Type-7 LSA向区域area 1内发布了缺省路由。配置完成后,发现RTB和RTC上的下联业务均无法访问外部区域。
通过在RTB设备上执行tracert命令查看,发现访问任意外网网段的时候,会在RTB和RTC设备上形成路由环路。
(1)先检查拓扑上,各个节点设备的ospf相关配置如下:
RTA:
RTB:
RTC:
RTD:
(2)由于现场的故障现象是RTB和RTC上的下联业务均无法访问外部区域,且tracert外部区域的时候,会在RTB和RTC上形成路由环路。故先查看下RTB和RTC上的路由表:
经查看RTB路由表,发现RTB上的默认路由下一跳指向RTC:
经查看RTC路由表,发现RTC上的默认路由下一跳指向RTB:
(3)经查RTB和RTC上的缺省路由的类型发现:
RTB的缺省路由类型为从nssa区域学来的ospf的外部路由。
RTC的缺省路由类型为ospf区域间内部路由。
最终原因分析:
在上面的配置中,RTB是完全NSSA区域Area1的ABR,因此RTB会自动向Area1区域内发布第3类缺省路由。
RTD由于配置错误也向Area1发布了一条第7类缺省路由。对于 RTC来说,它会同时收到RTB发布的第3类缺省路由和RTD发布的第7类缺省路由,由于3类路由优于7类路由,因此它会优选第3类缺省路由加入它的路由表,所以RTC的路由表中缺省路由的下一跳指向RTB。
而对于RTB来说,它会接收RTD发布的第7类缺省路由,所以它会把第7类的缺省路由加入自己的路由表中,RTB的缺省路由下一跳是RTC,这样在RTB和RTC之间就存在一条由缺省路由产生的环路,导致RTB和RTC到外部区域的数据均不能正确转发。
该问题是由于完全NSSA区域或NSSA区域的ABR,在发布第3类或第7类缺省路由的同时也会学习其它ASBR发布的第7类缺省路由,在配置不当的情况下将会在NSSA区域产生路由环路。调整RTD的NSSA配置,去掉区域下发布NSSA缺省路由的命令nssa default-route-advertise后,在RTB和RTC之间的路由环路消失,网络恢复正常。
#
ospf 1 router-id 4.4.4.4
area 0.0.0.1
network 10.7.1.0 0.0.0.255
nssa default-route-advertise //删除该命令
#
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作