目录

简介

先决条件

要求

使用的组件

背景信息

配置

网络图

初始路由器配置

配置R1

配置R2

配置R3

配置R4

配置R5

默认行为

多区域邻接配置

验证

故障排除

简介

本文档介绍如何为多区域邻接配置开放最短路径优先 (OSPF) 链路状态路由协议。

先决条件

要求

Cisco 建议您了解以下主题：

- OSPF

- 多区域邻接

思科还建议在尝试本文档中描述的配置之前先满足以下要求：

- 必须在网络中预先配置 OSPF 链路状态路由协议。

- 只有两个 OSPF 发言者使用在其间 OSPF 多区域功能可正常工作的接口。多区域 OSPF 仅适用于点对点网络类型。

使用的组件

本文档中的信息基于多区域 OSPF。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

背景信息

OSPF 链路状态路由协议使用区域的概念，区域是 OSPF 域内的子域。区域内的路由器保留该区域的完整拓扑信息。默认情况下，接口只能属于一个 OSPF 区域。这不仅会导致网络中的次优路由问题，而且在网络设计不正确时还会导致其他问题。

在接口上配置多区域邻接时，OSPF 发言者会在该链路上建立多个邻接关系 (ADJ)。多区域接口是一种用于形成 ADJ 的点对点逻辑接口。本文档介绍使用多区域OSPF ADJ解决问题并满足网络要求的场景。

配置

网络图

此网络图中使用了网络/OSPF 域。系统要求从路由器5(R5)到R1(10.1.1.1)的流量始终通过R3。假设R3是网络中所有流量均可路由的防火墙，或者R3和R4之间的链路的带宽比R2和R4之间的链路的带宽多。无论哪种情况，系统都要求流量从R5到R1(10.1.1.1/32前缀)必须通过R3。

初始路由器配置

本部分介绍 R1 到 R5 的初始配置。

配置R1

interface Ethernet0/0

ip address 192.168.12.1 255.255.255.0

!

interface Loopback0

ip address 10.1.1.1 255.255.255.255

!

ip route 0.0.0.0 0.0.0.0 192.168.12.2

配置R2

interface Ethernet0/0

ip address 192.168.12.2 255.255.255.0

!

interface Ethernet0/1

ip address 192.168.23.2 255.255.255.0

ip ospf network point-to-point

ip ospf 1 area 0

!

interface Ethernet0/2

ip address 192.168.24.2 255.255.255.0

ip ospf network point-to-point

ip ospf 1 area 99

!

interface Loopback0

ip address 10.2.2.2 255.255.255.255

!

ip route 10.1.1.1 255.255.255.255 192.168.12.1

!

router ospf 1

router-id 0.0.0.2

redistribute static metric-type 1 subnets

配置R3

interface Ethernet0/0

ip address 192.168.34.3 255.255.255.0

ip ospf network point-to-point

ip ospf 1 area 99

!

interface Ethernet0/1

ip address 192.168.23.3 255.255.255.0

ip ospf network point-to-point

ip ospf 1 area 0

!

interface Loopback0

ip address 10.3.3.3 255.255.255.255

!

router ospf 1

router-id 0.0.0.3

配置R4

interface Ethernet0/0

ip address 192.168.34.4 255.255.255.0

ip ospf network point-to-point

ip ospf 1 area 99

!

interface Ethernet0/1

ip address 192.168.45.4 255.255.255.0

ip ospf network point-to-point

ip ospf 1 area 99

!

interface Ethernet0/2

ip address 192.168.24.4 255.255.255.0

ip ospf network point-to-point

ip ospf 1 area 99

!

interface Loopback0

ip address 10.4.4.4 255.255.255.255

!

router ospf 1

router-id 0.0.0.4

配置R5

interface Ethernet0/1

ip address 192.168.45.5 255.255.255.0

ip ospf network point-to-point

ip ospf 1 area 99

!

interface Loopback0

ip address 10.5.5.5 255.255.255.255

!

router ospf 1

router-id 0.0.0.5

默认行为

本部分介绍在完成上文配置时路由器的默认行为。

以下是从R5到10.1.1.1的跟踪。请注意，流量通过R2而不是R3:

R5#traceroute 10.1.1.1

Type escape sequence to abort.

Tracing the route to 10.1.1.1

VRF info: (vrf in name/id, vrf out name/id)

1 192.168.45.4 6 msec 6 msec 6 msec       <<< R4

2 192.168.24.2 6 msec 6 msec 8 msec       <<< R2

3 192.168.12.1 8 msec * 3 msec            <<< R1

在此网络中，路由器R4必须做出决定，而且可以根据系统要求将流量路由到R3，而不是直接路由到R2。

