IP : Open Shortest Path First(OSPF)

OSPF フォワーディング アドレスに関する一般的なルーティング問題

2016 年 10 月 27 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2014 年 4 月 4 日) | 英語版 (2015 年 8 月 22 日) | フィードバック


目次


概要

このドキュメントでは、Open Shortest Path First(OSPF)フォワーディング アドレスに関する概念と問題について説明します。 『Why Are Some OSPF Routes in the Database but Not the Routing Table?』を参照してください。 OSPF のトラブルシューティングの詳細については

この資料で説明される問題は Cisco IOS とだけ観察可能ですか。 先のソフトウェア リリースより 12.1(3)。 Cisco IOS ソフトウェア リリース 12.1(3) 以降では、再配布の動作は変更されています。 詳細については、CSCdp72526登録ユーザ専用)を参照してください。 この不具合には、影響を受ける Cisco IOS ソフトウェア リリースおよび修正されたバージョンのリストが提供されています。 また、Cisco IOS の動作の変更について説明している『接続ネットワークの OSPF への再配送』も参照してください。

前提条件

要件

このドキュメントの読者は次のトピックについて理解している必要があります。

  • IP ルーティング全般

  • OSPF ルーティング プロトコルの概念と条件

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づくものです。

  • Cisco 2503 ルータ

  • Cisco IOS(R) すべてのルータで動作するソフトウェア リリース 12.2(24a)

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 ネットワークが稼働中の場合は、コマンドが及ぼす潜在的な影響を十分に理解しておく必要があります。

表記法

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

OSPF 転送アドレスの記述

OSPF フォワーディング アドレスの概念は、次の図に示すように、外部の Autonomous System(AS; 自律システム)へトラフィックをルーティングするときの余分なホップを防止するために導入されました。

/image/gif/paws/13682/10a.gif

この図で、OSPF ドメインには外部ドメインに接続された 2 台のルータがあります。 ただし、Router 1 のみが Router 100 とルーティング情報を交換しています。 Router 1 は Router 100 から学習した情報を OSPF に再配布し、その情報を残りの OSPF ドメインにアドバタイズします。 これで、Router 1 は OSPF ドメインに再配布される情報のネクストホップ(またはフォワーディング アドレス)になります。 Router 2 は、OSPF ドメインから外部ドメインのアドレス宛てのパケットを受信すると、それを Router 1 に転送します。Router 1 はそのパケットを Router 100 に転送します。 フォワーディング アドレスの概念を使用すると、Router 1 が他のルータの IP アドレスをフォワーディング アドレスとして指定できるため、この余分なホップを防止できます。 上の図で、Router 1 は外部情報のフォワーディング アドレスとして Router 100 を指定し、それを Router 1 が OSPF ドメインに再配布できます。 Router 2 は、OSPF ドメインから外部ドメインのアドレス宛てのパケットを受信すると、それを Router 100 に転送します。 その結果、Router 1 を経由する余分なホップが防止されます。

Autonomous System Boundary Router(ASBR; 自律システム境界ルータ)(上の図の Router 1)が指定するフォワーディング アドレスの値は、0.0.0.0 または 0 以外の値です。 0.0.0.0 というアドレスは、配布元のルータ(ASBR)がネクストホップであることを示しています。 転送アドレスは次の条件によって決定されます。

  • ASBR がルートを再配布し、そのルートのネクストホップ インターフェイス上で OSPF が有効になっていない場合、フォワーディング アドレスは 0.0.0.0 に設定されます。 上の図で Router 1 のイーサネット インターフェイスで OSPF が有効になっていない場合に、この状態になります。

  • 次の条件によって、フォワーディング アドレス フィールドが 0 以外のアドレスに設定されます。

    • ASBR のネクストホップ インターフェイスで OSPF が有効になっている

    • ASBR のネクストホップ インターフェイスが OSPF でパッシブ インターフェイスでない

    • ASBR のネクストホップ インターフェイスがポイントツーポイントでない

    • ASBR のネクストホップ インターフェイスがポイントツーマルチポイントでない

    • ASBR のネクストホップ インターフェイス アドレスが、router ospf コマンドで指定されたネットワーク範囲に入っている

  • これ以外の条件では、フォワーディング アドレスが 0.0.0.0 になります。

フォワーディング アドレスの設定方法およびパス選択への影響の詳細は、『フォワーディング アドレスのタイプ 5 LSA パス選択への影響』を参照してください。

フォワーディング アドレスに関連した一般的な OSPF ルーティング問題

/image/gif/paws/13682/10b_01.gif

