因此,过去几天我一直在搜索,试图找出实现这一目标的最佳方法,但仍然无法找到答案。
我有一台运行 Proxmox 的 Debian 服务器,用于托管 OpenVZ 和 Qemu 虚拟机。提供商已为我分配了同一上行链路端口上的两个子网。我的最终目标是让 Qemu 桥接到 eth1,让 OpenVZ 路由到 eth1。我想使用 OpenVZ 路由 (venet),因为它可以轻松配置服务器。
理论上这就是我想要做的(网关可以是 200.xx41 或 200.xx97):
/// Gateway 200.x.x.x ///
|
|
/// eth1 ///
| |
| |
//qemu br// //openvz venet//
在过去的几天里,我尝试了几乎所有能想到的配置,但似乎都遇到了 qemu 或 openvz 运行的问题。
我想要使用的 openvz 的路由方法(venet)不支持桥接,这就是为什么我认为当我为桥接器设置 bridge_ports eth1 时它不起作用,因为路由表显示默认网关为 br0,但我可能是错的。
我有两个子网路由到我的 eth1 端口,分别是 200.xx40/29 和 200.xx96/27。我想将 200.xx96/27 子网用于 OpenVZ,将 200.xx40/29 用于 Qemu。
如果没有多个网卡,这在物理上是否可行?
有人可以帮帮我吗,或者至少给我指明正确的方向,我已经把剩下的头发都拔掉了,我禁不住想这是件简单的事情,我把它复杂化了或者只是没注意到。
提前感谢任何帮助,我们非常感激!!
答案1
哇哦,我找到了!!如果其他人也遇到这个问题,你只需要在桥接接口上启用 proxy_arp!!
auto lo
iface lo inet loopback
iface eth1 inet manual
auto vmbr0
iface vmbr0 inet static
address 209.x.x.42
netmask 255.255.255.248
gateway 209.x.x.41
bridge_ports eth1
bridge_stp off
bridge_fd 0
post-up echo 1 > /proc/sys/net/ipv4/conf/vmbr0/proxy_arp
正如您所看到的,我使用 208.xx41/29 子网作为桥接器,然后在桥接器(vmbr0)上启用 proxy_arp,瞧!
由于我使用的是 venet 路由方法,因此您实际上不需要在配置中指定其他子网,这使得以后添加其他子网时变得更加容易!
我还将 /etc/vz/vz.conf 中 VE_ROUTE_SRC_DEV 的值更改为:
VE_ROUTE_SRC_DEV="vmbr0"