以下是 R4 上的路由表示例：

R4#show ip route 10.1.1.1

Routing entry for 10.1.1.1/32

Known via "ospf 1", distance 110, metric 30, type extern 1

Last update from 192.168.24.2 on Ethernet0/2, 00:14:33 ago

Routing Descriptor Blocks:

* 192.168.24.2, from 0.0.0.2, 00:14:33 ago, via Ethernet0/2 <<< Towards R2

Route metric is 30, traffic share count is 1

前缀10.1.1.1/32的路由与度量30关联。这是因为自主系统边界路由器(ASBR)(R2)使用的默认度量为20，而R4上接口Eth0/2的开销为10。

从 R4 经由 R3 到 10.1.1.1/32 前缀的路径更长。此处，R4上接口Ethernet 0/2（通向R2的路径）的开销被更改，以验证它是否更改了行为：

interface Ethernet0/2

ip address 192.168.24.4 255.255.255.0

ip ospf network point-to-point

ip ospf 1 area 99

ip ospf cost 100

end

以下是 R5 的跟踪结果以及 R4 中的 show ip route 命令输出：

R5#traceroute 10.1.1.1

Type escape sequence to abort.

Tracing the route to 10.1.1.1

VRF info: (vrf in name/id, vrf out name/id)

1 192.168.45.4 4 msec 9 msec 8 msec       <<< R4

2 192.168.24.2 8 msec 9 msec 10 msec      <<< R2

3 192.168.12.1 10 msec * 5 msec           <<< R1

R4#show ip route 10.1.1.1

Routing entry for 10.1.1.1/32

Known via "ospf 1", distance 110, metric 120, type extern 1

Last update from 192.168.24.2 on Ethernet0/2, 00:01:50 ago

Routing Descriptor Blocks:

* 192.168.24.2, from 0.0.0.2, 00:01:50 ago, via Ethernet0/2

Route metric is 120, traffic share count is 1

如跟踪所示，来自R5的流量采用相同的路径，并且流量不通过R3流动。此外，如R4上的show ip route 10.1.1.1命令输出所示，在R4上添加的开销100(Interface Ethernet 0/2)生效，并且到前缀的路由的开销为120（与30相对）。 但是，该路径仍未更改，并且尚未满足流量经过 R3 的要求。

要确定此行为的原因，可参见R4 show ip ospf border-routers命令输出（R4接口Ethernet 0/2上的开销仍设置为100）：

R4#show ip ospf border-routers

OSPF Router with ID (0.0.0.4) (Process ID 1)

Base Topology (MTID 0)

Internal Router Routing Table

Codes: i - Intra-area route, I - Inter-area route

i 0.0.0.2 [100] via 192.168.24.2, Ethernet0/2, ABR/ASBR, Area 99, SPF 3

i 0.0.0.3 [10] via 192.168.34.3, Ethernet0/0, ABR, Area 99, SPF 3

在 R4 上，可以看到，有两个区域边界路由器 (ABR)（R2：0.0.0.2；R3：0.0.0.3），并且 R2 为 ASBR。此输出还显示了 ASBR 的区域内 (i) 信息。

现在，R4上的接口Ethernet 0/2已关闭，以确定流量是否流经R3，并查看show ip ospf border-routers命令的输出结果：

interface Ethernet0/2

ip address 192.168.24.4 255.255.255.0

ip ospf network point-to-point

ip ospf 1 area 99

ip ospf cost 100

shutdown

end

以下是 R5 的跟踪结果以及 R4 中的 show ip route 命令输出：

R5#traceroute 10.1.1.1

Type escape sequence to abort.

Tracing the route to 10.1.1.1

VRF info: (vrf in name/id, vrf out name/id)

1 192.168.45.4 7 msec 7 msec 8 msec       <<< R4

2 192.168.34.3 9 msec 8 msec 8 msec       <<< R3

3 192.168.23.2 9 msec 9 msec 7 msec       <<< R2

4 192.168.12.1 8 msec * 4 msec            <<< R1

R4#show ip route 10.1.1.1

Routing entry for 10.1.1.1/32

Known via "ospf 1", distance 110, metric 40, type extern 1      <<< Metric 40

Last update from 192.168.34.3 on Ethernet0/0, 00:01:46 ago      <<< Traffic to R2

Routing Descriptor Blocks:

* 192.168.34.3, from 0.0.0.2, 00:01:46 ago, via Ethernet0/0

Route metric is 40, traffic share count is 1

如图所示，当R4上的接口Ethernet 0/2关闭时，流量将通过R3。此外，与通往R3的路由相关的开销仅为40，而通过R2通往10.1.1.1/32的开销为120。OSPF协议仍然倾向于通过R2而不是R3路由流量，即使通过R3到达10.1.1.1/32的开销较低。

