Logical Domains 1.2 管理ガイド

第 7 章 仮想ネットワークの使用

この章では、Logical Domains ソフトウェアで仮想ネットワークを使用する方法について説明します。この章の内容は次のとおりです。

仮想ネットワークの概要

仮想ネットワークでは、ドメインが外部の物理ネットワークを使用しないで相互に通信できます。仮想ネットワークでは、複数のドメインが同じ物理ネットワークインタフェースを使用して物理ネットワークにアクセスし、遠隔システムと通信することもできます。仮想ネットワークは、仮想ネットワークデバイスを接続できる仮想スイッチを備えることで構築します。

仮想スイッチ

仮想スイッチ (vsw) とは、サービスドメインで動作し、仮想スイッチドライバによって管理されるコンポーネントのことです。仮想スイッチを複数のゲストドメインに接続すると、これらのドメイン間のネットワーク通信を可能にできます。また、仮想スイッチが物理ネットワークインタフェースにも関連付けられている場合は、物理ネットワークインタフェースを介して、ゲストドメインと物理ネットワークの間のネットワーク通信が有効になります。仮想スイッチはネットワークインタフェース vswn も備えています。このインタフェースによって、サービスドメインは、仮想スイッチに接続されたほかのドメインと通信できます。このインタフェースは通常のネットワークインタフェースと同様に使用でき、ifconfig(1M) コマンドで構成できます。


注 –

サービスドメインに仮想スイッチを追加する際、そのネットワークインタフェースは plumb されません。このため、デフォルトでは、サービスドメインは仮想スイッチに接続されたゲストドメインと通信できません。ゲストドメインとサービスドメインの間のネットワーク通信を有効にするには、関連付けられた仮想スイッチのネットワークインタフェースを plumb し、サービスドメイン内で構成する必要があります。手順については、「制御ドメインまたはサービスドメインとその他のドメイン間のネットワークの有効化」 を参照してください。


仮想ネットワークデバイス

仮想ネットワーク (vnet) デバイスとは、仮想スイッチに接続されたドメイン内で定義されている仮想デバイスのことです。仮想ネットワークデバイスは、仮想ネットワークドライバによって管理され、論理ドメインチャネル (LDC) を使用するハイパーバイザを介して仮想ネットワークに接続されます。

仮想ネットワークデバイスは、vnetn という名前のネットワークインタフェースとして使用できます。このネットワークデバイスは通常のネットワークインタフェースと同様に使用でき、ifconfig(1M) コマンドで構成できます。

図 7–1 仮想ネットワークの設定

この図は、文章で説明しているように仮想ネットワークを設定する方法を示しています。

図 7–1 の例の説明は、次のとおりです。

基本的に仮想スイッチは、通常の物理ネットワークスイッチと同様に機能し、接続されているゲストドメイン、サービスドメイン、物理ネットワークなど異なるシステム間のネットワークパケットをスイッチングします。

仮想スイッチの管理

この節では、ドメインへの仮想スイッチの追加、仮想スイッチのオプションの設定、および仮想スイッチの削除について説明します。

Procedure仮想スイッチを追加する

  1. 仮想スイッチを追加するには、次のコマンド構文を使用します。


    # ldm add-vsw [default-vlan-id=vlan-id] [pvid=port-vlan-id] [vid=vlan-id1,vlan-id2,...]
    [mac-addr=num] [net-dev=device] [mode=sc] [mtu=size] [id=switch-id] vswitch-name ldom
    

    各表記の意味は次のとおりです。

    • default-vlan-id=vlan-id は、仮想スイッチとそれに関連する仮想ネットワークデバイスが暗黙的にタグなしモードで属するデフォルトの仮想ローカルエリアネットワーク (VLAN) を指定します。これは、仮想スイッチおよび仮想ネットワークデバイスのデフォルトのポート VLAN id (pvid) として機能します。このオプションを指定しない場合、このプロパティーのデフォルト値は 1 です。通常、このオプションを指定する必要はありません。このオプションは、単にデフォルト値の 1 を変更する手段として用意されています。詳細は、「Logical Domains ソフトウェアでの VLAN のタグ付けの使用」 を参照してください。

    • pvid=port-vlan-id には、仮想スイッチをメンバーにする必要のある VLAN をタグなしモードで指定します。詳細は、「Logical Domains ソフトウェアでの VLAN のタグ付けの使用」 を参照してください。

    • vid=vlan-id は、仮想スイッチがタグ付きモードでメンバーとして属する必要のある 1 つ以上の VLAN を指定します。詳細は、「Logical Domains ソフトウェアでの VLAN のタグ付けの使用」 を参照してください。

    • mac-addr=num は、このスイッチで使用される MAC アドレスです。番号は、標準のオクテット記述法で指定する必要があります。たとえば、80:00:33:55:22:66 とします。MAC アドレスを指定しない場合、スイッチには、Logical Domains Manager に割り当てられているパブリック MAC アドレス範囲のアドレスが自動的に割り当てられます。詳細は、「自動または手動による MAC アドレスの割り当て」 を参照してください。

    • net-dev=device は、このスイッチが動作するネットワークデバイスへのパスです。

    • mode=sc を指定すると、論理ドメイン環境での Solaris Cluster のハートビートパケットの優先処理用の仮想ネットワークサポートが有効になります。Solaris Cluster などのアプリケーションでは、輻輳した仮想ネットワークおよびスイッチデバイスによって高優先度のハートビートパケットがドロップされないようにする必要があります。このオプションを使用して、Solaris Cluster のハートビートフレームが優先され、これらのフレームが信頼性の高い方法で転送されるようにします。

      論理ドメイン環境で Solaris Cluster を動作させ、ゲストドメインを Solaris Cluster ノードとして使用する場合は、このオプションを設定する必要があります。ゲストドメインで Solaris Cluster ソフトウェアを実行していない場合には、仮想ネットワークのパフォーマンスに影響を与える可能性があるため、このオプションを設定しないでください。

    • mtu=size は、仮想スイッチデバイスの最大転送単位 (MTU) を指定します。有効な値の範囲は 1500 ~ 16000 です。

    • id=switch-id は、新しい仮想スイッチデバイスの ID です。デフォルトでは ID 値は自動的に生成されるため、OS で既存のデバイス名に一致させる必要がある場合に、このプロパティーを設定します。「仮想デバイス識別子およびネットワークインタフェース名」 を参照してください。

    • vswitch-name は、サービスとしてエクスポートされるスイッチの一意の名前です。クライアント (ネットワーク) は、このサービスに接続できます。

    • ldom には、仮想スイッチを追加する論理ドメインを指定します。

