Go to main content
Oracle® Solaris 11.3 での TCP/IP ネットワーク、IPMP、および IP トンネルの管理

印刷ビューの終了

更新: 2016 年 11 月
 
 

Oracle Solaris の IPMP サポート

    IPMP は次のサポートを提供します。

  • IPMP により、複数の IP インタフェースを、IPMP グループと呼ばれる単一のグループに構成できます。IPMP グループは、そのベースとなる複数の IP インタフェースを含め、全体で単一の IPMP インタフェースとして表されます。このインタフェースは、ネットワークスタックの IP 層のほかのインタフェースとまったく同様に扱われます。IP 管理タスク、ルーティングテーブル、アドレス解決プロトコル (ARP) テーブル、ファイアウォール規則、およびその他の IP 関連手順はすべて、IPMP インタフェースを参照することで IPMP グループを操作します。


    注 -  Oracle Solaris は IPMP での iSCSI デバイスの使用をサポートしていますが、iSCSI デバイスからブートするサーバーを IPMP グループの一部にすることはできません。
  • システムは、ベースとなるアクティブインタフェース間でデータアドレスの分配を処理します。IPMP グループを作成すると、データアドレスはアドレスプールとして IPMP インタフェースに属します。続いてカーネルが自動的かつランダムに、グループのデータアドレスとベースとなるアクティブインタフェースをバインドします。

  • IPMP グループに関する情報を取得するには、主に ipmpstat コマンドを使用します。このコマンドは、グループのベースとなる IP インタフェース、検査用アドレスとデータアドレス、使用される障害検出のタイプ、故障したインタフェースなど、IPMP 構成のあらゆる側面についての情報を提供します。ipmpstat の機能、使用できるオプション、および各オプションが生成する出力についてはすべて、IPMP 情報のモニタリングで説明しています。

  • IPMP インタフェースにカスタマイズされた名前を割り当てて、IPMP グループをより簡単に識別できます。IPMP グループの構成を参照してください。

IPMP を使用する利点

インタフェースの故障や、インタフェースが保守のためにオフラインになっている場合など、さまざまな要因によりインタフェースが使用不可能になる可能性があります。IPMP を使用しないと、その使用不可能になったインタフェースに関連付けられたどの IP アドレスを使用しても、システムと通信できなくなります。さらに、それらの IP アドレスを使用する既存の接続が切断されます。

IPMP を使用して、複数の IP インタフェースを 1 つの IPMP グループに構成できます。このグループは、ネットワークトラフィックを送受信するデータアドレス付きの IP インタフェースのように機能します。グループ内のベースとなるインタフェースの 1 つで障害が発生すると、グループ内の残りのアクティブなベースとなるインタフェースの間でデータアドレスが再分配されます。したがって、インタフェースの 1 つが故障しても、グループはネットワークの接続性を維持します。IPMP では、グループで最低 1 つのインタフェースが使用可能であれば、ネットワーク接続を常に使用できます。

IPMP は、IPMP グループ内のインタフェースセット全体にアウトバウンドネットワークトラフィックを自動的に分散させることにより、全体的なネットワークパフォーマンスを向上させます。このプロセスは、アウトバウンド負荷分散と呼ばれます。システムはさらに、アプリケーションによって発信元 IP アドレスが指定されなかったパケットに対して発信元アドレス選択を実行することにより、インバウンド負荷分散も間接的に制御します。ただし、アプリケーションが発信元 IP アドレスを明示的に選択した場合は、システムはその発信元アドレスを変更しません。

このリリースでは、アウトバウンド負荷分散は、以前のリリースのようなネクストホップベースでなく、接続単位ベースで実行されます。この変更により、異なるアウトバウンドインタフェースを使用して、同じオフリンク先への異なる 2 つの接続を有効にすることで IPMP 機能が著しく改善されます。

リンクアグリゲーションは IPMP と同様の機能を実行して、ネットワークのパフォーマンスと可用性を向上させます。この 2 つのテクノロジの比較については、Oracle Solaris 11.3 でのネットワークデータリンクの管理 の 付録 A, リンクアグリゲーションと IPMP: 機能比較,を参照してください。

