![IP 转发到另一个子网](https://linux22.com/image/982043/IP%20%E8%BD%AC%E5%8F%91%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%AD%90%E7%BD%91.png)
目前我正在测试 MAAS 设置(物理硬件)。我已经部署了 juju 并可以在网络 (10.0.3.0) 内访问它。
我有两个接口 eth0,面向互联网,eth1 位于 10.0.3.0 和大众网络。我能够对接口进行 nat,这样 eth 1 就可以通过 eth0 访问互联网,但是我想设置一些虚拟接口(例如具有公共 IP 的 eth0:0)并将其转发到 maas 网络上设置的特定 Web 服务器。我该怎么做?
我已经尝试了一些基本步骤,使用 IP 表预先和后期路由流量。我相信我遗漏了与子网有关的内容。但据我所知,我不知道是什么。
sudo iptables -t nat -A POSTROUTING -o eth0:0 -j SNAT --to-168.XXX.XXX.72
sudo iptables -t nat -A PREROUTING -i eth0:0 -j DNAT --to-destination 10.0.3.12
sudo iptables -t nat -A PREROUTING -d 168.XXX.XXX.72 -j DNAT --to-destination 10.0.3.12
sudo iptables -t nat -A POSTROUTING -s 10.0.3.12 -j SNAT --to-source 168.XXX.XXX.72
我对此领域不太了解,因此如果能提供任何帮助我都会很感激。
答案1
iptables 不知道接口别名,因此您只能在任何 iptables 规则中引用 eth0 和 eth1。假设您有 FORWARD 链的默认策略 ACCEPT,并且已将其设置/proc/sys/net/ipv4/ip_forward
为 1,那么您所需要的只是:
sudo iptables -t nat -A PREROUTING -i eth0 -d 168.XXX.XXX.72 -j DNAT --to-destination 10.0.3.12
sudo iptables -t nat -A POSTROUTING -o eth0 -s 10.0.3.12 -j SNAT --to-source 168.XXX.XXX.72