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を結ぶネットワーク・インタフェースの名称 |
ドメイン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●ブリッジ・モードの構成 |
一方,NATモードやルーティング・モードではブリッジは使いません。ドメイン0がIPフォワード*2を担うことで通信を実現します(図3)。NATモードでは,ドメインUのネットワークから外部のネットワークへIPパケットが転送される際に,ネットワーク・アドレス変換(Network Address Translator,NAT)が施されます。
![]() |
図3●NATモード,ルーティング・モードの構成 |
ルーティング・モードにはNATはありませんが,それ以外はNATモードと同じです。