我有两个物理设备,一个路由器和一个接入点,都安装了 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 部分中指定远程主机来添加路由,那么一切都应该正常工作。
然后,您告诉您的路由器将需要进入
192.168.2.0./24
网络的数据包发送到具有192.168.1.2
IP 的设备,即在同一网络上,然后该设备将处理路由到其他网络。