Procedure既存の仮想スイッチのオプションを設定する

  1. すでに存在している仮想スイッチのオプションを設定するには、次のコマンド構文を使用します。


    # ldm set-vsw [pvid=port-vlan-id] [vid=vlan-id1,vlan-id2,...] [mac-addr=num]
    [net-dev=device] [mode=[sc]] [mtu=size] vswitch-name
    

    各表記の意味は次のとおりです。

    • mode= (空白のまま) では、Solaris Cluster のハートビートパケットの特殊処理が停止されます。

    • それ以外のコマンド引数は、「仮想スイッチを追加する」 で説明しているものと同じです。

Procedure仮想スイッチを削除する

  1. 仮想スイッチを削除するには、次のコマンド構文を使用します。


    # ldm rm-vsw [-f] vswitch-name
    

    各表記の意味は次のとおりです。

    • -f は、仮想スイッチの強制削除を試行します。削除は失敗することがあります。

    • vswitch-name は、サービスとして削除されるスイッチの名前です。

仮想ネットワークデバイスの管理

この節では、ドメインへの仮想ネットワークデバイスの追加、既存の仮想ネットワークデバイスのオプションの設定、および仮想ネットワークデバイスの削除について説明します。

Procedure仮想ネットワークデバイスを追加する

  1. 仮想ネットワークデバイスを追加するには、次のコマンド構文を使用します。


    # ldm add-vnet [mac-addr=num] [mode=hybrid] [pvid=port-vlan-id] 
    [vid=vlan-id1,vlan-id2,...] [mtu=size] [id=network-id] if-name vswitch-name ldom
    

    各表記の意味は次のとおりです。

    • mac-addr=num は、このネットワークデバイスの MAC アドレスです。数字は、80:00:33:55:22:66 など標準の 8 ビット表記にする必要があります。詳細は、「自動または手動による MAC アドレスの割り当て」 を参照してください。

    • mode=hybrid は、可能な場合に、この vnet で NIU ハイブリッド I/O を使用するようにシステムに要求します。可能でない場合、システムは仮想 I/O に戻ります。このハイブリッドモードは、アクティブな vnet で設定すると、遅延再構成とみなされます。詳細は、「NIU ハイブリッド I/O の使用」 を参照してください。

    • pvid=port-vlan-id には、仮想ネットワークデバイスをメンバーにする必要のある VLAN をタグなしモードで指定します。詳細は、「Logical Domains ソフトウェアでの VLAN のタグ付けの使用」 を参照してください。

    • vid=vlan-id は、仮想ネットワークデバイスがタグ付きモードでメンバーとして属する必要のある 1 つ以上の VLAN を指定します。詳細は、「Logical Domains ソフトウェアでの VLAN のタグ付けの使用」 を参照してください。

    • mtu=size は、仮想ネットワークデバイスの最大転送単位 (MTU) を指定します。有効な値の範囲は 1500 ~ 16000 です。

    • id=network-id は、新しい仮想ネットワークデバイスの ID です。デフォルトでは ID 値は自動的に生成されるため、OS で既存のデバイス名に一致させる必要がある場合に、このプロパティーを設定します。「仮想デバイス識別子およびネットワークインタフェース名」 を参照してください。

    • if-name (インタフェースの名前) は、後続の ldm set-vnet または ldm rm-vnet コマンドで参照するために仮想ネットワークデバイスのインスタンスに割り当てられる、論理ドメインで一意の名前です。

    • vswitch-name は、接続する既存のネットワークサービス (仮想スイッチ) の名前です。

    • ldom には、仮想ネットワークデバイスを追加する論理ドメインを指定します。

Procedure既存の仮想ネットワークデバイスのオプションを設定する

  1. すでに存在している仮想ネットワークデバイスのオプションを設定するには、次のコマンド構文を使用します。


    # ldm set-vnet [mac-addr=num] [vswitch=vswitch-name] [mode=[hybrid]] 
    [pvid=port-vlan-id] [vid=vlan-id1,vlan-id2,...] [mtu=size] if-name ldom
    

    各表記の意味は次のとおりです。

    • mode= (空白のまま) では、NIU ハイブリッド I/O が無効になります。

    • if-name (インタフェースの名前) は、設定する仮想ネットワークデバイスに割り当てられている一意の名前です。

    • ldom には、仮想ネットワークデバイスを削除する論理ドメインを指定します。

    • それ以外のコマンド引数は、「仮想ネットワークデバイスを追加する」 で説明しているものと同じです。

Procedure仮想ネットワークデバイスを削除する

  1. 仮想ネットワークデバイスを削除するには、次のコマンド構文を使用します。


    # ldm rm-vnet [-f] if-name ldom
    

    各表記の意味は次のとおりです。

    • -f は、論理ドメインからの仮想ネットワークデバイスの強制削除を試行します。削除は失敗することがあります。

    • if-name (インタフェースの名前) は、削除する仮想ネットワークデバイスに割り当てられている一意の名前です。

    • ldom には、仮想ネットワークデバイスを削除する論理ドメインを指定します。

仮想デバイス識別子およびネットワークインタフェース名

ドメインに仮想スイッチまたは仮想ネットワークデバイスを追加する場合、id プロパティーを設定することでデバイス番号を指定できます。


# ldm add-vsw [id=switch-id] vswitch-name ldom
# ldm add-vnet [id=network-id] if-name vswitch-name ldom

ドメインの各仮想スイッチおよび仮想ネットワークデバイスには、ドメインがバインドされるときに割り当てられる一意のデバイス番号があります。id プロパティーを設定して仮想スイッチまたは仮想ネットワークデバイスを明示的なデバイス番号で追加した場合、指定したデバイス番号が使用されます。デバイス番号を指定しなかった場合、使用可能なもっとも小さいデバイス番号が自動的に割り当てられます。その場合、割り当てられるデバイス番号は、仮想スイッチまたは仮想ネットワークデバイスがシステムに追加された方法によって異なります。仮想スイッチまたは仮想ネットワークデバイスに最終的に割り当てられたデバイス番号は、ドメインがバインドされるときに ldm list-bindings コマンドの出力で確認できます。

