Networking

為什麼linux為匹配區域網路路由的數據包生成ARP廣播?

  • September 28, 2021

我有兩個物理設備,一個路由器和一個接入點,都安裝了 OpenWRT。

路由器有兩個介面,一個用於 LAN (192.168.1.1/24),另一個用於 WAN。AP還有兩個介面,一個用於LAN(192.168.1.2/24),另一個用於WiFi(192.168.2.1/24)。兩個 LAN 介面用電線連接。

在路由器上,設置了 WiFi 路由:

ip route add 192.168.2.0/24 via 192.168.1.1

當我在路由器上 ping192.168.2.1時,我希望 echo 請求會通過帶有源 IP192.168.1.1和目標 IP的線路192.168.2.1,路由器會收到 echo 回复,但事實證明路由器會生成請求 MAC 的 ARP 廣播192.168.2.1發送到 AP 的 LAN 介面然後忽略的地址。

我怎樣才能使路由器按預期工作?

問題是你沒有告訴你的路由器將數據包發送到哪裡,哪些設備可以訪問該網路。

您在無法訪問192.168.2.0/24網路的同一主機上使用了您的 IP,因此您基本上是在告訴他將自己用作該網路的路由器,然後它通過具有您指定的本地 IP 的 NIC 發送 ARP,試圖找到IP的設備192.168.2.1連接到與 192.168.1.1 NIC 相同的物理網路(交換機)。

如果您通過在 via 部分中指定遠端主機來添加路由,那麼一切都應該正常工作。

ip route add 192.168.2.0/24 via 192.168.1.2

然後,您告訴您的路由器將需要進入192.168.2.0./24網路的數據包發送到具有192.168.1.2IP 的設備,即在同一網路上,然後該設備將處理路由到其他網路。

引用自:https://serverfault.com/questions/1078902