IPMP を使用するための規則

IPMP グループの構成はシステム構成によって決まります。

次の IPMP 構成規則に従ってください。

  1. 同じ LAN 上の複数の IP インタフェースは、1 つの IPMP グループに構成される必要があります。LAN は、同じリンク層ブロードキャストドメインに属するノードから成る VLAN や有線と無線の両方のローカルネットワークなど、さまざまなローカルネットワーク構成を広く指します。


    注 -  同じリンク層 (L2) ブロードキャストドメイン上の複数の IPMP グループはサポートされていません。通常、L2 ブロードキャストドメインは特定のサブネットにマップされます。したがって、サブネットごとに IPMP グループを 1 つだけ構成する必要があります。このルールには例外があり、たとえば Oracle によって提供される特定のエンジニアドシステムなどは適用外となります。詳細は、Oracle サポート担当者にお問い合わせください。
  2. IPMP グループのベースとなる IP インタフェースが異なる LAN にまたがってはいけません。

    たとえば、3 つのインタフェースを備えたシステムが 2 つの別個の LAN に接続されているとします。一方の LAN に 2 つの IP インタフェースが接続し、他方の LAN に単一の IP インタフェースが接続します。この場合、最初の規則により、1 つ目の LAN に接続する 2 つの IP インタフェースは 1 つの IPMP グループとして構成される必要があります。2 番目の規則のため、2 つ目の LAN に接続する単一の IP インタフェースがその IPMP グループのメンバーになることはできません。単一の IP インタフェースでは、IPMP 構成は必須ではありません。ただし、その単一のインタフェースの可用性をモニターするために、そのインタフェースを 1 つの IPMP グループに構成してもかまいません。単一インタフェースの IPMP 構成の詳細については、IPMP インタフェース構成のタイプを参照してください。

    別のケースとして、1 つ目の LAN へのリンクが 3 つの IP インタフェースから構成され、もう 1 つのリンクが 2 つのインタフェースから構成される場合を考えます。この設定は 2 つの IPMP グループの構成を必要とします (1 つ目の LAN に接続する 3 つのインタフェースから成るグループと、2 つ目の LAN に接続する 2 つのインタフェースから成るグループ)。

  3. 同じグループのすべてのインタフェースは、同じ順番で構成された STREAMS モジュールを持っていなければなりません。IPMP グループを計画する際には、まず、今後 IPMP グループに含められるすべてのインタフェース上の STREAMS モジュールの順番をチェックし、各インタフェースのモジュールを IPMP グループの標準の順番でプッシュします。STREAMS モジュールの一覧を出力するには、ifconfig interface modlist コマンドを使用します。たとえば、net0 インタフェースの ifconfig 出力は次のようになります。

    # ifconfig net0 modlist
    0 arp
    1 ip
    2 e1000g

    上の出力が示しているように、インタフェースは通常、IP モジュールのすぐ下のネットワークドライバとして存在します。これらのインタフェースでは、追加の構成は必要ありません。ただし、特定のテクノロジは、IP モジュールとネットワークドライバの間に STREAMS モジュールとしてプッシュされます。STREAMS モジュールがステートフルである場合、グループ内のすべてのインタフェースに同じモジュールをプッシュしている場合でも、フェイルオーバーで予期しない動作が発生する可能性があります。ただし、IPMP グループのすべてのインタフェースに同じ順番で転送している場合は、処理状態を把握できない STREAMS モジュールを使用できます。

    次の例は、各インタフェースのモジュールを IPMP グループの標準の順番でプッシュするときに使用するコマンドを示しています。

    # ifconfig net0 modinsert vpnmod@3

    IPMP グループを計画する際の詳細な段階については、IPMP グループの計画を立てる方法を参照してください。