次の例は、primary ドメインに 1 つの仮想スイッチ primary-vsw0 が構成されていることを示しています。この仮想スイッチのデバイス番号は 0 (switch@0) です。


primary# ldm list-bindings primary
...
VSW
    NAME         MAC               NET-DEV DEVICE   DEFAULT-VLAN-ID PVID VID MTU MODE
    primary-vsw0 00:14:4f:fb:54:f2 e1000g0 switch@0 1               1    5,6 1500
...

次の例は、ldg1 ドメインには 2 つの仮想ネットワークデバイス vnet および vnet1 が構成されていることを示しています。デバイス vnet のデバイス番号は 0 (network@0) で、デバイス vnet1 のデバイス番号は 1 (network@1) です。


primary# ldm list-bindings ldg1
...
NETWORK
    NAME  SERVICE              DEVICE    MAC               MODE   PVID VID MTU
    vnet  primary-vsw0@primary network@0 00:14:4f:fb:e0:4b hybrid 1        1500
    ...
    vnet1 primary-vsw0@primary network@1 00:14:4f:f8:e1:ea        1        1500
...

仮想スイッチが構成されたドメインで Solaris OS を実行している場合、仮想スイッチはネットワークインタフェース vswN を備えています。ただし、仮想スイッチのネットワークインタフェース番号 N は、仮想スイッチのデバイス番号 n と同じとはかぎりません。

同様に、仮想ネットワークデバイスが構成されたドメインで Solaris OS を実行している場合、仮想ネットワークデバイスはネットワークインタフェース vnetN を備えています。ただし、仮想ネットワークデバイスのネットワークインタフェース番号 N は、仮想ネットワークデバイスのデバイス番号 n と同じとはかぎりません。


注意 – 注意 –

Solaris OS では、ネットワークインタフェースの名前と、仮想スイッチまたは仮想ネットワークとの間のマッピングが、デバイス番号に基づいて保存されます。デバイス番号が仮想スイッチまたは仮想ネットワークデバイスに明示的に割り当てられていない場合、ドメインのバインドがいったん解除されたあとで再びバインドされると、デバイス番号が変更されることがあります。その場合、ドメインで動作している OS によって割り当てられたネットワークインタフェース名も変更され、システムの既存の構成が損なわれることがあります。これは、たとえば、仮想スイッチまたは仮想ネットワークインタフェースがドメインの構成から削除されたときに起こる場合があります。


ldm list-* コマンドを使用して、仮想スイッチまたは仮想ネットワークデバイスに対応する Solaris OS のネットワークインタフェース名を直接判定することはできません。ただし、ldm list -l コマンドの出力と、Solaris OS の /devices 配下のエントリの出力を組み合わせて使用すると、この情報を取得できます。

ProcedureSolaris OS ネットワークインタフェース名を確認する

次の例では、ゲストドメイン ldg1 には net-a および net-c の 2 つの仮想ネットワークデバイスが含まれています。net-c に対応する、ldg1 での Solaris OS ネットワークインタフェース名を確認するには、次の手順を実行します。この例では、仮想ネットワークデバイスではなく仮想スイッチのネットワークインタフェース名を検索する場合の相違点も示します。

  1. ldm コマンドを使用して、net-c の仮想ネットワークデバイス番号を探します。


    # ldm list -l ldg1
    ...
    NETWORK
    NAME         SERVICE                     DEVICE       MAC
    net-a        primary-vsw0@primary        network@0    00:14:4f:f8:91:4f
    net-c        primary-vsw0@primary        network@2    00:14:4f:f8:dd:68
    ...

    net-c の仮想ネットワークデバイス番号は 2 (network@2) です。

    仮想スイッチのネットワークインタフェース名を判定するには、switch@nn に示された仮想スイッチデバイス番号を探します。

  2. ldg1 で対応するネットワークインタフェースを検出するには、ldg1 にログインして、/devices 配下でこのデバイス番号に対するエントリを探します。


    # uname -n
    ldg1
    # find /devices/virtual-devices@100 -type c -name network@2\*
    /devices/virtual-devices@100/channel-devices@200/network@2:vnet1

    ネットワークインタフェース名は、コロンのあとのエントリの部分で、この場合は vnet1 です。

    仮想スイッチのネットワークインタフェース名を判定するには、-name オプションの引数を virtual-network-switch@n\* に置換します。次に、vswN という名前のネットワークインタフェースを探します。

  3. vnet1 を plumb して、手順 1 の net-c に対する ldm list -l の出力で示されたように、MAC アドレスが 00:14:4f:f8:dd:68 であることを確認します。


    # ifconfig vnet1
    vnet1: flags=1000842<BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
              inet 0.0.0.0 netmask 0
              ether 0:14:4f:f8:dd:68

自動または手動による MAC アドレスの割り当て

使用する予定の論理ドメイン、仮想スイッチ、および仮想ネットワークに割り当てられるだけの十分な数のメディアアクセス制御 (MAC) アドレスが必要です。Logical Domains Manager から論理ドメイン、仮想ネットワーク (vnet)、および仮想スイッチ (vsw) に自動的に MAC アドレスを割り当てるか、割り当てられた MAC アドレスの自身のプールから手動で MAC アドレスを割り当てることができます。MAC アドレスを設定する ldm のサブコマンドは、add-domainadd-vswset-vswadd-vnet、および set-vnet です。これらのサブコマンドで MAC アドレスを指定しない場合は、Logical Domains Manager が自動的に MAC アドレスを割り当てます。

Logical Domains Manager に MAC アドレスの割り当てを実行させる利点は、論理ドメインで使用するための専用の MAC アドレスのブロックを利用できることです。また、Logical Domains Manager は、同じサブネットにあるほかの Logical Domains Manager インスタンスと競合する MAC アドレスを検出し、これを回避します。これにより、手動で MAC アドレスのプールを管理する必要がなくなります。

論理ドメインが作成されたり、ドメインにネットワークデバイスが構成されたりするとすぐに、MAC アドレスの割り当てが発生します。また、割り当ては、デバイスまたは論理ドメイン自体が削除されるまで保持されます。

Logical Domains ソフトウェアに割り当てられる MAC アドレスの範囲

