Xenでは,柔軟なネットワーク構成を自由に設定して利用できます。例えば,「複数のネットワークにつながっている複数のサーバー」を仮想環境上で再現できます。今回は,一歩進んだネットワーク構成の作り方を紹介します。

 第2回と第3回では,複数のLinuxディストリビューションを例に挙げて,Xenのインストール方法を解説しました。今回はXen上で動作するOS同士や,Xen上で動作するOSと外部をネットワーク接続してみましょう。

 Xenの仮想ネットワークを構築するには,まず,ドメイン上に仮想的なネットワーク・インタフェースを作成します。次にインタフェースに対してMACアドレスやIPアドレスなどを設定していきます。今回はRed Hat Enterprise Linux 5(RHEL5)を使用した場合について紹介します。

仮想ネットワークの仕組み

 Xenのドメイン0(管理用OS)から新たにドメインU(ゲストOSに相当)を起動したとしましょう。すると,ドメイン0とドメインUを接続する仮想的なネットワーク・インタフェースが1対,自動的に作成されます(図1*1。あたかも仮想的なクロス・ケーブルで,ドメイン0とドメインUが直接接続されているかのようです。

図1●ドメイン0とドメインUを結ぶネットワーク・インタフェースの名称
図1●ドメイン0とドメインUを結ぶネットワーク・インタフェースの名称

 ドメインU側のイーサネット・デバイス名は,eth0,eth1,…という名前が付けられます。これは通常のLinuxと同様です。

 ドメイン0側は異なります。vif1.0,vif2.0,といった「vif」(仮想インタフェース)+「n.m」というデバイス名になります。nは「xm list」コマンドを使って確認できるドメインUのID番号,mはそのドメインU内にあるインタフェースの番号(連番)です。

 仮想インタフェースは,ドメインUと同期して管理されています。ドメインUをシャットダウンすると,仮想インタフェースは削除されます。

3つのネットワーク・モード

 ドメインUの起動後,ドメイン0に仮想インタフェースが作成されただけでは,ドメインUのネットワーク構成は決まりません。外部のネットワークとの通信もできません。

 Xenには,「ブリッジ・モード」,「NATモード」,「ルーティング・モード」,という3種類のネットワーク・モードが用意されています。どのモードを用いても,外部ネットワークとの接続,ドメインU同士の通信が可能になります。

 ブリッジ・モードではドメイン0にブリッジ・インタフェース(xenbr0,以下ブリッジ)を作成し,ドメインUとドメイン0のネットワークがブリッジ接続されます(図2)。外部からは,ドメインUとドメイン0がそれぞれ独立したサーバーに見えます。

図2●ブリッジ・モードの構成
図2●ブリッジ・モードの構成

 一方,NATモードやルーティング・モードではブリッジは使いません。ドメイン0がIPフォワード*2を担うことで通信を実現します(図3)。NATモードでは,ドメインUのネットワークから外部のネットワークへIPパケットが転送される際に,ネットワーク・アドレス変換(Network Address Translator,NAT)が施されます。

図3●NATモード,ルーティング・モードの構成
図3●NATモード,ルーティング・モードの構成

 ルーティング・モードにはNATはありませんが,それ以外はNATモードと同じです。