OSPFの基本的な設定手順

OSPFの基本的な設定手順は、次の2つです。

  1. OSPFルーティングプロセスの起動
  2. インタフェースでOSPFを有効化

その他にもさまざまな設定がありますが、この2つの手順でOSPFの基本的な設定はOKです。

図 OSPFの基本的な設定の流れ

OSPFルーティングプロセスの起動

OSPFルーティングプロセスを起動するには、グローバルコンフィグレーションモードで次のコマンドを入力します。

OSPFルーティングプロセスの起動

(config)#router ospf <process-id>
(config-router)#

<process-id> : OSPFプロセス番号

プロセス番号は1~65535の任意の番号を指定します。1台のルータで複数のOSPFプロセスを起動することもでき、プロセス番号はルータローカルでOSPFプロセスを識別するためのものです。ただ、特別な理由がない限り、複数のOSPFプロセスを起動することはありません。

ルータローカルで利用するので、他のルータと合わせる必要はありません。しかし、ルータごとにバラバラなプロセス番号だと設定がわかりづらくなるので、同じプロセス番号を利用することが一般的です。

インタフェースでOSPFを有効化

そして、インタフェースでOSPFを有効化するには2通りの設定があります。以前より利用している設定はOSPFのコンフィグレーションモードでのnetworkコマンドの設定です。

インタフェースでOSPFを有効化 networkコマンド

(config-router)#network <ip-address> <wildcardmask> area <area-id>

<ip-address> : IPアドレス
<wildcardmask> : ワイルドカードマスク
<area-id> : エリア番号

<ip-address> <wildcardmask>の組み合わせで、OSPFを有効化したいインタフェースに設定されているIPアドレスのビットパターンを指定します。たとえば、「192.168.0.0 0.0.255.255」であれば、先頭16ビットが「192.168」のIPアドレスのインタフェースという意味です。インタフェースでOSPFを有効化するのですが、設定上はインタフェース名ではなく「インタフェースに設定されているIPアドレスのビットパターン」を指定することになります。そして、OSPFを有効化したインタフェースが所属するエリア番号を指定します。

もう1つの設定方法は、OSPFを有効にしたいインタフェースのインタフェースコンフィグレーションモードのip ospf areaコマンドの設定です。

インタフェースでOSPFを有効化 ip ospf areaコマンド

(config-if)#ip ospf <process-id> area <area-id>

<process-id> : OSPFプロセス番号
<area-id> : エリア番号

どちらの設定方法にせよ、「インタフェースでOSPFを有効にする」ということをしっかりと意識してください。OSPFコンフィグレーションモードの設定とインタフェースコンフィグレーションモードの設定が重複している場合は、インタフェースコンフィグレーションモードの設定のほうが優先されます。

OSPFルーティングプロセスを有効化する前にインタフェースでip ospf areaコマンドを入力することもできます。その場合は、自動的にルーティングプロセスが有効化されます。

マルチエリアでABRとして設定する場合は、エリア0のインタフェースとそれ以外のエリアのインタフェースの設定を行えばよいだけです。ABRとするための特別なコマンドはありません。

OSPFの設定例

以下は、シンプルなネットワーク構成でのOSPFの設定例です。

図 OSPF設定例
図 OSPF設定例

R1の設定

R1はABRです。「network 192.168.12.0 0.0.0.255 area 0」は、IPアドレス「192.168.12.x(x:任意)」のインタフェースでOSPFを有効化してエリア0に所属させるという意味です。つまり、E0/0でOSPFを有効化して、エリア0のインタフェースとしています。そして、「network 192.168.13.1 0.0.0.0 area 1」は、IPアドレス「192.168.13.1」のインタフェース、すなわち、S1/0でOSPFを有効化してエリア1のインタフェースとする設定です。

R1(ABR)

router ospf 1
 network 192.168.12.0 0.0.0.255 area 0
 network 192.168.13.1 0.0.0.0 area 1

R2の設定

