目錄

簡介

必要條件

需求

採用元件

慣例

設定

網路圖表

組態

驗證

疑難排解

不再有鄰居

輔助IP地址

錯誤消息的一般原因

相關資訊

簡介

本文說明當路由器配置增強型內部網關路由協定(EIGRP)時，Cisco IOS®路由器可能遇到not on common subnet錯誤消息。

EIGRP使用組播hello資料包與其他EIGRP鄰居通訊。如果EIGRP收到來自EIGRP接收介面上未配置的子網上的IP地址的hello資料包，EIGRP將生成以下錯誤消息：

timestamp: IP-EIGRP: Neighbor neighbor_IP_address not on common subnet for interface

必要條件

需求

本文檔要求對IP路由協定和EIGRP路由協定有一般的基本瞭解。要瞭解有關IP路由協定和EIGRP的更多資訊，請參閱以下文檔：

- 路由基礎知識

- EIGRP支援頁

採用元件

本檔案中的資訊是根據Cisco 2500系列路由器上的Cisco IOS軟體版本12.2(10b)。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路正在作用，請確保您已瞭解任何指令可能造成的影響。

慣例

如需文件慣例的詳細資訊，請參閱思科技術提示慣例。

設定

本節提供用於設定本文件中所述功能的資訊。

註：使用Command Lookup Tool(僅限註冊客戶)查詢有關本文檔中使用的命令的更多資訊。

網路圖表

Cisco建議您使用同一子網上的主IP地址配置網段上的所有路由器。此示例顯示常見的EIGRP配置：

組態

本檔案會使用以下設定：

- R1

- R2

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命令，以檢驗兩台路由器是否都能看到對方。

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地址

如果網路配置不正確，在使用輔助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將R1顯示為EIGRP鄰居，而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錯誤消息，並且沒有看到R2列在EIGRP鄰居表中。

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更新始終使用傳出介面的主IP地址作為源地址。更改R1上的主地址以匹配R2的主子網，在本例中為10.1.2.1/24。

您可以在同一物理網段上配置兩個獨立子網的某些網路。在這種情況下，一個子網上的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使用組播hello資料包與其他EIGRP鄰居通訊。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中。

相關資訊

- EIGRP支援頁

- EIGRP白皮書

- 技術支援與文件 - Cisco Systems