読者です 読者をやめる 読者になる 読者になる

Fedora12でKVM+SPICEを使ってみた(2)

現段階では、SPICE機能付きのQEMUで起動する時には コマンドラインから起動を行う必要があるのだが、この際、リンク先 ( http://www.linux-kvm.com/content/getting-started-spice-fedora-12 ) のコマンド

/usr/libexec/qemu-spice \
 -hda /var/lib/libvirt/images/Centos4-Devel.qcow2 \
 -m 512 -qxl 1 \
 -spice port=5930,disable-ticketing &

だと、ブリッジへの接続方法がlibvirtを使用した場合と異なるので注意が必要である。QEMUのネットワーク設定についてはこちらを参照。。
http://www.h7.dion.ne.jp/~qemu-win/qemu-doc-ja.html

上のコマンドでは、QEMUのデフォルト設定 (-net オプションが無い場合) が適用されるのだが、この場合には、作成されたVMにはイーサネット一つが提供され、ホストOS側には、10.0.2.0/24 (??)のインターフェースが内部的に作成される。(ただし、ifconfig, ip addr show を使っても、見えなかったので、普通のネットワークインターフェースとは違うらしい。。)

ゲストOSからホストOSに対してログインするには、次のようにssh等を実施すればよい。

$ ssh 10.0.2.2

ホストOS経由で外部サイト(youtubeなど)に接続するためには、もう少し事情が複雑で、ホストOS側で通信のルーティングを行う必要がある。とはいえ、Fedora12では最初からルーティングが可能な状態らしく、特に工夫することもないのだが。。 w

ゲストOS側では、少なくとも次の設定が必要なようである。(10.0.2.2 はホストOSのIP)

# route add default gw 10.0.2.2
# vi /etc/resolv.conf (ホストOSが使用しているIPと同一のIPを指定)

デフォルトゲートウェイとしてホストOSに渡しておけば、後はホストOSが通常のルーティングに従って、外部サイトまでつないでくれるはずである。w ただし、参考リンクにも記述がある通り、外部へのpingが通らないので、稼働確認はcurl, wget などで行うこと。orz

なおeth0へのIP付与はQEMU提供のDHCPにより行われるようである。他にホストOS側で設定変更を行っている場合には、ホストOS側で、 sysctl -w net.ipv4.ip_forward=1 も必要になるかもしれない。

筆者はネットワーク設定でかなり戸惑ったので、念のため書き残しておこう。。orz