qemuのネットワーク設定についてしょっちゅう検索するので、ここにメモしておく*1。
ここではホスト上でbridgeを作成し、そこにゲストを接続する方法を説明する。
まず、ホストでbridgeを作成する方法。
1. NetworkManagerを切る
最近のFedoraでは、基本的にNetworkManagerでネットワークの管理をしているんだけど、ここでは使わないので、切っておく。
# systemctl stop NetworkManager.service # systemctl disable NetworkMnager.service
2. 設定ファイルの作成
/etc/sysconfig/network-scripts/ifcfg-eth0*2を例えば下記のように変更。
NM_CONTROLLED="no"
HWADDR="00:1E:4F:B9:95:E9"
BOOTPROTO="dhcp"
DEVICE="eth1"
ONBOOT="yes"
BRIDGE="br0"
/etc/sysconfig/network-scripts/ifcfg-br0*3を作成。
NM_CONTROLLED="no"
BOOTPROTO="dhcp"
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
3. networkサービスの起動
networkサービスを(再)起動
# systemctl start network.service # systemctl enable network.service
4. qemu用ネットワークスクリプトを作成
qemu起動時に利用するネットワークスクリプトを/etc/qemu-ifupとして作成*4。
#!/bin/sh set -x if [ -n "$1" ]; then /usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1 /usr/bin/sudo /sbin/ip link set $1 up sleep 1s /usr/bin/sudo /usr/sbin/brctl addif br0 $1 exit 0 else echo "Error: no interface specified" exit 1 fi
(注意)本当はqemu-ifdownも作らなきゃいけないんだけど、無くても動くからとりあえず後回し
5. 起動
ネットワーク関連の設定は下記
# qemu -net -nic -net tap