内容

概要

前提条件

要件

使用するコンポーネント

表記法

問題

この問題が発生する理由

解決方法

解決策 1

解決策 2

関連情報

概要

この資料では、Open Shortest Path First（OSPF）プロセス間で再配布が行われる際に、最適ではないルーティングが生じる問題について説明し、さらにその解決策を紹介します。

前提条件

要件

このドキュメントに特有の要件はありません。

使用するコンポーネント

このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期（デフォルト）設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。

表記法

ドキュメント表記の詳細は、「シスコ テクニカル ティップスの表記法」を参照してください。

問題

ネットワーク上の複数の箇所にある別々の OSPF プロセス間で再配布が行われるとき、最適なルーティングが行われない状態、さらに悪い場合にはルーティング ループの状態に陥る場合があります。

次のトポロジには、OSPF 1 と OSPF 2 のプロセスが存在します。ルータ 1（R1）およびルータ 2（R2）は、OSPF 1 から OSPF 2 へ再配布を行っています。

ルータ R1 と R2 の設定は次のとおりです。

R1

hostname r1

!

ip subnet-zero

!

interface Loopback0

ip address 10.255.255.1 255.255.255.255

!

interface Loopback1

ip address 192.168.255.1 255.255.255.255

!

interface Ethernet0/0

ip address 10.0.0.1 255.255.255.0

!

interface Ethernet1/0

ip address 192.168.0.1 255.255.255.0

!

router ospf 1

router-id 10.255.255.1

log-adjacency-changes

passive-interface Loopback0

network 10.0.0.0 0.0.0.255 area 0

network 10.255.255.1 0.0.0.0 area 0

!

router ospf 2

router-id 192.168.255.1

log-adjacency-changes

redistribute ospf 1 subnets match internal

!--- Redistributing OSPF 1 into OSPF 2.

passive-interface Loopback1

network 192.168.0.0 0.0.0.255 area 0

network 192.168.255.1 0.0.0.0 area 0

!

ip classless

!

end

R2

hostname r2

!

ip subnet-zero

!

interface Loopback0

ip address 10.255.255.2 255.255.255.255

!

interface Loopback1

ip address 192.168.255.2 255.255.255.255

!

interface Ethernet0/0

ip address 10.0.0.2 255.255.255.0

!

interface Ethernet1/0

ip address 192.168.0.2 255.255.255.0

!

router ospf 1

router-id 10.255.255.2

log-adjacency-changes

passive-interface Loopback0

network 10.0.0.0 0.0.0.255 area 0

network 10.255.255.2 0.0.0.0 area 0

!

router ospf 2

router-id 192.168.255.2

log-adjacency-changes

redistribute ospf 1 subnets match internal

!--- Redistributing OSPF 1 into OSPF 2.

passive-interface Loopback1

network 192.168.0.0 0.0.0.255 area 0

network 192.168.255.2 0.0.0.0 area 0

!

ip classless

end

上記のトポロジでは、R4のE1/0はエリア1にあり、E0/0はエリア0にあります。したがって、R4はエリア間(IA)ルートとしてネットワーク10.0.1.0/24をアドバタイズするエリア境界ルータ(ABR)です。R1とR2はこの情報をに再配布しますOSPF 2. redistribute設定コマンドは、R1とR2の上記の設定で強調表示されています。したがって、R1とR2は、OSPF 1を介して10.0.1.0/24をIAとして、外部リンクステートアドバタイズメント(LSA)がを伝搬するため、OSPF 2をををを介介介してしてして外部タイプ2(E2)としてOSPF 2ドメイン。

IAルートは常にE1ルートまたはE2ルートよりも優先されるため、R1とR2のルーティングテーブルでは10.0.1.0/24がネクストホップR4のIAルートであることがわかります。ただし、ルーティングテーブルを表示すると、10.0.1.0/24はネクストホップR4のIAルートです10.0.1.0/24はネクストホップR1を持つE2ルートです。

これは、R1 に対して実行した show ip route コマンドの出力です。

r1#show ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP

i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area

* - candidate default, U - per-user static route, o - ODR

P - periodic downloaded static route

!--- The gateway of the last resort is not set.

10.0.0.0/8 is variably subnetted, 5 subnets, 2 masks

O E2    10.255.255.2/32 [110/1] via 192.168.0.2, 00:24:21, Ethernet1/0

C       10.0.0.0/24 is directly connected, Ethernet0/0

O IA    10.0.1.0/24 [110/20] via 10.0.0.4, 00:23:49, Ethernet0/0

C       10.255.255.1/32 is directly connected, Loopback0

