Proxmox 网络设置 - 单个 IP 多个虚拟机

Proxmox 网络设置 - 单个 IP 多个虚拟机

我正在专用服务器上设置我的第一个 Proxmox。裸机提供商为我提供了一台服务器,我已在该服务器上安装了 Proxmox 和一个连接到桥接接口的单个​​ IP。

这是我想要构建的架构:

在此处输入图片描述

一些注意事项:

  • 我希望 2 个物理接口 eno1/eno2 处于有界模式,以便进行故障转移
  • 我将在所有基于 Web 的界面前面放置一个反向 NGINX 代理
  • 对于每个虚拟机,我都需要 ssh 访问(本地端口 22,从公共的不同端口重定向(例如:141.aaa.bbb.23:221 转到 s1 端口 22,141.aaa.bbb.23:222 转到 s2 端口 22,依此类推)。Zabbix 访问也是如此(141.aaa.bbb.23:10051 转到 zabbix 10051 端口)。

这是我的服务器的初始配置:

在此处输入图片描述

我对如何构建所需的配置有一些疑问:

a) 我已经为内部虚拟机创建了如下桥接器来连接虚拟机,但是我如何告诉该桥接器通向公共互联网的 vmbr0? 在此处输入图片描述

b) 如何将两个接口绑定在一起。我根本无法在 eno1 和 eno2 之间创建绑定,因为 eno1 已连接到我的公共接口,如果我删除该公共 IP,我将失去对我的服务器的访问权限。

c) 如何在给定的架构中完成我的需要?

答案1

A 和 C。

您当前的设置是桥接网络,连接到 vmbr0 的虚拟机属于同一网络(或广播域)。在这样的配置中,DHCP 应该由您的提供商提供,而不是由主机提供。

理想状态是 NAT 的网络,其中虚拟机不能直接将以太网帧发送到外部网络,并且它们的私有 IP 被主机 IP 替换以发送传出的数据包(伪装)。

您不应将 141.aaa.bbb.23 分配给 vmbr0 或 vmbr1 设备。您可以保留 141.aaa.bbb.23 分配给 bond 设备,并且只使用 vmbr0(无需创建 vmbr1)。

通过绑定的路由将由主机路由表自动处理。

看这里:

B.

我根本无法创建 eno1 和 eno2 之间的绑定,因为 eno1 连接到我的公共接口,如果我删除该公共 IP,我将无法访问我的服务器。

如果涉及互联网访问丢失,您可能需要带外管理(如 KVM over IP)来应用初始配置。

答案2

我根本无法创建 eno1 和 eno2 之间的绑定,因为 eno1 连接到我的公共接口,如果我删除该公共 IP,我将无法访问我的服务器。

欢迎来到丛林。

鉴于这些限制,没有远程控制台访问,也没有托管提供商的自愿勾结,您别无选择。要么改变其中一个因素,要么……

您可以做的是创建一个新的配置文件(Proxmox 使用 /etc/network/interfaces),例如 /etc/network/proposed,将您的工作配置备份为,例如,/etc/network/working,然后创建 cron 作业来部署每个配置并应用更改。将“proposed”的 cron 作业设置为在下午 3 点运行,将“working”的 cron 作业设置为在下午 4 点运行。

粘合配置看起来会像这样......

auto lo
iface lo inet loopback

iface eno1 inet manual

iface eno2 inet manual

iface bond0 inet manual
      bond-slaves eno1 eno2
      bond-miimon 100
      bond-mode balance-rr
      
iface vmbr0 inet static
        address 141.aaa.bbb.23/24
        gateway 1141.aaa.bbb.1
        bridge-ports bond0
        bridge-stp off
        bridge-fd 0
        post-up   echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up   iptables -t nat -A POSTROUTING -s '141.aaa.bbb.23/24' -o eno1 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '141.aaa.bbb.23/24' -o eno1 -j MASQUERADE

iface vmbr1 inet static
        address 192.168.0.1/24

例如:141.aaa.bbb.23:221 转到 s1 端口 22,141.aaa.bbb.23:222 转到 s2 端口 22

只需将您的 Proxmox 主机用作跳转盒......

ssh -J 141.aaa.bbb.23 192.168.0.102

(您可以在 ~/.ssh/ssh_config 中预先配置)

相关内容