0

我尝试设置一个带有外部 ip 类映射到内部 ip 类的 proxmox 节点:

62.xxx.yyy.zzz/24 <--> 192.168.yyy.zzz/24

每个外部 ip 都匹配内部 ip,因此每个 VM 都有自己的外部 ip。proxmox 主机获得的是自己的外部 IP(在 /24 范围之外),并且自己获得了 Web 访问权限。

如果我使用 : # NAT 表规则 *nat :POSTROUTING ACCEPT [0:0]

# Forward traffic through eth0 - Change to match you out-interface
-A POSTROUTING -s 192.168.0.0/16 -o vmbr0 -j MASQUERADE

# don't delete the 'COMMIT' line or these rules won't be processed
COMMIT

所有 ip 为 192.168.xx 的虚拟机都可以访问网络,但使用主机的 ip 地址。

如果我将 -A POSTROUTING LINE 更改为:

-A PREROUTING  -o vmbr0 -d 62.xxx.yyy.0/24 -j DNAT --to-destination 192.168.yyy.0/24
-A POSTROUTING -o vmbr1 -s 192.168.yyy.0/24 -j NETMAP DNAT --to-destination  62.xxx.yyy.0/24

我收到一个错误,因为 DNAT 目的地不是 ip 而是一个类,似乎不支持 NETMAP ...

有什么想法可以指点我吗?

谢谢 !

斯蒂芬妮

4

1 回答 1

0

您应该尝试使用 iptables 1:1 NAT。

您将需要这样的规则:

iptables -t nat -A PREROUTING -i internet_interface -d 62.xxx.yyy.0/24 -j NETMAP --to 192.168.yyy.zzz/24

我认为下面的链接肯定会帮助您实现目标: https ://serverfault.com/questions/109569/iptables-massive-11-nat

ufw 只是实现 ip 表规则的一种简单方法。在您的情况下,我认为最好的方法是创建自己的 iptables 规则,而不使用 ufw 或任何其他类似的防火墙实用程序(在 linux 上它们都基于 iptables)。

于 2017-07-04T18:49:44.573 回答