論理ドメインには、次の 512K の MAC アドレスのブロックが割り当てられています。

00:14:4F:F8:00:00 ~ 00:14:4F:FF:FF:FF

下位の 256K のアドレスは、Logical Domains Manager による MAC アドレスの自動割り当てに使用されるため、この範囲のアドレスを手動で要求することはできません。

00:14:4F:F8:00:00 ~ 00:14:4F:FB:FF:FF

MAC アドレスを手動で割り当てる場合は、この範囲の上位半分を使用できます。

00:14:4F:FC:00:00 ~ 00:14:4F:FF:FF:FF

自動割り当てのアルゴリズム

論理ドメインまたはネットワークデバイスの作成時に MAC アドレスを指定しない場合、Logical Domains Manager は MAC アドレスを自動的に確保して、その論理ドメインまたはネットワークデバイスに割り当てます。この MAC アドレスを取得するために、Logical Domains Manager はアドレスの選択を繰り返し試みて、潜在的な競合がないか確認します。

可能性のあるアドレスを選択する前に、Logical Domains Manager は、自動的に割り当てられ、最近解放されたアドレスが、ここで使用するためにデータベースに保存されているかどうかをまず確認します (「解放された MAC アドレス」 を参照)。保存されていた場合、Logical Domains Manager はデータベースから候補となるアドレスを選択します。

最近解放されたアドレスが使用できない場合、MAC アドレスはこの用途のために確保された 256K の範囲のアドレスからランダムに選択されます。候補として選択される MAC アドレスが重複する可能性を少なくするために、MAC アドレスはランダムに選択されます。

選択されたアドレスは、ほかのシステムのその他の Logical Domains Manager に対して確認され、重複した MAC アドレスが実際に割り当てられることを防止します。使用されているアルゴリズムは、「重複した MAC アドレスの検出」 に記載されています。アドレスがすでに割り当てられている場合、Logical Domains Manager は、ほかのアドレスの選択および競合の再確認を繰り返し行います。この動作は、まだ割り当てられていない MAC アドレスが見つかるか、30 秒の制限時間が経過するまで続きます。制限時間に達すると、デバイスの作成が失敗し、次のようなエラーメッセージが表示されます。


Automatic MAC allocation failed.  Please set the vnet MAC address manually.

重複した MAC アドレスの検出

同じ MAC アドレスが別のデバイスに割り当てられないようにするために、Logical Domains Manager がデバイスに割り当てようとしているアドレスを含むマルチキャストメッセージを、制御ドメインのデフォルトのネットワークインタフェースを介して送信することで、Logical Domains Manager はほかのシステム上の Logical Domains Manager に確認します。MAC アドレスの割り当てを試行している Logical Domains Manager は、応答が返されるまで 1 秒待機します。LDoms が有効な別のシステムの異なるデバイスにその MAC アドレスがすでに割り当てられている場合は、そのシステムの Logical Domains Manager が対象となっている MAC アドレスを含む応答を送信します。要求を送信した Logical Domains Manager は応答を受け取ると、選択した MAC アドレスがすでに割り当てられていることを認識し、別のアドレスを選択して処理を繰り返します。

デフォルトでは、これらのマルチキャストメッセージは、デフォルトの生存期間 (TTL) が 1 である同じサブネット上のほかのマネージャーにのみ送信されます。TTL は、サービス管理機能 (SMF) プロパティー ldmd/hops を使用して設定できます。

各 Logical Domains Manager は、次の処理を行います。

何らかの理由でシステム上の Logical Domains Manager が停止すると、Logical Domains Manager が停止している間に MAC アドレスの重複が発生する可能性があります。

論理ドメインまたはネットワークデバイスが作成されるときに MAC の自動割り当てが行われ、そのデバイスまたは論理ドメインが削除されるまで保持されます。

解放された MAC アドレス

自動の MAC アドレスに関連付けられた論理ドメインまたはデバイスが削除されると、その MAC アドレスはそのシステムであとで使用する場合に備えて、最近解放された MAC アドレスのデータベースに保存されます。これらの MAC アドレスを保存して、動的ホスト構成プロトコル (DHCP) サーバーのインターネットプロトコル (IP) アドレスが使い果たされないようにします。DHCP サーバーが IP アドレスを割り当てるとき、しばらくの間 (リース期間中) その動作が行われます。多くの場合、リース期間は非常に長く構成されており、通常は数時間または数日間です。ネットワークデバイスが作成および削除される割合が高く、Logical Domains Manager が自動的に割り当てられた MAC アドレスを再利用しない場合、割り当てられる MAC アドレスの数によって典型的な構成の DHCP サーバーがすぐに圧迫される可能性があります。

Logical Domains Manager は、論理ドメインまたはネットワークデバイスの MAC アドレスを自動的に取得するように要求されると、以前に割り当てられた再利用可能な MAC アドレスが存在するかどうかを確認するために、解放された MAC アドレスデータベースを最初に参照します。このデータベースに使用可能な MAC アドレスが存在する場合、重複した MAC アドレスの検出アルゴリズムが実行されます。以前に解放された MAC アドレスが、そのあと割り当てられていない場合は、その MAC アドレスが再利用され、データベースから削除されます。競合が検出された場合、そのアドレスは単にデータベースから削除されます。Logical Domains Manager は、データベース内の次のアドレスを試行するか、使用可能なアドレスがない場合は、新しい MAC アドレスをランダムに選択します。

LDoms でのネットワークアダプタの使用

論理ドメイン環境のサービスドメイン内で動作する仮想スイッチサービスは、GLDv3 準拠のネットワークアダプタと直接対話できます。GLDv3 に準拠していないネットワークアダプタは、これらのシステムで使用できますが、仮想スイッチと直接対話することはできません。GLDv3 に準拠していないネットワークアダプタを使用する方法については、「NAT およびルーティング用の仮想スイッチおよびサービスドメインの構成」 を参照してください。

リンク集積体の使用法については、「仮想スイッチでのリンク集積体の使用」 を参照してください。

Procedureネットワークアダプタが GLDv3 準拠かどうかを判別する

  1. Solaris OS dladm(1M) コマンドを使用します。ここでは、たとえば、ネットワークデバイス名として bge0 を指定します。


    # dladm show-link bge0
    bge0            type: non-vlan   mtu: 1500      device: bge0
  2. 出力結果の type: を確認します。

    • GLDv3 に準拠しているドライバの種類は、non-vlan または vlan です。

    • GLDv3 に準拠していないドライバの種類は、legacy です。

