目录

简介

先决条件

要求

使用的组件

背景信息

配置

网络图

配置

DN位

域标记

验证

故障排除

简介

本文档介绍在提供商边缘(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的绝大多数客户不会受到影响。覆盖标签的客户可能会看到行为变化。

故障排除

目前没有针对此配置的故障排除信息。