Xxxx网络Core核心区交换下发ospf默认路由失败问题分析

发布时间:  2016-01-04 浏览次数:  321 下载次数:  3
问题描述
1.1 问题涉及的设备
设备:CE12804S、CE6850、USG6650
1.2 现网拓扑

1.3 问题现象描述
CE12804S使用OSPF对进程+多VRF实例方式将CE12804S虚拟成4个区域,分别为Core区、SMK区、JR区、CC区,Core区与其他接入区域使用虚墙分别隔离,Core区与各区域虚墙、区域核心及接入网关CE6850整个运行在一个ospf area0,此时为了保证路由互通需要在Core核心交换上使用ospf下发默认路由作为各区域三层设备网关。在Core所在的ospf 4进程里面使用default-route-advertise always命令下发默认路由,但在各区域虚墙及区域核心、接入网关CE6850上都无法看到下发的默认路由。
告警信息

(无)

处理过程

2.2 问题过程分析
综上分析,针对当前CE12804S为典型的局域网MCE场景,由于ospf vpn特定场景的防环机制从而导致下发默认路由失败的情况,分析过程如下:
1、 检查当前Core核心ospf下发默认路由的5类lsa是否被下游收到以及该lsa未被计算加到路由表是否存在route-tag等原因,检查下游设备的lsdb数据库,如下:
[~XY-D01-CE12804-03U-ospf-4]display ospf 2 lsdb ase 0.0.0.0
OSPF Process 2 with Router ID 192.10.254.2
Link State Database
  Type      : External
  Ls id     : 0.0.0.0
  Adv rtr   : 192.10.254.4
  Ls age    : 35
  Len       : 36
  Options   :  E
  seq#      : 800000ec
  chksum    : 0xbd45
  Net mask  : 0.0.0.0
  Tos 0  metric: 1
  E type    : 2
  Forwarding Address : 192.10.255.74
  Tag       : 0
检查发现下游设备收到Core核心下发的5类lsa的选项值,无DN位置位,tag值为默认route-tag 0,依据OSPF VPN多实例特性,下游设备发现lsa的route-tag和自己本地一样值为0,则忽略了该lsa。
2、 关闭Core核心ospf进程的vpn防环特性检查,并观察下游设备收到的5类lsa的变化及路由表加表情况。
ospf 4 router-id 192.10.254.4 vpn-instance Core
description ***net with Core***
default-route-advertise always
import-route static
vpn-instance-capability simple  //关闭ospf vpn防环特性,不检查DN位及route-tag。
#
检查生产区路由表,0.0.0.0的缺省路由成功加表。
[~XY-D01-CE12804-03U]dis ip routing-table vpn-instance JR
Proto: Protocol        Pre: Preference
Route Flags: R - relay, D - download to fib, T - to vpn-instance
------------------------------------------------------------------------------
Routing Table : JR
         Destinations : 95       Routes : 95       
Destination/Mask    Proto   Pre  Cost        Flags NextHop         Interface
        0.0.0.0/0   O_ASE   150  1             D   192.10.255.26   Vlanif106
检查ospf lsdb中5类lsa的route-tag变为1.
[~XY-D01-CE12804-03U-ospf-4]display ospf 2 lsdb ase 0.0.0.0
OSPF Process 2 with Router ID 192.10.254.2
Link State Database
  Type      : External
  Ls id     : 0.0.0.0
  Adv rtr   : 192.10.254.4
  Ls age    : 90
  Len       : 36
  Options   :  E
  seq#      : 800000e9
  chksum    : 0xd52f
  Net mask  : 0.0.0.0
  Tos 0  metric: 1
  E type    : 2
  Forwarding Address : 192.10.255.74
  Tag       : 1
vpn-instance-capability simple命令解释如下:

应用场景

在MCE(Multi-VPN-Instance CE)设备上部署OSPF VPN多实例时,如果有Type3、Type5或Type7 LSA中设置DN Bit,就会导致这些路由无法计算,因为OSPF进行路由计算会进行防环路检测。这种情况下,通过配置vpn-instance-capability simple命令可以取消OSPF路由环路检测,不检查DN Bit和Route-tag而直接计算出所有OSPF路由,Route-tag恢复为缺省值1。