NAT およびルーティング用の仮想スイッチおよびサービスドメインの構成

仮想スイッチ (vsw) はレイヤー 2 スイッチで、サービスドメインでネットワークデバイスとしても使用できます。仮想スイッチは、さまざまな論理ドメインで仮想ネットワーク (vnet) デバイス間のスイッチとしてのみ動作するように構成できますが、物理デバイスを介してネットワークの外部に接続することはできません。このモードで、vsw をネットワークデバイスとして plumb し、サービスドメインで IP ルーティングを有効にすると、仮想ネットワークでサービスドメインをルーターとして使用して外部と通信することができます。このモードでの操作は、物理ネットワークアダプタが GLDv3 に準拠していない場合、ドメインが外部に接続できるようにするために非常に重要です。

この構成の利点は次のとおりです。

図 7–2 仮想ネットワークルーティング

この図は、文章で説明している仮想ネットワークルーティングを示しています。

Procedureドメインが外部に接続できるように仮想スイッチを設定する

  1. 物理デバイスを関連付けずに仮想スイッチを作成します。

    アドレスを割り当てる場合は、仮想スイッチに一意の MAC アドレスが割り当てられるようにしてください。


    primary# ldm add-vsw [mac-addr=xx:xx:xx:xx:xx:xx] primary-vsw0 primary
    
  2. ドメインによって使用される物理ネットワークデバイスに加えて、仮想スイッチをネットワークデバイスとして plumb します。

    仮想スイッチの plumb の詳細は、「仮想スイッチを主インタフェースとして構成する」 を参照してください。

  3. 必要に応じて、DHCP で仮想スイッチデバイスを構成します。

    DHCP での仮想スイッチデバイスの構成については、「仮想スイッチを主インタフェースとして構成する」 を参照してください。

  4. 必要に応じて、/etc/dhcp.vsw ファイルを作成します。

  5. サービスドメインで IP ルーティングを構成し、すべてのドメインで必要なルーティングテーブルを設定します。

    この実行方法については、『Solaris のシステム管理 (IP サービス)』「IPv4 ネットワーク上でのパケット転送と経路制御」を参照してください。

論理ドメイン環境での IPMP の構成

インターネットプロトコルネットワークマルチパス (IPMP) は、複数のネットワークインタフェースカード間の耐障害性と負荷分散を提供します。IPMP を使用すると、1 つ以上のインタフェースを IP マルチパスグループとして構成できます。IPMP を構成すると、システムは IPMP グループ内のインタフェースで障害が発生していないかを自動的に監視します。グループ内のインタフェースに障害が発生したり、保守のために削除されたりすると、IPMP は障害の発生したインタフェースの IP アドレスを自動的に移行して、フェイルオーバーを行います。論理ドメイン環境では、物理ネットワークインタフェースまたは仮想ネットワークインタフェースのいずれかで IPMP を使用したフェイルオーバーを構成できます。

論理ドメインの IPMP グループへの仮想ネットワークデバイスの構成

IPMP グループに仮想ネットワークデバイスを構成することで、論理ドメインに耐障害性を持たせるように構成できます。アクティブ/スタンバイ構成で、仮想ネットワークデバイスを使用して IPMP グループを設定する場合は、グループでプローブベースの検出を使用するようにグループを設定します。Logical Domains 1.2 ソフトウェアでは、現在、仮想ネットワークデバイスに対するリンクベースの検出とフェイルオーバーはサポートされていません。

次の図に、サービスドメインで個別の仮想スイッチインスタンス (vsw0 および vsw1) に接続された 2 つの仮想ネットワーク (vnet0 および vnet1) を示します。これらは、同様に、2 つの異なる物理インタフェース (e1000g0 および e1000g1) を使用します。物理インタフェースに障害が発生した場合、LDom_A の IP 層が、プローブベースの検出を使用して対応する vnet の障害と接続の損失を検出し、vnet の二次デバイスに自動的にフェールオーバーします。

図 7–3 個別の仮想スイッチインスタンスに接続された 2 つの仮想ネットワーク

この図は、文章で説明している、個別の仮想スイッチインスタンスに接続された 2 つの仮想ネットワークを示しています。

次の図に示すように、各仮想ネットワークデバイス (vnet0 および vnet1) を異なるサービスドメインの仮想スイッチインスタンスに接続すると、論理ドメインでの信頼性をさらに高めることができます。この場合、ネットワークハードウェアの障害に加えて、LDom_A が仮想ネットワークの障害を検出し、サービスドメインがクラッシュまたは停止したあとでフェイルオーバーを引き起こすことができます。

図 7–4 異なるサービスドメインに接続された各仮想ネットワークデバイス

この図は、文章で説明しているように各仮想ネットワークデバイスを異なるサービスドメインに接続する方法を示しています。

IPMP グループの構成と使用法の詳細は、Solaris 10 の『Solaris のシステム管理 (IP サービス)』を参照してください。

Procedureホストルートを構成する

ネットワーク内の IPMP インタフェースに対応するルーターに明示的なルートが構成されていない場合、IPMP プローブベースの検出を目的どおりに動作させるには、ターゲットシステムへの明示的なホストルートを 1 つ以上構成する必要があります。このようにしない場合、プローブ検出がネットワーク障害を検出できないことがあります。

  1. ホストルートを構成します。


    # route add -host destination-IP gateway-IP -static
    

    次に例を示します。


    # route add -host 192.168.102.1 192.168.102.1 -static
    

    詳細は、『Solaris のシステム管理 (IP サービス)』「ターゲットシステムの構成」を参照してください。

サービスドメインでの IPMP の構成と使用

サービスドメインの物理インタフェースを IPMP グループとして構成すると、論理ドメイン環境でのネットワーク障害の検出と復旧を設定することもできます。これを行うには、サービスドメインの仮想スイッチをネットワークデバイスとして構成し、サービスドメイン自体を IP ルーターとして動作するように構成します。IP ルーティングの設定については、Solaris 10 の『Solaris のシステム管理 (IP サービス)』を参照してください。