O IA    10.255.255.4/32 [110/11] via 10.0.0.4, 00:23:49, Ethernet0/0

192.168.255.0/32 is subnetted, 3 subnets

O       192.168.255.3 [110/11] via 192.168.0.3, 00:26:09, Ethernet1/0

O       192.168.255.2 [110/11] via 192.168.0.2, 00:26:09, Ethernet1/0

C       192.168.255.1 is directly connected, Loopback1

C    192.168.0.0/24 is directly connected, Ethernet1/0

O    192.168.1.0/24 [110/20] via 192.168.0.3, 00:26:09, Ethernet1/0

これは、R2 に対して実行した show ip route コマンドの出力です。

r2#show ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP

i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area

* - candidate default, U - per-user static route, o - ODR

P - periodic downloaded static route

!--- The gateway of last resort is not set.

10.0.0.0/8 is variably subnetted, 5 subnets, 2 masks

C       10.255.255.2/32 is directly connected, Loopback0

C       10.0.0.0/24 is directly connected, Ethernet0/0

O E2    10.0.1.0/24 [110/20] via 192.168.0.1, 00:25:34, Ethernet1/0

O E2    10.255.255.1/32 [110/1] via 192.168.0.1, 00:25:34, Ethernet1/0

O E2    10.255.255.4/32 [110/11] via 192.168.0.1, 00:25:34, Ethernet1/0

192.168.255.0/32 is subnetted, 3 subnets

O       192.168.255.3 [110/11] via 192.168.0.3, 00:26:45, Ethernet1/0

C       192.168.255.2 is directly connected, Loopback1

O       192.168.255.1 [110/11] via 192.168.0.1, 00:26:45, Ethernet1/0

C    192.168.0.0/24 is directly connected, Ethernet1/0

O    192.168.1.0/24 [110/20] via 192.168.0.3, 00:26:45, Ethernet1/0

この問題が発生する理由

ルータで複数の OSPF プロセスを有効にした場合、ソフトウェアから見ると、それらのプロセスは独立しています。1 つの OSPF プロセス内の OSPF プロトコルでは、常に外部ルートよりも内部ルートが優先されます。ただし、OSPF はプロセス間での OSPF ルート選択を行いません（たとえば、どのプロセスのルートをルーティング テーブルにインストールするべきかを決定する際に、OSPF メトリックおよびルート タイプは考慮されません）。

異なる OSPF プロセス間で相互作用はないため、選出する要因はアドミニストレーティブ ディスタンスです。したがって、両方の OSPF プロセスがデフォルトのアドミニストレーティブ ディスタンスとして 110 を持っている場合は、ルートを設定しようとする最初のプロセスがルーティング テーブルへの書き込みを行います。このため、異なる OSPF プロセスからのルートのアドミニストレーティブ ディスタンスには異なる値を設定する必要があります。それによって、特定の OSPF プロセスのルートが、偶然ではなく、意図的に別のプロセスより優先されます。

管理上の距離に関する詳細は、「管理上の距離の概要」を参照してください。シスコのルータがルートを選択してルーティング テーブルに記載する方法の詳細については、「Cisco ルータにおける経路の選択」を参照してください。

解決方法

解決策 1

上記の場合、ルータはアドミニストレーティブディスタンスに基づいて最適ルートを選択しています。この動作を防ぐ論理的な方法は、OSPF 1からOSPF 2に再配布される外部ルートよりもOSPF 1を介して学習されたルートが優先されます次の設定に示します。

R1

hostname r1

!

ip subnet-zero

!

interface Loopback0

ip address 10.255.255.1 255.255.255.255

!

interface Loopback1

ip address 192.168.255.1 255.255.255.255

!

interface Ethernet0/0

ip address 10.0.0.1 255.255.255.0

!

interface Ethernet1/0

ip address 192.168.0.1 255.255.255.0

!

router ospf 1

router-id 10.255.255.1

log-adjacency-changes

passive-interface Loopback0

network 10.0.0.0 0.0.0.255 area 0

network 10.255.255.1 0.0.0.0 area 0

!

router ospf 2

router-id 192.168.255.1

log-adjacency-changes

redistribute ospf 1 subnets match internal

passive-interface Loopback1

network 192.168.0.0 0.0.0.255 area 0

network 192.168.255.1 0.0.0.0 area 0

distance ospf external 115

!--- Increases the administrative distance of external !--- routes to 115.

!

ip classless

!

end

R2

hostname r2

!

ip subnet-zero

!

interface Loopback0

ip address 10.255.255.2 255.255.255.255

!

interface Loopback1

ip address 192.168.255.2 255.255.255.255

!

interface Ethernet0/0

