Xenのインストールが完了し,仮想OSを起動できたら,次は仮想OSをネットワークで接続してみよう。Xenの仮想ネットワークは,ドメイン上に仮想的なネットワーク・インターフェースを作成し,それらに対してMACアドレスやIPアドレスなどを設定することで通信できるようになっている。シンプルに設計されており,基本的なネットワーク構成の組み合わせで,複雑なネットワーク構成を実現できる。

仮想イーサネットで接続

 今回は検証環境として,SUSE Linux Enterprise Server10を利用した。Xenのドメイン0(ホストに相当)から新たにドメインU(ゲストに相当)を起動すると,ドメイン0とドメインUを接続する1対の仮想的なネットワーク・インターフェースが作成される。仮想的なクロス・ケーブルで,ドメイン0とドメインUが直接接続されているイメージだ(図1)。

図1●Xenのネットワークの概念図
図1●Xenのネットワークの概念図

 このときドメインU側のデバイス名には,通常のLinuxの場合と同様に,eth0,eth1,…といった「eth」+「通し番号」の名前が付けられる。これに対してドメイン0側には,vif1.0,vif2.0,といったデバイス名が作成され,1つ目の数字(ピリオドの前)は「xm list」コマンドで確認できるドメインUのID番号,2つ目の数字(ピリオドの後)はそのドメインU内にあるインターフェースの通し番号になる。ドメインUがシャットダウンされると,これらのvifで始まる仮想インターフェースも削除される。

ブリッジ・モードで構築

 ドメインUを作成すると,ドメイン0とドメインUを接続するための仮想インターフェースが作成されるが,このままではドメインUはドメイン0に接続されている物理的なネットワークにアクセスできない。またドメインU同士を接続するためのネットワークもないため,ドメインU同士の通信もできない。

 そこでXenは,「ブリッジ・モード」「ルーティング・モード」「NATモード」の3種類のネットワーク・モードを用意し,外部ネットワークとの接続や,ドメインU同士の通信ができるようにしている。

図2●ブリッジ接続を利用してドメインUから物理ネットワークにアクセス可能
図2●ブリッジ接続を利用してドメインUから物理ネットワークにアクセス可能

 このうち,最も代表的なネットワーク・モードはブリッジ・モードである。Xenをインストールした際のデフォルトは,ブリッジ・モードに設定されている。ここではこのブリッジ・モードを使用したネットワーク環境の構築方法について紹介する。

 ドメイン0を起動した後,「ifconfig」コマンドを実行すると,「xenbr0」という名前のブリッジ・インターフェースが作成されていることが分かる。Xenではこのブリッジ・インターフェースを使用することで,仮想ネットワーク上にあるドメインUを,物理ネットワーク上にある独立したホストと同じように見せられる(図2)。xenbr0というブリッジ・インターフェースは,Xenのデーモンであるxendを起動する際に呼び出される「/etc/xen/scripts/network-bridge」スクリプトの中で定義され,作成されている。

 このようにドメインUをxenbr0にブリッジ接続してネットワーク環境を構築するためには,ドメインUを起動する際の設定ファイルに,vifのエントリを記述しておく必要がある。Xenと同時にインストールされるサンプル・ファイル「xmexample1」には,vifの記述方法として以下の3つ例が挙げられている。

(1)vif = [ '' ]

(2)vif = [ 'mac=00:16:3e:00:00:11,

      bridge=xenbr0' ]

(3)vif = [ '', 'bridge=xenbr1' ]

 (1)のように記述した場合,xenbr0でブリッジ接続され,起動したドメインUのMACアドレスはランダムに生成される。ただし,XenがMACアドレスをランダム生成する場合,上位6けた(24ビット分)はベンダーIDとしてXenSourceが取得している「00:16:3e」に設定される。実質ランダムに生成されるのは,下位6けた分である。

 (2)のようにMACアドレスとブリッジ・インターフェースを明示的に指定することも可能だ。今のところ,これが最も推奨される記述方法といえる。なぜなら,MACアドレスを明示的に指定していなければ,ドメインUを再起動した場合に,別の新しいMACアドレスが生成されてしまう場合がある。そうするとドメインUのOSから見た場合に,新しいNICが追加されたかのように誤って認識され,ネットワークがつながらなくなることがある。また,DHCPなどを使用してドメインUのIPアドレスを設定する場合なども,MACアドレスは固定であるほうが望ましい。

 新しいブリッジ・インターフェースを作成すれば,(3)のようにデフォルト以外のインターフェースも使用できる。ドメインUに複数のネットワーク・インターフェースを持たせ,複雑なネットワークを作成したい場合には,新しいブリッジ・インターフェースが必要となる。そこで次は,ブリッジ・インターフェースを複数作成して,少々複雑なネットワークを構築する方法を紹介しよう。