IPMP のコンポーネント

    IPMP のソフトウェアコンポーネントは次のとおりです。

  • マルチパスデーモン in.mpathd - インタフェースの障害や修復を検出します。ベースとなるインタフェースで検査用アドレスが構成されている場合、このデーモンは、リンクベースの障害検出とプローブベースの障害検出の両方を実行します。このデーモンは、使用される障害検出手法のタイプに応じて、インタフェース上で適切なフラグを設定または解除し、そのインタフェースが故障しているかどうかや修復されたかどうかを示します。オプションとして、IPMP グループに属するように構成されていないインタフェースも含め、すべてのインタフェースの可用性をモニターするようにこのデーモンを構成することもできます。障害検出については、IPMP での障害検出を参照してください。

    in.mpathd デーモンは、IPMP グループ内のアクティブインタフェースの指定も制御します。このデーモンは、IPMP グループの作成時に最初に構成されたのと同じ数のアクティブインタフェースを維持しようとします。したがって、in.mpathd は、ベースとなるインタフェースを必要に応じてアクティブ化または非アクティブ化して、管理者が構成したポリシーとの一貫性を保ちます。in.mpathd デーモンがベースとなるインタフェースのアクティブ化を管理する方法の詳細については、IPMP の動作方法を参照してください。このデーモンの詳細については、in.mpathd(1M)のマニュアルページを参照してください。

  • IP カーネルモジュール - IPMP グループ内で使用可能な一連の IP データアドレスをグループ内で使用可能な一連のベースとなる IP インタフェースに分配することで、アウトバウンド負荷分散を管理します。さらにこのモジュールは、発信元アドレス選択を実行してインバウンド負荷分散を管理します。このモジュールのどちらの役割も、ネットワークトラフィックのパフォーマンスを改善します。

  • IPMP 構成ファイル (/etc/default/mpathd ) - デーモンの動作を定義します。

      次のパラメータを設定するには、このファイルをカスタマイズします。

    • プローブベースの障害検出の実行中にプローブされるターゲットインタフェース

    • 障害を検出するためにターゲットをプローブする時間

    • 障害のあるインタフェースが修復されたあと、そのインタフェースに付けられるステータス

    • モニターする IP インタフェースの範囲 (IPMP グループに属するように構成されていない、システム内の IP インタフェースも含めるかどうか)

    構成ファイルの変更方法の詳細については、IPMP デーモンの動作を構成する方法を参照してください。

  • ipmpstat コマンド - IPMP の全体としてのステータスに関するさまざまなタイプの情報を提供します。さらにこのツールは、各 IPMP グループのベースとなる IP インタフェースに関するその他の情報や、グループで構成されているデータアドレスや検査用アドレスも表示します。このコマンドの詳細は、IPMP 情報のモニタリングおよびipmpstat(1M)のマニュアルページを参照してください。

IPMP インタフェース構成のタイプ

IPMP 構成は、通常同じ LAN に接続された同じシステムの複数の物理インタフェースで構成されます。

    これらのインタフェースは、次のいずれかの構成の IPMP グループに属することができます。

  • アクティブ - アクティブ構成 - ベースとなるインタフェースのすべてがアクティブである IPMP グループ。「アクティブインタフェース」とは、IPMP グループによって現時点で使用可能な IP インタフェースのことです。


    注 -  デフォルトでは、あるベースとなるインタフェースを IPMP グループの一部になるように構成すると、そのインタフェースはアクティブになります。
  • アクティブ - スタンバイ構成 – 少なくとも 1 つのインタフェースがスタンバイインタフェースとして管理上構成されている IPMP グループ。スタンバイインタフェースはアイドル状態になっていますが、その構成方法に応じて、可用性を追跡するためにマルチパスデーモンによってモニターされます。インタフェースによってリンク障害通知がサポートされている場合は、リンクベースの障害検出が使用されます。インタフェースで検査用アドレスが構成されている場合は、プローブベースの障害検出も使用されます。いずれかのアクティブインタフェースが故障すると、スタンバイインタフェースが必要に応じて自動的に配備されます。1 つの IPMP グループには、スタンバイインタフェースを必要な数だけ構成できます。

単一のインタフェースを独自の IPMP グループとして構成することもできます。単一インタフェース IPMP グループは、複数のインタフェースを持つ IPMP グループと同じように動作します。ただし、この IPMP 構成は、ネットワークトラフィックの高可用性を提供しません。ベースとなるインタフェースが故障すると、システムはトラフィックを送受信する機能をすべて失います。単一インタフェースの IPMP グループを構成する目的は、障害検出を使用してインタフェースの可用性をモニターすることです。インタフェースで検査用アドレスを構成することにより、プローブベースの障害検出を使用してマルチパスデーモンでそのインタフェースを追跡できます。

