在其他网络中转发以太网数据包并返回

Forward ethernet packets in other network and back

我有一个网络问题,我希望在这里得到一些答案。所以我有多个 raspberry pi,它们都有 wifi 连接和以太网。所有的 PI 都通过 wifi 连接到网络,并在以太网上相互连接。我需要的是:如果一个覆盆子的 wifi 有问题(没有信号或 smth),我想通过以太网发送那个包,另一个覆盆子应该在以太网上接收那个包并进一步转发它的 owm wifi 接口。有人能给我一些关于如何处理这个问题的提示吗?任何帮助将不胜感激。

你必须在每个 pi 中启用路由,使用 sysctl,然后在每个 pi 上启用动态路由,无论是 ospf 还是 rip 在你的情况下都无关紧要,但你必须坚持你的选择另一个pis,否则你需要做更复杂的配置。
我强烈建议你通过阅读这个人来尝试自己设置它,我相信当你这样做时你会得到一种满足感。
编辑 1:每个 pi 将是一个路由器,有 2 个接口,2 个以太网连接的 pi 当然应该属于同一个子网。
编辑 2:当 wifi link 关闭时,树莓派将使用以太网,下一个 pi 必须使用 nat 来转换数据包,以便它们可以到达 public 网络。
示例:wlan0 是外部的,eth1 是内部的

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -A FORWARD -i eth1 -o wlan0 -j ACCEPT

编辑 3:设置 ospf
首先,在每个路由器上安装 quagga(pi)
编辑 /etc/quagga/daemons 并将 zebra 和 ospf 行中的 no 替换为 yes
然后执行此操作

cd /etc/quagga
cp /usr/share/doc/quagga/examples/zebra.conf.sample .
mv zebra.conf.sample zebra.conf

对 ospfd.conf 和 vtysh.conf
做同样的事情 让乐趣开始吧:
这是一个关于如何做的例子

vtysh
conf t
router ospf
network 10.0.1.0/24 area 1
network 192.168.1.0/24 area 1
end