KVMの仮想マシンで共有物理装置を使う

お久しぶりです。yokkunsです。

現在、Fedora10のKVM上で仮想マシンを仮想ネットワークで動かしていたんですが、今回ブリッジ接続に挑戦してみました。

ブリッジの作成に関しては、以下の記事を参考にしました。

http://www.coevolver.net/entries/220
KVMの導入と基本的な使い方 (3/3):知って見るみるKVM(2) - @IT

動作環境は、以下です。

Fedora 10 2.6.27.21-170.2.56.fc10.x86_64
kvm 74-10.fc10.x86_64
etherboot-roms-kvm 5.4.4-4.fc10.x86_64
libvirt-python 0.5.1-2.fc10.x86_64
libvirt 0.5.1-2.fc10.x86_64
qemu-img 0.9.1-12.fc10.x86_64
qemu 0.9.1-12.fc10.x86_64
仮想マシンマネージャ 0.6.0


完成予定は、下図です。

まず、ブリッジを作成します。

$ sudo -e /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.3.200
NETMASK=255.255.255.0
NETWORK=192.168.3.0
BROADCAST=192.168.3.255
ONBOOT=yes

次に、ネットワークカードを、ブリッジに追加します。

$ sudo -e /etc/sysconfig/network-scripts/ifcfg-eth0

BRIDGE=br0

そして、ネットワークを再起動

$ sudo /sbin/service network restart

インターフェース br0 を終了中: [ OK ]
インターフェース eth0 を終了中: bridge br0 does not exist!
[ OK ]
ループバックインターフェースを終了中 [ OK ]
IPv4 パケット転送を無効化中: net.ipv4.ip_forward = 0
[ OK ]
ループバックインターフェイスを呼び込み中 [ OK ]
インターフェース eth0 を活性化中: [ OK ]
インターフェース br0 を活性化中:
br0 のIP情報を検出中...
完了。


[ OK ]

以上で、ブリッジインタフェースが完成しました。


次に、このインタフェースに、他のPCからもアクセス出来るように、ファイアウォールの設定を行います。

GNOMEメニューの、[システム]→[管理]→[ファイアーウォール]を開き、信頼出来るインタフェースを選択すると、先ほど追加した「br0」があります。
そのbr0にチェックし、適用を押します。



最後に、ホストサーバで自分以外の宛先のパケットも受け取るために、eth0をpromiscモードに設定します。

$ sudo ifconfig eth0 promisc

ifconfigで、eth0が「PROMISC」になっているのを確認します。

$ ifconfig

br0       Link encap:Ethernet  HWaddr 00:22:19:1C:3E:43  
          inet addr:192.168.3.200  Bcast:192.168.3.255  Mask:255.255.255.0
          inet6 addr: fe80::222:19ff:fe1c:3e43/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:34128 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3482 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1563820 (1.4 MiB)  TX bytes:2377767 (2.2 MiB)

eth0      Link encap:Ethernet  HWaddr 00:22:19:1C:3E:43  
          inet addr:192.168.3.2  Bcast:192.168.3.255  Mask:255.255.255.0
          inet6 addr: fe80::222:19ff:fe1c:3e43/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:34965 errors:0 dropped:0 overruns:0 frame:0
          TX packets:26659 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2329529 (2.2 MiB)  TX bytes:4130731 (3.9 MiB)
          Interrupt:18 

                                   .
                                   .
                                   .

仮想マシンマネージャを起動して、各仮想マシンのハードウェアの追加から進めると、先ほど作成した、br0を選択することが出来ます。




以上で、KVMでブリッジ接続が出来るようになりました。

ちなみに僕は、信頼できるインタフェースにチェックを入れるというのをやってなくて、3日くらい悩みました。。。