我的 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.1
有cmd
输出
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 因此会检查网桥上的数据包。