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ルールはありません。
したがって、この問題をトラブルシューティングするにはどうすればよいですか?
Ubuntu 13.10でも同じ問題があり、14.04の開発ブランチにアップデートしてみましたが、まだ動作しません。
デバッグ方法がわかりません。私の問題のため、eth0がプロミスキャスモードに入らず、dmesg出力にdevice eth0 entered promiscuous mode
のようなメッセージが見つかりません。したがって、eth0を無差別モードに強制すると、問題はなくなります。
これは私がやったことです:
ifconfig -a
および外部にpingを送信して、機能するかどうかを確認します。Libvirtがeth0をプロミスキャスモードにしない理由はわかりません。おそらくバグです。