我已经在Debian Lenny上运行了Xen 3.2,我本质上正在尝试重新创build运行OpenVZ的另一台服务器上的设置。
我的dom0有一个静态的IP地址,面向互联网。 比方说,我有4个domU。 我想让dom1和dom2在公共互联网上公开使用公共IP地址。 我想dom3和dom4具有私人networking地址(192.168.xx),但可以从dom0,dom1,dom2达到。
这是OpenVZ的一个快照,但不幸的是我找不到像这样的组合设置的任何好例子。 要么所有的domUs是公开的,或者他们都是私人的。 有什么build议么?
您可以简单地创build一个虚拟网桥,该虚拟网桥没有连接到您的domU3和domU4的任何物理接口。 其他2个domU可以在每个网桥(物理networking和虚拟networking)上都有一个接口,您可以在dom0上使用NAT来允许domU3 / 4通过虚拟网桥访问互联网,在dom0中分配一个IP。 RedHat的libvirt通过创build一个默认的“virbr0”来创build一个私有的domU LAN。
使用debian,您可以通过以下方式轻松设置桥接器:a。 安装“bridge-utils”(如果你已经安装了xen,你很可能已经拥有了)。 将以下内容添加到/ etc / network / interfaces中:
auto virbr0 iface br0 inet static address 192.168.0.10 netmask 255.255.255.0 gateway 192.168.0.1
并在您的domUconfiguration中添加一个接口到您连接到virbr0的domU
vif = [ "bridge=virbr0" ]
如果你的盒子上有2个网卡,你可以使用公用,私人使用。 我典型的Xenconfiguration有dom0只有一个私有IP,但有公共NIC设置桥接。 当你build立domU时,你只需要给它一个公共或专用networking的桥梁。
你需要有2个网卡才能做到这一点,我不确定你可以用1个网卡来完成,因为Xen桥接网卡的方式。 您必须更改xend-config.sxp中的networking脚本设置才能运行将设置两个网桥的例程。 我创build了一个名为xen-bridge的脚本,并为每个需要桥接的NIC多次调用默认network-bridge脚本。
有几种方法可以做到这一点。 我在networking上完成的方式是在交换机端口上使用VLAN标记,并在每个Xen主机上都有大量的网桥和VLAN接口。 然后,根据我希望将它们托pipe在哪个VLAN上,将各种虚拟机分配给不同的网桥。 然后,路由器负责pipe理彼此可到达的虚拟机。
另一种方法是通过在Dom0上使用iptables。 所有来自DomU的stream量都通过Dom0的iptables堆栈,所以你可以在那里编写各种规则来根据需要发送数据包。