IP : IP ルーティング

OSPF プロセス間の再配布時に生じる最適でないルーティング

2002 年 11 月 3 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2008 年 1 月 1 日) | フィードバック

目次


概要

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

問題

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

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

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

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 1

  network 10.255.255.1 0.0.0.0 area 1

 !

 router ospf 2

  router-id 192.168.255.1

  log-adjacency-changes

  redistribute ospf 1 subnets match internal

  !--- OSPF 1 を 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 1

  network 10.255.255.2 0.0.0.0 area 1

 !

 router ospf 2

  router-id 192.168.255.2

  log-adjacency-changes

  redistribute ospf 1 subnets match internal

 !--- OSPF 1 を 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 は Area Border Router(ABR; エリア境界ルータ)であり、ネットワーク 10.0.1.0/24 を inter-area(IA; エリア間)ルートとして R1 と R2 にアドバタイジングしています。R1 と R2 は、この情報を OSPF 2 に再配布します。上記の R1R2 の設定では、設定コマンドの redistribute が強調表示されています。したがって、R1 と R2 の両方が 10.0.1.0/24 を OSPF 1 を経由する IA として、さらに OSPF 2 を経由する external type 2(E2; 外部タイプ 2)として学習します。これは、external link-state advertisement(LSA; リンク状態アドバタイズメント)が OSPF ドメインから漏出されているためです。

IA ルートは常に E1 または E2 ルートよりも優先されるため、R1 と R2 のルーティング テーブルには、10.0.1.0/24 はネクストホップがR4 である IA ルートとされていると考えられます。しかし、これらのルーティング テーブルを見てみると、内容はそうはなっていません。実際のルーティング テーブルでは、R1 については 10.0.1.0/24 がネクストホップに R4 を持つ IA ルートとされていますが、R2 については 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 !--- ラスト リゾート ゲートウェイは設定されていません。 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 !--- ラスト リゾート ゲートウェイは設定されていません。 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 では、エリア内ルートの方が IA ルートよりも優先されるというルート選択ルールがあります。これは外部ルートよりも優先されます。通常、このルールは同一の OSPF プロセスからのルートに対してのみ有効になり、異なるプロセスからのルートは管理上の距離のルールに従うことになります。

残念ながら、Bug ID CSCdi70011 以前(Cisco IOS(R) ソフトウェア リリース 11.0 以前)では、異なる OSPF プロセスからのルートも、依然上記のルールに従っています。Bug ID CSCdi70011(Cisco IOS ソフトウェア リリース IOS 11.1 以降)では、管理上の距離のルールが適用されています。したがって、複数の再配布が発生する場合に正常な動作が行われるようにするには、異なる OSPF プロセスからのルートに対して管理上の距離を設定する必要があります。異なる OSPF プロセスの間には相互対話がないため、ルーティング テーブルにルートを設定するプロセスを決定する際には、管理上の距離だけが考慮されます。したがって、両方の OSPF プロセスがデフォルトの管理上の距離として 110 を持っている場合は、ルートを設定しようとする最初のプロセスがルーティング テーブルへの書き込みを行います。

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

解決方法

解決方法 1

上記のケースでは、ルータが管理上の距離に基づいて最適なルートを選択していることが分かっています。このため、この問題を回避する論理的な方法は、OSPF 2 にある外部ルートの管理上の距離の値を上げることです。この方法では、OSPF 1 から学習されたルートが、OSPF 1 から OSPF 2 へ再配布される外部ルートよりも常に優先されます。これを行うには、サブルータの設定コマンドである distance ospf external <value> を、次の設定で示すように使用します。

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

 !--- 外部ルートの管理上の距離を

 !--- 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

 !--- 外部ルートの管理上の距離を

 !--- 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 !--- ラスト リゾート ゲートウェイは設定されていません。 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 !--- ラスト リゾート ゲートウェイは設定されていません。 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; Enhanced IGRP)のスタティック ルートなど)がある場合などには、それらの外部ルートに対して 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 フィルタリング」を参照してください。


関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報

Document ID: 28025