web-dev-qa-db-ja.com

Xen domUのゲストにインターネットアクセスを許可するにはどうすればよいですか?

Xen domUのゲストにインターネットアクセスを許可するにはどうすればよいですか?問題を診断するためにどのようなツールを使用できますか?調べることができるログファイルはありますか?

(私は新しいLinux、ネットワーク、VMです。用語が間違っている場合は実行してください。また、提供する情報の量がわかりません。)

XenハイパーバイザーをOracleVirtualBoxにインストールしました。 (Debian)dom0(hostname = debianxend0)はインターネットにアクセスできます。つまり、apt-getを使用してパッケージをダウンロードし、www.google.comにpingを実行できます。

Xen-create-imageを使用して、domU(hostname = tutorial-pv-guest)をインストールしました。

DomUゲストはdom0にpingとsshを実行できますが、外部には実行できません。つまり、www.google.comへのpingは失敗します。 dom0はdomUにpingおよびsshを実行できます

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 show

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には、DHCPによって割り当てられたIPアドレスを持つブリッジがあります(私は住居に住んでおり、IPアドレスを提供するWLANを提供します)。
  • dom0にはdomU用のvif2.0があります
  • domUにはIPアドレスを持つeth0があります

そして以下はdomUのxencfgです

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'
3
robor78

問題はMACアドレス認証にあります。 WiFiは、認証されたMACアドレスからのパケットのみを許可します。そのため、有線接続と無線接続を簡単にブリッジすることはできません。ワイヤレスの問題が原因ではない場合は、そこでネットワークを管理している人が設定した他の形式のMACバリアが原因です(そのため、MACアドレスを要求されました)。

1つの戦略は、ゲストの仮想アダプターのMACアドレスを物理アダプターのMACアドレスに変更することです。免責事項:私はこれまで試したことがないので、うまくいくかどうか教えてください:)

それが機能しない場合は、別のローカルネットワークを作成し、NATを使用して単一のIP/MACアドレスからトラフィックを渡す必要があります(コメントのように)。

ワイヤレスを介した有線接続を「ブリッジ」するためのガイドがあり、これらのソリューションは、実際にワイヤレスを使用していない場合でも機能するはずです。ほとんどの場合、NATメソッドを参照してください。

2