はじめに
このドキュメントでは、Open Shortest Path First(OSPF)ネイバーを完全な隣接関係にする方法に関する一般的な問題について説明します。
前提条件
要件
このドキュメントの読者には、IP ルーティングプロトコルと OSPF ルーティングプロトコルに関する基本的な知識が必要です。IP ルーティングプロトコルの詳細については、「How to Configure Basic IP Routing」を参照してください。また、OSPF の詳細については、Open Shortest Path First(OSPF)のサポートページを参照してください。
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
表記法
表記法の詳細については、『シスコ テクニカル ティップスの表記法』を参照してください。
背景説明
OSPF 隣接関係の確立に成功すると、OSPF ネイバーは FULL のネイバー状態になります。隣接関係の確立を確かめるには、 コマンドを入力します。debug ip ospf adj
debug コマンドを入力する前に 『 debug コマンドの重要な情報』を参照してください。
形成
ルータがネイバールータであるという状態は、リンクステート アップデートの交換を保証するのには十分ではなく、ルータ間でリンクステート アップデートを交換するためには、隣接関係(adjacency)が形成されている必要があります。隣接関係(アジャセンシー)とは、ルーティング情報を交換するためのパラメータのネゴシエーション後にルーティング情報を交換するルータによって形成される拡張形式のネイバー関係を指します。ルータでは、リンクステート データベース上での同期済みビューが獲得されると、隣接関係(adjacency)が FULL の状態になります。
隣接関係の確立には、インターフェイスタイプが重要な役割を果たします。たとえば、ポイントツーポイントリンクでのネイバーでは常に隣接関係の確立が試みられますが、イーサネットなどのブロードキャストメディアの接続されたルータは、そのインターフェイスでのネイバールータのサブセットとのみ隣接関係を確立できます。
ルータは、ネイバーと隣接関係を確立すると、まずリンクステートデータベースの完全なコピーを交換します。すると、ネイバールータでは自身のリンクステート データベースのフル コピーの交換がそのルータとの間で行われます。複数のネイバー状態が経過した後に、それらのルータ間で隣接関係が確立されます。
ネイバールータの状態
OSPF ネイバーの状態を調べるには、show ip ospf neighbor コマンドを使用します。このコマンドの出力は、次のいずれかになります。
-
何も示さない
-
state = down
-
state = init
-
state = exstart
-
state = exchange
-
state = 2-way
-
state = loading
OSPF の状態は他にもありますが、通常は上記の状態が show ip ospf neighbor コマンドの出力結果として表示されます。すべての OSPF ネイバーの状態についての詳細は、『OSPF ネイバールータの状態』を参照してください。
何の状態も表示されない
コマンドで何も示されない場合(または目的の特定のネイバーについて何も示されない場合)、このルータはそのネイバーから「有効な」OSPF HELLO を受信していません。show ip ospf neighbor
これはつまり、OSPF ではネイバールータから HELLO パケットがまったく受信されていないか、あるいは、HELLO パケットを受信したけれども、きわめて基本的な健全性チェックに失敗したことを示しています。
次の確認を行います。
-
ローカル ルータまたはネイバールータのインターフェイスはアップしていて、回線プロトコルもアップしていますか。 コマンドを入力して、インターフェイスステータスを確認します。show interface
-
次に示すように、ネイバールータ間の IP 接続を確認してください。
-
コマンドに対してネイバーが応答しますか。ping
ネイバールータの対象のインターフェイスに割り当てられた IP アドレスに ping を送信します。同じIPアドレスにtraceroute
コマンドを入力し、宛先に到達するための経由ホップ数が1ホップに収まっていることを確認します。
-
コマンドを入力した場合、ネイバーが応答しますかping 224.0.0.5
(224.0.0.5 は OSPF HELLO が送信される IP アドレスです)。
-
インバウンドアクセスリストまたはその他のデバイス(スイッチなど)を確認してください。これらによってネイバー間での IP パケットの転送が妨げられている場合があります。
-
自身のインターフェイスとネイバー/隣接ルータのインターフェイスの両方で OSPF が有効になっていますか。 コマンドを入力して確認します。show ip ospf interface
-
ローカルまたはネイバー/隣接ルータのインターフェイスで OSPF がパッシブに設定されていますか。インターフェイスから HELLO パケットが送信されるようになっていることを確認するには、 コマンドを入力します。show ip ospf interface
アクティブな 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 ネットワーク内での各ルータの識別に使用されます。同じルータ ID が設定されたルータでは、相互に送信される HELLO が無視され、隣接関係が確立されません。show ip ospf
コマンド出力の1行目には、各ルータの現行ルータIDが表示されます。
-
次の HELLO パラメータがネイバーインターフェイス上で一致することを確認してください。
-
OSPF エリア番号:確認するには、 コマンドを入力します。show ip ospf interface interface-name
-
OSPF エリアタイプ(stub または NSSA):確認するには、 コマンドを入力します。show ip ospf
-
サブネットおよびサブネットマスク:確認するには、 コマンドを入力します。show interface
-
OSPF HELLO およびデッドタイマー値:確認するには、 コマンドを入力します。show ip ospf interface interface-name
-
問題がポイントツーポイントリンク(PPP や高水準データリンク制御(HDLC)など)上のもので、この一対のルータ間にパラレルリンクが複数ある場合は、各回線が適切に接続されていることを確認します。一方のルータのインターフェイス Serial0/0 をネイバールータのインターフェイス Serial0/0 に接続し、Serial1/0 をネイバールータの Serial1/0 に接続することを計画していながら、誤ってそれらを交差させてしまい、各ルータの Serial0/0 が他のルータの Serial1/0 に接続してしまったものとします。この種の問題は コマンドでは検出できませんが、OSPF は隣接関係の確立に失敗します。ping
デバイスの適切な相互接続を確認するには、Cisco Discovery Protocol(CDP)で提供される情報を使用します。リモートデバイスの名前と PortID がネットワークデザインに適合していることを確認するには、 コマンドを入力します。show cdp neighbor interface-name
注:OSPF 隣接関係が確立されるのはプライマリネットワーク上だけです。セカンダリネットワークでは確立されません。
上のすべてのチェック項目を確認しても コマンドで何も示されない場合、発生している問題は特殊なものであり、Cisco TAC に連絡して支援を求めることができます。show ip ospf neighbor
ネイバールータが down 状態
HELLO パケットの受信によって動的に検出されたネイバーは、OSPF プロセスによって削除される場合、down 状態にフォールバックできます。たとえば、OSPF でデッドタイマー間隔よりも長い時間ネイバーからの HELLO パケットが受信されない場合、そのようなネイバーの down 状態は一時的なものであり、上位の状態に進むか、既知のネイバーのテーブルから削除されることになります。この状態は「forgotten」として知られています。
通常、down 状態にあるネイバーは、 コマンドを使用して手動で設定されています。neighbor
手動設定したネイバールータは OSPF ネイバーテーブルに常時存在しています。手動設定されたネイバーからの HELLO パケットが OSPF でまったく受信されていない場合、あるいは前回のデッドタイマー間隔の間、ネイバーからの HELLO パケットがまったく受信されていない場合、この手動設定されたネイバーは down としてリストされます。
注: コマンドは、次のタイプのネットワークで直接接続されたネイバーに対してのみ設定できます。neighbor
非ブロードキャスト マルチアクセス(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 状態に移行します。OSPF ネイバーの 2-way 状態は、ブロードキャストおよび非ブロードキャスト マルチアクセス(NBMA)ネットワークでは問題になりません。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 エリアタイプが 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 の不一致を修正することをお勧めします。
関連情報