以下是在 R4 上再次执行 show ip ospf border-routers 命令的输出：

R4#show ip ospf border-routers

OSPF Router with ID (0.0.0.4) (Process ID 1)

Base Topology (MTID 0)

Internal Router Routing Table

Codes: i - Intra-area route, I - Inter-area route

I 0.0.0.2 [20] via 192.168.34.3, Ethernet0/0, ASBR, Area 99, SPF 4

i 0.0.0.3 [10] via 192.168.34.3, Ethernet0/0, ABR, Area 99, SPF 4

到达ASBR所需的信息是区域间信息。但是，详细说明如何到达 ASBR 的区域内信息要比区域间信息更可取，而不管与这两条路径关联的 OSPF 开销值如何。

因此，通过 R3 的路径不是首选路径，即使通过 R3 的路径开销值更低也是如此。

以下是在 R4 上重新打开接口 Ethernet0/2：

interface Ethernet0/2

no shutdown

end

来自 R5 的跟踪结果指明路由操作恢复到以前观察到的结果（即流量不流经 R3）：

R5#traceroute 10.1.1.1

Type escape sequence to abort.

Tracing the route to 10.1.1.1

VRF info: (vrf in name/id, vrf out name/id)

1 192.168.45.4 6 msec 7 msec 7 msec        <<< R4

2 192.168.24.2 7 msec 8 msec 7 msec        <<< R2

3 192.168.12.1 8 msec * 12 msec            <<< R1

可以使用多种方法来解决此问题（以下列出的方法并不详尽）：

- 将R2和R3之间的区域更改为99，然后修改开销。

- 在 R2 与 R3 之间另外添加一个链路，并将其配置为位于区域 99 中。

- 使用多区域 ADJ。

请参阅下一节，了解多区域OSPF ADJ的工作方式及其如何解决当前此问题。

多区域邻接配置

如前所述，多区域ADJ可用于在单个链路上形成多个点对点逻辑邻接。具体要求是，链路上必须只有两个 OSPF 发言者，而且在广播网络中，必须手动将 OSPF 网络类型更改为链路上的点对点。

借助此功能，多个区域可以共享一个物理链路，并且可以在共享链路的每个区域中创建一个区域内路径。

为满足此要求，您必须通过链路Ethernet 0/1在R2和R3之间配置OSPF多区域ADJ，该链路当前仅位于区域0。

以下是 R2 的配置：

interface Ethernet0/1

ip address 192.168.23.2 255.255.255.0

ip ospf network point-to-point

ip ospf multi-area 99

ip ospf 1 area 0

end

以下是 R3 的配置：

interface Ethernet0/1

ip address 192.168.23.3 255.255.255.0

ip ospf network point-to-point

ip ospf multi-area 99

ip ospf 1 area 0

end

OSPF ADJ 出现在虚拟链路上：

%OSPF-5-ADJCHG: Process 1, Nbr 0.0.0.2 on OSPF_MA0 from LOADING to FULL, Loading Done

%OSPF-5-ADJCHG: Process 1, Nbr 0.0.0.3 on OSPF_MA0 from LOADING to FULL, Loading Done

以下是新形成的 ADJ：

R2#show ip ospf neighbor 0.0.0.3

<Snip>

Neighbor 0.0.0.3, interface address 192.168.23.3

In the area 99 via interface OSPF_MA0

Neighbor priority is 0, State is FULL, 6 state changes

DR is 0.0.0.0 BDR is 0.0.0.0

Options is 0x12 in Hello (E-bit, L-bit)

Options is 0x52 in DBD (E-bit, L-bit, O-bit)

LLS Options is 0x1 (LR)

Dead timer due in 00:00:39

Neighbor is up for 00:03:01

Index 2/3, retransmission queue length 0, number of retransmission 0

First 0x0(0)/0x0(0) Next 0x0(0)/0x0(0)

Last retransmission scan length is 0, maximum is 0

Last retransmission scan time is 0 msec, maximum is 0 msec

R3#show ip ospf neighbor 0.0.0.2

<Snip>

Neighbor 0.0.0.2, interface address 192.168.23.2

In the area 99 via interface OSPF_MA0

Neighbor priority is 0, State is FULL, 6 state changes

DR is 0.0.0.0 BDR is 0.0.0.0

Options is 0x12 in Hello (E-bit, L-bit)

Options is 0x52 in DBD (E-bit, L-bit, O-bit)

LLS Options is 0x1 (LR)

Dead timer due in 00:00:39

Neighbor is up for 00:01:41

