2007-03-22

Xenで複数のネットワークインターフェイスを domUに提供する

Xenはネットワークインターフェイスをドメイン0とドメインUの間でブリッジできる。
簡単にいうと、ドメイン0で認識されているネットワークインターフェイスを、ドメインUでも共有できるということである。

ドメイン0で xendを起動すると、ネットワークインターフェイスをドメインUにブリッジするための仮想インターフェイスが起動される。それらは xenbrというプレフィクスのネットワークインターフェイスである。

Xenのデフォルトでは、ドメイン0で認識されている一番最初のネットワークインターフェイス(大抵 eth0だろう)に対して xenbr0を自動的に起動する。ドメインの設定ファイルに

vif=[""];

と書くと、xenbr0がドメインUから eth0 として利用できるようになる。
(どうやら "" は "bridge=xenbr0" の省略記法のようだ)

さて、ドメインUに複数のネットワークインターフェイスを持たせたい場合は、ドメイン0における 2番目以降のインターフェイスに対しても xenbrデバイスを起動しなくてはならない。これにはちょっとしたスクリプトを作成して、それが xendの起動時に呼び出されるよう設定を変更する必要がある。

/etc/xen/scripts に、適当な名前(ここではmy-network-script)で下記のようなシェルスクリプトを作成し、実行権限をつける。
vifnumは xenbrデバイスにつける番号、 netdevはブリッジしたい実デバイスの名前。


#!/bin/sh
dir=$(dirname "$0")
"$dir/network-bridge" "$@" vifnum=0 netdev=eth0
"$dir/network-bridge" "$@" vifnum=1 netdev=eth1


さらに xendの設定ファイル /etc/xen/xend-config.sxp を開き、上で作ったスクリプトファイルをを呼び出すように変更する。


(network-script network-bridge)



(network-script my-network-script)


これで xendを再起動したら、xenbrデバイスが複数になっているはず。

実際のドメイン設定ファイルで複数のネットワークインターフェイスを定義するには、
vif=["","bridge=xenbr1"];
のようにカンマで区切って2番目以降の xenbrデバイスを追記する。
この記述の場合 xenbr1はドメインU側で eth1として認識される。

ラベル:

0 件のコメント:

コメントを投稿

<< ホーム