参考:CentOS/KVMによるサーバ仮想化 - OSSでLinuxサーバ構築
前提
DNSサーバ兼DHCPサーバがLAN内に存在。IPアドレスは192.168.0.1とします。
ホスト、ゲストとも固定IPを使用。IPアドレスはそれぞれ192.168.0.2、192.168.0.3とします。
ホスト側のネットワーク変更
/etc/sysconfig/network-scripts/ifcfg-br0を作成。
# Bridge DEVICE=br0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.0.2 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 DNS1=192.168.0.1 TYPE=Bridge DELAY=0
/etc/sysconfig/network-scripts/ifcfg-eth0を編集(HWADDRは編集前の値をそのまま残す)。
DEVICE=eth0 TYPE=Ethernet HWADDR=00:00:00:00:00:00 ONBOOT=yes BRIDGE=br0
以下のコマンドを実行してネットワーク再起動。
# /etc/init.d/network restart
ゲストのブリッジ用にホストのiptablesを変更。これを忘れるとゲストで名前解決が出来ないので注意。
/etc/sysctl.confを編集して以下の設定を追加または変更。
net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0
以下のコマンドを実行して設定を即座に反映。
# sysctl -p /etc/sysctl.conf # /etc/init.d/libvirtd reload
以下のコマンドでゲストOSをインストール(一旦DHCPでインストールします)。
# virt-install --connect qemu:///system -n vm1 -r 512 --vcpus=1 \ --disk path=/var/lib/libvirt/images/vm1.img,size=100 \ --os-type linux --accelerate \ --bridge=br0 \ --location='http://ftp.riken.jp/Linux/centos/5.5/os/x86_64' \ --extra-args='console=tty0 console=ttyS0,115200n8'
インストールが終わったら、virsh consoleなどで繋いで、ゲストの/etc/sysconfig/network-scripts/ifcfg-eth0を以下のように書き換え(HWADDRは編集前の値をそのまま残す)。
DEVICE=eth0 BOOTPROTO=none HWADDR=00:00:00:00:00:00 ONBOOT=yes NETMASK=255.255.255.0 IPADDR=192.168.0.3 GATEWAY=192.168.0.1 DNS1=192.168.0.1 TYPE=Ethernet
以下のコマンドでゲストのネットワークを再起動。
# /etc/init.d/network restart