単一インタフェースの IPMP グループ構成は通常、Oracle Solaris Cluster ソフトウェアなど、より幅広いフェイルオーバー機能を備えたほかのテクノロジとともに使用されます。システムは引き続き、ベースとなるインタフェースのステータスをモニターできますが、Oracle Solaris Cluster ソフトウェアは、障害発生時にネットワークの可用性を保証するための機能を提供します。Oracle Solaris Cluster ソフトウェアの詳細は、Oracle Solaris Cluster 4.3 Concepts Guideを参照してください。

ベースとなるインタフェースが削除されたグループなど、ベースとなるインタフェースがない IPMP グループも存在できます。この IPMP グループは破棄されませんが、トラフィックを送受信するために使用することはできなくなります。このグループのベースとなるインタフェースがオンラインになると、これらのインタフェースに IPMP インタフェースのデータアドレスが割り当てられ、システムがネットワークトラフィックのホスティングを再開します。

IPMP の動作方法

IPMP は、IPMP グループの作成時に構成されたアクティブインタフェースとスタンバイインタフェースの元の数を保持しようとすることによって、ネットワークの可用性を維持します。

グループ内の特定のベースとなる IP インタフェースの可用性を判定するための IPMP 障害検出は、リンクベースまたはプローブベース、あるいはその両方にすることができます。あるベースとなるインタフェースが故障したと IPMP が判定した場合、そのインタフェースは故障としてフラグが付けられ、使用できなくなります。次に、故障したインタフェースに関連付けられていたデータ IP アドレスが、グループ内で機能している別のインタフェースに再分配されます。さらに、使用可能な場合は、スタンバイインタフェースも配備され、アクティブインタフェースの元の数を維持します。

次の図に示すような、3 つのインタフェースを含むアクティブ - スタンバイ構成の IPMP グループ itops0 を考えます。

図 1  IPMP アクティブ-スタンバイ構成

image:itops0 のアクティブ - スタンバイ構成

    IPMP グループ itops0 は次のように構成されています。

  • このグループには、2 つのデータアドレス 192.168.10.10 192.168.10.15 が割り当てられています。

  • ベースとなる 2 つのインタフェースがアクティブインタフェースとして構成され、柔軟なリンク名 net0net1 が割り当てられています。

  • このグループにはスタンバイインタフェースが 1 つ含まれており、これにも柔軟なリンク名 net2 が割り当てられています。

  • プローブベースの障害検出が使用されるため、アクティブインタフェースとスタンバイインタフェースに次のようなテストアドレスが構成されます。

    • net0: 192.168.10.30

    • net1: 192.168.10.32

    • net2: 192.168.10.34


注 -  図 1図 2図 3、および図 4のアクティブ、オフライン、スタンバイ、および障害の発生した領域は、ベースとなるインタフェースのステータスのみを示しており、物理的な場所を示していません。この IPMP 実装内では、インタフェースまたはアドレスの物理的な移動や IP インタフェースの転送は一切発生しません。これらの領域の役割は、ベースとなるインタフェースのステータスが故障、修復のいずれかの結果としてどのように変化するかを示すことだけです。

さまざまなオプションとともに ipmpstat コマンドを使用して、既存の IPMP グループに関する特定の種類の情報を表示できます。その他の例については、IPMP 情報のモニタリングを参照してください。

次のコマンドは、図 1の IPMP 構成に関する情報を表示します。

# ipmpstat -g
GROUP     GROUPNAME     STATE     FDT        INTERFACES
itops0    itops0        ok        10.00s     net1 net0 (net2)

グループのベースとなるインタフェースに関する情報を表示するには、次のように入力します。

# ipmpstat -i
INTERFACE   ACTIVE     GROUP     FLAGS      LINK        PROBE     STATE
net0        yes        itops0    -------    up          ok        ok
net1        yes        itops0    --mb---    up          ok        ok
net2        no         itops0    is-----    up          ok        ok

