Networking
為什麼linux為匹配區域網路路由的數據包生成ARP廣播?
我有兩個物理設備,一個路由器和一個接入點,都安裝了 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
當我在路由器上 ping
192.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.2
IP 的設備,即在同一網路上,然後該設備將處理路由到其他網路。