はじめに
このドキュメントでは、Open Shortest Path First(OSPF)ネイバーが完全に隣接関係になる方法に関する一般的な問題について説明します。
前提条件
要件
このドキュメントを読むには、IPルーティングプロトコルとOSPFルーティングプロトコルに関する基本的な知識が必要です。IPルーティングプロトコルの詳細については、『基本的なIPルーティングの設定方法』を参照してください。OSPFの詳細については、『Open Shortest Path First(OSPF)に関するサポートページ』を参照してください。
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づくものです。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
表記法
表記法の詳細については、『シスコ テクニカル ティップスの表記法』を参照してください。
背景説明
OSPF隣接関係(adjacency)が正常に形成されると、OSPFネイバーはFULLネイバー状態になります。アジャセンシー関係の形成を調べるには、 debug ip ospf adj
コマンドを使用して、アップグレードを実行します。debug コマンドを入力する前に 『 debug コマンドの重要な情報』を参照してください。
形成
ルータがネイバールータであるという状態は、リンクステート アップデートの交換を保証するのには十分ではなく、ルータ間でリンクステート アップデートを交換するためには、隣接関係(adjacency)が形成されている必要があります。隣接関係(adjacency)は、ルータによって形成される高度なネイバーシップの形式です。ルータは、このような交換のパラメータがネゴシエートされた後にルーティング情報を交換します。ルータでは、リンクステート データベース上での同期済みビューが獲得されると、隣接関係(adjacency)が FULL の状態になります。
インターフェイスタイプは、アジャセンシー関係の形成に大きな役割を果たします。たとえば、ポイントツーポイントリンク上のネイバーは常に隣接関係になろうとします。一方、イーサネットなどのブロードキャストメディアに接続されたルータは、インターフェイス上のネイバールータのサブセットとのみ隣接関係になることができます。
ルータがネイバーと隣接関係を形成すると、リンクステートデータベースの完全なコピーの交換から始まります。すると、ネイバールータでは自身のリンクステート データベースのフル コピーの交換がそのルータとの間で行われます。複数のネイバーステートが渡されると、ルータは完全に隣接関係になります。
ネイバールータの状態
show ip ospf neighborコマンドを使用して、OSPFネイバーの状態を確認します。このコマンドの出力から、次のいずれかが判明します。
-
何も示さない
-
state = down
-
state = init
-
state = exstart
-
state = exchange
-
state = 2-way
-
state = loading
OSPF の状態は他にもありますが、通常は上記の状態が show ip ospf neighbor コマンドの出力結果として表示されます。すべての OSPF ネイバーの状態についての詳細は、『OSPF ネイバールータの状態』を参照してください。
何の状態も表示されない
If the show ip ospf neighbor
コマンドがまったく何も表示しない、または対象の特定のネイバーについて何も表示しない場合、このルータはそのネイバーから「有効な」OSPF HELLOを受信していません。これはつまり、OSPF ではネイバールータから HELLO パケットがまったく受信されていないか、あるいは、HELLO パケットを受信したけれども、きわめて基本的な健全性チェックに失敗したことを示しています。
次の確認を行います。
-
ローカル ルータまたはネイバールータのインターフェイスはアップしていて、回線プロトコルもアップしていますか。config コマンドを入力します show interface
コマンドを発行して、インターフェイスのステータスを確認します。
-
次に示すように、ネイバールータ間のIP接続を確認します。
-
ネイバーはWLCに対して ping
コマンド?ネイバールータ上の対象のインターフェイスに割り当てられているIPアドレスにpingを実行します。config コマンドを入力します traceroute
コマンドを発行して、宛先に到達するためのホップ数が1ホップに収まっていることを確認します。
-
ルータのネイバーがIPアドレスを ping 224.0.0.5
コマンド?(224.0.0.5はOSPF HELLOが送信されるIPアドレスです)。
-
着信アクセスリストまたはその他のデバイス(スイッチなど)で、あるネイバーから別のネイバーへのIPパケットの転送が禁止されていないかどうかを確認します。
-
OSPFは、インターフェイスとネイバー/隣接ルータのインターフェイスの両方で有効になっていますか。config コマンドを入力します show ip ospf interface
コマンドを使用して確認します。
-
OSPFは、ローカルルータまたはネイバー/隣接ルータのインターフェイスに対してパッシブとして設定されていますか。config コマンドを入力します show ip ospf interface
インターフェイスからHELLOパケットが送信されるようになっていることを確認するコマンド。アクティブなOSPFインターフェイスには、次のような行が表示されます。
Router#show ip ospf interface
GigabitEthernet0/0 is up, line protocol is up
Internet Address 10.1.1.1/30, Area 0, Attached via Network Statement
Process ID 1, Router ID 10.1.1.1, Network Type BROADCAST, Cost: 1
Topology-MTID Cost Disabled Shutdown Topology Name
0 1 no no Base
Transmit Delay is 1 sec, State BDR, Priority 1
Designated Router (ID) 10.1.1.2, Interface address 10.1.1.2
Backup Designated router (ID) 10.1.1.1, Interface address 10.1.1.1
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
oob-resync timeout 40
Hello due in 00:00:05
Supports Link-local Signaling (LLS)
Cisco NSF helper support enabled
IETF NSF helper support enabled
Index 1/1/1, flood queue length 0
Next 0x0(0)/0x0(0)/0x0(0)
Last flood scan length is 1, maximum is 1
Last flood scan time is 1 msec, maximum is 1 msec
Neighbor Count is 1, Adjacent neighbor count is 1
Adjacent with neighbor 10.1.1.2 (Designated Router)
Suppress hello for 0 neighbor(s)
-
ネイバールータのルータIDが異なることを確認します。ルータ ID は OSPF ネットワーク内での各ルータの識別に使用されます。同じルータを持つルータは、相互に送信されたHELLOを無視し、隣接関係にはなりません。最初の行 show ip ospf
コマンド出力には、各ルータの現在のルータIDが表示されます。
-
次のHELLOパラメータがネイバーインターフェイスで一致していることを確認します。
-
OSPFエリア番号: show ip ospf interface interface-name
コマンドを使用して確認します。
-
OSPFエリアタイプ(stubやNSSAなど)- show ip ospf
コマンドを使用して確認します。
-
サブネットとサブネットマスク:NAT変換を行うために show interface
コマンドを使用して確認します。
-
OSPF HELLOおよびDeadタイマー値 – show ip ospf interface interface-name
コマンドを使用して確認します。
-
問題がポイントツーポイントリンク(PPPやHigh-Level Data Link Control [HDLC]など)上にあり、このルータのペアの間に複数のパラレルリンクが存在する場合は、回線が正しく接続されていることを確認します。一方のルータのインターフェイス Serial0/0 をネイバールータのインターフェイス Serial0/0 に接続し、Serial1/0 をネイバールータの Serial1/0 に接続することを計画していながら、誤ってそれらを交差させてしまい、各ルータの Serial0/0 が他のルータの Serial1/0 に接続してしまったものとします。「 ping
コマンドでこのような問題を検出することはできませんが、OSPFは隣接関係の確立に失敗します。デバイスの適切な相互接続を確認するには、Cisco Discovery Protocol(CDP)で提供される情報を使用します。config コマンドを入力します show cdp neighbor interface-name
コマンドを使用して、リモートデバイスの名前とPortIDがネットワーク設計に一致していることを確認します。
注:OSPF隣接関係が形成されるのはプライマリネットワーク上だけで、セカンダリネットワークでは形成されません。
これらのチェックがすべて検証され、 show ip ospf neighbor
コマンドを実行しても何も表示されない場合は、発生している問題は特殊なものであり、Cisco TACにサポートを依頼してください。
ネイバールータが down 状態
HELLOパケットの受信によって動的に検出されるネイバーは、OSPFプロセスによってそのネイバーが削除されると、down状態にフォールバックする場合があります。たとえば、OSPFがネイバーからのHELLOパケットをDeadタイマーのインターバルよりも長い間受信しない場合、そのようなネイバーのdown状態は一時的なものとなり、より高い状態に移行するか、既知のネイバーのテーブルから削除されます。これは「forgotten」と呼ばれます。
通常、down状態にあるネイバールータは、 neighbor
コマンドを使用して、アップグレードを実行します。手動設定したネイバールータは OSPF ネイバーテーブルに常時存在しています。手動設定されたネイバーからOSPFでHELLOパケットがまったく受信されていない場合、または前回のデッドタイマーインターバルの間にネイバーからHELLOパケットがまったく受信されていない場合、手動設定されたネイバーはdownとしてリストされます。
注: neighbor
コマンドは、次のネットワークタイプの直接接続されたネイバーに対してのみ設定できます。
- Non-Broadcast MultiAccess(NBMA)ネットワーク – インターフェイスは、 ip ospf network non-broadcast
コマンドを使用して、アップグレードを実行します。
– 非ブロードキャストポイントツーマルチポイントネットワーク – インターフェイスは、 ip ospf network point-to-multipoint non-broadcast
コマンドを使用して、アップグレードを実行します。
ネイバールータがdown状態の場合は、そのネイバールータがアップ状態であり、アクティブであり、このインターフェイスでOSPF用に正しく設定されていることを確認します。次のコマンドを使用して、ルータ間の接続を ping
と traceroute
コマンドを発行します。次のコマンドを使用して、ネイバールータのOSPFネイバーテーブルをチェックします。 show ip ospf neighbor
コマンドを使用し、このドキュメントの「何の状態も表示されない」セクションで前述したのと同じ設定確認操作を実行します。
ネイバールータが init 状態
init状態は、ルータがネイバーからHELLOパケットを受信したものの、双方向通信が確立されていないことを示しています。Cisco ルータは、init(またはそれよりも高位の)状態にあるすべてのネイバールータのルータ ID を、HELLO パケットの Neighbor フィールドに組み込みます。ネイバーとの双方向通信を確立するには、ルータはネイバーHELLOパケットのNeighborフィールドで自身のルータIDも受信する必要があります。詳細な例と説明は、『show ip ospf neighbor コマンドで Init 状態にあるネイバールータが表示される理由』を参照してください。
ネイバールータが 2-way 状態
2-way状態は、ルータがネイバーHELLOパケットのNeighborフィールドで自身のルータIDを受信したことを示します。init状態のネイバーからDatabase Descriptor(DBD)パケットを受信した場合も、2-way状態に移行します。ブロードキャストおよび非ブロードキャストマルチアクセス(NBMA)ネットワークでは、OSPFネイバーの2-way状態は問題になりません。2-way 状態の説明は、『show ip ospf neighbor コマンドによって、ネイバールータが 2-way 状態のままであると表示される理由』を参照してください。
ネイバールータが exstart/exchange 状態
exstartまたはexchange状態のOSPFネイバーは、DBDパケットの交換を試みます。ルータとそのネイバーは、プライマリおよびセカンダリの関係を形成します。隣接関係は、この状態を過ぎても継続する必要があります。もし継続していない場合は、DBD 交換時に最大伝送ユニット(MTU)のミスマッチや予測しない DBD シーケンス番号の受信などの障害があったことが考えられます。詳細は、『OSPF ネイバールータが exstart/exchange 状態のままになる理由』を参照してください。
ネイバールータが loading 状態
Loading 状態では、ルータはリンクステート要求パケットを送信します。隣接関係にある間、ルータは古いまたは失われたリンクステートアドバタイズメント(LSA)を受信すると、リンクステート要求パケットを送信してLSAを要求します。この状態を超えて移行しないネイバーは、破損したLSAを交換する可能性があります。この障害は、通常 %OSPF-4-BADLSA のコンソール メッセージを伴います。これは一般的な問題ではないので、Cisco TACに問い合わせてください。
OSPF ネイバールータ問題の一般的な原因
次の表は、OSPFネイバーが隣接関係を形成しようとする際に問題が発生する理由と、問題の確認に使用できるコマンドを示しています。
近隣ルータの隣接関係問題の理由 |
問題を診断するコマンド |
OSPF が設定されていないルータがある。 |
show ip ospf |
OSPF が必要とされるインターフェイスで OSPF が有効になっていない。 |
show ip ospf interface |
OSPF の HELLO またはデッド タイマー インターバルがミスマッチである。 |
show ip ospf interface |
ip ospf network-typeが隣接インターフェイスでミスマッチである。 |
show ip ospf interface |
ネイバーインターフェイス間のMTUの不一致。 |
show interface <int-type><int-num> |
OSPFエリアタイプは1つのネイバーではstubですが、同じエリア内の隣接するネイバーではstubが設定されていません。 |
show running-config show ip ospf interface |
OSPF 近隣ルータが重複したルータ ID により誤って設定されている。 |
show ip ospf show ip ospf interface |
ネイバールータのセカンダリ ネットワークに OSPF が設定されているが、プライマリ ネットワークには設定されていない。これは、インターフェイスでのOSPFの有効化を妨げる不正な設定です。 |
show ip ospf interface show running-config |
OSPF の HELLO がリソースの不足(CPU の使用率が高い、またはメモリが不足しているなど)により処理されない。 |
show memory summary show memory processor |
レイヤの問題により、OSPF HELLOの受信が妨げられます。 |
show interface |
注:OSPF隣接関係の確立でMTUチェックを回避するには、 ip ospf mtu-ignore
コマンドをインターフェイスコンフィギュレーションモードで使用します。ただし、MTUチェックをバイパスするのではなく、インターフェイス設定を確認してMTUの不一致を修正することを推奨します。
関連情報