SL6: KVMによる仮想マシン:ブリッジによるネットワーク構成
May 18, 2011 – 11:53 am以前、「KVMで仮想マシンを作成してみた」を書いた。そこでは、仮想マシンをホストマシンに接続させるための2種類のネットワーク「仮想ネットワーク」と「物理デバイス共有」(ブリッジネットワーキング)のうち、比較的設定が容易な「仮想ネットワーク」を用いた。
今回は、もうひとつの方法、「物理デバイス共有」によりネットワークを構成した。この方法を採用することにより、複数の仮想マシン(ゲストOS)を起動し、外部ノードからそれら仮想マシンにアクセスが可能になる。
ブリッジネットワーキングに必要な前準備: SL6を導入した直後には、ネットワークの制御はNetworkManagerにより行われる。しかし、ブリッジネットワーキングによりネットワークを構成しようとすると、NetworkManagerがブリッジをサポートしないことから、まずサービスNetworkManagerを無効にし、これに代えサービスnetworkを有効にしておくことが必要になる。
これをおこなうため、サービス NetworkMangerの起動スクリプトをoff にするとともに、起動中のサービスを停止してやる。一方、サービス network の起動スクリプトを off にし、これを起動してやればよい:
# chkconfig NetworkManager off # chkkonfig network on # service NetworkManger stop # service network start
network initscript編集によるブリッジの追加: ネットワーク用のデバイス個々の設定・定義は /etc/sysconfig/network-scriptsディレクトリの配下に置かれるファイル ifcfg-[device-name] に書かれる。ここで、[device-name]は、デバイスの名前に対応し、物理NICがひとつだけある場合にはeth0となり、この物理NICの設定内容はifcfg-eht0に記録・保存されている。
今、この物理NIC eth0を仮想マシンにつなぐためのブリッジ br0に追加する。
このために、/etc/sysconfig/network-scriptsディレクトリ上にifcfg-br0を新たにつくり、ifcfg-eth0、ifcfg-br0をそれぞれ以下のように設定する:
ifcfg-eth0: DEVICE=eth0 HWADDR=xx:xx:xx:xx:xx:xx // NIC eth0のMACアドレス ONBOOT=yes // 起動時に設定を有効にするかどうか(yes/no) BRIDGE=br0 // eth0 をつなぐブリッジ名
ifcfg-br0: DEVICE=br0 TYPE=Bridge ONBOOT=yes DELAY=0
以上の設定が終了したところで、サービスnetworkを再起動し、上記の設定内容をホストマシン上に反映する:
# service network restart
なお、上記設定ではホストOSには外部との通信を行なえない。これを可能にするには、ブリッジbr0にIPアドレスなどネットワークの設定を付け加えておけばよい。すなわち、
ifcfg-br0: DEVICE=br0 TYPE=Bridge IPADD=192.168.0.102 // 追加 NETMASK=255.255.255.0 // 追加 GATEWAY=192.168.0.1 // 追加 ONBOOT=yes DELAY=0
iptables の設定: ブリッジを作ったところで、すべてのネットワークトラフィックがこのブリッジを渡って転送されるようにiptablesを設定する:
# iptables –I FORWARD –m pysdev –physdev-is-bridged –j ACCEPT # service iptables save # service iptables restart
guest OS側の設定: guest OSを上記したブリッジbr0に接続するには、個々のguestOSを定義しているXMLファイルのインタフェース部を編集してやればよい。
ブリッジ br0 にtap0を介して接続する例を以下に示す:
<devices> <interface type='bridge'> <source bridge='br0'/> <target dev='tap0'/> <mac address="00:11:22:33:44:55"/> </interface> </device>
なお、virsh edit によるXMLファイルの編集においては、mac address部は編集時に省略すると、自動的に設定・挿入される。
個々のゲストOSのネットワーク(IPアドレスなど)の設定は、ゲストOSにログインし、夫々のOSの様式に沿って行えばよい。
参考にしたサイト:
1 Trackback(s)