QEMU-ブリッジ

QEMU-ブリッジ

QEMU(およびKVM)を使用してDebian 9に仮想マシンを設定しています。現在、etcを使用して設定されたブリッジネットワークを介して機能しようとしています。ip link結果ip tuntapは次のとおりですbrctl show

bridge name     bridge id               STP enabled     interfaces
br0             8000.107b444f55d6       no              enp4s0
                                                        tap0
docker0         8000.0242d4c18983       no

出力は次のとおりですip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 10:7b:44:4f:55:d6 brd ff:ff:ff:ff:ff:ff
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:d4:c1:89:83 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
4: tap0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master br0 state DOWN group default qlen 1000
    link/ether f6:54:bb:db:d7:c6 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::f454:bbff:fedb:d7c6/64 scope link
       valid_lft forever preferred_lft forever
5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 10:7b:44:4f:55:d6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.26/24 brd 192.168.0.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::127b:44ff:fe4f:55d6/64 scope link
       valid_lft forever preferred_lft forever

インターフェイスはdocker0それとは何の関係もありません。

私が知っている限り、これはうまくいくはずです。ただし、QEMUのWindows 8.1クライアントはインターネットにアクセスできず、DHCPを介してIPを取得できません(自動生成された169.xx.xx.xx IPのみを取得します)。

なぜそうなのかよく分からない。私のQEMUパラメータは次のとおりです。

-net nic -net tap,ifname=tap0

私も次のことを試しました。

-device e1000,netdev=net0,mac=52:55:00:d1:55:01 -netdev tap,id=net0

どちらもネットワークにアクセスできないという同じ結果を生成します。私はこれを見つけることができません。

私が愚かなことをしているのだろうか?

ベストアンサー1

QEMU Linuxゲストで非常に似た問題が発生し、iptablesがトラフィックをブロックしていることがわかりました。ゲストに静的IPアドレスを設定すると、ホストとゲストは互いにpingできますが、それはすべてです。ゲストコンピュータはインターネットと残りのネットワークにアクセスできません。

問題を調査するには、Wiresharkやtcpdumpなどのツールを使用することをお勧めします。

Wiresharkを使用してホストコンピュータからブリッジインターフェイスをキャプチャしましたが、要求は仮想マシンから来ているように見えますが、応答は受信されません。

ここに画像の説明を入力してください。

重要な要約:この手がかりは次の答えのMagic iptableコマンドにつながりました(私はiptablesの経験があまりないので、私にとっては魔法です:)):

https://serverfault.com/a/165786

うまくいき、今は完全に理解できなくてもここに2セントを残しておくと思いました。

頑張ってください!

おすすめ記事