如何在接口之间路由

如何在接口之间路由

我有以下设置:

                         (192.168.4.1)     
   Device A     <------->   device B   <------->   Device C
(192.168.5.84)           (192.168.5.1)          (192.168.4.5)

设备 B 实际上有一个 wifi 接口 ( wlan0 = 192.168.4.1),上面运行着 dhcp 服务器。然后是一个电缆接口(eth0 = 192.168.5.1)。

我想要达到的是设备A和C可以互相通话。我一直在阅读如何获得此结果,并且发现我应该使用路由来完成此任务。我尝试了一些东西,但我不明白为什么它不起作用。

设备 A 有一个静态 IP(子网255.255.255.0和网关192.168.5.1)。

设备 C 从 DHCP 服务器接收到 IP(子网255.255.255.0和网关192.168.4.1)。

我做了什么:

在设备 BI 上已设置启用 ipforward/etc/sysctl

添加路由:

iptables -A FORWARD -i eth0 -o wlan0 -s 192.168.5.0/24 -d 192.168.4.0/24 -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -s 192.168.4.0/24 -d 192.168.5.0/24 -j ACCEPT 

问题是设备 A 和 C 都可以从设备 B 访问,因此这表明它一定是路由问题。所以我的问题是,如何达到设备 B 将流量从 A 路由到 C 的情况?


更新:我没有提到的是,我想通过仅更改设备 B 的设置来实现此结果

答案1

无需使用 iptables。如果您已成功启用 ip 转发(即通过设置/proc/sys/net/ipv4/ip_forward1),设备 B 将完成这项工作,因为两个网络都直接连接到 B。您可能会丢失设备 A 和 C 上的正确路由。
在 A 上:

ip route add 192.168.4.0/24 via 192.168.5.1

在C上:

ip route add 192.168.5.0/24 via 192.168.4.1

相关内容