本記事ではOSPFネイバーが確立出来ない時に確認するポイント・解決方法を解説いたします。
>>参考記事: 「CCIEが語る!ネットワークエンジニアにオススメな本・参考書!」
>>参考記事: 「[まとめ] OSPF 基礎〜応用・検証結果の記事をまとめました!」
OSPFネイバーが張れない人向け!ネイバー確立時の仕様・条件について
まず最初に「OSPFのネイバー確立時に関する動作仕様」について紹介します。
(OSPFのネイバー確立時に関する動作仕様をご存じの方は、本章はSKIPして下さい!)
OSPFでは各OSPFルータ同士でHelloパケットを送受信し「ネイバー関係」を確立します。
※その時対向機器から受領したHelloパケットのパラメータ内容に基づいて、ネイバー関係を確立するか判断いたします。
では、実際のHelloパケットではどのようなパラメータがやりとりされているのか、
以下にて「Helloパケットの主なパラメータ」を紹介いたします。
- ルータID
- ネットワークマスク
- エリア番号
- Helloインターバル・Deadインターバル
- DRのIPアドレス
- BDRのIPアドレス
- OSPFネイバーのルータIDリスト
- スタブエリアフラグ
- 認証情報
上記の通り、Helloパケットでは様々なパラメータを交換しているのが分かると思います。
しかし、全てのパラメータが対向機器と一致している必要はございません。
その中で「ネイバー確立の判断条件」になるパラメータは以下の5つです。
※以下5つの設定値(全て)がOSPFルータ同士で一致している必要がございますので、ネイバー確立が出来ない際は確認してみて下さい。
- エリア番号
- サブネットマスク
- Helloインターバル・Deadインターバル
- スタブエリアフラグ
- 認証情報
では上記のネイバー確立条件①〜⑤の詳細について1つずつ解説します。
【OSPFネイバーの条件①】エリア番号
対向のOSPFルータ同士でOSPFのエリア番号を一致させる必要がございます。
エリア番号が一致しているか確認されたい方は、以下「確認方法」以下をご確認下さい。
コマンド「show ip ospf interface brief」にて以下の点を確認して下さい。
1 2 3 | R1#show ip ospf interface brief Interface PID Area IP Address/Mask Cost State Nbrs F/C Et0/0 1 0 192.168.100.1/24 10 BDR 1/1 // <---左記の「Area」箇所を確認しましょう。 |
上記の例ではインターフェース Et0/0のエリア番号が「0」である事が分かると思います。
バーチャルリンクを設定している際は「エリア0」扱いになりますので、注意して下さい。
【OSPFネイバーの条件②】サブネットマスク
対向のOSPFルータ同士でインターフェースのサブネットマスクを一致させる必要がございます。
サブネットマスクが一致しているか確認されたい方は、以下「確認方法」以下をご確認下さい。
コマンド「show ip ospf interface brief」にて以下の点を確認して下さい。
1 2 3 | R1#show ip ospf interface brief Interface PID Area IP Address/Mask Cost State Nbrs F/C Et0/0 1 0 192.168.100.1/24 10 BDR 1/1 // <---左記の「/Mask」箇所を確認しましょう。 |
上記の例ではインターフェース Et0/0のサブネットマスクが「/24」である事が分かると思います。
【OSPFネイバーの条件③】Helloインターバル・Deadインターバル(ネットワークタイプ)
対向のOSPFルータ同士でHelloインターバル・Deadインターバルを一致させる必要がございます。
OSPFでは「ネットワークタイプ」という概念があり、「ネットワークタイプ」によりHelloインターバル・Deadインターバルのデフォルト値が異なりますので、注意が必要です。
ネットワークタイプ | Helloインターバル(秒) | Deadインターバル(秒) | DR/BDR有無 |
---|---|---|---|
Broadcast | 10 | 40 | 有 |
NBMA(Non-Broadcast MultiAccess) | 30 | 120 | 有 |
Point to Point | 10 | 40 | 無 |
Point to Multipoint | 30 | 120 | 無 |
Point to Multipoint Non-Broadcast | 30 | 120 | 無 |
また、ネットワークタイプのデフォルト設定はOSPFが有効化されているインターフェース種別により異なります。
詳細は以下の図をご覧下さい。
OSPFインターフェース | ネットワークタイプ |
---|---|
Ethernetインターフェース | Broadcast |
PPP / Tunnelインターフェース | Point to Point |
上記をご理解頂いた上で、OSPFのネットワークタイプ・Helloインターバル・Deadインターバルの確認方法を紹介いたします。
コマンド「show ip ospf interface [インターフェース番号] | include Timer|Network Type」にて以下の点を確認して下さい。
1 2 3 | R1#show ip ospf interface e0/0 | include Timer|Network Type Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 10 // <-- Network Typeを確認 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 // <-- Hello(Helloインターバル)・Dead(Deadインターバル)を確認 |
上記の例ではインターフェース Et0/0のHelloインターバルは「10秒」、エDeadインターバルは「40秒」である事が分かると思います。
上記の通り、Helloインターバル・Deadインターバルの値の不一致には気づきにくい為、showコマンドで設定値を確認しましょう!
【OSPFネイバーの条件④】スタブエリアフラグ
対向のOSPFルータ同士でスタブエリアフラグのオプションフィールドを一致させる必要がございます。
OSPFの特殊エリア(スタブやNSSA)を導入している際は気をつけて下さい。
【OSPFネイバーの条件⑤】認証情報
対向のOSPFルータ同士で認証情報(認証タイプとパスワード)を一致させる必要がございます。
OSPFルータ同士が正常に認証出来ているかの確認方法は以下の通りです。
コマンド「debug ip ospf adj」にてエラーログが出力されていないか確認して下さい。
(実環境でのdebugコマンドの利用は注意して下さい。)
1 2 3 4 5 6 7 8 9 10 11 12 | R1#debug ip ospf adj OSPF adjacency debugging is on // ↓↓↓ エラーログ例(認証タイプの不一致) Type0=Null認証(認証なし) Type1=平文認証 Type2=MD5認証 ↓↓↓ *May 4 19:37:03.661: OSPF-1 ADJ Et0/0: Rcv pkt from 192.168.12.1 : Mismatched Authentication type. Input packet specified type 0, we use type 1 *May 4 19:37:06.558: OSPF-1 ADJ Et0/0: Rcv pkt from 192.168.12.2 : Mismatched Authentication type. Input packet specified type 1, we use type 0 // ↓↓↓ エラーログ例(パスワードの不一致) ↓↓↓ *May 4 19:40:44.348: OSPF-1 ADJ Et0/0: Rcv pkt from 192.168.12.2, : Mismatched Authentication Key - Clear Text // ↓↓↓ エラーログ例(key-chainの不一致) ↓↓↓ *May 4 20:06:00.196: OSPF-1 ADJ Et0/1: Rcv pkt from 192.168.23.3 : Mismatched Authentication Key - Invalid cryptographic authentication Key ID 2 on interface |
まとめ
最後までお読み頂きましてありがとうございます。
OSPFネイバーが確立出来ない時の確認ポイントはぜひ覚えておきましょう!
興味のある方は合わせて読んでみてください!