我的RaspberryPi中有三个无线局域网接口:
wlan0wlan1wlan2它们每个都连接到不同的SSID:
gopro-0gopro-1gopro-2GoPro摄像头被设置为一个WiFi路由器,总是有相同的IP地址:10.5.5.9。
如果我调用:
curl http://10.5.5.9然后首先使用wlan0接口(简化假设)。如果我想调用相机gopro-2,我必须调用:
curl http://10.5.5.9 --interface wlan2它起作用了。但是,有一个问题是,并非所有命令都允许我指定接口(即ffmpeg --或者我不知道)。
是否有可能以某种方式欺骗Linux并委托某些IP地址在特定接口上转发给10.5.5.9?
例如:
10.5.4.100 -> 10.5.5.9 @ wlan0
10.5.4.101 -> 10.5.5.9 @ wlan1
10.5.4.102 -> 10.5.5.9 @ wlan2我希望有任何解决方案,甚至其他方法,允许我使用常规的HTTP /POST方法在不同的接口上调用相同的IP。
发布于 2019-01-07 04:44:14
对于不同类型的设备,我也有同样的问题,并想出了一种方法。您需要iptable、mangle和ip路由的组合。
在与设备相同的子网上给每个接口一个唯一的IP(下面是192.168.44.8)。在本例中,第一个设备的虚拟IP为192.168.44.9
我的物理设备在4个不同的接口上都在192.168.44.1,使用这种模式和虚拟IP,我可以可靠地与它们进行通信。
iptables -t mangle -A PREROUTING -d 192.168.44.9 -j MARK --set-mark 0x01
iptables -t nat -A PREROUTING -m mark --mark 0x01 -d 192.168.44.9 -j DNAT --to-destination 192.168.44.1
iptables -t nat -A POSTROUTING -m mark --mark 0x01 --destination 192.168.44.1 -j SNAT --to-source 192.168.44.8在此基础上,现在添加以下路由。
ip route add 192.168.44.0/24 dev eth4 table 1
ip rule add from all fwmark 1 table 1
ip route flush cache您可以多次重复此模式,只需为有多少接口保留标记和地址即可。
希望这将对处理不同网络接口上重复地址的其他人有用。
发布于 2017-03-22 07:18:35
我认为方法是使用iptable,并为此设置路线。以下是你提出的问题的类似答案:
https://serverfault.com/questions/345111/iptables-target-to-route-packet-to-specific-interface
在OpenBSD/pf中,这一点不那么复杂。
https://unix.stackexchange.com/questions/352997
复制相似问题