Index 2/3, retransmission queue length 0, number of retransmission 0

First 0x0(0)/0x0(0) Next 0x0(0)/0x0(0

Last retransmission scan length is 0, maximum is 0

Last retransmission scan time is 0 msec, maximum is 0 msec

验证

要验证配置是否正常工作，请在R4上输入show ip ospf border-routers命令：

R4#show ip ospf border-routers

OSPF Router with ID (0.0.0.4) (Process ID 1)

Base Topology (MTID 0)

Internal Router Routing Table

Codes: i - Intra-area route, I - Inter-area route

i 0.0.0.3 [10] via 192.168.34.3, Ethernet0/0, ABR, Area 99, SPF 10

i 0.0.0.2 [20] via 192.168.34.3, Ethernet0/0, ABR/ASBR, Area 99, SPF 10

如图所示，用于将流量路由到R2(0.0.0.2)/ASBR的区域内信息通过R3。这可以解决前面提到的问题。

以下是 R5 的跟踪结果：

R5#traceroute 10.1.1.1

Type escape sequence to abort.

Tracing the route to 10.1.1.1

VRF info: (vrf in name/id, vrf out name/id)

1 192.168.45.4 8 msec 9 msec 8 msec       <<< R4

2 192.168.34.3 8 msec 8 msec 8 msec       <<< R3

3 192.168.23.2 7 msec 8 msec 8 msec       <<< R2

4 192.168.12.1 8 msec * 4 msec            <<< R1

如上所示，从 R5 到 10.1.1.1 的流量正常流经 R3，并且满足系统要求。

在R2、R3和R4上输入show ip ospf neighbor命令以验证是否已建立ADJ:

R2#show ip ospf neighbor

Neighbor ID Pri  State    Dead Time  Address        Interface

0.0.0.3       0  FULL/ -  00:00:39   192.168.23.3   Ethernet0/1

0.0.0.4       0  FULL/ -  00:00:37   192.168.24.4   Ethernet0/2

0.0.0.3       0  FULL/ -  00:00:33   192.168.23.3   OSPF_MA0

R3#show ip ospf neighbor

Neighbor ID Pri  State    Dead Time  Address        Interface

0.0.0.2       0  FULL/ -  00:00:34   192.168.23.2   Ethernet0/1

0.0.0.2       0  FULL/ -  00:00:35   192.168.23.2   OSPF_MA0

0.0.0.4       0  FULL/ -  00:00:39   192.168.34.4   Ethernet0/0

R4#show ip ospf neighbor

Neighbor ID Pri  State    Dead Time  Address        Interface

0.0.0.2       0  FULL/ -  00:00:32   192.168.24.2   Ethernet0/2

0.0.0.5       0  FULL/ -  00:00:32   192.168.45.5   Ethernet0/1

0.0.0.3       0  FULL/ -  00:00:35   192.168.34.3   Ethernet0/0

注意：在上述输出中，Ethernet0/1 接口条目指明 ADJ 在区域 0 上，OSPF_MA0 接口条目指明多区域 ADJ 在区域 99 上。

R4接口Ethernet 0/2的开销仍然为100，而且R4上首选通过R3的路径。如果删除此开销，则R4会像以前一样将流量直接路由到R2。

以下是在 R4 接口 Ethernet0/2 上将 IP OSPF 开销值仍配置为 100 时 R4 上的配置和 show ip route 命令输出：

interface Ethernet0/2

ip address 192.168.24.4 255.255.255.0

ip ospf network point-to-point

ip ospf 1 area 99

ip ospf cost 100

R4#show ip route 10.1.1.1

Routing entry for 10.1.1.1/32

Known via "ospf 1", distance 110, metric 40, type extern 1

Last update from 192.168.34.3 on Ethernet0/0, 00:28:45 ago

Routing Descriptor Blocks:

* 192.168.34.3, from 0.0.0.2, 00:28:45 ago, via Ethernet0/0

Route metric is 40, traffic share count is 1

以下是去除开销值时 R4 上的配置和 show ip route 命令输出：

interface Ethernet0/2

ip address 192.168.24.4 255.255.255.0

ip ospf network point-to-point

ip ospf 1 area 99

end

R4#show ip route 10.1.1.1

Routing entry for 10.1.1.1/32

Known via "ospf 1", distance 110, metric 30, type extern 1

Last update from 192.168.24.2 on Ethernet0/2, 00:00:13 ago

Routing Descriptor Blocks:

* 192.168.24.2, from 0.0.0.2, 00:00:13 ago, via Ethernet0/2     <<< Route changed back to R2

Route metric is 30, traffic share count is 1

故障排除

当前没有故障排除此配置的特定可用资料。