S5720OSPF收不到外部路由
问题描述
客户两台交换机互联,接口上绑定了VPN实例uplink。两台设备之间运行OSPF协议,邻居关系建立正常。S2上引入了一条外部路由10.18.0.0/24,在S1的路由表中无法查看到此路由条目,客户环境中未做路由过滤策略。
S1部分配置如下:
ip vpn-instance uplink
ipv4-family
route-distinguisher 1:1
ospf 100 router-id 10.10.255.13 vpn-instance uplink
import-route static route-policy static2ospf
area 0.0.0.0
告警信息
处理过程
由于两端设备邻居关系正常,直接查看在S1上是否收到10.18.0.0/24的5类LSA,结果如下:
<WGQ_SYY_DS_SW>dis ospf 100 lsdb ase 10.18.0.0
OSPF Process 100 with Router ID 10.10.255.13
Link State Database
Type : External
Ls id : 10.18.0.0
Adv rtr : 10.10.255.9
Ls age : 978
Len : 36
Options : E
seq# : 80004ef7
chksum : 0x96a9
Net mask : 255.255.0.0
TOS 0 Metric: 20
E type : 2
Forwarding Address : 0.0.0.0
Tag : 0
Priority : Low
结果显示,S1上存在该网络的5类LSA,由于之前已经排查过配置信息,不存在路由过滤,接下来定位该路由不加表的原因。
从上面的参数中发现Tag为0。Route Tag只用于VPN场景,防止CE双归属时,5类LSA发生环路。在PE上当OSPF发现一条5类LSA的Tag和自己Route Tag的一样,就会忽略这条路由不进行处理。当一个CE接入两个PE时,PE1将根据引入的BGP路由产生的5类LSA发给CE,CE又将这条LSA发给PE2,由于OSPF的路由比BGP的路由优先级高,在PE2中就会将BGP路由替换为OSPF路由,产生环路。
Route Tag的默认值是根据BGP的AS号计算得到的。如果没有配置BGP,则默认值为0。检查S1的配置发现该环境中并未运行BGP,所以两端设备的Tag都为0,由此初步判断路由不加表的原因为环路检测不通过。
将ospf vpn-instance的route-tag值修改为和收到的LAS的tag值不一致
<huawei>system
[huawei]ospf 100 vpn-instance uplink
[Huawei-ospf-100]route-tag 100
查看路由表,发现路由学习正常。
根因
两端设备的route-tag一样,S1收到的外部路由的tag与S1的route tag一致,被交换机误认为路由环路,将其丢弃,从而出现路由不加表的现象。
解决方案
更改某端设备的route tag值。