金曜日, 9月 04, 2009

qemu, kvmでブリッジ接続 (RHEL, CentOS編)

[概要]
KVMやqemuを使用する際に、仮想マシンのネットワーク用のブリッジを作成する方法を説明しています。

[詳細]
Xenではインストール時にブリッジ・ネットワークが作成されますが、KVMやqemuではlibvirtによるNAT接続の仮想ネットワークが作成されるだけです。ホストと同じネットワークに接続する場合にはブリッジを作成しなければなりません。ubuntu, Debianの設定方法については、こちらを参照ください。

では、そのブリッジの作成方法について説明します。


  1. 事前準備
    1. bridge-utilsパッケージのインストール
      ブリッジを作成するためにbridge-utilsパッケージをインストールします。
      bridge-utilsは、ディストリビューションに添付されていますので、媒体からでもネットワークでもインストールが出来ます。
      [root@localhost ~]# rpm -Uvh bridge-utils-1.1-2.i386.rpm
      [root@localhost ~]# yum install bridge-utils
    2. サービスの設定
      ブリッジ接続を使用する場合には、NetworkManagerを使用することが出来ません。NetworkManagerではなく従来のnetworkのサービスを利用してください。

      [root@localhost ~]# chkconfig NetworkManager off
      [root@localhost ~]# chkconfig network on
      [root@localhost ~]# service NetworkManager stop
      [root@localhost ~]# service network start
  2. ネットワーク設定ファイルの編集
    1. ブリッジ用設定ファイルの作成
      ブリッジ用のインタフェースの設定ファイルを"/etc/sysconfig/network-scripts/ifcfg-ブリッジ名"というファイルを作成します。ブリッジ名は任意なものを付けることが出来ます。下記の例ではbr0としています。
      注意:"TYPE=Bridge"は、このまま記述してください。"B"が大文字、"ridge"は小文字。

      サンプル:
      • DHCPの場合
        [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0
        DEVICE=br0
        TYPE=Bridge
        BOOTPROTO=dhcp
        ONBOOT=yes
        DELAY=0
      • 静的なIPアドレスの場合
        [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0
        DEVICE=br0
        TYPE=Bridge
        BOOTPROTO=static
        BROADCAST=192.168.1.255
        IPADDR=192.168.1.3
        NETMASK=255.255.255.0
        NETWORK=192.168.1.0
        DELAY=0
    2. 物理NICの設定ファイルの編集
      ブリッジに対応するために、物理NICの設定ファイルも変更します。
      IPADDRやBOOTPROTOなど、ブリッジの設定ファイルに記載した事項を削除して、BRIDGEという値に作成するブリッジを指定します。
      下の例ではeth0にブリッジbr0を割り当てています。

      [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
      DEVICE=eth0
      HWADDR=00:16:76:D6:C9:45
      ONBOOT=yes
      BRIDGE=br0 # ここでブリッジを指定
  3. ネットワークの再起動
    ネットワークの再起動を行います。

    [root@localhost ~]# service network restart
  4. 動作確認
    ifconfigコマンドで正しく動作指定ことを確認します。

    [root@localhost ~]# ifconfig
    br0 Link encap:Ethernet HWaddr 00:30:13:44:21:0C
    inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
    inet6 addr: fe80::230:13ff:fe44:210c/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:227787918 errors:0 dropped:0 overruns:0 frame:0
    TX packets:480250 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:10513213904 (9.7 GiB) TX bytes:53615356 (51.1 MiB)

    eth0 Link encap:Ethernet HWaddr 00:30:13:44:21:0C
    inet6 addr: fe80::230:13ff:fe44:210c/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:227788363 errors:0 dropped:0 overruns:0 frame:0
    TX packets:480794 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:13702246848 (12.7 GiB) TX bytes:53691779 (51.2 MiB)
    Memory:deb00000-deb20000
  5. バーチャルマシンへのブリッジの指定
    • virt-manager
      バーチャルマシンの作成時のNetworkで"共有物理装置"にブリッジが表示され、バーチャルマシンをホストと同じネットワークに接続することが出来ます。

以上でブリッジの作成と接続は終了です。

1 件のコメント:

匿名 さんのコメント...

参考にさせて頂きました。ありがとうございます。
debian系の場合の記事も書かれているようですがリンク指定が間違っているようです。
http://tipspc.blogspot.jp/2011/09/qemu-kvm-ubuntu-debian.html