Proxmox VE 专用服务器 OVH - 具有 1 个公共 IP 的网络设置中的配置问题

Proxmox VE 专用服务器 OVH - 具有 1 个公共 IP 的网络设置中的配置问题

问题:(无互联网和无 DHCP)

我似乎无法让我的虚拟机连接到互联网,也无法设置 DHCP 服务器来自动为它们分配 IP。

重复品的介绍/PSA:我在这里看到了几篇关于使用 Proxmox 进行网络最佳实践的文章、视频和问题。然而,几天之内,我重新安装了 11 台服务器,却无法通过我的设置获得结果,这可能是由于文章过时和/或缺乏知识。同样值得一提的是,我只在家庭网络上的路由器后面使用过 Proxmox。

我面临的一个问题是,与我读过的文档和文章相比,OVH 的配置 OOB 似乎略有不同。这是网络的一个示例,安装时未修改。(vmbr0 附带 OOB,附带公共 IP/网关,而不是网络设备)

Proxmox 网络选项卡 OOB

并且在/etc/network/interface

Proxmox 网络配置 VIM

设置:

  • Proxmox 版本:虚拟环境 7.4-3
  • 公共 IP:1
  • OVH 的专用云托管服务器

目标:

  • 对所有流量使用单个公共 IP
  • 任何虚拟机都可以访问互联网(如果指定了网桥)
  • 任何虚拟机都将使用 DHCP 自动分配一个本地 IP(低优先级) (若指定桥梁)
  • 在 VM 或 Proxmox 本身上使用 dnsmasq/other 进行 DHCP(低优先级) (若指定桥梁)
  • 了解网络和原理

我尝试过的:

第1部分