R2はインタフェースコンフィグレーションモードでのOSPF有効化の設定例です。E0/0とE0/1の2つのインタフェースでOSPFを有効にして、エリア0に所属させています。

R2

interface Ethernet 0/0
 ip ospf 1 area 0
!
interface Ethernet 0/1
 ip ospf 1 area 0
!
router ospf 1

R3の設定

そして、R3ではワイルドカードマスクの指定で、E0/1とS1/0の2つのインタフェースを1行のnetworkコマンドで有効化している例です。「network 192.168.0.0 0.0.255.255 area 1」は、IPアドレス「192.168.x.x(x:任意)」のインタフェースが対象です。すなわち、E0/1とS1/0の2つのインタフェースを一括で指定していることになります。

R3

router ospf 1
 network 192.168.0.0 0.0.255.255 area 1

OSPFプロセス番号はすべて共通で1としています。これは設定をわかりやすくするためで、プロセス番号は一致していなくても問題ありません。

OSPFの確認コマンド

OSPFの動作を確認するための主な確認コマンドを表にまとめています。

確認コマンド概要
#show ip protocolsルーティングプロトコルの全般的な情報を表示します。
#show ip ospfOSPFの全般的な情報を表示します。
#show ip ospf interface [brief]OSPFが有効なインタフェースの情報を表示します。
#show ip ospf neighborOSPFネイバーを表示します。
#show ip ospf databaseLSDBを表示します。
#show ip route ospfルーティングテーブルのOSPFルートを表示します。
#debug ip ospf helloHelloパケットのやり取りを表示します。
#debug ip ospf adjLSDB同期の処理を表示します。
表 OSPFの主な確認コマンド

show ip protocols

show ip protocolsコマンドはOSPFに限らずルーティングプロトコルの全般的な情報を表示します。OSPFに関しては、プロセス番号やルータID、networkコマンドの設定、コスト計算式の分子の値などを確認できます。

R1#show ip protocols
Routing Protocol is "ospf 1"
  Outgoing update filter list for all interfaces is not set
  Incoming update filter list for all interfaces is not set
  Router ID 192.168.13.1
  It is an area border router
  Number of areas in this router is 2. 2 normal 0 stub 0 nssa
  Maximum path: 4
  Routing for Networks:
    192.168.12.0 0.0.0.255 area 0
    192.168.13.1 0.0.0.0 area 1
 Reference bandwidth unit is 100 mbps
  Routing Information Sources:
    Gateway         Distance      Last Update
    192.168.12.2         110      00:02:20
    192.168.13.3         110      00:02:20
  Distance: (default is 110)

show ip ospf

show ip ospfコマンドでOSPFの処理を行う際のさまざまなタイマの値などを確認できます。また、エリアごとのSPF計算の実行回数もわかります。

R1#show ip ospf
 Routing Process "ospf 1" with ID 192.168.13.1
 Start time: 00:01:20.912, Time elapsed: 00:24:17.452
 Supports only single TOS(TOS0) routes
 Supports opaque LSA
 Supports Link-local Signaling (LLS)
 Supports area transit capability
 It is an area border router
 Router is not originating router-LSAs with maximum metric
 Initial SPF schedule delay 5000 msecs
 Minimum hold time between two consecutive SPFs 10000 msecs
 Maximum wait time between two consecutive SPFs 10000 msecs
 Incremental-SPF disabled
 Minimum LSA interval 5 secs
 Minimum LSA arrival 1000 msecs
 LSA group pacing timer 240 secs
 Interface flood pacing timer 33 msecs
 Retransmission pacing timer 66 msecs
 Number of external LSA 0. Checksum Sum 0x000000
 Number of opaque AS LSA 0. Checksum Sum 0x000000
 Number of DCbitless external and opaque AS LSA 0
 Number of DoNotAge external and opaque AS LSA 0
 Number of areas in this router is 2. 2 normal 0 stub 0 nssa
 Number of areas transit capable is 0
 External flood list length 0
    Area BACKBONE(0)
        Number of interfaces in this area is 1
        Area has no authentication
        SPF algorithm last executed 00:04:34.996 ago
        SPF algorithm executed 2 times
        Area ranges are
        Number of LSA 5. Checksum Sum 0x025DEE
        Number of opaque link LSA 0. Checksum Sum 0x000000
        Number of DCbitless LSA 0
        Number of indication LSA 0
        Number of DoNotAge LSA 0
        Flood list length 0
    Area 1
        Number of interfaces in this area is 1
        Area has no authentication
        SPF algorithm last executed 00:04:35.000 ago
        SPF algorithm executed 2 times
        Area ranges are
        Number of LSA 4. Checksum Sum 0x00A9B3
        Number of opaque link LSA 0. Checksum Sum 0x000000
        Number of DCbitless LSA 0
        Number of indication LSA 0
        Number of DoNotAge LSA 0
        Flood list length 0