RIP のみを実行している(RIP のみのネットワークに接続されている)R2513 ルータが、上の図のトークン リング ネットワークに追加されました。 R2513 から学習したルートが ASBR(R2515)によって OSPF に再配布されたときに、一部のルータのルーティング テーブルにはいくつかのルートがインストールされません。 それぞれのルータの対応する構成情報を次の表に示します。

hostname R2504
interface Serial0
ip address 1.1.1.2 255.255.255.0
         
interface TokenRing0
ip address 3.3.4.2 255.255.255.0
         
router ospf 1
network 1.1.1.0 0.0.0.255 area 0
network 3.0.0.0 0.255.255.255 area 1
area 1 range 3.0.0.0 255.0.0.0

ホスト名 R2507
interface Serial0
ip address 1.1.1.1 255.255.255.0
         
interface Serial1
ip address 7.7.7.1 255.255.255.0
         
router ospf 1
network 1.1.1.1 0.0.0.0 area 0
default- information originate metric 20
         
ip route 0.0.0.0 0.0.0.0 Serial1 

ホスト名 R2513
interface TokenRing0
ip address 3.3.4.4 255.255.255.0
       
interface ethernet 0
ip address 200.1.1.4 255.255.255.0
       
router rip
network 3.0.0.0
network 200.1.1.0

ホスト名 R2515
interface TokenRing0
ip address 3.3.4.3 255.255.255.0
       
interface ethernet 0
ip address 3.44.66.3 255.255.255.0
       
interface ethernet 1
ip address 3.22.88.3 255.255.255.0
       
router ospf 1
redistribute rip metric 20 subnets
network 0.0.0.0 255.255.255.255 area 1
       
router rip
network 3.0.0.0

passive-interface ethernet 0
passive-interface ethernet 1

表に示した構成から、R2515 が RIP を OSPF に再配布し、R2504(Area Border Router(ABR; エリア境界ルータ))が集約ネットワーク 3.0.0.0/8 を作成することがわかります。

OSPF が有効になっているルータのそれぞれのルーティング テーブルを次に示します。

R2507# 
show ip route

Gateway of last resort is 0.0.0.0 to network 0.0.0.0
         1.0.0.0/ 24 is subnetted, 1 subnets
C          1.1.1.0 is directly connected, Serial0
         3.0.0.0/ 8 is variably subnetted, 4 subnets, 2 masks
O IA        3.0.0.0/ 8 [110/ 70] via 1.1.1.2, 00: 15: 37, Serial0
O E2        3.3.4.0/ 24 [110/ 20] via 1.1.1.2, 00: 06: 37, Serial0
O E2        3.22.88.0/ 24 [110/ 20] via 1.1.1.2, 00: 06: 37, Serial0
O E2        3.44.66.0/ 24 [110/ 20] via 1.1.1.2, 00: 06: 37, Serial0
          7.0.0.0/ 24 is subnetted, 1 subnets
C           7.7.7.0 is directly connected, Serial1
S*     0.0.0.0/ 0 is directly connected, Serial1


R2504# show ip route
Gateway of last resort is 1.1.1.1 to network 0.0.0.0
            1.0.0.0/ 24 is subnetted, 1 subnets
C             1.1.1.0 is directly connected, Serial0
            3.0.0.0/ 8 is variably subnetted, 4 subnets, 2 masks
S             3.0.0.0/ 8 is directly connected, Null0
C             3.3.4.0/ 24 is directly connected, TokenRing0
O             3.22.88.0/ 24 [110/ 11117] via 3.3.4.3, 00: 15: 16, TokenRing0
O             3.44.66.0/ 24 [110/ 11117] via 3.3.4.3, 00: 15: 16, TokenRing0
O  E2 200.1.1.0/ 24 [110/ 20] via 3.3.4.4, 00: 06: 16, TokenRing0
O* E2 0.0.0.0/ 0 [110/ 20] via 1.1.1.1, 00: 15: 16, Serial0

R2515# show ip route
 Gateway of last resort is 3.3.4.2 to network 0.0.0.0
            1.0.0.0/ 24 is subnetted, 1 subnets
 O IA         1.1.1.0 [110/ 70] via 3.3.4.2, 00: 10: 28, TokenRing0
            3.0.0.0/ 24 is subnetted, 3 subnets
 C            3.3.4.0 is directly connected, TokenRing0
 R          200.1.1.0/ 24 [120/ 1] via 3.3.4.4, 00: 00: 10, TokenRing0
 O* E2 0.0.0.0/ 0 [110/ 20] via 3.3.4.2, 00: 10: 28, TokenRing0

ルーティング テーブルにないネットワーク