使用 iptables 进行伪装(NAT)(https://pve.proxmox.com/wiki/Network_Configuration

根据文档中的描述,我相信这是我想要实现的正确方法。

首先,我添加了一个新的 Linux 桥,没有分配网关或 IP。

添加了 Linux Bridge

然后我应用了将这个新的 iface 添加到配置文件的配置/etc/network/interfaces,然后使用 vmbr0 桥将地址、post-up、post-down 行添加到其中,因为那是我的网关所在的位置。IP 范围可以是:10.10.10.1 - 10.10.10.254

我的假设是,该10.10.10.1IP 将分配给 Linux 桥(充当托管交换机?)

(在生产中address=没有=,这是一个屏幕截图示例拼写错误)

更新的配置

然后我重启了整个服务器,以确保网络配置已应用。我这样做而不是重启服务是为了消除任何干扰,因为我注意到在我之前的尝试中应用它们时存在一些随机性。

成功启动后,我重新检查了 Proxmox 中的网络选项卡和/etc/network/interface配置文件。根据我到目前为止所做的更改,所有内容均存在且“正确”。

下一步是创建虚拟机。我选择了 ubuntu-22.04.2-live-server,将 vmbr1 网络接口应用于它并启动了虚拟机。到达网络连接配置后,我选择了手动 IPV4 设置并输入了以下详细信息:

在此处输入图片描述

保存此对话框后,继续按钮Continue without network被更改为Done。所以我相信我的配置是正确的(至少对于 LAN 而言)。略微向前跳转,Checking for installer update&Featured Server Snaps加载失败,但我决定继续安装。完成所有操作后,我运行apt-get updateping 1.1.1.1和 ,ping 10.10.10.1ping 10.10.10.0没有任何生命迹象。

在此处输入图片描述

运行ip a,显示以下内容,哪个看起来正确?:

在此处输入图片描述

这些结果告诉我我的桥接配置/etc/network/interfaces是错误的.....

第2部分

使用中的先前步骤Part 1,我完全遵循了它们,但是我重新分配了我的 IP/网关给网络设备并使用了vmbr0而不是vmbr1如屏幕截图中所示。

第 3 部分

我继续思考,这也可能是我在虚拟机上设置网络的方式的问题,所以我尝试使用dnsmasqdnsutils在 Proxmox 主机 shell 中设置 DHCP 服务器。然后重新跟踪我的步骤,如所示Part 1。但是,安装时没有自动为虚拟机分配 IP……(理想情况下,我会在单独的虚拟机中设置 DHCP 服务器)。

第 4 部分

然而,尝试安装后Pfsense,我意识到如果我不能修复我的桥接配置,那么这也将无法工作。

非常感谢任何帮助/知识/建议,我通常通过反复试验来获得最好的效果,但这次没有奏效!

感谢您阅读我的独白。

参考文献/文章:

Proxmox VE - 设置专用网络时出现问题

如何在桥接网络上从客户端本身通过公共 IP 访问 NATed、虚拟化(LXC)服务器?

Proxmox:1 个 NIC,1 个公共 IP,无法让虚拟机中的 WAN 接口正常工作

https://forum.proxmox.com/threads/how-can-i-connect-a-bridge-to-another-bridge.98510/(有趣?也许第一部分根本不起作用?)

https://bobcares.com/blog/dnsmasq-dhcp-server-in-proxmox/

https://forum.proxmox.com/threads/1-public-ip-two-bridges-port-forwarding.110820/

https://unix.stackexchange.com/questions/633668/how-to-set-up-a-bridge-interface-add-eth0-to-it-and-have-internet-connection

答案1

问题已解决(已更新为使用 192.168.1.1)

脚步:

  1. 安装 Proxmox 并加载接口
  2. 从 shellvim /etc/network/interfaces
  3. 将 vmbr1 iface 添加至文件底部:

自动 vmbr1

iface vmbr1 inet 静态

地址 192.168.1.1

网络掩码 255.255.255.0

bridge_ports 无

bridge_stp 关闭

bridge_fd 0

  1. 从 shellapt-get install dnsmasq
  2. 从 shellvim /etc/dnsmasq.conf
  3. 添加配置:

接口=vmbr1

dhcp 范围=192.168.1.100,192.168.1.200,无限

dhcp 选项=选项:路由器,192.168.1.1

dhcp 选项 = 选项:dns 服务器,192.168.1.1

  1. 从 shell:.vim /etc/sysctl.conf添加net.ipv4.ip_forward=1

  2. 从 shell 中:sudo sysctl -p

  3. 在 SHELL 中运行:sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o vmbr0 -j MASQUERADE

  4. 从 shell 中:sudo apt-get install iptables-persistent

  5. 从 shell 中:sudo systemctl restart networking

  6. 从 shell 中:sudo systemctl restart dnsmasq

  7. 从 shell 中:sudo netfilter-persistent save

  8. 使用 vmbr1 网络构建虚拟机,将使用 DHCP 自动分配 IP 并连接互联网。

答案2

感谢您的指南,如果我设置了固定 IP,我就能为 OVH 上 Proxmox 上的虚拟机设置具有互联网连接的 vmbr1。

即使我按照您的步骤操作,DHCP 仍然不起作用(我使用的是 10.10.10.1 而不是 192.168.1.1):

等/网络/接口

auto lo
iface lo inet loopback

iface enp1s0f0 inet manual

iface enp1s0f1 inet manual

auto vmbr0
iface vmbr0 inet static
        address MYSERVERIP/24
        gateway MYSERVERGATEWAY.254
        bridge-ports enp1s0f0
        bridge-stp off
        bridge-fd 0
        hwaddress HWADDRESS

iface vmbr0 inet6 static
        address ADDRESS
        gateway GATEWAY

auto vmbr1
       iface vmbr1 inet static
       address 10.10.10.1/24
       bridge_ports none
       bridge_stp off
       bridge_fd 0


post-up   echo 1 > /proc/sys/net/ipv4/ip_forward
post-up   iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1
post-down iptables -t raw -D PREROUTING -i fwbr+ -j CT --zone 1
post-up   iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE

/etc/dnsmasq.conf

interface=vmbr1
dhcp-range=10.10.10.101,10.10.10.200,infinite
dhcp-option=option:router,10.10.10.1
dhcp-option=option:dns-server,10.10.10.1

当我启动/创建虚拟机时,我还需要设置其他东西来获取 IP 吗?

谢谢

亚历山德罗

相关内容