QEMU 0.9.0になってQEMUゲスト同士での本格的相互ネットワーク接続ができるようになりました。
※QEMU 0.8.xでは一部制限あり。
このQEMUゲスト間ネットワークはユーザモードネットワークとTAP型ネットワークでそれぞれ利用できます。
但し、どのOSでもこのQEMUゲスト間ネットワークが利用できるかどうかは不明ですがLinux同士では実現できています。
ここではユーザモードネットワークとTAP型ネットワークのそれぞれについて説明します。
尚、今回使用したQEMUはQEMU on Windows 0.9.0版です。
Ubuntu 8.04付属QEMUでのTAP利用につても触れています。
1.マシン環境
「QEMU on Windows」を動作させるホストマシン環境は以下の通りです。
qemu.exe -L . -m 128 -hda qemupc1.img -net nic -net socket,listen=localhost:1234 |
auto eth0 iface eth0 inet static address 10.0.2.16 network 10.0.2.0 netmask 255.255.255.0 broadcast 10.0.2.255 gateway 10.0.2.2 |
nameserver 10.0.2.3 |
qemu.exe -L . -m 128 -hda qemupc2.img -net nic,macaddr=52:54:00:12:34:57 -net socket,connect=localhost:1234 |
auto eth0 iface eth0 inet static address 10.0.2.17 network 10.0.2.0 netmask 255.255.255.0 broadcast 10.0.2.255 gateway 10.0.2.2 |
nameserver 10.0.2.3 |
qemu.exe -L . -m 128 -hda pc1vine40.img -net nic -net tap,ifname=TAP-Win32-LAN -net socket,listen=localhost:1234 |
qemu.exe -L . -m 128 -boot d -cdrom \\.\D: -hda pc2dummy.img -net nic,macaddr=52:54:00:12:34:57 -net socket,connect=localhost:1234 |
#!/bin/sh sudo -p "Password for $0:" /sbin/ifconfig $1 172.20.0.1 |
#!/bin/sh /sbin/ifconfig $1 0.0.0.0 promisc up /usr/sbin/brctl addif vnet0 $1 |
qemu -no-kqemu -m 128 -hda pc1jeos810.img \ -net nic -net tap,ifname=tap0,script=/etc/myqemu-ifup \ -net socket,listen=localhost:1234 |
qemu -no-kqemu -m 128 -hda pc2jeos810.img \ -net nic,macaddr=52:54:00:12:34:57 \ -net socket,connect=localhost:1234 |
qemu -no-kqemu -m 128 -boot d -cdrom /dev/cdrom -hda qemudummy.img \ -net nic,macaddr=52:54:00:12:34:58 \ -net socket,connect=localhost:1234 |