web-dev-qa-db-ja.com

kvm / virt-managerでmacvtapネットワークをトラブルシューティングする方法

13.10ホストで、qemu-kvmの下で仮想マシンを実行しています。 virt-managerを使用してマシンを定義し、新しいmacvtapドライバーを使用して仮想NICを追加しました。次の定義があります。

<interface type='direct'>
  <mac address='52:54:00:1f:dd:c4'/>
  <source dev='eth0' mode='bridge'/>
  <model type='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

ホストマシンで、タップインターフェイスが作成されていることがわかります。

$ip link

5: macvtap0@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT qlen 500
    link/ether 52:54:00:1f:dd:c4 brd ff:ff:ff:ff:ff:ff

$ls /dev/tap5 
/dev/tap5

しかし、仮想マシンでは、インターフェースeth0はネットワークにアクセスできません。 dhcpは失敗します。静的構成は明らかに機能しますが、その後何もpingできません。

ホストにも仮想マシンにもiptablesルールはありません。

したがって、この問題をトラブルシューティングするにはどうすればよいですか?

4
alci

Ubuntu 13.10でも同じ問題があり、14.04の開発ブランチにアップデートしてみましたが、まだ動作しません。

デバッグ方法がわかりません。私の問題のため、eth0がプロミスキャスモードに入らず、dmesg出力にdevice eth0 entered promiscuous modeのようなメッセージが見つかりません。したがって、eth0を無差別モードに強制すると、問題はなくなります。

これは私がやったことです:

  1. Eth0を無差別モードに強制します。sudoifconfig eth0 promisc
  2. Virt-managerを使用してVMを起動します
  3. ifconfig -aおよび外部にpingを送信して、機能するかどうかを確認します。

Libvirtがeth0をプロミスキャスモードにしない理由はわかりません。おそらくバグです。

1
user220450