Xen 3.2 网络:私有主机和公共主机?

Xen 3.2 网络:私有主机和公共主机?

我在 Debian Lenny 上运行了 Xen 3.2,并且我本质上想尝试重新创建我在另一台运行 OpenVZ 的服务器上的设置。

我的 dom0 有一个静态 IP 地址,并且面向 Internet。例如,我有 4 个 domU。我希望 dom1 和 dom2 在 Internet 上面向公众,具有公共 IP 地址。我希望 dom3 和 dom4 具有私有网络地址 (192.168.xx),但可以从 dom0、dom1、dom2 访问。

这是使用 OpenVZ 的快照,但不幸的是,我找不到任何像这样的组合设置的好例子。要么所有 domU 都是公共的,要么都是私有的。有什么建议吗?

答案1

您可以简单地创建一个虚拟网桥,它不连接到 domU3 和 domU4 的任何物理接口。您的其他 2 个 domU 可以在每个网桥(物理和虚拟)上都有一个接口,并且您可以在 dom0 上使用 NAT 以允许 domU3/4 通过虚拟网桥访问互联网,方法是在 dom0 中为其分配一个 IP。RedHat 的 libvirt 就是这样做的,它通过创建一个默认的“virbr0”来创建私有的 domU LAN。

使用 debian,您可以轻松地在启动时设置网桥:a. 安装“bridge-utils”(如果安装了 xen,则很可能已经安装了它)b. 在 /etc/network/interfaces 中添加以下内容:

auto virbr0
iface br0 inet static
address 192.168.0.10
netmask 255.255.255.0
gateway 192.168.0.1

并在 domU 配置中添加一个连接到 virbr0 的接口

vif = [ "bridge=virbr0" ]

答案2

如果盒子上有 2 个 NIC,则可以使用一个用于公共网络,另一个用于私有网络。我的典型 Xen 配置是 dom0 只有一个私有 IP,但设置了公共 NIC 进行桥接。构建 domU 时,只需为其提供公共或私有网络的桥接。

您需要有 2 个 NIC 才能执行此操作,由于 Xen 桥接 NIC 的方式,我不确定您是否可以使用 1 个 NIC 执行此操作。您必须更改 xend-config.sxp 中的网络脚本设置以运行将设置两个桥接的例程。我创建了一个名为 的脚本xen-bridge,并让它network-bridge为每个需要桥接的 NIC 多次调用默认脚本。

答案3

有几种方法可以实现这一点。我在网络上采用的方法是,在交换机端口上使用 VLAN 标记,并在每个 Xen 主机上设置大量网桥和 VLAN 接口。然后,我根据希望将各个 VM 托管在哪个 VLAN 上,将各个 VM 分配给不同的网桥。然后,路由器负责确保 VM 之间可以互相访问。

另一种处理方法是使用 Dom0 上的 iptables。来自 DomU 的所有流量都会经过 Dom0 的 iptables 堆栈,因此您可以在那里编写各种规则,以根据需要发送数据包。

相关内容