QEMUでtapなブリッジネットワークをsystemd-networkdで使う
最初は上記URLのArchWikiの内容みたいにqemu-ifupやqemu-ifdownを使った方法でやっていたが、仮想マシンの起動と終了時にホストのネットワークが途切れるという問題が起こっていた。systemd-networkdで何とかしようと思ったが、どうもうまく行かなかったので、しばらくはArchWikiの様な方法で放置していたが、さっき調べ直して設定し直した。
そうしたら、ネットワークが途切れるという問題は解決した様だ。
/etc/systemd/network/*は次のようにした。
/etc/systemd/network/bridge.netdev
[NetDev] Name=br0 Kind=bridge
/etc/systemd/network/bridge.network
[Match] Name=br0 [Network] DHCP=ipv4 [DHCP] ClientIdentifier=mac
/etc/systemd/network/en.network
[Match] Name=en* [Network] Bridge=br0
/etc/systemd/network/tap.netdev
[NetDev] Name=tap0 Kind=tap
/etc/systemd/network/tap.network
[Match] Name=tap* [Network] Bridge=br0
そして、qemuに渡す引数は次のような感じだ。
-netdev tap,ifname="tap0",id=mynet0,script=no,downscript=no \ -device virtio-net-pci,mac="(ランダムなMACアドレス)",netdev=mynet0