12 KiB
title | author | date | url | wordtwit_post_info | categories | |||
---|---|---|---|---|---|---|---|---|
KVMで仮想環境を整えてみる – (2) | kazu634 | 2011-07-04 | /2011/07/04/_1716/ |
|
|
前回はとりあえずOSイメージを指定して、OSをインストールするところまでできたと思います。OSインストール終了後にリブートすると、おそらくKVM上のゲストOSは再起動しないので、次のコマンドを実行してあげます:
$ sudo virsh start <ゲストOSの名前>
これで CD のマウントオプションを除いて、 virt-install で指示したオプション通りにゲストOSを起動してくれます。しかしここでつまずきの種が。。。
ゲストOSのネットワーク設定について
さて KVM で作成したゲスト OS はNATになります。ゲストOSから外部への通信はできるのですが、ホストOSを含む外部からゲストOSへのアクセスは出来ません。VMWareなんかだとNAT接続でもホスト-ゲスト間は通信できるのですが、KVMはそうではないみたいです。
そこでブリッジ接続(ホストOSと同じネットワークセグメントのIPアドレスで通信)をできるようにしてみます。
事前準備
事前に次のコマンドを実行します:
$ sudo apt-get install libcap2-bin $ sudo setcap cap_net_admin=ei /usr/bin/qemu-system-x86_64 # x64の場合 $ sudo setcap cap_net_admin=ei /usr/bin/qemu # x32の場合
ブリッジ接続の設定方法
私のホストOSのUbuntuくんはNICが一枚です。初期状態だとネットワークの設定(/etc/network/interfaces)はこんな感じのはず:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp
静的にIPアドレスを割り当てている場合には、こんな感じになるのかな:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.11.8 netmask 255.255.255.0 network 192.168.11.0 broadcast 192.168.11.255 gateway 192.168.11.1
それを次のように変更してしまいます。なお、IPアドレス 192.168.11.8/24,ゲートウェイが192.168.11.1としてホストOSにアクセスすることとします:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet manual auto br0 iface br0 inet static address 192.168.11.8 netmask 255.255.255.0 network 192.168.11.0 broadcast 192.168.11.255 gateway 192.168.11.1 bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0
参考:
ゲストOSのNICを変更する
ブリッジの接続設定を実施した後は、ゲストOSに割り当てたNICを変更してあげます。「/etc/libvirt/qemu/<ゲストOS名>」という名称の設定ファイルを書き換えます:
変更前:
<interface type='network'> <mac address='52:54:00:bc:d1:55'/> <source network='default'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </interface>
変更後:
<interface type='bridge'> <mac address='52:54:00:bc:d1:55'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface>
MACアドレスは変更しないほうがいいと思うよ。ネットワークの設定を変更後、設定を反映してあげます:
$ sudo virsh define <変更した設定ファイル名>
virt-installコマンドでブリッジ接続のNICをゲストOSに割り当てる
こんな感じでコマンドを指定します:
$ sudo virt-install --connect qemu:///system --name gateway --ram 256 --disk path=gateway.img,size=10 --network bridge=br0,model=virtio --vnc --cdrom /mnt/nas/kazu634/OSimages/ubuntu/ubuntu-10.04.2-server-amd64.iso
virt-installコマンドで複数NICになるようしてゲストOSを作成する
こんな感じで、–networkを複数指定します:
sudo virt-install --connect qemu:///system --name gateway --ram 256 --disk path=gateway.img,size=10 --network bridge=br0,model=virtio --network network=default,model=virtio --vnc --cdrom /mnt/nas/kazu634/OSimages/ubuntu/ubuntu-10.04.2-server-amd64.iso