如何让 Xen domU 访客访问互联网?

如何让 Xen domU 访客访问互联网?

如何让 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 方法。

相关内容