IPMP は、アクティブインタフェースの元の数を維持できるようにベースとなるインタフェースを管理することで、ネットワークの可用性を維持します。したがって、net0 が故障すると、IPMP グループが引き続き 2 つのアクティブインタフェースを持てるように、net2 が配備されます。net2 のアクティブ化を次の図に示します。

図 2  IPMP でのインタフェースの故障

image:IPMP グループのアクティブインタフェースの障害を示す図


注 -  図 2のデータアドレスとアクティブインタフェースとの 1 対 1 のマッピングは、図を単純化するためのものにすぎません。IP カーネルモジュールは、データアドレスとインタフェースとの間の 1 対 1 の関係に必ずしも縛られることなく、データアドレスをランダムに割り当てることができます。

ipmpstat コマンドは、この図の情報を次のように表示します。

# ipmpstat -i
INTERFACE   ACTIVE     GROUP     FLAGS      LINK        PROBE     STATE
net0        no         itops0    -------    up          failed    failed
net1        yes        itops0    --mb---    up          ok        ok
net2        yes        itops0    -s-----    up          ok        ok

net0 が修復されると、アクティブインタフェースとしてのステータスに戻ります。一方、net2 は元のスタンバイステータスに戻されます。

別の故障シナリオを図 3に示します。このシナリオでは、スタンバイインタフェース net2 が故障します (1)。そのあと、アクティブインタフェースの 1 つである net1 が管理者によってオフラインに切り替えられます (2)。その結果、この IPMP グループには、機能しているインタフェース net0 が 1 つ残されます。

図 3  IPMP でのスタンバイインタフェースの故障

image:IPMP グループのスタンバイインタフェースの障害を示す図

ipmpstat コマンドは、この図の情報を次のように表示します。

# ipmpstat -i
INTERFACE   ACTIVE     GROUP     FLAGS       LINK        PROBE     STATE
net0        yes        itops0    -------     up          ok        ok
net1        no         itops0    --mb-d-     up          ok        offline
net2        no         itops0    is-----     up          failed    failed

この障害では、インタフェースが修復されたあとの回復の動作が異なります。この回復プロセスは、修復後の構成と比較した IPMP グループのアクティブインタフェースの元の数に依存します。次の図は、回復プロセスを表します。

図 4  IPMP の回復プロセス

image:IPMP 回復プロセスを示す図

図 4で、net2 が修復されると、これは通常、スタンバイインタフェースとして元のステータスに戻されます (1)。ところが、この IPMP グループは依然として、アクティブインタフェースの元の数である 2 個を反映していません。これは、net1 が引き続きオフラインのままになっているからです (2)。したがって、IPMP は代わりに net2 をアクティブインタフェースとして配備します (3)。

ipmpstat コマンドは、修復後の IPMP シナリオを次のように表示します。

# ipmpstat -i
INTERFACE   ACTIVE     GROUP     FLAGS       LINK        PROBE     STATE
net0        yes        itops0    -------     up          ok        ok
net1        no         itops0    --mb-d-     up          ok        offline
net2        yes        itops0    -s-----     up          ok        ok

FAILBACK=no モードも構成されたアクティブインタフェースが故障に関与している場合にも、同様の回復プロセスが発生します。その場合、故障したアクティブインタフェースが修復されても、自動的にはアクティブステータスに戻りません。図 2net0FAILBACK=no モードに構成されているとします。そのモードでは、修復された net0 は、最初はアクティブインタフェースであったとしても、スタンバイインタフェースになります。この IPMP グループのアクティブインタフェースの元の数である 2 個を維持するように、インタフェース net2 はアクティブのままになります。

ipmpstat コマンドは、回復情報を次のように表示します。

# ipmpstat -i
INTERFACE   ACTIVE     GROUP     FLAGS      LINK        PROBE     STATE
net0        no         itops0    i------    up          ok        ok
net1        yes        itops0    --mb---    up          ok        ok
net2        yes        itops0    -s-----    up          ok        ok

このタイプの構成の詳細については、FAILBACK=no モードを参照してください。