いったん仮想スイッチが構成されると、仮想ネットワークから発生し外部のマシンに送信される予定のすべてのパケットは、物理デバイスを使用して直接送信されるのではなく、IP 層に送信されます。物理インタフェースに障害が発生した場合、IP 層は障害を検出し、自動的に二次インタフェースを使用してパケットをふたたび経路指定します。

物理インタフェースは直接 IPMP グループに構成されているため、グループは、リンクベースまたはプローブベースのいずれかの検出用に設定できます。次の図に、IPMP グループの一部として構成された 2 つのネットワークインタフェース (e1000g0 および e1000g1) を示します。仮想スイッチインスタンス (vsw0) は、IP 層にパケットを送信するネットワークデバイスとして plumb されています。

図 7–5 IPMP グループの一部として構成された 2 つのネットワークインタフェース

この図は、文章で説明しているように、2 つのネットワークインタフェースを IPMP グループの一部として構成する方法を示しています。

Logical Domains ソフトウェアでの VLAN のタグ付けの使用

Solaris 10 10/08 OS および LDoms 1.1 ソフトウェアのリリース以降は、Logical Domains ネットワークインフラストラクチャーで 802.1Q VLAN のタグ付けがサポートされます。


注 –

タグ付き VLAN は、以前のリリースの LDoms ネットワークコンポーネント用ではサポートされていません。


仮想スイッチ (vsw) および仮想ネットワーク (vnet) デバイスは、仮想ローカルエリアネットワーク (VLAN) 識別子 (ID) に基づいて Ethernet パケットのスイッチングをサポートし、Ethernet フレームの必要なタグ付けまたはタグなし処理を行います。

ゲストドメインの vnet デバイスには複数の VLAN インタフェースを作成できます。Solaris OS ifconfig(1M) コマンドを使用すると、ほかの物理ネットワークデバイスに VLAN インタフェースを構成する場合と同じ方法で、仮想ネットワークデバイスに VLAN インタフェースを作成できます。LDoms 環境では、この手順のほかに Logical Domains Manager CLI コマンドを使用して、対応する VLAN に vnet を割り当てる必要があります。Logical Domains Manager CLI コマンドの詳細は、ldm(1M) を参照してください。

同様に、サービスドメインの仮想スイッチデバイスに VLAN インタフェースを構成することができます。VLAN ID 2 ~ 4094 が有効です。VLAN ID 1 は default-vlan-id として予約されています。

ゲストドメインに vnet デバイスを作成する場合は、そのデバイスを必要な VLAN に割り当てる必要があります。それには、ldm add-vnet コマンドで pvid= 引数および vid= 引数を使用して、この vnet にポート VLAN ID および 0 個以上の VLAN ID を指定します。これによって、仮想スイッチは、LDoms ネットワークで複数の VLAN をサポートし、ネットワークで MAC アドレスと VLAN ID の両方を使用してパケットをスイッチングするように構成されます。

同様に、vsw デバイス自体が属することになる VLAN を、ネットワークインタフェースとして plumb するときに、ldm add-vsw コマンドで pvid= 引数および vid= 引数を使用して、vsw デバイス内に構成する必要があります。

デバイスが属する VLAN は、ldm set-vnet または ldm set-vsw コマンドを使用して変更できます。

ポート VLAN ID (PVID)

PVID は、仮想ネットワークデバイスをメンバーにする必要のある VLAN を、タグなしモードで示します。この場合、PVID で指定した VLAN の vnet デバイスのために必要なフレームのタグ付けまたはタグなし処理は、vsw デバイスによって行われます。仮想ネットワークからのタグなしのアウトバウンドフレームは、仮想スイッチによって PVID でタグ付けされます。この PVID でタグ付けされたインバウンドフレームは、仮想スイッチによってタグが削除されてから、vnet デバイスに送信されます。このため、PVID を vnet に暗黙に割り当てることは、仮想スイッチの対応する仮想ネットワークポートが、PVID で指定された VLAN に対してタグなしとしてマークされることを意味します。vnet デバイスに設定できる PVID は 1 つだけです。

対応する仮想ネットワークインタフェースは、VLAN ID なしで ifconfig(1M) コマンドを使用して、そのデバイスインスタンスだけを使用して構成した場合、仮想ネットワークの PVID によって指定された VLAN に暗黙に割り当てられます。

たとえば、次のコマンドを使用して vnet インスタンス 0 を plumb する場合に、この vnetpvid= 引数が 10 として指定されているときは、vnet0 インタフェースが VLAN 10 に属するように暗黙に割り当てられます。


# ifconfig vnet0 plumb

VLAN ID (VID)

VID は、仮想ネットワークデバイスまたは仮想スイッチをメンバーにする必要のある VLAN を、タグ付きモードで示します。仮想ネットワークデバイスは、その VID で指定されている VLAN でタグ付きフレームを送受信します。仮想スイッチは、仮想ネットワークデバイスと外部ネットワークの間で、指定の VID でタグ付けされたフレームを通過させます。

ProcedureVLAN を仮想スイッチおよび仮想ネットワークデバイスに割り当てる

  1. たとえば、仮想スイッチ (vsw) を 2 つの VLAN に割り当てます。VLAN 21 をタグなし、VLAN 20 をタグ付きとして構成します。たとえば、仮想ネットワーク (vnet) を 3 つの VLAN に割り当てます。VLAN 20 をタグなし、VLAN 21 および VLAN 22 をタグ付きとして構成します。


    # ldm add-vsw net-dev=e1000g0 pvid=21 vid=20 primary-vsw0 primary
    # ldm add-vnet pvid=20 vid=21,22 vnet01 primary-vsw0 ldom1
    
  2. VLAN インタフェースを plumb します。

    この例では、ドメイン内のこれらのデバイスのインスタンス番号は 0 で、VLAN はこれらのサブネットに対応づけられていることを前提としています。

    VLAN 

    サブネット 

    20 

    192.168.1.0 (ネットマスク: 255.255.255.0) 

    21 

    192.168.2.0 (ネットマスク: 255.255.255.0) 

    22 

    192.168.3.0 (ネットマスク: 255.255.255.0) 

    1. サービス (primary) ドメインで VLAN インタフェースを plumb します。


      primary# ifconfig vsw0 plumb
      primary# ifconfig vsw0 192.168.2.100 netmask 0xffffff00 broadcast + up
      primary# ifconfig vsw20000 plumb
      primary# ifconfig vsw20000 192.168.1.100 netmask 0xffffff00 broadcast + up
      
    2. ゲスト (ldom1) ドメインで VLAN インタフェースを plumb します。


      ldom1# ifconfig vnet0 plumb
      ldom1# ifconfig vnet0 192.168.1.101 netmask 0xffffff00 broadcast + up
      ldom1# ifconfig vnet21000 plumb
      ldom1# ifconfig vnet21000 192.168.2.101 netmask 0xffffff00 broadcast + up
      ldom1# ifconfig vnet22000 plumb
      ldom1# ifconfig vnet22000 192.168.3.101 netmask 0xffffff00 broadcast + up
      

      Solaris OS で VLAN インタフェースを構成する方法の詳細は、『Solaris のシステム管理 (IP サービス)』「仮想ローカルエリアネットワークの管理」を参照してください。