R2515 には、ネットワーク 200.1.1.0/24 の RIP(R)由来のルートがあります。 R2515 は ASBR で、RIP プロトコルを OSPF に再配布します。 R2504 は ネットワーク 200.1.1.0/24 について R2515 から学習し、それを OSPF 外部タイプ 2(E2)ルートとして自身のルーティング テーブルにインストールします。 問題は、R2507 のルーティング テーブルにネットワーク 200.1.1.0/24 がないことです。

ネットワーク 3.3.4.0/24、3.22.88.0/24、および 3.44.66.0/24 がすべて 3.0.0.0/8 のサマリーに含まれていても、R2507 にはこれらのネットワークの外部ルートがあります。

これらの外部ルートが表示される理由は、RIP を OSPF に再配布する ASBR が、これら 3 つのサブネットで RIP を実行し、 その結果サブネットを外部ルートとして OSPF に再配布するからです。 これらのサブネットは外部ルートであるため、ABR(R2504)によって集約されません。 外部 OSPF ルートを集約できるのは ASBR のみです。 この場合、R2515 です。 ABR はエリア 1 からエリア 0 へ、内部 OSPF ルートのみを集約します。

Cisco Bug ID CSCdp72526登録ユーザ専用)により修正されたため、オーバーラップした外部ネットワークについては、OSPF はタイプ 5 のリンクステート アドバタイズメント(LSA)を生成しません。 R2507 には 3.0.0.0/8 のサマリー エリア間ルートのみがあります。 そこで R2507 は 200.1.1.0/24 をフォワーディング アドレスとしてインストールし、このアドレスにはエリア間ルート 3.0.0.0/8 経由で到達できます。 これは RFC 2328 に準拠しています。leavingcisco.com

この出力は、R2507 の OSPF データベース内のネットワーク 200.1.1.0/24 の外部 LSA を示しています。

R2507# 
show ip ospf data external 200.1.1.0

       OSPF Router with ID (7.7.7.1) (Process ID 1)
       Type- 5 AS External Link States
       LS age: 72
       Options: (No TOS- capability, DC)
       LS Type: AS External Link
       Link State ID: 200.1.1.0 (External Network Number )
       Advertising Router: 3.44.66.3
       LS Seq Number: 80000001
       Checksum: 0xF161
       Length: 36
       Network Mask: /24
                   Metric Type: 2 (Larger than any link state path)
                   TOS: 0
                   Metric: 20
                   Forward Address: 3.3.4.4
                   External Route Tag: 0

OSPF を使用すると、ASBR が別のルータを外部ルートへのフォワーディング アドレスとして指定できます。 この場合、ASBR(R2515)は外部ネットワーク 200.1.1.0 のフォワーディング アドレスとして、3.3.4.4 を指定しています。

RFC 2328 、16.4 項(AS 外部ルートの計算)には次のように書かれています。leavingcisco.com

「フォワーディング アドレスが 0 以外の場合は、ルーティング テーブルでフォワーディング アドレスを検索します。 対応するルーティング テーブルのエントリは、エリア内パスまたはエリア間パスを指定する必要があります。 そのようなパスが存在しない場合は、LSA で何も行わず、リスト内で次のエントリを検討します。」

この例の場合、フォワーディング アドレス 3.3.4.4 へのルートは次のとおりです。

R2507# 
show ip route 3.3.4.4

       Routing entry for 3.3.4.0/ 24
           Known via "ospf 1", distance 110, metric 20,type extern 2, forward metric 70
           Redistributing via ospf 1
           Last update from 1.1.1.2 on Serial0, 00: 00: 40 ago
           Routing Descriptor Blocks:
           * 1.1.1.2, from 3.44.66.3, 00: 00: 40 ago, via Serial0
              Route metric is 20, traffic share count is 1

最長一致ルールにより、フォワーディング アドレス 3.3.4.4 は、エリア間サマリー ルートの 3.0.0.0/8 ではなく、外部ルート 3.3.4.0/24 に一致しています。 フォワーディング アドレスへの内部 OSPF ルートがルータにないため、ルーティング テーブルに外部ルート 200.1.1.0/24 はインストールされません。 他の外部ルートへ到達するために外部ルートを使用すると、ループが発生する可能性があります。 このため、OSPF は外部ルートの使用を禁止しています。

ABR 上で集約しないこと

この 0 以外のフォワーディング アドレスが、エリア内ルートまたはエリア間ルートとしてルーティング テーブルの中に存在することを確実にするには、どうしたらよいでしょうか。

第 1 の解決策は、ABR で集約を行わないことです。

第 2 の解決策は、LSA タイプ 3 フィルタリングを設定しないことです。 タイプ 3 のルートをフィルタリングすると、show ip ospf database external コマンドの出力に表示されるフォワーディング アドレスに到達できなくなります。 これにより、外部ネットワークが到達不能になります。 この場合は R2504 です。 これにより、他のエリアのすべての特定のサブネットのエリア間ルートが(外部ルートの代わりに)、エリア 0 のルータに設定されます。

