STAGE 04 / 4-2 OSPF

OSPFの検証とDR/BDR

考えてみよう

OSPFの設定を入力したら、それだけで「動いている」と言い切れるでしょうか?

設定コマンドを打ち終えた瞬間は、まだ「動くはず」でしかありません。実際にネイバーが正しく形成され、経路が学習されているかを確認して初めて「動いている」と言えます。何を見れば確認できるか、考えてみてください。

設定した後は「見る」工程が必須

前回のレッスンでOSPFの設定手順を学びました。しかし、networkコマンドを打っただけでは、本当にネイバーができているかは分かりません。健康診断を受けずに「自分は健康だ」と思い込むようなものです。今回は、OSPFが正しく動作しているかを検証するコマンドと、複数のルーターが同じセグメントにぶら下がる場面で登場するDR/BDRの仕組みを見ていきます。

show ip ospf neighbor でネイバーを確認する

最初に確認すべきは、ネイバー関係が正しく成立しているかです。

Router# show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2         1     FULL/DR         00:00:38    10.0.0.2        GigabitEthernet0/0

ここで重要なのはStateの列です。FULLになっていれば、LSDB(リンクステートデータベース)の同期が完了しており、正常な状態です。もしFULLにならず2WAYEXSTARTのまま止まっている場合は、何らかの不一致(エリア番号、Helloタイマー、MTUなど)が疑われます。

show ip protocols と show ip ospf interface

OSPFがどのプロセスIDで、どのネットワークをアドバタイズしているかはshow ip protocolsで確認できます。

Router# show ip protocols
Routing Protocol is "ospf 1"
  Router ID 1.1.1.1
  ...
  Routing for Networks:
    10.0.0.0 0.0.0.255 area 0

インターフェース単位でOSPFの状態(コストやタイマー)を見たいときはshow ip ospf interfaceを使います。

Router# show ip ospf interface GigabitEthernet0/0
GigabitEthernet0/0 is up, line protocol is up
  Internet Address 10.0.0.1/24, Area 0
  Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State DR, Priority 1

マルチアクセスネットワークとDR/BDRの必要性

イーサネットのように複数のルーターが同じセグメントを共有するネットワークを、OSPFでは「マルチアクセスネットワーク」と呼びます。ここで全ルーターが互いにフルメッシュでネイバー関係を結ぶと、ルーター数が増えるほどLSA(リンクステート広告)のやり取りが爆発的に増えてしまいます。

そこでOSPFは、そのセグメントの中からDR(Designated Router)BDR(Backup Designated Router)を1台ずつ選び、他のルーター(DROTHER)はDR・BDRとだけフル関係を結ぶ、という仕組みを採用しています。マンションの管理組合で、全住民が直接連絡を取り合う代わりに、代表の管理人(DR)を1人決めて情報を集約するイメージです。

DR/BDRの選出ルール

選出は次の優先順位で決まります。

  1. OSPFプライオリティが最も高いルーター(デフォルトは1、0にすると選出から除外される)
  2. プライオリティが同じ場合はrouter-idが最も大きいルーター

そして選出には大事な特徴があります。それはプリエンプト(preempt)が働かないということです。いったんDRが決まった後で、より高いプライオリティやより大きいrouter-idを持つルーターが後から参加しても、現職のDRを引きずり下ろすことはありません。選挙で一度当選したら、任期途中でより良い候補が現れても交代しないようなものです。DRを明示的に指定したい場合は、事前にプライオリティを調整してから、そのルーターを最初に起動する必要があります。

確認問題

OSPFのマルチアクセスネットワークで、あるルーターのip ospf priority0に設定すると何が起こるでしょう?

答えを見る

プライオリティ0は「DR/BDRの選出候補から外れる」ことを意味します。そのルーターは常にDROTHERとなり、DRにもBDRにもなりません。プライオリティを調整することで、意図的にDRになってほしくない機器(性能の低いルーターなど)を除外できます。

トラブル発生時の一次切り分け

ネイバーがFULLにならない場合は、次の観点を順にチェックします。

これらはshow ip ospf interfaceshow running-configを突き合わせることで発見できます。

確認問題

show ip ospf neighborで相手のStateがFULLではなく2WAYのまま変化しない場合、まず疑うべき状態はどれでしょう?

答えを見る

FULLに進まず2WAYで止まっている場合、多くはそのセグメントがマルチアクセスネットワークで、自分たちがDROTHER同士の関係にあるケースです(DROTHER同士はFULLにならず2WAYで正常)。それ以外でFULLに進まない場合は、MTU不一致などLSDB同期の失敗を疑います。まずはネットワークタイプとDR/BDRの選出状況を確認しましょう。

試験でのポイント

CCNA試験では、show ip ospf neighborの出力を提示して「Stateが何を意味するか」「DRはどれか」を問う設問が定番です。特に、DROTHER同士のネイバー関係は正常でも2WAYで止まる点、そしてDR/BDRの選出にプリエンプトが働かない点は、知識だけで即答できないと引っかかりやすいポイントです。「後から来た強者が現職を追い出さない」という一文を覚えておくと迷いません。

ゆみちゃん
ゆみ

OSPFは設定して終わりじゃなくて、show ip ospf neighborでFULLになっているか確認するところまでがワンセットだよ。DR/BDRの選出にプリエンプトが働かないのも試験でよく狙われるから覚えておいてね。次はFHRPとHSRP、ルーターを冗長化する仕組みを見ていくよ。