在 Debian Linux 上为 Qemu 设置桥接并为具有多个子网的 OpenVZ(venet)设置路由

在 Debian Linux 上为 Qemu 设置桥接并为具有多个子网的 OpenVZ(venet)设置路由

因此,过去几天我一直在搜索,试图找出实现这一目标的最佳方法,但仍然无法找到答案。

我有一台运行 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"

相关内容