show ip ospf interface

show ip ospf interfaceはOSPFが有効なインタフェースを表示します。briefをつけると、概要を一覧表示します。

R1#show ip ospf interface brief
Interface    PID   Area            IP Address/Mask    Cost  State Nbrs F/C
Et0/0        1     0               192.168.12.1/24    10    BDR   1/1
Se1/0        1     1               192.168.13.1/24    64    P2P   1/1
R1#show ip ospf interface
Ethernet0/0 is up, line protocol is up
  Internet Address 192.168.12.1/24, Area 0
  Process ID 1, Router ID 192.168.13.1, Network Type BROADCAST, Cost: 10
  Transmit Delay is 1 sec, State BDR, Priority 1
  Designated Router (ID) 192.168.12.2, Interface address 192.168.12.2
  Backup Designated router (ID) 192.168.13.1, Interface address 192.168.12.1
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:09
  Supports Link-local Signaling (LLS)
  Index 1/1, flood queue length 0
  Next 0x0(0)/0x0(0)
  Last flood scan length is 1, maximum is 3
  Last flood scan time is 0 msec, maximum is 4 msec
  Neighbor Count is 1, Adjacent neighbor count is 1
    Adjacent with neighbor 192.168.12.2  (Designated Router)
  Suppress hello for 0 neighbor(s)
Serial1/0 is up, line protocol is up
  Internet Address 192.168.13.1/24, Area 1
  Process ID 1, Router ID 192.168.13.1, Network Type POINT_TO_POINT, Cost: 64
  Transmit Delay is 1 sec, State POINT_TO_POINT
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:07
  Supports Link-local Signaling (LLS)
  Index 1/2, flood queue length 0
  Next 0x0(0)/0x0(0)
  Last flood scan length is 1, maximum is 2
  Last flood scan time is 0 msec, maximum is 0 msec
  Neighbor Count is 1, Adjacent neighbor count is 1
    Adjacent with neighbor 192.168.13.3
  Suppress hello for 0 neighbor(s)

show ip ospf neighbor

show ip ospf neighborコマンドでOSPFネイバーを表示します。OSPFはまずネイバーを確立しないといけません。OSPFの確認は、show ip ospf neighborコマンドで正しくネイバーを確立できているかどうかが重要です。

R1#show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
192.168.12.2      1   FULL/DR         00:00:32    192.168.12.2    Ethernet0/0
192.168.13.3      0   FULL/  -        00:00:31    192.168.13.3    Serial1/0

Stateの部分が「FULL/  -」となっているのは、ポイントツーポイントインタフェースであるためDRの選出が必要ないことを表しています。

show ip ospf database

OSPF LSDBを表示するためにshow ip ospf databaseコマンドを利用します。ABRはエリアごとにLSDBを保持します。

R1#show ip ospf database

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

                Router Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum Link count
192.168.12.2    192.168.12.2    677         0x80000003 0x00289C 2
192.168.13.1    192.168.13.1    667         0x80000005 0x00B691 1

                Net Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum
