我已经设置了一个新的 Proxmox 8 服务器,但无法正确设置网络。具有单个 IP 范围的普通桥接接口很容易实现,但使用 2 个桥接时,我似乎无法让 2 个 IP 范围正确路由。
背景:
- Proxmox 主机有一个物理接口,
eno1
可直接插入我的托管服务提供商的交换机 - 我的托管服务提供商为我提供了 2 个 IP 范围。
- 129.212.157.200/29(网关为 129.212.157.201)
- 129.212.175.24/29(网关为 129.212.175.25)
- 我创建了两个网桥,
vmbr0
和vmbr1
。这是为了提供第 2 层隔离,因为我并不完全信任上的虚拟机vmbr1
,因为第三方供应商对它们具有 root 访问权限。 - 访问 Proxmox 服务器的主要 IP 地址应该是 129.212.157.202。
我的理解是,这种情况需要路由配置。然而,这正是事情开始崩溃的地方。
我的/etc/network/interfaces
配置如下:
auto lo
iface lo inet loopback
auto eno1
iface eno1 inet static
address 129.212.157.202/29
gateway 129.212.157.201
auto vmbr0
iface vmbr0 inet manual
bridge-ports none
bridge-stp off
bridge-fd 0
auto vmbr1
iface vmbr1 inet manual
bridge-ports none
bridge-stp off
bridge-fd 0
vmbr0
理想情况下,我希望在和上混合搭配来自两个 IP 范围的 IP vmbr1
。换句话说,我不希望将一个 IP 范围专门分配给vmbr0
,而将另一个 IP 范围专门分配给vmbr1
。
我已使用以下路线手动添加ip ro
:
default via 129.212.157.201 dev eno1 proto kernel onlink
129.212.157.200/29 dev eno1 proto kernel scope link src 129.212.157.202
129.212.175.24/29 via 129.212.175.25 dev eno1
129.212.175.25 dev eno1 scope link
现在,我尝试创建一个虚拟机并将虚拟网卡绑定到vmbr0
,我也尝试了vmbr1
。对于这两种组合,我都尝试使用 129.212.157.200/29 范围以及 129.212.175.24/29 范围的 IP 配置虚拟机,分别使用网关 129.212.157.201 和 129.212.175.25。无论我为虚拟机使用哪种 vmbr 和 IP 地址组合,我似乎都无法获得连接。我甚至无法从虚拟机内部 ping 网关 IP。
为了进行比较,并测试两个 IP 范围是否确实可以通过提供的网关路由,我已按照 Proxmox 文档成功设置了一个简单的桥接实现,其中包含一个 vmbr0,并且对于两个 IP 范围和两个网关来说,它都可以正常工作。只有当我切换到路由方法时,事情似乎才会崩溃。
我还确认 Proxmox 主机上均启用了代理 ARP 和 IP 转发。
对我来说,这看起来像是 Proxmox 主机上的路由问题,但就我而言,我看不出我做错了什么。
据我所知,我没有配置任何特殊的防火墙规则。我确实在数据中心级别、主机级别和虚拟机级别启用了防火墙。我尝试过关闭主机和虚拟机级别的防火墙,但这似乎也没有什么效果。
有人提出的一个建议是实施 NAT,但我不明白为什么这有必要,因为每个虚拟机只有一个公共 IP,而没有私有 IP 范围。