![配置 iptables 防火墙以转发流量](https://linux22.com/image/1589355/%E9%85%8D%E7%BD%AE%20iptables%20%E9%98%B2%E7%81%AB%E5%A2%99%E4%BB%A5%E8%BD%AC%E5%8F%91%E6%B5%81%E9%87%8F.png)
我有 3 个 Raspberry,其中一个用作带有 iptables 的防火墙,通过交换机连接到其他 Raspberry。
Internet--> A (firewall) --> (switch) --> B \-> C
我希望所有指向其他树莓派 (BC) 的流量都先通过防火墙 A。现在:我意识到一旦流量到达防火墙,我就可以通过 NAT iptables 将其重定向到其他 Raspb。但我的疑问是:如何让流量在到达树莓派 B 和 C 的 IP 之前先通过防火墙?我找到的唯一解决方案是,只有防火墙的 IP 显示在外部,并根据它所连接的端口将其转发到其他 Raspb。我的另一个疑问是:B 和 C 应该使用它们的 IP 连接到互联网,还是应该只有防火墙可见的本地 IP 才可见?抱歉问题太多,但我最近正在接触网络世界。
编辑:我注意到连接到我的 ISP 调制解调器的所有设备都具有相同的公共 IP 85.XX56 我的交换机是 Tp Link TL-SG105E,支持基于端口的 VLAN 和 802.1Q VLAN。我不知道它是否支持中继 VLAN,我对网络不太了解 :(
答案1
由于您只有 1 个 IP 地址,因此您需要为所有树莓派 BC 设置 NAT。只有树莓派 A 会从您的 ISP 获取 IP。
由于您的设备会从 ISP 获取相同的 IP,因此您需要将公共网络与私有网络分开。
您的 Raspberry Pi 只有一个网络连接。您可以使用 VLAN 中继端口来解决此问题,但由于您的交换机很小(只有 5 个端口)并且您缺乏经验,我建议您不要使用这种方法。
相反,您可以购买便宜的 15 美元/欧元 USB 以太网适配器用于树莓派 A,这样您就可以连接两根以太网电缆。例如https://www.amazon.com/s?k=usb+ethernet&ref=nb_sb_noss_2
连接方式如下:Internet 调制解调器 --> 便宜的 15 美元 USB 以太网 --> A(防火墙/路由器/iptables/NAT)-> Raspberry A 内置以太网端口 -->(交换机)--> B、C
您的 Raspberry PI 将从廉价 USB 连接上的 ISP 调制解调器获取公共 IP 地址,该连接插入您的互联网调制解调器。请勿将您的互联网调制解调器插入交换机。然后使用防火墙/路由/iptables 功能为常规以太网端口上的 B、C 设备提供互联网。将其插入交换机。在连接到交换机的常规以太网端口上的 Raspberry PI 上运行 DHCP 服务器。确保 DHCP 服务器将 Raspberry A 的常规以太网端口的私有 IP 地址作为默认网关向客户端公布。
希望这可以帮助!