根因
2.1 华为OSPF VPN多实例特性
根据现网组网分析可以得出,CE12804S配置了多进程多实例相当于一台MCE设备,因此其OSPF遵循OSPF VPN多实例特性。华为产品文档中说法如下:
OSPF VPN多实例特性是为了支持在VPN场景中PE(Provider Edge)和CE(Customer Edge)之间能够运行OSPF协议、使用OSPF进行路由的学习和发布而在OSPF基础协议上进行的扩展。
特性名 定义 作用
DN-bit 为了防止路由环路,OSPF多实例进程使用一个bit位作为标志位,称为DN位。 PE在生成Type3、Type5或Type7 LSA发布给CE时,都将DN位置位(值为1),其他类型LSA的DN位不置位(值为0)。
PE的OSPF多实例进程在进行计算时,忽略DN置位的LSA。这样就防止了PE又从CE学到发出的LSA而引起的环路。

VPN Route Tag VPN路由标记(VPN Route Tag),PE根据收到的BGP的私网路由产生的5/7类LSA中必须包含这个参数。
VPN路由标记不在BGP的扩展团体属性中传递,只是本地概念,只在收到BGP路由并且产生OSPF LSA的PE上有意义。 当PE发现LSA的VPN路由标记(LSA的Tag值)和自己的一样,就会忽略这条LSA,因此避免了环路。

缺省路由 目的地址和掩码全为0的路由。 缺省路由用于转发源自CE和CE所在Site的流量。
OSPF以上特性是为了针对某些可能环路的场景,如下:
PE和CE之间,如果OSPF与BGP的路由相互学习,则有可能导致路由环路问题。
图3 OSPF VPN路由环路

如图3所示,PE1上OSPF引入了目的地址为10.1.1.1/32的BGP路由,产生5类或7类LSA发布给CE1,CE1上学到一条目的地址为10.1.1.1/32,下一跳为PE1的OSPF路由,并发布给PE2,这样PE2上就学到一条目的地址为10.1.1.1/32,下一跳为CE1的OSPF路由。
同理,CE1上也会学到一条目的地址为10.1.1.1/32,下一跳为PE2的OSPF路由,PE1上学到一条目的地址为10.1.1.1/32,下一跳为CE1的OSPF路由。
此时,CE1上存在两条等价路由,分别指向PE1和PE2,而PE1和PE2上到10.1.1.1/32的下一跳也都指向CE1,环路就产生了。
同时,由于OSPF路由的优先级高于BGP路由,PE1和PE2上到10.1.1.1/32的BGP路由被OSPF路由所替代,也就是说,PE1和PE2的路由表中活跃的是到10.1.1.1/32,下一跳为CE1的OSPF路由。
既然BGP路由转为不活跃状态,之前OSPF引入这条BGP路由时所产生的LSA就会被删除,而这样又会导致OSPF路由被撤消。路由表中没有了OSPF路由,BGP路由又变为活跃状态,继续重复之前的循环,导致路由振荡。
但是该特性在针对局域网设备MCE场景下,则无需使用该特性检查,解释如下:
OSPF多实例通常运行在PE上,在用户局域网内部运行OSPF多实例的设备称为Multi-VPN-Instance CE(MCE),即多实例CE。
与PE上的OSPF多实例相比:
 Multi-VPN-Instance CE不需要支持BGP/OSPF互操作功能。
 Multi-VPN-Instance CE通过为不同的业务建立各自的OSPF实例,相当于不同的业务使用不同的虚拟CE,从而以较低的成本解决局域网的安全问题。
 Multi-VPN-Instance CE在同一台CE上实现不同的OSPF多实例。其实现的关键在于禁止路由环路的检查,直接进行路由计算。也就是说,MCE收到了带有DN-bit的LSA也会用于路由计算。
参考文档:子目录 配置配置指南IP单播路由配置OSPF配置   参考命令参考IP单播路由命令OSPF配置命令
http://support.huawei.com/ehedex/hdx.do?docid=DOC1000065636&lang=zh&idPath=7919710|9856733|7923142|7542409
解决方案
后续在配置MCE时应当在ASBR路由器的ospf进程下敲上vpn-instance-capability simple命令,确保ospf路由学习正常。
目前已经将部分ospf路由配置更正,已经成功下发ospf默认路由。远端机房目前未做更改,后续应将完成所有ospf配置改正,以保证全网路由及链路状态数据库的统一性。

建议与总结
当局域网内核心交换机部署多实例多进程的OSPF时,应当关闭ospf vpn防环特性,这样才是实现其MCE功能的关键所在。

END