次のコマンドを使用して、ABR の集約を削除します。

R2504(config)# 
router ospf 1

R2504(config- router)# no area 1 range 3.0.0.0 255.0.0.0

このコマンドを実行すると、R2507 のルーティング テーブルは次のようになります。

R2507# show ip route
       Gateway of last resort is 0.0.0.0 to network 0.0.0.0
                 1.0.0.0/ 24 is subnetted,        1 subnets
       C            1.1.1.0        is directly connected, Serial0
                 3.0.0.0/ 24 is subnetted,        3 subnets
       O IA      3.3.4.0 [110/ 70] via 1.1.1.2, 00: 00:        48, Serial0
       O IA      3.22.88.0 [110/ 80] via 1.1.1.2, 00:        00: 48, Serial0
       O IA      3.44.66.0 [110/ 80] via 1.1.1.2, 00:        00: 48, Serial0
                 7.0.0.0/ 24 is subnetted,        1 subnets
       C           7.7.7.0 is        directly connected, Serial1
       O E2 200.1.1.0/ 24 [110/ 20] via 1.1.1.2, 00: 00: 48, Serial0
       S*     0.0.0.0/ 0 is directly connected, Serial1
	   
	  R2507# show ip route 3.3.4.4
     Routing entry for 3.3.4.0/24
      Known via "ospf 1", distance 110, metric 70, type inter area
      Last update from 1.1.1.2 on Serial1, 00:03:52 ago
      Routing Descriptor Blocks:
      * 1.1.1.2, from 3.3.4.2, 00:03:52 ago, via Serial1
          Route metric is 74, traffic share count is 1

出力から、アドレス 3.3.4.4 には、ネットワーク 3.3.4.0/24 へのエリア間ルートを経由して到達可能であることがわかります。 ルータ R2507 は ABR R2504 の集約が削除された後、タイプ 5 LSA およびタイプ 3 LSA の両方から、このネットワークへのルートを学習します。 OSPF では、同じネットワークへの外部ルートよりもエリア間ルートの方が優先されるため、このルートはエリア間ルートとしてインストールされます。 これで R2507 には、フォワーディング アドレス 3.3.4.4 へのエリア間ルートがあるため、外部ネットワーク 200.1.1.0/24 もルーティング テーブルにインストールされます。

NSSA(Not So Stubby Area)を使用しており、NSSA ABR でタイプ 3 LSA フィルタリングが実行された場合、フォワーディング アドレスへの到達不能という同じ問題が起こります。

サブネットが外部ルートとして OSPF に再配布されることの防止

もう 1 つの解決策は、外部ルート上で OSPF が動作しているため、サブネット 3.3.4.0 が外部ルートとして OSPF に再配布されることを防止することです。 次の設定コマンドを ASBR(R2515)で実行するとルート マップが作成されます。 このルート マップは、ネットワーク 200.1.1.0/24 のみが OSPF に再配布されるようにするために、redistribute コマンドで使用されます。 ABR(R2504)はそれでも、エリア 1 からエリア 0 へ内部 OSPF ルートを集約します。

R2515# configure terminal
R2515(config)# router ospf 1
R2515(config-router)# redistribute rip metric 20 subnets route-map rip_to_ospf_filter
R2515(config-router)# exit
   
R2515(config)# 
access-list 28 permit 200.1.1.0 0.0.0.255
   
R2515(config)# 
route-map rip_to_ospf_filter permit 10
R2515(config-route-map)# 
match ip address 28

このコマンドを実行すると、R2507 のルーティング テーブルは次のようになります。

R2507# show ip route
       Gateway of last resort is 0.0.0.0 to network 0.0.0.0
                 1.0.0.0/ 24 is subnetted,        1 subnets
       C            1.1.1.0        is directly connected, Serial0
       O IA  3.0.0.0/ 8 [110/ 70] via 1.1.1.2, 00: 07: 05, Serial0
                 7.0.0.0/ 24 is subnetted,        1 subnets
       C            7.7.7.0        is directly connected, Ethernet0
       O E2  200.1.1.0/ 24 [110/ 20] via 1.1.1.2, 00: 00: 21, Serial0
       S*      0.0.0.0/ 0 is directly connected, Ethernet0

ルーティング テーブルの外部ルートは 200.1.1.0/24 のみです。 このネットワークがルーティング テーブルに含まれているのは、この外部ネットワーク(3.3.4.1)のフォワーディング アドレスが、エリア内ルートであるサマリー ルート 3.0.0.0/8 で解決されるからです。


関連情報


Document ID: 13682