好吧,这真是折磨我啊。
Debian Squeeze,Xen 4.0,全新安装。除了默认 xen 桥接脚本添加的规则外,没有任何 iptables 规则。
Dom0 可以覆盖整个世界,没有问题。
DomU 可以接收来自某些主机的数据包,但不能接收来自其他主机的数据包。例如,如果我 ping 主机 A,它工作正常。如果我 ping 主机 B,DomU 会报告 100% 数据包丢失。
主机是随机的,但始终一致(即使在重启后)。我看不出为什么有些主机能工作而有些不能工作。事实上,在某些情况下,同一台服务器(不同数据中心的另一台服务器)上的不同虚拟主机是分开的;有些能工作,有些不能。我可以重启(DomU 或 Dom0 也可以),相同的主机将像以前一样工作或失败。
如果我同时在主机 B 上执行 tcpdump 并从 DomU 执行 ping 操作,则一切正常。它看到回显请求进入并表示正在发回一个请求。
但是,如果我在 Dom0 上对 peth0 进行 tcpdump,它永远不会看到回显答复。
知道会发生什么吗?我快要抓狂了。
编辑:结果发现我的托管服务提供商 (Rackspace) 存在路由问题,这是导致问题的原因。Xen 和 Linux 不受此影响。感谢大家关注这个问题。可惜我的头发再也长不回来了。
答案1
缺少或不正确的网络掩码可能会导致此类问题,而桥接网络很容易出现错误配置。在查找奇怪的 xen 行为之前,我会先查看网络内容。
答案2
听起来很像网络桥接问题。检查所有虚拟接口是否桥接到同一个桥接器,以及它们的 IP 配置是否正确。
# brctl show
有时,如果您关闭网桥并再次将其建立,则可能需要将接口重新添加到网桥。