このドキュメントでは、ルータに 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 |
ここでは、設定が正常に機能しているかどうかを確認します。
アウトプット インタープリタ ツール(登録ユーザ専用)(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 ネイバーとは正しく動作します。更新された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」というエラーメッセージが表示されなくなります。
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というエラーメッセージが表示されます。
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」エラー メッセージを無効化できます。
注:シスコでは、一般に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 に設定されていないことを確認してください。
改定 | 発行日 | コメント |
---|---|---|
1.0 |
27-Mar-2006 |
初版 |