ip address 10.0.0.2 255.255.255.0

!

interface Ethernet1/0

ip address 192.168.0.2 255.255.255.0

!

router ospf 1

router-id 10.255.255.2

log-adjacency-changes

passive-interface Loopback0

network 10.0.0.0 0.0.0.255 area 0

network 10.255.255.2 0.0.0.0 area 0

!

router ospf 2

router-id 192.168.255.2

log-adjacency-changes

redistribute ospf 1 subnets match internal

passive-interface Loopback1

network 192.168.0.0 0.0.0.255 area 0

network 192.168.255.2 0.0.0.0 area 0

distance ospf external 115

!--- Increases the administrative distance of !--- external routes to 115.

!

ip classless

!

end

OSPF 2 にある外部ルートの管理上の距離を変更した結果のルーティング テーブルを次に示します。

これは、R1 に対して実行した show ip route コマンドの出力です。

r1#show ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP

i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area

* - candidate default, U - per-user static route, o - ODR

P - periodic downloaded static route

!--- The gateway of the last resort is not set.

10.0.0.0/8 is variably subnetted, 5 subnets, 2 masks

O       10.255.255.2/32 [110/11] via 10.0.0.2, 00:00:35, Ethernet0/0

C       10.0.0.0/24 is directly connected, Ethernet0/0

O IA    10.0.1.0/24 [110/20] via 10.0.0.4, 00:00:35, Ethernet0/0

C       10.255.255.1/32 is directly connected, Loopback0

O       10.255.255.4/32 [110/11] via 10.0.0.4, 00:00:35, Ethernet0/0

192.168.255.0/32 is subnetted, 3 subnets

O       192.168.255.3 [110/11] via 192.168.0.3, 00:00:35, Ethernet1/0

O       192.168.255.2 [110/11] via 192.168.0.2, 00:00:35, Ethernet1/0

C       192.168.255.1 is directly connected, Loopback1

C    192.168.0.0/24 is directly connected, Ethernet1/0

O    192.168.1.0/24 [110/20] via 192.168.0.3, 00:00:35, Ethernet1/0

これは、R2 に対して実行した show ip route コマンドの出力です。

r2#show ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP

i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area

* - candidate default, U - per-user static route, o - ODR

P - periodic downloaded static route

!--- The gateway of the last resort is not set.

10.0.0.0/8 is variably subnetted, 5 subnets, 2 masks

C       10.255.255.2/32 is directly connected, Loopback0

C       10.0.0.0/24 is directly connected, Ethernet0/0

O       10.255.255.1/32 [110/11] via 10.0.0.1, 00:01:28, Ethernet0/0

O IA    10.0.1.0/24 [110/20] via 10.0.0.4, 00:01:28, Ethernet0/0

O       10.255.255.4/32 [110/11] via 10.0.0.4, 00:01:28, Ethernet0/0

192.168.255.0/32 is subnetted, 3 subnets

O       192.168.255.3 [110/11] via 192.168.0.3, 00:01:28, Ethernet1/0

C       192.168.255.2 is directly connected, Loopback1

O       192.168.255.1 [110/11] via 192.168.0.1, 00:01:28, Ethernet1/0

C    192.168.0.0/24 is directly connected, Ethernet1/0

O    192.168.1.0/24 [110/20] via 192.168.0.3, 00:01:28, Ethernet1/0

OSPF 2 から OSPF 1 への再配布もあり、さらに OSPF 2 へ再配布されている他のルーティング プロトコル（Routing Information Protocol [RIP]、Enhanced Interior Gateway Routing Protocol（EIGRP）のスタティック ルートなど）がある場合などには、それらの外部ルートに対して OSPF 2 内で最適でないルーティングが生じる可能性があることに十分に注意してください。

解決策 2

2 つの異なる OSPF プロセスを実装する根本的な目的が、あるルートをフィルタすることである場合には、OSPF ABR Type 3 LSA フィルタリングと呼ばれる Cisco IOS® ソフトウェア リリース 12.2(4)T の新機能を使用できます。これにより、ABR でルートのフィルタリングが行えるようになります。

上記の例では、OSPF 2 の一部のリンクを 2 つめの OSPF プロセスとしては設定せず、OSPF 1 内の別のエリアとして設定することができます。その場合、この新機能を使用して、R1 および R2 で必要とされるルートのフィルタリングを実装することができます。この機能の詳細は、「OSPF ABR Type 3 LSA フィルタリング」を参照してください。

関連情報

- OSPF に関するサポート ページ

- IP ルーティング プロトコルに関するサポート ページ

- IP ルーティングに関するサポート ページ

- テクニカルサポート - Cisco Systems