NIU ハイブリッド I/O の使用

仮想 I/O フレームワークは、機能およびパフォーマンスを向上させるために、「ハイブリッド」I/O モデルを実装しています。ハイブリッド I/O モデルでは、ダイレクト I/O および仮想化 I/O を組み合わせることで、仮想マシンへの柔軟な I/O リソース配備が可能になっています。これは、仮想マシンに対してダイレクト I/O の機能が十分に提供されない場合、または仮想マシンが持続的にあるいは一貫してダイレクト I/O を利用できない場合に特に便利です。この状況は、リソースの可用性または仮想マシンの移行が原因で発生する可能性があります。ハイブリッド I/O アーキテクチャーは、Sun UltraSPARC T2 ベースのプラットフォームでのチップに統合されたネットワーク I/O インタフェースであるネットワークインタフェースユニット (NIU) に適しています。これにより、ダイレクトメモリーアクセス (DMA) リソースを仮想ネットワークデバイスに動的に割り当てることができ、ドメイン内のアプリケーションのパフォーマンスが安定します。

NIU ハイブリッド I/O は、Sun UltraSPARC T2 ベースのプラットフォームで使用できます。この機能は、仮想ネットワーク (vnet) デバイスに提供されるオプションのハイブリッドモードによって有効になります。このモードでは、DMA ハードウェアリソースが、パフォーマンスを向上させるために、ゲストドメインの vnet デバイスに貸し出されます。ハイブリッドモードでは、ゲストドメインの vnet デバイスは、この DMA ハードウェアリソースを使用して、外部ネットワークとゲストドメインの間で、ユニキャストトラフィックを直接送受信することができます。同じシステム内の他のゲストドメインへのブロードキャストトラフィックおよびユニキャストトラフィックは、仮想 I/O 通信機構を使用して引き続き送信されます。

図 7–6 ハイブリッド仮想ネットワーク接続

この図は、文章で説明しているハイブリッド仮想ネットワーク接続を示しています。

ハイブリッドモードは、NIU ネットワークデバイスを使用するように構成された仮想スイッチ (vsw) に関連付けられた vnet デバイスだけに適用されます。共有可能な DMA ハードウェアリソースには制限があるため、DMA ハードウェアリソースの割り当てを受けられるのは、一度に、1 つの vsw あたり最大 3 つの vnet デバイスのみです。4 つ以上の vnet デバイスでハイブリッドモードを有効にすると、割り当ては先着順に行われます。1 つのシステムに 2 つの NIU ネットワークデバイスがあるため、DMA ハードウェアリソースが割り当てられている 2 つの異なる仮想スイッチで、合計 6 つの vnet デバイスが存在できます。

この機能を使用する場合の注意事項は、次のとおりです。

ProcedureNIU ネットワークデバイスで仮想スイッチを構成する

  1. たとえば、NIU ネットワークデバイスを使用して仮想スイッチを構成するには、次の手順を実行します。

    1. NIU ネットワークデバイスを調べます。


      # grep nxge /etc/path_to_inst
      "/niu@80/network@0" 0 "nxge"
      "/niu@80/network@1" 1 "nxge"
    2. 仮想スイッチを構成します。


      # ldm add-vsw net-dev=nxge0 primary-vsw0 primary
      

Procedureハイブリッドモードを有効にする

  1. たとえば、作成中に vnet デバイスのハイブリッドモードを有効にします。


    # ldm add-vnet mode=hybrid vnet01 primary-vsw0 ldom01
    

Procedureハイブリッドモードを無効にする

  1. たとえば、vnet デバイスのハイブリッドモードを無効にします。


    # ldm set-vnet mode= vnet01 ldom01
    

仮想スイッチでのリンク集積体の使用

Solaris 10 10/08 OS および Logical Domains 1.1 ソフトウェアのリリース以降は、仮想スイッチでリンク集積体を使用するように構成できます。リンク集積体は、物理ネットワークに接続するための仮想スイッチのネットワークデバイスとして使用します。この構成を使用すると、仮想スイッチで IEEE 802.3ad Link Aggregation Standard によって提供される機能を利用できます。この機能には、帯域幅の増加、負荷分散、フェイルオーバーなどが含まれます。リンク集積体を構成する方法の詳細は、『Solaris のシステム管理 (IP サービス)』を参照してください。

リンク集積体を作成したら、そのリンク集積体を仮想スイッチに割り当てることができます。この割り当て方法は、仮想スイッチへの物理ネットワークデバイスの割り当てに似ています。ldm add-vswitch または ldm set-vswitch コマンドを使用して net-dev プロパティーを設定します。

リンク集積体を仮想スイッチに割り当てると、物理ネットワークに対して送受信されるトラフィックは集積体を通過してます。必要な負荷分散またはフェイルオーバーは、ベースとなる集積体のフレームワークによって透過的に処理されます。リンク集積体は、ゲストドメイン上の仮想ネットワーク (vnet) デバイスに対して、および集積体を使用する仮想スイッチにバインドされた仮想ネットワークデバイスに対して、完全に透過的です。


注 –

仮想ネットワークデバイス (vnet および vsw) をリンク集積体にグループ化することはできません。


サービスドメインでリンク集積体を使うように構成された仮想スイッチを、plumb して使用できます。「仮想スイッチを主インタフェースとして構成する」 を参照してください。

次の図に、物理インタフェース e1000g0 および e1000g1 上で集積体 aggr1 を使用するように構成された仮想スイッチを示します。

