为什么我无法通过桥接模式连接 ping 通 xen domU?

为什么我无法通过桥接模式连接 ping 通 xen domU?

我的 Debian 从 7.11 升级到 8.5,因此 xen 软件包从 4.1 升级到 4.4。

我对网络了解不多,但是当我看到这样的图(取自Xen网络wiki 页面),我希望能够ping -I xenbr0 198.51.100.27从虚拟机 ping 198.51.100.27 ,反之亦然ping 198.51.100.1

然而,这种情况并非如此。我设置了一个干净xenbr0

# brctl addbr xenbr0
# ifconfig xenbr0 192.168.12.1 netmask 255.255.255.0 up

并在 HVM 配置文件中

vif=["mac=11:22:33:44:55:66, ip='192.168.12.2', bridge=xenbr0"]

当我使用 启动虚拟机后xl create,这是以下输出brctl show

bridge name     bridge id               STP enabled     interfaces
xenbr0          8000.feffffffffff       no              vif3.0
                                                        vif3.0-emu

我使用 SPICE 连接到 VM 并进行配置,如下所示:

在此输入图像描述

由于我只是尝试 ping 默认网关,因此我假设不会发生名称解析。

通过此设置,ping 192.168.12.2 -I xenbr0在 dom0 上的结果是

PING 192.168.12.2 (192.168.12.2) from 192.168.12.1 xenbr0: 56(84) bytes of data.
From 192.168.12.1 icmp_seq=1 Destination Host Unreachable

从 Windows VM 中,ping 192.168.12.1cmd输出

Pinging 192.168.12.1 with 32 bytes of data:
Reply from 192.168.12.2: Destination host unreachable.

这表明机器不知道如何相互联系。他们不是应该通过 链接吗xl create?为什么会发生这种情况?

答案1

如果一切设置正确,您应该能够 ping 通,没问题。

首先,尝试推荐的配置:

如果你只是想研究路线是如何运作的,你可以做一个半虚拟化(PV) 设置,而不是 HVM,正如您提到的;但如果您坚持使用 HVM,请确保您拥有Windows 驱动程序安装。这一切都在最顶部概述Xen指南。它还解释了如何分配 MAC 地址,在撰写本文时,帖子中的 MAC 地址是无效的 - 有时这对于虚拟情况是可以的,但不适用于每个配置。

当您设置您的xenbr0在主机上,桥接器实质上取代了基于 Debian 的系统上的 eth0 接口。确实如此(来自 xen 指南) eth0 是可选的“通过省略物理以太网设备,可以创建仅包含来宾域的隔离网络”,但指南中的示例以及您在此处的帖子并不是这样措辞的。对于未来的读者,在 Fedora 系列虚拟客户端以及 Windows 中,请参阅所有文档以了解略有不同的配置要求。 ,具体听起来像是您的问题,除非您被防火墙、tcp 包装器或原始帖子中未提及的任何其他内容阻止。

确认

在 Windows 中,您可以使用例如 来验证网络设置ipconfig /all

在里面Xen 示例配置来自我们都已经引用过的同一个网站,它为主机提供了以下建议以及其他配置;例如,键入以下所有内容,而不跳过第一部分。

示例 2:使用配置了静态本地 IP 地址的 eth0 的单个桥接网络

iface eth0 inet 手册

iface xenbr0 inet 静态

    bridge_ports eth0
    address 192.168.1.2
    broadcast 192.168.1.255
    netmask 255.255.255.0
    gateway 192.168.1.1

您可以使用 dom0 和 dom1 或类似工具来确认这ifconfig一点route在主机上,如上面链接中所述,并确保所有配置均正确。

基本调整

如果您想确保两者都无法到达互联网(或一般情况下网络的其他部分),当然除了保持物理电缆拔出之外,您可以将默认网关更改为 0.0.0.0,然后添加“路由” “(在大多数风格的 GUI 中,下面应该有一个框Network Manager),具有相同的客户端 IP 地址和子网掩码,但带有主机地址,作为网关。在某些 GUI 中甚至有一个框,上面写着“仅允许此连接路由用于本地网络”。

在 Windows 客户端中添加“路由”也可以作为解决原始问题的解决方法。

答案2

(无法发表评论,因为这需要 50 次代表)

由于数据包到达 vif 和网桥的 vif 部分,下一步将检查 ebtables 和 iptables(iptables -L),特别是如果 /proc/sys/net/bridge/bridge-nf-call-iptables 是1 和 netfilter 因此会检查网桥上的数据包。

相关内容