如何让 Xen domU 客户端访问互联网?我可以使用哪些工具来诊断问题?是否有日志文件可供我检查?
(我是 Linux、网络和虚拟机方面的新手。如果我的术语有误,请原谅。另外,我不确定要提供哪些/多少信息。)
我在 Oracle VirtualBox 上安装了 Xen 虚拟机管理程序。(Debian) dom0 (主机名=debianxend0) 可以访问互联网,也就是说,我可以使用 apt-get 下载软件包,并且可以 ping www.google.com。
使用 xen-create-image 我安装了一个 domU(主机名=tutorial-pv-guest)。
domU 客人可以 ping 和 ssh dom0,但不能 ping 外部,即 ping www.google.com 失败。dom0 可以 ping 和 ssh domU
dom0 /etc/network/interfaces
auto lo
iface lo inet loopback
auto xenbr0
iface xenbr0 inet dhcp
bridge_ports eth0
bridge_stp on
bridge_waitport 0
bridge_fd 0
dom0 ifconfig-a
eth0 Link encap:Ethernet HWaddr 08:00:27:76:ba:6f
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3445 errors:0 dropped:0 overruns:0 frame:0
TX packets:675 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:936784 (914.8 KiB) TX bytes:63581 (62.0 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
vif2.0 Link encap:Ethernet HWaddr fe:ff:ff:ff:ff:ff
inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:20 errors:0 dropped:0 overruns:0 frame:0
TX packets:398 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:32
RX bytes:1376 (1.3 KiB) TX bytes:55771 (54.4 KiB)
xenbr0 Link encap:Ethernet HWaddr 08:00:27:76:ba:6f
inet addr:192.168.178.57 Bcast:192.168.178.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe76:ba6f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1680 errors:0 dropped:0 overruns:0 frame:0
TX packets:222 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:230914 (225.5 KiB) TX bytes:38211 (37.3 KiB)
dom0 brctl 显示
bridge name bridge id STP enabled interfaces
xenbr0 8000.08002776ba6f yes eth0
vif2.0
domU /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
domU ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:16:3e:8b:54:20
inet addr:192.168.178.232 Bcast:192.168.178.255 Mask:255.255.255.0
inet6 addr: fe80::216:3eff:fe8b:5420/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:995 errors:0 dropped:0 overruns:0 frame:0
TX packets:207 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:104718 (102.2 KiB) TX bytes:27230 (26.5 KiB)
Interrupt:30
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:554 (554.0 B) TX bytes:554 (554.0 B)
- dom0 有一个网桥,其 IP 地址由 DHCP 分配(我住在住宅区,他们提供 WLAN,可提供 IP 地址)。
- dom0 有一个针对 domU 的 vif2.0
- domU 有一个带 IP 地址的 eth0
以下是 domU 的 xen cfg
bootloader = '/usr/lib/xen-4.1/bin/pygrub'
vcpus = '2'
memory = '512'
root = '/dev/xvda2 ro'
disk = [
'phy:/dev/vg0/tutorial-pv-guest-disk,xvda2,w',
'phy:/dev/vg0/tutorial-pv-guest-swap,xvda1,w',
]
name = 'tutorial-pv-guest'
dhcp = 'dhcp'
vif = [ 'mac=00:16:3E:8B:54:20,bridge=xenbr0' ]
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
答案1
问题在于 MAC 地址身份验证。WiFi 仅允许来自经过身份验证的 MAC 地址的数据包,这就是为什么您无法如此轻松地桥接有线和无线连接。如果不是因为无线问题,那么就是因为管理网络的人设置了某种其他形式的 MAC 屏障(这就是他们要求您提供 MAC 地址的原因)。
一种策略可能是简单地将客户机虚拟适配器的 MAC 地址更改为物理适配器的 MAC 地址。免责声明:我之前没有尝试过,如果有效请告诉我 :)
如果这不起作用,您将需要创建另一个本地网络并使用 NAT 从单个 IP/MAC 地址传递流量(如注释中所述)。
有一些指南介绍如何通过无线方式“桥接”有线连接,即使您实际上没有使用无线连接,这些解决方案也应该对您有用。最有可能指的是 NAT 方法。