简介
本文档介绍在提供商边缘(PE)和客户边缘(CE)路由器之间运行开放最短路径优先(OSPF)路由协议时的环路预防功能和最低配置步骤。它呈现的网络场景描述了向下位(DN)的使用,该位是链路状态通告(LSA)和域标记中的选项。
先决条件
要求
思科建议您了解OSPF和多协议标签交换(MPLS)第3层VPN。
使用的组件
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
背景信息
服务提供商(SP)和CE路由器使用SP和客户共同同意的路由协议交换路由。本文档的范围是描述使用OSPFv2时的环路预防机制。
当OSPFv2用于属于特定虚拟路由和转发(VRF)或VPN的PE-CE链路时,PE路由器:
- 将通过OSPF为该VPN接收的路由重分发到多协议边界网关协议(MP-BGP),并将其通告给其他PE路由器。
- 通过MP-BGP将VPN中安装的BGP路由重分布到该VPN的OSPF实例中,并将其通告给CE路由器。
配置
网络图
请考虑此网络拓扑,以了解环路防御技术。
在此设置中,可能存在环路。例如,如果CE1向PE1通告OSPF LSA第1类,PE1将路由重分发到VPNv4并将其通告给PE2,则PE2会反过来向CE2通告汇总LSA。CE2接收的此路由可通告回CE2pe3。第三个PE路由器获知比BGP路由更好的OSPF路由,并将该路由重新通告到BGP作为客户站点2的本地。PE3从不获知通告的路由不是来自客户站点2。
为了克服这种情况,当路由从MP-BGP重分发到OSPF时,它们在LSA类型3、5或7中标有DN位,并且具有第5类和第7类LSA的域标记。
配置
以下是PE路由器上的配置示例。此配置包括VRF配置、在PE-CE路由器之间运行的OSPF进程2、在MPLS核心中作为内部网关协议(IGP)运行的OSPF进程1和MP-BGP配置。
DN位
OSPF LSA选项字段中以前未使用的位称为DN位。当MP-BGP路由重分发到OSPF时,此位在第3类、第5类和第7类LSA上设置。当另一台PE路由器从CE路由器第3类、第5类或第7类LSA接收LSA并设置了DN位时,该LSA的信息不会用于OSPF路由计算。
根据网络拓扑,PE2为重分发的LSA设置DN位,并且PE3上的OSPF进程2中从不考虑此LSA进行路由计算。因此,PE3从不将此路由重分发回MP-BGP。
以下是OSPF报头的示例,显示DN位集,当PE路由器为第3类LSA通告该路由时:
Open Shortest Path First
OSPF Header
Version: 2
Message Type: LS Update (4)
Packet Length: 56
Source OSPF Router: 10.10.23.3 (10.10.23.3)
Area ID: 0.0.0.0 (0.0.0.0) (Backbone)
Checksum: 0x4034 [correct]
Auth Type: Null (0)
Auth Data (none): 0000000000000000
LS Update Packet
Number of LSAs: 1
Summary-LSA (IP network)
.000 1110 0001 0000 = LS Age (seconds): 3600
0... .... .... .... = Do Not Age Flag: 0
Options: 0xa2 (DN, DC, E)
1... .... = DN: Set
.0.. .... = O: Not set
..1. .... = DC: Demand Circuits are supported
...0 .... = L: The packet does NOT contain LLS data block
.... 0... = NP: NSSA is NOT supported
.... .0.. = MC: NOT Multicast Capable
.... ..1. = E: External Routing Capability
.... ...0 = MT: NO Multi-Topology Routing
域标记
域标记仅适用于OSPF第5类和第7类LSA。当VPNv4路由从MP-BGP重分发到PE路由器上的OSPF时,会为OSPF外部路由设置域标记。可以在OSPF Process下使用domain-tag命令手动设置标记,也可以自动生成32位值:
根据网络拓扑,PE2在将VPNv4路由重分发到OSPF时为第5类和第7类LSA设置域标记。此LSA从不考虑用于路由计算,因为DN位已设置,但它也设置了域标记,因此LSA被忽略,因为域标记与VPN/VRF标记匹配。因此,该路由从不重分发到OSPF。
本示例显示当从CE3接收LSA类型5时,其域标记设置与PE3上的本地VRF域标记设置相同:
*Jan 31 00:29:23.947: OSPF-2 EXTER: adv_rtr 10.10.57.5, age 3, seq 0x80000001,
metric 10, metric-type 2, fw-addr 0.0.0.0
*Jan 31 00:29:23.947: OSPF-2 EXTER: Tag equals to VPN Tag, ignoring the LSA
*Jan 31 00:29:23.947: OSPF-2 EXTER: Process partial nssa spf queue
PE3#show ip ospf database external 192.168.5.5
OSPF Router with ID (10.3.3.3) (Process ID 1)
OSPF Router with ID (10.10.68.6) (Process ID 2)
Type-5 AS External Link States
LS age: 38
Options: (No TOS-capability, DC)
LS Type: AS External Link
Link State ID: 192.168.5.5 (External Network Number )
Advertising Router: 10.10.57.5
LS Seq Number: 80000001
Checksum: 0x89A3
Length: 36
Network Mask: /32
Metric Type: 2 (Larger than any link state path)
MTID: 0
Metric: 10
Forward Address: 0.0.0.0
External Route Tag: 3489725928
验证
用于发现是否为LSA设置了DN位和所应用的域标记的命令与用于检查LSA数据库的命令相同。
此输出显示了OSPF第3类和第5类LSA的示例,并在VPNv4路由重分发到PE2上的OSPF时突出显示DN位和标记集:
注意:MPLS VPN OSPF PE-CE始终包括环路预防机制以处理问题。在较旧的Cisco IOS®®中,Per original IETF草案第3类LSA使用LSA中的DN位,第5类LSA使用标记。较新的RFC 4576要求对第3类和第5类LSA都使用DN位。
这是通过思科漏洞ID CSCtw79182提交的。
带有Cisco IOS映像并修复此缺陷的PE路由器将产生第5类外部LSA,其中DN位和标记均作为环路预防机制。以前的Cisco IOS版本将唯一的标记用于外部路由。
更改行为是因为可以重写标记(通过更改VPN域ID或通过路由映射),但DN位不是用户可控的。在某些拐角设计中,一些客户可能故意禁用环路防止机制,覆盖外部LSA的标记,以便PE路由器首选OSPF路由而非BGP路由。
在较新的Cisco IOS版本中,这是不可能的。在教科书配置中使用PE-CE OSPF的绝大多数客户不会受到影响。覆盖标签的客户可能会看到行为变化。
故障排除
目前没有针对此配置的故障排除信息。