qemuでネットワークを使う話し
qemu -hda linux.img
のように特に指定をしなかった場合、
/etc/qemu-ifup
があると、TUNインターフェースをつかう。TUNインターフェースはデフォルトではルート権限が必要だ。同様に、-user-net
オプションを指定すると、ユーザ権限ですべて動作する。qemu内部でdnsもnatもsambaも処理する。
ちなみにわたしの/etc/qemu-ifupは
~$ cat /etc/qemu-ifup
#!/bin/sh
sudo -p "Password for $0:" /sbin/ifconfig $1 172.20.0.1
sudo sh -c "echo "1" >/proc/sys/net/ipv4/ip_forward"
sudo /sbin/iptables -F -t nat
sudo /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo /sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
sudo /sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
sudo /etc/init.d/bind reload
となる。
sudoを使うので、/etc/sudoerの設定が必要。qemuは/dev/net/tun
にアクセスに行くので、udevの設定で権限を変更する必要がある。/etc/udev/
にそれらの設定があり、/etc/udev/permissions.rules
を以下のように変更することになる。
#TUN
SUBSYSTEM="misc", SYSFS{dev}="10:200", MODE="0666", GROUP="root"
以下のほうがよいだろう