在 Ubuntu 下使用同一 IP 对多个 Wifi 接口进行 NAT

在 Ubuntu 下使用同一 IP 对多个 Wifi 接口进行 NAT

大家早上好,请注意,这可能会变得相当肮脏。

我有一个相当奇怪的网络配置,其中有一台笔记本电脑(lubuntu),带有多个 USB <-> WIFI 加密狗(笔记本电脑 wlan0 + wlan1)以及一个以太网连接到 openwrt 路由器,该路由器充当多个 WIFI 称重传感器的接入点。

openwrt 路由器为称重传感器运行 DHCP 服务器。每个摄像头都充当加密狗的接入点和 DHCP 服务器,我无法配置它们内部的 DHCP(廉价的 GoPro 克隆)。veth0 是一个虚拟接口,我希望不同的加密狗映射到它并具有透明连接,这样我就可以从笔记本电脑端用 192.168.3.10 寻址摄像头 A,用 192.168.3.11 寻址摄像头 B。

所以问题是,所有 WIFI 加密狗在同一个子网内都有相同的 IP。

网络图

问题:如果可能的话,我该如何配置 iptables 链和路由才能使其正常工作?摄像头无需与 192.168.1.x 网络通信,只需笔记本电脑单独访问它们即可。

问候,lor

答案1

好吧,我想到了一些可行的方法,尽管它与原始问题有些不同:

ifconfig eth1 192.168.4.1/24 up
iptables -t mangle -A OUTPUT -d 192.168.4.13 -j MARK --set-mark 1
iptables -t nat -A OUTPUT -d 192.168.4.13 -j DNAT --to 192.168.4.4
ip rule add priority 1000 fwmark 0x01 table eth1_table
ip route add table eth1_table 192.168.4.4/32 dev eth1
iptables -t nat -A INPUT -i eth1 -s 192.168.4.4 -j SNAT --to 192.168.4.13

ifconfig eth2 192.168.4.1/24 up
iptables -t mangle -A OUTPUT -d 192.168.4.14 -j MARK --set-mark 2
iptables -t nat -A OUTPUT -d 192.168.4.14 -j DNAT --to 192.168.4.4
ip rule add priority 1001 fwmark 0x02 table eth2_table
ip route add table eth2_table 192.168.4.4/32 dev eth2
iptables -t nat -A INPUT -i eth2 -s 192.168.4.4 -j SNAT --to 192.168.4.14

我现在可以通过 IP 13 和 14 访问不同网卡上的每个摄像头,并且它们使用这些 IP 响应笔记本电脑。

相关内容