図 7–7 リンク集積体を使用する仮想スイッチの構成

この図は、文章で説明しているようにリンク集積体を使用するように仮想スイッチを設定する方法を示します。

ジャンボフレームの構成

Logical Domains の仮想スイッチ (vsw) および仮想ネットワーク (vnet) デバイスで、1500 バイトを超えるペイロードサイズの Ethernet フレームをサポートできるようになりました。この変更によって、これらのドライバのネットワークスループットが向上します。

Procedureジャンボフレームを使用するように仮想ネットワークおよび仮想スイッチデバイスを構成する

ジャンボフレームを有効にするには、仮想スイッチデバイスの最大転送単位 (MTU) を指定します。このような場合、仮想スイッチデバイスとその仮想スイッチデバイスにバインドされているすべての仮想ネットワークデバイスで、指定した MTU 値が使用されます。

特定の状況では、仮想ネットワークデバイス上で MTU 値を直接指定できます。これは、仮想ネットワークデバイスで必要な MTU 値が仮想スイッチによってサポートされる MTU 値よりも小さい場合に行うことがあります。


注 –

Solaris 10 5/09 OS では、物理デバイスの MTU は仮想スイッチの MTU と一致するように構成する必要があります。特定のドライバの構成については、Solaris リファレンスマニュアルの 7D 節にある、そのドライバに対応するマニュアルページを参照してください。たとえば、e1000g ドライバの情報については、e1000g(7D) マニュアルページを参照してください。

OpenSolarisTM OS では、vsw ドライバは物理デバイスの MTU を自動的に構成します。したがって、追加構成は必要はありません。


  1. 制御ドメインでスーパーユーザーになります。

  2. 仮想ネットワークで使用する MTU の値を決定します。

    1500 ~ 16000 バイトの MTU 値を指定できます。指定する MTU は、仮想スイッチに割り当てられた物理ネットワークデバイスの MTU と一致する必要があります。

  3. 仮想スイッチデバイスまたは仮想ネットワークデバイスの MTU 値を指定します。

    次のいずれかを実行します。

    • MTU を mtu プロパティーの値として指定することで、サービスドメインの新しい仮想スイッチデバイスでジャンボフレームを有効にします。


      # ldm add-vsw mtu=value vswitch-name ldom
      

      このコマンドは、仮想スイッチの構成に加えて、この仮想スイッチにバインドされる各仮想ネットワークデバイスの MTU 値を更新します。

    • MTU を mtu プロパティーの値として指定することで、サービスドメインの既存の仮想スイッチデバイスでジャンボフレームを有効にします。


      # ldm set-vsw mtu=value vswitch-name
      

      このコマンドは、仮想スイッチの構成に加えて、この仮想スイッチにバインドされる各仮想ネットワークデバイスの MTU 値を更新します。

    まれに、ldm add-vnet または ldm set-vnet コマンドを使用して、仮想スイッチの MTU 値と異なる MTU 値を仮想ネットワークデバイスに指定する必要がある場合があります。たとえば、VLAN を仮想ネットワークデバイス上で構成し、VLAN の MTU の最大値が仮想スイッチの MTU 値よりも小さい場合、仮想ネットワークデバイスの MTU 値を変更する場合があります。デフォルトの MTU 値のみが使用されているドメインでは、ジャンボフレームをサポートしている vnet ドライバは必要ない場合があります。ただし、ジャンボフレームを使用する仮想スイッチにバインドされた仮想ネットワークデバイスがドメインに存在する場合、vnet ドライバがジャンボフレームをサポートしていることを確認してください。

    ldm set-vnet コマンドを使用して仮想ネットワークデバイスで mtu 値を指定する場合、あとで仮想スイッチデバイスの MTU 値が更新されても、仮想ネットワークデバイスには更新値は伝播されません。仮想ネットワークデバイスを再度有効にして仮想スイッチデバイスから MTU 値を取得するには、次のコマンドを実行します。


    # ldm set-vnet mtu= vnet-name ldom
    

    仮想ネットワークデバイスでジャンボフレームを有効にすると、その仮想ネットワークデバイスに割り当てられているハイブリッド I/O リソースでもジャンボフレームが自動的に有効になります。

    制御ドメインでは、Logical Domains Manager が、ldm set-vsw および ldm set-vnet コマンドによって設定された MTU 値を遅延再構成処理として更新します。制御ドメイン以外のドメインの MTU を更新するには、ドメインを停止してから ldm set-vsw または ldm set-vnet コマンドを実行して MTU 値を変更する必要があります。


    注 –

    OpenSolaris 2009.06 の dladm set-linkprop コマンドは、Logical Domains 仮想ネットワークデバイスの MTU 値の変更には使用できません。



例 7–1 仮想スイッチおよび仮想ネットワークデバイスでのジャンボフレームの構成


ジャンボフレームに対応していない旧バージョンの vnet および vsw ドライバとの互換性

ジャンボフレームをサポートしているドライバとジャンボフレームをサポートしていないドライバを、同じシステム上で相互運用できます。この相互運用は、仮想スイッチを作成するときにジャンボフレームのサポートが有効になっていない場合にかぎり可能です。


注 –

仮想スイッチに関連付けられたゲストドメインまたはサービスドメインがジャンボフレームをサポートしている Logical Domains ドライバを使用していない場合、mtu プロパティーを設定しないでください。


ジャンボフレームを有効にするには、仮想スイッチの mtu プロパティーをデフォルト値の 1500 から変更します。この場合、旧バージョンのドライバは mtu 設定を無視し、デフォルト値を引き続き使用します。ldm list の出力には、デフォルト値ではなく、指定した MTU 値が示されます。デフォルトの MTU よりも大きいフレームはそれらのデバイスには送られず、新しいドライバによって破棄されます。この場合、旧ドライバを使用し続けているゲストがあると、一貫性のないネットワーク動作につながる場合があります。これは、クライアントゲストドメインおよびサービスドメインの両方に当てはまります。

そのため、ジャンボフレームが有効な場合は、Logical Domains ネットワークのすべての仮想デバイスをアップグレードし、ジャンボフレームをサポートしている新しいドライバが使用されるようにしてください。また、ジャンボフレームを構成できるように、Logical Domains Manager 1.2 にアップグレードしてください。