Proxmox 多个公共 IP

Proxmox 多个公共 IP

我在 Hetzner 有一台服务器,有多个公网 IP。我将其配置为桥接模式。到目前为止一切正常,但我该如何告诉单个虚拟机使用此公网 IP 地址上网?那么网关呢?

auto lo
iface lo inet loopback

auto enp7s0
iface enp7s0 inet static
        address 88.188.61.127/27
        gateway 88.188.61.161
        post-up sysctl -w net.ipv4.ip_forward=1
        post-up iptables -t nat -A PREROUTING -i enp7s0 -p tcp -m multiport ! --dport 45735 -j DNAT --to 10.10.10.1
        post-up iptables -t nat -A PREROUTING -i enp7s0 -p udp -j DNAT --to 10.10.10.1

auto vmbr0
iface vmbr0 inet static
        address 88.188.61.127/27
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        up ip route add 89.178.66.171/27 dev vmbr0


auto vmbr1
iface vmbr1 inet static
        address 10.10.10.0/31
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        post-up iptables -t nat -A POSTROUTING -s '10.10.10.1/31' -o enp7s0 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '10.10.10.1/31' -o enp7s0 -j MASQUERADE
#Mikrotik WAN Proxmox LAN

auto vmbr2
iface vmbr2 inet static
        bridge-ports none
        bridge-stp off
        bridge-fd 0
#DMZ

auto vmbr3
iface vmbr3 inet static
        bridge-ports none
        bridge-stp off
        bridge-fd 0
#VM-Intern


source /etc/network/interfaces.d/*

答案1

任何一个为虚拟机分配其他 IP(即不是举办),或者您在主机上执行 NAT,在这种情况下,您可以在 SNAT 规则中匹配虚拟机的私有 IP,并在 DNAT 规则中匹配公共 IP。(您可以将公共 IP 分配给某些虚拟机,而对其他虚拟机执行 NAT,这完全没问题。)

第一种方法(直接在虚拟机/容器中获取 IP)通常比较容易,麻烦也较少,但你需要再次路由这些 IP 而无需 NATting,或者桥接 PVE 的主“WAN”接口在 Hetzner 网络界面中指定 VM MAC,以允许这些 MAC 具有 Internet 连接。Hetzner 通常只提供选定的地址,而不是整个子网。

“不通过 NAT 进行主机路由”似乎是最好的方法。为此:

  • 你保留enp7s0现在的设置(我相信这就是你正在工作的 PVE WAN)
  • 你分配相同的 IP 地址,但使用 /32 网络掩码到“公共 IP 桥”,我假设它是你的vmbr0
  • 您可以通过桥接接口向选定的地址添加直接 /32 路由
  • 在虚拟机或容器上,您可以添加到该地址的直接路由vmbr0并将其设置为默认网关。

举例来说,如果您获得了一个89.178.66.171附加地址,则可以在主机上进行设置:

auto vmbr0
iface vmbr0 inet static
        address 88.188.61.127/32
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        up ip route add 89.178.66.171 dev vmbr0

在插入此桥的虚拟机上:

auto ens18
iface ens18 inet static
        address 89.178.66.171/32
        up ip route add 88.188.61.127 dev ens18
        up ip route add default via 88.188.61.127

这是基于我过去的经验。情况可能会发生变化。如果您能展示他们给您的说明就更好了,这样我可以帮助您将其调整为 PVE。

相关内容