OSPFのループバックインタフェースのアドバタイズ

RIP/EIGRPと違って、OSPFではループバックインタフェースのアドバタイズが特殊です。OSPFでは、ループバックインタフェースのルート情報を/32のホストルートとしてアドバタイズします。

たとえば、以下の図のR2でLoopback0にIPアドレス10.0.0.2/24を設定して、OSPFでアドバタイズします。すると、10.0.0.0/24ではなく10.0.0.2/32のホストルートをアドバタイズします。

図 ループバックインタフェースのルートはホストルート
図 ループバックインタフェースのルートはホストルート

ループバックインタフェースの先には、他のホストが接続されることはありません。そのため、ループバックインタフェースにIPアドレスを設定するときにはサブネットマスク/32とすることも多いでしょう。ただ、OSPFの動作を検証するときなど、ループバックインタフェースのルートを設定されているサブネットマスクでアドバタイズしたいことも出てくると思います。そのための方法として、以下の3通りあります。

  1. ネットワークタイプをPOINT_TO_POINTにする
  2. ループバックインタフェースのルートを集約する
  3. ループバックインタフェースのルートをOSPFに再配送する

一番シンプルで素直な方法は、ネットワークタイプをPOINT_TO_POINTにすることです。その他の方法は、こんな風にもできますよという程度で理解してください。

以降、Ciscoルータを利用して、OSPFでのループバックインタフェースのアドバタイズについて具体的に解説します。

ネットワーク構成

次のシンプルなネットワーク構成で、OSPFでのループバックインタフェースのアドバタイズを考えます。

図 ループバックインタフェースのアドバタイズ ネットワーク構成
図 ループバックインタフェースのアドバタイズ ネットワーク構成

R1およびR2のFa0/0でOSPFを有効化しエリア0のインタフェースとして、ネイバーとなっている状態から話を進めます。R2には、4つのループバックインタフェースを作成しています。

Lo0:10.0.0.2/24
Lo1:10.1.1.2/24
Lo2:10.2.2.2/24
Lo3:10.3.3.2/24

Lo0のルートはデフォルトの/32のホストルートとして扱います。そして、Lo1~Lo3のルートをサブネットマスク/24でアドバタイズするようにします。

Lo0のルートのアドバタイズ

Lo0でOSPFを有効化して、Lo0のルートをOSPFでアドバタイズします。

R2

router ospf 1
 network 10.0.0.0 0.0.0.255 area 0

特別な設定は行っていないので、Lo0のルートは/32のホストルート「10.0.0.2/32」でアドバタイズされます。R2でshow ip ospf interface loopback0を見ると、ネットワークタイプが「LOOPBACK」となっています。

R2

R2#show ip ospf interface loopback 0
Loopback0 is up, line protocol is up
  Internet Address 10.0.0.2/24, Area 0
  Process ID 1, Router ID 2.2.2.2, Network Type LOOPBACK, Cost: 1
  Loopback interface is treated as a stub Host

そして、R1のルーティングテーブルは以下の通りです。

R1

R1#show ip route ospf
     10.0.0.0/32 is subnetted, 1 subnets
O       10.0.0.2 [110/11] via 192.168.12.2, 00:33:56, FastEthernet0/0

図 ループバックインタフェースのルートはホストルート
図 ループバックインタフェースのルートはホストルート

Lo1のルートのアドバタイズ

次にLo1のルートをホストルートではなく、設定されいてるサブネットマスクの10.1.1.0/24でアドバタイズします。そのためには、Lo1でネットワークタイプをPOINT_TO_POINTに変更します。

R2

interface Loopback1
 ip ospf network point-to-point
!
router ospf 1
 network 10.1.1.0 0.0.0.255 area 0

ネットワークタイプをPOINT_TO_POINTにすることで、R2から10.1.1.0/24のルートがアドバタイズされます。R1のルーティングテーブルは以下の通りです。

R1

R1#show ip route ospf
     10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
O       10.0.0.2/32 [110/11] via 192.168.12.2, 00:43:58, FastEthernet0/0
O       10.1.1.0/24 [110/11] via 192.168.12.2, 00:01:06, FastEthernet0/0

図 ネットワークタイプをPOINT_TO_POINTにする

このように、ループバックインタフェースのネットワークタイプをPOINT_TO_POINTに変更することが、設定されているサブネットマスクのルートとしてアドバタイズする一番シンプルな方法です。

Lo2のルートのアドバタイズ

Lo2のルートも/24でアドバタイズします。/32のサブネットマスクを/24に集約します。OSPFで集約を行うには、ABRでなければいけません。Lo2が所属するエリアを1として、R2をABRにしてR2で集約ルートを生成します。

R2

router ospf 1
 network 10.2.2.0 0.0.0.255 area 1
 area 1 range 10.2.2.0 255.255.255.0

すると、R1のルーティングテーブルは以下のようになります。

R1

R1#show ip route ospf
     10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
O       10.0.0.2/32 [110/11] via 192.168.12.2, 00:52:51, FastEthernet0/0
O IA    10.2.2.0/24 [110/11] via 192.168.12.2, 00:00:10, FastEthernet0/0
O       10.1.1.0/24 [110/11] via 192.168.12.2, 00:09:59, FastEthernet0/0

集約するためにLo2をエリア1にしているので、コード「O IA」でルーティングテーブルに登録されます。

図 ループバックインタフェースのルートを集約
図 ループバックインタフェースのルートを集約

Lo3のルートのアドバタイズ

最後に、Lo3のルートも/24でアドバタイズします。ループバックインタフェースでOSPFを有効にするのではなく、ConnectedをOSPFに再配送すれば設定されているサブネットマスクのルートとして扱うことができます。R2の以下の設定で、Lo3のConnectedのルートをOSPFへ再配送します。

R2

router ospf 1
 redistribute connected subnets route-map Lo3
!
route-map Lo3 permit 10
 match interface Loopback3

R1のルーティングテーブルでは、10.3.3.0/24が以下のように見えます。

R1

R1#show ip route ospf
     10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
O       10.0.0.2/32 [110/11] via 192.168.12.2, 01:02:09, FastEthernet0/0
O E2    10.3.3.0/24 [110/20] via 192.168.12.2, 00:01:16, FastEthernet0/0
O IA    10.2.2.0/24 [110/11] via 192.168.12.2, 00:09:28, FastEthernet0/0
O       10.1.1.0/24 [110/11] via 192.168.12.2, 00:19:17, FastEthernet0/0

再配送しているので10.3.3.0/24はコード「O E2」でルーティングテーブルに登録されています。

図 Connectedを再配送
図 Connectedを再配送

まとめ

ポイント

  • OSPFでは、ループバックインタフェースのルートを/32のホストルートとしてアドバタイズします。
  • ループバックインタフェースのルートを設定されているサブネットマスクでアドバタイズするには、以下の方法があります。
    • ネットワークタイプをPOINT_TO_POINTにする
    • ループバックインタフェースのルートを集約する
    • ループバックインタフェースのルートをOSPFに再配送する

OSPFの仕組み