192.168.12.2    192.168.12.2    677         0x80000001 0x00DB80

                Summary Net Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum
192.168.3.0     192.168.13.1    671         0x80000001 0x0030DE
192.168.13.0    192.168.13.1    671         0x80000001 0x005DB1

                Router Link States (Area 1)

Link ID         ADV Router      Age         Seq#       Checksum Link count
192.168.13.1    192.168.13.1    667         0x80000005 0x001C2D 2
192.168.13.3    192.168.13.3    1789        0x80000001 0x0012B1 3

                Summary Net Link States (Area 1)

Link ID         ADV Router      Age         Seq#       Checksum
192.168.2.0     192.168.13.1    673         0x80000001 0x001D29
192.168.12.0    192.168.13.1    673         0x80000001 0x004AFB

show ip route ospf

show ip route ospf コマンドでルーティングテーブルのOSPFルートのみを表示します。

R1#show ip route ospf
O    192.168.2.0/24 [110/20] via 192.168.12.2, 00:12:23, Ethernet0/0
O    192.168.3.0/24 [110/74] via 192.168.13.3, 00:12:23, Serial1/0

OSPFルートのコードには、以下の表のようにいくつかの種類があります。

コード概要
Oエリア内のOSPFルート
O IA他のエリアのOSPFルート
O E1非OSPFドメインのルート(メトリックタイプ1)
O E2非OSPFドメインのルート(メトリックタイプ2)
表 OSPFルートのコード

debug ip ospf hello

debug ip ospf helloでOSPF Helloパケットのやり取りをリアルタイムにコンソールに表示します。

R1#debug ip ospf hello
OSPF hello events debugging is on
R1#
*Mar  1 00:36:29.707: OSPF: Rcv hello from 192.168.13.3 area 1 from Serial1/0 192.168.13.3
*Mar  1 00:36:29.707: OSPF: End of hello processing
*Mar  1 00:36:30.223: OSPF: Send hello to 224.0.0.5 area 0 on Ethernet0/0 from 192.168.12.1
*Mar  1 00:36:30.223: OSPF: Send hello to 224.0.0.5 area 1 on Serial1/0 from 192.168.13.1
*Mar  1 00:36:30.611: OSPF: Rcv hello from 192.168.12.2 area 0 from Ethernet0/0 192.168.12.2
*Mar  1 00:36:30.611: OSPF: End of hello processing
R1#undebug all
All possible debugging has been turned off

debug ip ospf adj

debug ip ospf adjでOSPF LSDB同期の処理をリアルタイムにコンソールに表示します。

R1#debug ip ospf adj
OSPF adjacency events debugging is on
R1#clear ip ospf process
Reset ALL OSPF processes? [no]: y
R1#
*Mar  1 00:37:43.267: OSPF: Interface Ethernet0/0 going Down
*Mar  1 00:37:43.267: OSPF: 192.168.13.1 address 192.168.12.1 on Ethernet0/0 is dead, state DOWN
*Mar  1 00:37:43.267: OSPF: Neighbor change Event on interface Ethernet0/0
*Mar  1 00:37:43.267: OSPF: DR/BDR election on Ethernet0/0
*Mar  1 00:37:43.267: OSPF: Elect BDR 0.0.0.0
*Mar  1 00:37:43.267: OSPF: Elect DR 192.168.12.2
*Mar  1 00:37:43.267: OSPF: Elect BDR 0.0.0.0
*Mar  1 00:37:43.267: OSPF: Elect DR 192.168.12.2
*Mar  1 00:37:43.267:        DR: 192.168.12.2 (Id)   BDR: none
*Mar  1 00:37:43.267: OSPF: 192.168.12.2 address 192.168.12.2 on Ethernet0/0 is dead, state DOWN
*Mar  1 00:37:43.267: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.12.2 on Ethernet0/0 from FULL to DOWN, Neighbor Down: Interface down or detached
~省略~

関連記事

「ネットワークのおべんきょしませんか?」内の記事を検索