IP表和路由

IP表和路由

我试图允许连接到 eth0 的设备访问 wlan0 和 wlan1 上的设备。如下图所示。 WiFi 设备的频率不同,我无法桥接它们(不支持)。

                                                    (192.170.1.32) WiFi Device 1 freq A
                                                    /
                                                   /
                                                (wlan0 = 192.170.1.250/32)
PC (192.168.2.33) -------  (eth0 = 192.168.2.1) RPi ----- 
                                                (wlan1 = 192.170.1.251/32)
                                                   \
                                                    \
                                                    (192.170.1.69) WiFi Device 2 freq B

我尝试设置 IPTables 以定向到正确的网络(我事先知道网络上每个设备的 IP 地址是什么)

例如,如果我希望 th0 接口将所有 udp 数据包发送到频率 A (wlan0) 上的 192.170.1.69,并将 udp 数据包发送到频率 B (wlan1) 上的 192.170.1.9。

# Iptables
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -t nat -A PREROUTING -s 192.168.1.1 -d 192.170.1.69 -p udp -j MARK  --set-mark 11
iptables -t nat -A PREROUTING -s 192.168.1.1 -d 192.170.1.79 -p udp -j MARK  --set-mark 12

# IP Routes
ip route add 192.170.1.0/24 dev wlan0 table 11
ip route add 192.170.1.0/24 dev wlan1 table 12

然而,这是行不通的。我无法让它向正确的设备发送消息 - 我觉得因为它太简单了。

答案1

答案最终是一个名为 的应用程序parprouted。这是一个 ARP 代理,允许设备将网络视为单个逻辑网络,即使它们在物理上是分开的。 ARP 代理在第 3 层工作,这意味着您不必处理第 2 层(链路层)。有关 ARP 代理如何工作的好文章请参阅此处http://www.tcpipguide.com/free/t_ProxyARP-2.htm

在这种情况下,桥接方法不起作用。主要是因为 WiFi 似乎不使用与以太网相同的帧模式,并且不容易桥接。

我没有花足够长的时间研究该ip route方法来弄清楚如何做到这一点。我不太确定如何配置它,但我认为可能需要使用 ip 表来根据目标 ip 地址进行过滤。

我的网络配置如下

                                                                        (192.170.1.32) WiFi Device 1 freq A
                                                                        /
                                                                       /
                                                                    (wlan0 = 192.170.1.250/24)
PC (192.170.1.251/24) -------  (eth0 = 192.170.1.251/24) RPi ----- 
                                                                    (wlan1 = 192.170.1.251/24)
                                                                       \
                                                                        \
                                                                        (192.170.1.69) WiFi Device 2 freq B

parprouted开始使用parprouted eth0 wlan0 wlan1

相关内容