このドキュメントでは、ルータに Enhanced Interior Gateway Routing Protocol(EIGRP)が設定されていると、Cisco IOS® ルータに「not on common subnet(共通サブネットにありません)」エラー メッセージが発生する場合がある理由について説明します。
EIGRP は、他の EIGRP ネイバーと通信するためにマルチキャスト hello パケットを使用します。 EIGRP 受信インターフェイスに設定されていないサブネットの IP アドレスが送信元である hello パケットを EIGRP が受信すると、EIGRP は次のエラー メッセージを生成します。
timestamp: IP-EIGRP: Neighbor neighbor_IP_address not on common subnet for interface
この文書には、IP ルーティング プロトコルと EIGRP ルーティング プロトコル全般についての基礎知識が必要です。 IP ルーティング プロトコルと EIGRP についての詳細は、次のドキュメントを参照してください。
このドキュメントの情報は、Cisco 2500 シリーズ ルータ上の Cisco IOS ソフトウェア リリース 12.2(10b) に基づくものです。
本書の情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。 稼働中のネットワークで作業を行う場合、コマンドの影響について十分に理解したうえで作業してください。
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
この項では、このドキュメントで説明する機能の設定に必要な情報を提供します。
注: このドキュメントで使用されているコマンドの詳細を調べるには、Command Lookup Tool(登録ユーザ専用)を使用してください。
シスコでは、1 個のネットワーク セグメント上のすべてのルータに、同じサブネット上のプライマリ IP アドレスを設定することを推奨します。 この例は、一般的な EIGRP 設定を示します。
このドキュメントでは、次の設定を使用します。
R1 |
---|
hostname R1 ! interface Ethernet0 ip address 10.1.1.1 255.255.255.0 ! router eigrp 1 network 10.0.0.0 ! end |
R2 |
---|
hostname R2 ! interface Ethernet0 ip address 10.1.1.2 255.255.255.0 ! router eigrp 1 network 10.0.0.0 ! end |
ここでは、設定が正常に動作していることを確認します。
Output Interpreter Tool(OIT)(登録ユーザ専用)では、特定の show コマンドがサポートされています。 OIT を使用して、show コマンド出力の解析を表示できます。
両方のルータが互いを認識することを確認するには、show ip eigrp neighbor command コマンドを発行します。
R1#show ip eigrp neighbor IP-EIGRP neighbors for process 1 H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 10.1.1.2 Et0 12 00:00:16 0 3000 0 23
R2#show ip eigrp neighbor IP-EIGRP neighbors for process 1 H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 10.1.1.1 Et0 14 00:01:19 12 200 0 11
ここでは、設定に関するトラブルシューティングについて説明します。
すべてが適切に設定されていると、EIGRP ネイバー関係フォームが表示されます。 R2 の設定を変更します。 別のサブネットに R2 Ethernet0 インターフェイスを配置します。
R2#configure terminal R2(config)#interface ethernet0 R2(config-if)#ip address 10.1.2.2 255.255.255.0 R2(config-if)#end
ここで R2 設定を確認します。
hostname R2 ! interface Ethernet0 ip address 10.1.2.2 255.255.255.0 ! router eigrp 1 network 10.0.0.0 ! end
これで、EIGRP hello パケットを受信するとエラー メッセージが表示され始めるようになりました。 この場合、メッセージは約 15 秒ごとに R1 と R2 の両方で表示されます。
R1 3w0d: IP-EIGRP: Neighbor 10.1.2.2 not on common subnet for Ethernet0 01:05:01: IP-EIGRP: Neighbor 10.1.2.2 not on common subnet for Ethernet0 (10.1.) 01:05:15: IP-EIGRP: Neighbor 10.1.2.2 not on common subnet for Ethernet0 (10.1.) 01:05:30: IP-EIGRP: Neighbor 10.1.2.2 not on common subnet for Ethernet0 (10.1.) 01:05:44: IP-EIGRP: Neighbor 10.1.2.2 not on common subnet for Ethernet0 (10.1.)
R2 3w0d: IP-EIGRP: Neighbor 10.1.1.1 not on common subnet for Ethernet0 00:48:40: IP-EIGRP: Neighbor 10.1.1.1 not on common subnet for Ethernet0 (10.1.) 00:48:54: IP-EIGRP: Neighbor 10.1.1.1 not on common subnet for Ethernet0 (10.1.) 00:49:08: IP-EIGRP: Neighbor 10.1.1.1 not on common subnet for Ethernet0 (10.1.) 00:49:22: IP-EIGRP: Neighbor 10.1.1.1 not on common subnet for Ethernet0 (10.1.)
エラー メッセージが出されても、EIGRP は、他のすべての R1 および R2 ネイバーとは正しく動作します。 updated show ip eigrp neighbor コマンドの出力は、このエラー メッセージが R1 と R2 間の重大な問題を示していることを示しています。 これらのルータは、ネイバーではなくなっており、ルーティング情報を交換しなくなりました。
R1 R1#show ip eigrp neighbor IP-EIGRP neighbors for process 1
R2 R2#show ip eigrp neighbor IP-EIGRP neighbors for process 1
この問題は、セカンダリ IP アドレスを使用するネットワークで、ネットワークが正しく設定されていない場合に発生することもあります。 R2 にセカンダリ アドレスを追加します。
R2 R2#configure terminal R2(config)#interface ethernet0 R2(config-if)#ip address 10.1.1.2 255.255.255.0 secondary R2(config-if)#end
これで、R2 設定は次のようになります。
hostname R2 ! interface Ethernet0 ip address 10.1.2.2 255.255.255.0 ip address 10.1.1.2 255.255.255.0 secondary ! router eigrp 1 network 10.0.0.0 ! end
R2 は 10.1.1.0/24 をインターフェイス Ethernet0 の有効なサブネットとして認識するようになったため、R2 で「not on common subnet」というエラー メッセージが表示されなくなりました。 R2 には EIGRP ネイバーとして R1 が示されており、R2 は R1 の hello パケットを受信し、受け入れます。
Router2#show ip eigrp neighbor IP-EIGRP neighbors for process 1 H Address Interface Hold Uptime SRTT RTO Q Seq Type (sec) (ms) Cnt Num 0 10.1.1.1 Et0 12 00:00:35 1 5000 1 0
一方、R1 では R2 がネイバー ルータとして示されておらず、R1 は R2 からのルーティング アップデートを受け入れません。 つまり、R2 は R1 とのネイバー隣接関係をリセットし続けます。 R1 では「not on common subnet」エラー メッセージが表示され続け、EIGRP ネイバー テーブルに R2 が表示されません。
R1#show ip eigrp neighbor IP-EIGRP neighbors for process 01:20:54: IP-EIGRP: Neighbor 10.1.2.2 not on common subnet for Ethernet0 (10.1.) 01:21:08: IP-EIGRP: Neighbor 10.1.2.2 not on common subnet for Ethernet0 (10.1.) 01:21:22: IP-EIGRP: Neighbor 10.1.2.2 not on common subnet for Ethernet0 (10.1.) 01:21:36: IP-EIGRP: Neighbor 10.1.2.2 not on common subnet for Ethernet0 (10.1.)
こうなるのは、EIGRP update パケットでは発信インターフェイスのプライマリ IP アドレスが発信元アドレスとして使用されるからです。 R2 のプライマリ サブネットに合わせて R1 のプライマリ アドレスを変更します。この例では 10.1.2.1/24 です。
一部のネットワークでは、同じ物理セグメント上に 2 個のサブネットを設定できます。 その場合、一方のサブネット上の EIGRP ルータは、もう一方のサブネット上の EIGRP ルータと通信できません。 Cisco IOS ソフトウェア リリース 11.3 または 12.0 以降を実行している場合は、no eigrp log-neighbor-warnings コマンドを使用して「not on common subnet」エラー メッセージを無効化できます。
注: 一般に、Cisco では no eigrp log-neighbor-warnings コマンドの使用を推奨しません。 このコマンドは、EIGRP プロセスが使用するすべてのインターフェイスで「not on common subnet」エラー メッセージを無効にします。 このコマンドは慎重に使用してください。
EIGRP ルータ コンフィギュレーション モードで no eigrp log-neighbor-warnings コマンドを設定します。
Router#configure terminal Router(config)#router eigrp 1 Router(config-router)#no eigrp log-neighbor-warnings
EIGRP は、他の EIGRP ネイバーと通信するためにマルチキャスト hello パケットを使用します。 EIGRP は、受信側インターフェイスに設定されていないサブネット上の IP アドレスが送信元となった EIGRP hello パケットを受信すると、次の「not on common subnet」というエラー メッセージを生成します。
このエラー メッセージの一般的な原因を以下に示します。
インターフェイスやスイッチ ポートの設定ミスまたはケーブル接続の問題。
ネイバー インターフェイスのプライマリ/セカンダリ IP アドレスが不一致。
スイッチまたはハブが他のポートにマルチキャスト パケットを漏えいしている。
LAN スイッチを使用している場合に、VLAN によってルータが統合されている。
このルータと同じサブネット/VLAN にアドバタイズしている EIGRP を他のルータで使用しており、誤った AS 番号を使用して誤って設定されている。
この問題をトラブルシュートするには、次の項目を確認してください。
ケーブルが正しく接続されていることを確認します。
ローカル ルータまたは隣接ルータに誤設定された IP アドレスがないかどうかインターフェイス設定を再度チェックします。
インターフェイスのプライマリ アドレスがネイバー ルータのプライマリ アドレスと同じサブネットにあることを確認します。
EIGRP ネイバーの接続が LAN のハブで結合されている場合、各論理 LAN セグメント用にブロードキャスト ドメインを分割するために別々のハブを使用するか、no eigrp log-neighbor-warnings を設定してエラーを排除します。
スイッチが関係している場合は、スイッチの設定を調べて、異なる LAN セグメントが、同じブロードキャスト ドメインを共有する同じ VLAN に設定されていないことを確認してください。