我正在尝试在一台有 2 个网卡的服务器上安装 Debian Lenny 上的 Xen 3.2,其中一个网卡连接到私有 LAN,另一个连接到 Internet。这台服务器在非 Xen 状态下运行了一段时间,一切正常。但是,使用 Xen 时,网络无法正常启动。我很难找到正确的配置方法,因为 Xen 网站/wiki、邮件列表甚至这里都有很多相互矛盾的建议。
基本情况如下:eth0 是私有网络,eth1 是公共互联网。最终,我希望 dom0(以及所有 domU)能够访问这两个接口。目前有一个 iptables 脚本(来自 Xen 之前的使用),它为私有网络上的其他客户端计算机设置防火墙和端口转发。因此,在我担心安装 domU 之前,我就在尝试让桥接正常工作,因为我知道我需要这样做。
这Xen 网络 wiki和Debian Xen 维基两者都建议我使用 Xen 的桥接脚本,但当我这样做时,eth1 不会在启动时自动启动,因此 dom0 无法访问公共网络。当我sudo ifup eth1
手动操作时,它会正常启动。请注意,我甚至还没有担心 domU,而且我很清楚,开箱即用的 Xen 桥接不会对 eth1 <-> domU 做任何事情。
这个 ServerFault 问题建议不要使用 Xen 桥接脚本。我尝试了此配置,但 dom0 无法访问私有网络或公共网络。
此邮件列表主题说 Debian bridge-utils 包应该可以满足我的所有需求,但它似乎暗示如果我想让我的 dom0 位于公共网络上,我必须为真正的 eth1 和网桥分配一个地址。那么在这种情况下我需要烧录两个公共地址吗?
/etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 24.123.138.34
netmask 255.255.255.248
network 24.123.138.32
broadcast 24.123.138.39
gateway 24.123.138.33
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 127.0.0.1
dns-search lightyearsoftware.com
auto eth1:0
iface eth1:0 inet static
address 24.123.138.36
netmask 255.255.255.248
network 24.123.138.32
broadcast 24.123.138.39
gateway 24.123.138.33
# Internal network
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
# mtu 9000 # memory alloc failures with 2.6.26-2 e1000 driver
#auto br-eth0 br-eth1
#iface br-eth0 inet manual
# bridge_ports eth0
#iface br-eth1 inet manual
# bridge_ports eth1
/etc/xen/xend-config.sxp
(network-script network-dummy)
当文件最后 4 行interfaces
取消注释时使用,(network-script network-bridge)
否则使用。
我非常乐意提供任何其他有帮助的诊断信息。
答案1
“Xen Networking wiki 和 Debian Xen wiki 都建议我使用 Xen 的桥接脚本”
wiki 的问题在于,任何白痴都可以编辑它们 —— 而且他们通常都会这么做。Debian Xen wiki 页面是错误的,非常非常错误;我甚至不忍心看 Xen 网络 wiki。README.Debian
以前软件包中有有用的网络文档xen-utils
,但它们似乎在某个阶段消失了。
我的回答在 Debian 中为 XEN dom0 启动未配置 IP 的网络接口可能对你不起作用,因为它解决的是一个完全不同的问题。你可能需要重新阅读这个问题来发现其中的区别。
该邮件列表线程充满了胡言乱语(和 Nabble 惯用的令人头脑混乱的愚蠢格式),所以我不会尝试找出您认为需要在接口和网桥上放置 IP 地址的具体位置,但我可以向您保证,您不需要这样做 - 只需在网桥上放置一个 IP 地址就足够了。
修复网络配置的简单方法可能是:
- 设置
(network-script network-dummy)
然后chattr +i /etc/xen/xend-config.sxp
(阻止你继续摆弄它) - 删除
br-*
当前已有的节 - 删除节
gateway
中的行eth0:1
/allow_hotplug/d
s/eth0/br0/; s/eth1/br1/
- 添加
bridge_ports eth0
到您的现在br0
配置 - 添加
bridge_ports eth1
到您的现在br1
配置 /etc/init.d/networking restart