我正在尝试将静态公共 IP 地址直接分配给本地网络上的 OPNsense 盒。我的 VPS 为我提供了四个 IP 地址:
ens4 1.1.1.1
ens4:1 2.2.2.2
ens4:2 3.3.3.3
ens4:3 4.4.4.4
我想将其中三个显示为本地防火墙中的独立接口和网关。我尝试过使用 ZeroTier、IPSec 和 OpenVPN,但到目前为止都没有成功。虽然我可以让它们相互通信并将它们用作 VPN,但我似乎无法让它们表现得像直接连接到防火墙一样。有没有办法实现这一点?
答案1
经过反复尝试后,我实际上成功做到了这一点:
VPS 的公共 IP 直接连接到其接口:
ens4 10.10.10.10
ens4:1 11.11.11.11
ens4:2 12.12.12.12
ens4:3 13.13.13.13
ens4:4 14.14.14.14
最好不要使用第一个IP,这样管理VPS会更容易。
然后,我创建了一个 ZeroTier 网络并加入了 VPS 和 OPNsense 防火墙。
让我们使用第一个子网:10.147.17.*
我设置的IP是:
10.147.17.2 for the VPS
10.147.17.1 for OPNsense
然后,在 VPS 上,您应该安装 iptables-persistent,并将所有来自公共 IP 的流量路由到 ZeroTier 网络的 IP。如下所示:
sudo iptables -t nat -A PREROUTING -d 11.11.11.11 -j DNAT --to-destination 10.147.17.111
sudo iptables -t nat -A POSTROUTING -s 10.147.17.111 -j SNAT --to-source 11.11.11.11
sudo iptables -t nat -A PREROUTING -d 12.12.12.12 -j DNAT --to-destination 10.147.17.112
sudo iptables -t nat -A POSTROUTING -s 10.147.17.112 -j SNAT --to-source 12.12.12.12
sudo iptables -t nat -A PREROUTING -d 13.13.13.13 -j DNAT --to-destination 10.147.17.113
sudo iptables -t nat -A POSTROUTING -s 10.147.17.113 -j SNAT --to-source 13.13.13.13
sudo iptables -t nat -A PREROUTING -d 14.14.14.14 -j DNAT --to-destination 10.147.17.114
sudo iptables -t nat -A POSTROUTING -s 10.147.17.114 -j SNAT --to-source 14.14.14.14
接下来,您应该在 OPNsense 中在您的 LAN 和 ZeroTier (ZT) 接口之间创建一个桥接(此时,您应该已经使用上面提到的 IP 在 OPNsense 中正确设置了 ZeroTier)。
最后一步是在您的 LAN 网络中创建防火墙规则,以允许从您的 ZT 网络到任何地方的流量以及从任何地方到您的 ZT 网络的流量。
最后,在您想要完整公共 IP 地址的机器上设置 IP:
IP: 10.147.17.111
Subnet 255.255.255.0
Default GW: 10.147.17.2
就是这样。现在,您拥有从 VPS 到本地计算机的所有流量,中间几乎没有任何流量。