第13章 Red Hat Enterprise Linux 5.4 以前の Xen ネットワーキング

この章では、Xen hypervisor を使用したネットワーキングとネットワーク設定の為の 特殊なトピックを扱います。
ほとんどのゲストネットワーク設定はゲストの初期化中とインストールのプロセス中に 発生します。ゲストのインストールプロセス中のネットワーク設定に関する情報を 得るには、インストールプロセスの関連セクション 6章仮想化ゲストインストールの概要 をお読み下さい、
ネットワーク設定は、virsh (22章virsh でゲストを管理) と virt-manager (23章仮想マシンマネージャ(virt-manager) でゲストを管理する) のための ツール特有の参照の章でも取り扱っています。これらの章では、これらのツールを使用した ネットワーキング設定の詳細説明が提供されています。

注記

para-virtualized ネットワークドライバーを使用すると、完全仮想化 Linux ゲストに パフォーマンスの向上を与えます。14章Xen Para-virtualized ドライバー では、utilize para-virtualized ネットワークドライバーの 活用法を説明しています。

13.1. 複数のゲストネットワークブリッジを設定して複数のイーサネットカードを使用

ネットワークブリッジをセットアップするプロセス(Xen hypervisor 使用):
  1. system-config-network アプリケーションを使用して もう1つのネットワークインターフェイスを設定します。別の方法として、/etc/sysconfig/network-scripts/ ディレクトリ内に ifcfg-ethX と言う名の新しい 設定ファイルを作成します。ここで X とは、いずれかの未使用の番号です。 eth1 と言う名の2つめのネットワークインターフェイス用の サンプルの設定ファイルを以下に示します。
    $ cat /etc/sysconfig/network-scripts/ifcfg-eth1
    DEVICE=eth1
    BOOTPROTO=static
    ONBOOT=yes
    USERCTL=no
    IPV6INIT=no
    PEERDNS=yes
    TYPE=Ethernet
    NETMASK=255.255.255.0
    IPADDR=10.1.1.1
    GATEWAY=10.1.1.254
    ARP=yes
    
  2. ファイル /etc/xen/scripts/network-bridge を,/etc/xen/scripts/network-bridge.xen にコピーします。
  3. /etc/xen/xend-config.sxp 内の既存のネットワークスクリプトを コメントアウトして、(network-xen-multi-bridge) と言う行を 追加します。
  4. カスタムスクリプトを作成して複数のネットワークブリッジを作ります。以下に サンプルのスクリプトを示します。このサンプルスクリプトは2つの Xen ネットワーク ブリッジ(xenbr0 と xenbr1)作り、その1つは eth1 に付帯して、もう1つは eth0 に 付帯します。追加のブリッジを作成したい場合は、スクリプト内の例に従って、該当する 行をコピー/ペーストして下さい:
    #!/bin/sh
    # network-xen-multi-bridge
    # Exit if anything goes wrong.
    set -e
    # First arg is the operation.
    OP=$1
    shift
    script=/etc/xen/scripts/network-bridge.xen
    case ${OP} in
    start)
            $script start vifnum=1 bridge=xenbr1 netdev=eth1
            $script start vifnum=0 bridge=xenbr0 netdev=eth0
            ;;
    stop)
            $script stop vifnum=1 bridge=xenbr1 netdev=eth1
            $script stop vifnum=0 bridge=xenbr0 netdev=eth0
            ;;
    status)
            $script status vifnum=1 bridge=xenbr1 netdev=eth1
            $script status vifnum=0 bridge=xenbr0 netdev=eth0
            ;;
    *)
            echo 'Unknown command: ' ${OP}
            echo 'Valid commands are: start, stop, status'
            exit 1
    esac