Solaris のシステム管理 (IP サービス)

IPMP グループの構成

この節では、IPMP グループの構成手順を紹介します。また、インタフェースを待機インタフェースとして構成する方法についても説明します。

IPMP グループの計画

IPMP グループの一部としてシステム上のインタフェースを構成する前に、構成前の計画を立てる必要があります。

ProcedureIPMP グループの計画を立てる方法

次の手順には、計画作業と IPMP グループを構成する前に収集すべき情報が含まれています。これらの作業は、順番どおり行う必要はありません。

  1. システムのどのインタフェースを IPMP グループの一部とするかを決定します。

    IPMP グループは、通常、同じ IP リンクに接続されている 2 つ以上の物理インタフェースによって構成されています。ただし、必要に応じて、単一インタフェースの IPMP グループを構成することも可能です。IPMP グループの紹介については、「IPMP インタフェースの構成」を参照してください。たとえば、同じ Ethernet スイッチまたは同じ IP サブネットを同じ IPMP グループに構成できます。同じ IPMP グループにはいくつでもインタフェースを構成できます。

    論理インタフェースでは、ifconfig コマンドの group パラメータを使用することはできません。たとえば、group パラメータを hme0 と使用することはできますが、hme0:1 とは使用できません。

  2. グループ内の各インタフェースが一意の MAC アドレスを持っていることを確認します。

    手順については、「SPARC: インタフェースの MAC アドレスが一意であることを確認する方法」を参照してください。

  3. IPMP グループの名前を選択します。

    空文字以外であれば、どんなグループ名でも構いません。インタフェースが接続されている IP リンクを識別する名前を使用するのが良いでしょう。

  4. STREAMS モジュールの同じセットが転送され、IPMP グループ内のすべてのインタフェースで構成されていることを確認します。

    同じグループのすべてのインタフェースは、同じ順番で構成された STREAMS モジュールを持っていなければなりません。

    1. 予想される IPMP グループのすべてのインタフェースの STREAMS モジュールの順番を確認します。

      ifconfig interface modlist コマンドを使用して、STREAMS モジュールの一覧を印刷できます。たとえば、hme0 インタフェースの ifconfig 出力は次のようになります。


      # ifconfig hme0 modlist
      	0 arp
      	1 ip
      	2 hme

      この出力の ifconfig hme0 modlist で示されているように、インタフェースは、通常 IP モジュールの直下にネットワークドライバとして存在します。追加構成は必要ありません。

      ただし、NCA や IP フィルタのような一部のテクノロジーは、IP モジュールとネットワークドライバ間に自分自身を STREAMS モジュールとして挿入します。これにより、同じ IPMP グループのインタフェースの動作方法に問題が生じる場合があります。

      STREAMS モジュールの処理状態を把握可能な場合には、グループ内のすべてのインタフェースに同じモジュールを転送している場合でも、フェイルオーバーで予想外の動作が実行される可能性はあります。ただし、IPMP グループのすべてのインタフェースに同じ順番で転送している場合は、処理状態を把握できない STREAMS モジュールを使用できます。

    2. インタフェースのモジュールを IPMP グループでの標準的な順番で転送します。


      ifconfig interface modinsert module-name
      

      ifconfig hme0 modinsert ip
  5. IPMP グループのすべてのインタフェースで同じ IP アドレス指定書式を使用します。

    1 つのインタフェースが IPv4 向けに構成されている場合は、そのグループのすべてのインタフェースを IPv4 向けに構成する必要があります。たとえば、複数の NIC のインタフェースで構成される IPMP グループがあるとします。1 つの NIC のインタフェースに IPv6 アドレス指定を追加すると、IPMP グループ内のすべてのインタフェースを IPv6 によってサポートする構成にする必要があります。

  6. IPMP グループ内のすべてのインタフェースが同じ IP リンクに接続されていることをチェックします。

  7. IPMP グループに、別のネットワークメディアタイプのインタフェースが含まれていないことを確認します。

    グループ化するインタフェースは、/usr/include/net/if_types.h で定義されている同じインタフェースタイプになるべきです。たとえば、1 つの IPMP グループに Ethernet インタフェースとトークンリングインタフェースを組み合わせることはできません。別の例としては、同じ IPMP グループに、トークンバスインタフェースと非同期転送モード (ATM) インタフェースを組み合わせることはできません。

  8. ATM インタフェースを持つ IPMP の場合は、LAN エミュレーションモードで ATM インタフェースを構成します。

    IPMP は、従来型の IP を ATM で使用するインタフェースではサポートされていません。

IPMP グループの構成

この節には、2 つ以上の物理インタフェースを持つ一般的な IPMP グループの構成作業を記載します。

Procedure複数のインタフェースを持つ IPMP グループを構成する方法

次の IPMP グループの構成手順は、VLAN を IPMP グループに構成する際にも適用されます。

始める前に

IPv4 アドレス、および該当する場合は、予想される IPMP グループ内のすべてのインタフェースの IPv6 アドレスを構成しておく必要があります。


注意 – 注意 –

各サブネットまたは L2 ブロードキャストドメインに対して、IPMP グループを 1 つだけ構成する必要があります。詳細については、「IPMP の基本要件」を参照してください。


  1. 構成するインタフェースのシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 各物理インタフェースを IPMP グループを配置します。


    # ifconfig interface group group-name
    

    たとえば、hme0hme1 をグループ testgroup1 の下に配置するには、次のコマンドを入力します。


    # ifconfig hme0 group testgroup1
    # ifconfig hme1 group testgroup1
    

    グループ名には空白文字を使用しないでください。ifconfig ステータスディスプレイは、スペースを表示しません。したがって、違いは一方の名前がスペースを含んでいるだけという 2 つの類似するグループ名は作成しないでください。グループ名の 1 つにスペースが含まれる場合、これらのグループ名はステータスディスプレイでは同じに見えます。

    デュアルスタック環境では、特定のグループにインタフェースの IPv4 インスタンスを配置すると、IPv6 インスタンスが自動的に同じグループに配置されます。

  3. (任意) 1 つ以上の物理インタフェース上で IPv4 検査用 IP アドレスを構成します。

    検査用 IP アドレスを構成する必要があるのは、特定のインタフェースで検査信号ベースの 障害検出を使用する場合だけです。検査用 IP アドレスは、ifconfig コマンドに指定した物理インタフェースの論理インタフェースとして構成されます。

    グループ内の 1 つのインタフェースを待機インタフェースにする場合は、この時点ではそのインタフェースの検査用 IP アドレスを設定しないでください。待機インタフェースの検査用 IP アドレスは、「IPMP グループの待機インタフェースを構成する方法」の作業の一環として設定します。

    検査用 IP アドレスを設定するには、次の構文の ifconfig コマンドを使用します。


    # ifconfig interface addif ip-address parameters -failover deprecated up
    

    たとえば、一次ネットワークインタフェース hme0 には次の検査用 IP アドレスを作成します。


    # ifconfig hme0 addif 192.168.85.21 netmask + broadcast + -failover deprecated up
    

    このコマンドは、一次ネットワークインタフェース hme0 に対して次のパラメータを設定します。

    • アドレスを 192.168.85.21 に設定する。

    • ネットマスクおよびブロードキャストアドレスをデフォルト値に設定する。

    • -failoverdeprecated を指定


      注 –

      この検査用 IP アドレスをアプリケーションから使用されないようにするため IPv4 検査用アドレスを deprecated と指定する必要があります。


  4. 特定のインタフェースの IPv4 構成をチェックします。

    ifconfig interface を入力することによって、インタフェースの現在のステータスを常に参照できます。インタフェースのステータス参照の詳細については、特定のインタフェースに関する情報を入手する方法を参照してください。

    検査用 IP アドレスに割り当てられている論理インタフェースを指定することで、物理インタフェースの検査用 IP アドレス構成に関する情報を取得できます。


    # ifconfig hme0:1
    	hme0:1: flags=9000843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER>
        mtu 1500 index 2 
        inet 192.168.85.21 netmask ffffff00 broadcast 192.168.85.255
  5. (任意) 適用できる場合、IPv6 検査用アドレスを構成します。


    # ifconfig interface inet6 -failover

    IPv6 アドレスを持つ物理インタフェースは、インタフェースの IPv4 アドレスと同じ IPMP グループに配置されます。この状況は、IPv4 アドレスを持つ物理インタフェースを IPMP グループに構成する場合に発生します。まず IPv6 アドレスを持つ物理インタフェースを IPMP グループに配置する場合は、IPv4 アドレスを持つ物理インタフェースも暗示的に同じ IPMP グループに配置されます。

    たとえば、IPv6 検査用 IP アドレスを持つ hme0 を構成するには、次のように入力します。


    # ifconfig hme0 inet6 -failover
    

    検査用 IP アドレスをアプリケーションから使用されないようにするために IPv6 検査用 IP アドレスを deprecated と指定する必要はありません。

  6. IPv6 構成を確認します。


    # ifconfig hme0 inet6
    	hme0: flags=a000841<UP,RUNNING,MULTICAST,IPv6,NOFAILOVER> mtu 1500 index 2
            	inet6 fe80::a00:20ff:feb9:17fa/10 
            	groupname test

    IPv6 検査用 IP アドレスは、インタフェースのリンクローカルアドレスです。

  7. (任意) リブートしても IPMP グループ構成を保持させます。

    • IPv4 の場合は、次の行を /etc/hostname.interface ファイルに追加します。


      interface-address <parameters> group group-name up \
      	addif logical-interface -failover deprecated <parameters> up

      この例では、検査用 IPv4 アドレスは、次回のリブートで有効になります。構成をその場で有効にするには、手順 1、2、および任意で 3 を実行する必要があります。

    • IPv6 の場合は、次の行を /etc/hostname6.interface ファイルに追加します。


      -failover group group-name up

      この検査用 IPv6 アドレスは、次回のリブートで有効になります。構成をその場で有効にするには、手順 1、2、および任意で 5 を実行する必要があります。

  8. (任意) 手順 1 - 6 を繰り返して、IPMP グループにさらにインタフェースを追加します。

    実行中のシステムの既存のグループに新しいインタフェースを追加できます。ただし、リブート後は変更の内容は失われます。


例 31–1 2 つのインタフェースを持つ IPMP グループの構成

次の操作を実行したいとします。

次のコマンドを入力します。


# ifconfig hme0 addif 192.168.85.21 netmask + broadcast + -failover deprecated up

この検査用 IP アドレスをアプリケーションから使用されないようにするため IPv4 検査用アドレスを deprecated と指定する必要があります。「複数のインタフェースを持つ IPMP グループを構成する方法」を参照してください。

アドレスのフェイルオーバー属性を有効にするには、ダッシュなしで failover オプションを使用します。

IPMP グループのすべての検査用 IP アドレスには、同じネットワークアドレスを使用してください。すべての検査用 IP アドレスは 1 つの IP サブネットに属していなければなりません。



例 31–2 リブート後の IPv4 IPMP グループ構成の保持

次の構成で testgroup1 という名の IPMP グループを作成したいとします。

この場合、/etc/hostname.hme0 ファイルに次の行を追加します。


192.168.85.19 netmask + broadcast + group testgroup1 up \
	addif 192.168.85.21 deprecated -failover netmask + broadcast + up

同様に、2 番目のインタフェース hme1 を同じグループ (testgroup1) に入れ、検査用 IP アドレスを指定するには、次の行を追加します。


192.168.85.20 netmask + broadcast + group testgroup1 up \
	addif 192.168.85.22 deprecated -failover netmask + broadcast + up


例 31–3 リブート後の IPv6 IPMP グループ構成の保持

IPv6 アドレスを持つインタフェース hme0 のテストグループを作成するには、次の行を /etc/hostname6.hme0 ファイルに追加します。


-failover group testgroup1 up

同様に、2 番目のインタフェース hme1 をグループ (testgroup1) に入れ、検査用 IP アドレスを指定するには、次の行を /etc/hostname6.hme1 ファイルに追加します。


-failover group testgroup1 up

注意事項

IPMP グループの構成時、in.mpathd は、システムコンソールまたは syslog ファイルに多数のメッセージを出力します。これらのメッセージは、本質的に参考情報で、IPMP 構成が正しく機能していることを示します。

参照

IPMP グループをアクティブ-待機構成にする場合は、「IPMP グループの待機インタフェースを構成する方法」を参照してください。

ターゲットシステムの構成

検査信号ベースの障害検出では、「検査信号ベースの障害検出」で説明されているようにターゲットシステムを使用します。一部の IPMP グループでは、in.mpathd が使用するデフォルトのターゲットで十分です。ただし、一部の IPMP グループでは、検査信号ベースの障害検出用に特定のターゲットを設定したほうが良いこともあります。ルートテーブルのホストルートを検査信号のターゲットとして設定して、検査信号ベースの障害検出を実行します。経路制御テーブルに構成されているすべてのホストルートは、デフォルトルーターの前に一覧化されます。したがって、IPMP はターゲットを選択するために、明示的に定義されたホストルートを使用します。直接ターゲットを指定するには、 ホストルートを手動で設定するか、起動スクリプトになることができるシェルスクリプトを作成します。

ネットワーク上のどのホストが適切なターゲットになるのかの評価では、 次の基準を検討します。

Procedure検査信号ベースの障害検出のターゲットシステムを手動で指定する方法

  1. 検査信号ベースの障害検出を構成しているシステムにユーザーアカウントでログインします。

  2. 検査信号ベースの障害検出のターゲットとして使用される特定のホストにルートを追加します。


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

    destination-IPgateway-IP の値を、ターゲットとして使用されるホストの IPv4 アドレスと置き換えます。たとえば、IPMP グループ testgroup1 のインタフェースと同じサブネット上のターゲットシステム 192.168.85.137 を指定するには、次のように入力します。


    $ route add -host 192.168.85.137 192.168.85.137 -static 
    
  3. ターゲットシステムとして使用されるネットワーク上の追加ホストにルートを追加します。

Procedureシェルスクリプトでターゲットシステムを指定する方法

  1. IPMP グループを構成したシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 提案したターゲットへの静的なルートを設定するシェルスクリプトを作成します。

    たとえば、次のような内容の ipmp.targets というシェルスクリプトを作成します。


    TARGETS="192.168.85.117 192.168.85.127 192.168.85.137"
    
    case "$1" in
            'start')
                /usr/bin/echo "Adding static routes for use as IPMP targets"
    		for target in $TARGETS; do
    	  /usr/sbin/route add -host $target $target
    		done
                      ;;
            'stop')
                  /usr/bin/echo "Removing static routes for use as IPMP targets"
    		 for target in $TARGETS; do
    		/usr/sbin/route delete -host $target $target
    		 done
                      ;;
      esac  
  3. シェルスクリプトを起動スクリプトディレクトリにコピーします。


     # cp ipmp.targets /etc/init.d  
    
  4. 新しい起動スクリプトのアクセス権を変更します。


    # chmod 744 /etc/init.d/ipmp.targets
    
  5. 新しい起動スクリプトの所有権を変更します。


    # chown root:sys /etc/init.d/ipmp.targets
    
  6. /etc/init.d ディレクトリ内に起動スクリプトのリンクを作成します。


    # ln /etc/init.d/ipmp.targets /etc/rc2.d/S70ipmp.targets
    

    ファイル名 S70ipmp.targets の接頭辞 S70 によって、ほかの起動スクリプトを尊重しながら新しいスクリプトが命令されます。

待機インタフェースの構成

IPMP グループをアクティブ-待機構成にする場合は、この手順を行ってください。この種類の構成についての詳細は、「IPMP インタフェースの構成」を参照してください。

ProcedureIPMP グループの待機インタフェースを構成する方法

始める前に

IPMP グループの構成と検査用 IP アドレスの割り当てについては、「複数のインタフェースを持つ IPMP グループを構成する方法」を参照してください。

  1. 構成する待機インタフェースのシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. インタフェースを待機用として構成し、検査用 IP アドレスを割り当てます。


    # ifconfig interface plumb \
    ip-address other-parameters deprecated -failover standby up
    

    待機インタフェースは、1 つの IP アドレス (検査用 IP アドレス) しか持つことができません。standby up オプションを設定する前に、-failover オプションを設定してください。<other-parameters> の場合は、ifconfig(1m) のマニュアルページに説明されているように、構成で必要なパラメータを使用します。

    • たとえば、IPv4 検査用 IP アドレスを作成するには、次のコマンドを入力します。


      # ifconfig hme1 plumb 192.168.85.22 netmask + broadcast + deprecated -failover standby up
      
      hme1

      待機インタフェースとして構成する物理インタフェースとして hme1 を定義します。

      192.168.85.22

      この検査用 IP アドレスを待機インタフェースに割り当てます。

      deprecated

      その検査用 IP アドレスが出力パケットには使用されないことを示します。

      -failover

      インタフェースで障害が発生しても、検査用 IP アドレスのフェイルオーバーは行われないことを示します。

      standby

      インタフェースを待機インタフェースに指定します。

    • たとえば、IPv6 検査用 IP アドレスを作成するには、次のコマンドを入力します。


      # ifconfig hme1 plumb -failover standby up
      
  3. 待機インタフェースの構成結果をチェックします。


    # ifconfig hme1
    hme1: flags=69040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,
          STANDBY,INACTIVE mtu 1500 
             index 4 inet 192.168.85.22 netmask ffffff00 broadcast 19.16.85.255
             groupname test

    INACTIVE は、このインタフェースが送信パケットには使用されないことを示します。この待機インタフェースに障害経路の迂回が行われると、INACTIVE 状態は取り消されます。


    注 –

    ifconfig interface コマンドを入力することによって、インタフェースの現在のステータスを常に参照できます。インタフェースのステータス参照については、「特定のインタフェースに関する情報を入手する方法」を参照してください。


  4. (任意) リブート後も IPv4 待機インタフェースを保持します。

    待機インタフェースを同じ IPMP グループに割り当て、待機インタフェースの検査用 IP アドレスを構成します。

    たとえば、hme1 を待機インタフェースとして構成するには、/etc/hostname.hme1 ファイルに次の行を追加します。


    192.168.85.22 netmask + broadcast + deprecated group test -failover standby up 
  5. (任意) リブート後も IPv6 待機インタフェースを保持します。

    待機インタフェースを同じ IPMP グループに割り当て、待機インタフェースの検査用 IP アドレスを構成します。

    たとえば、hme1 を待機インタフェースとして構成するには、/etc/hostname6.hme1 ファイルに次の行を追加します。


    -failover group test standby up

例 31–4 IPMP グループの待機インタフェースの構成

次の構成に基づいて検査用 IP アドレスを作成するとします。

その場合、次のように入力します。


# ifconfig hme2 plumb 192.168.85.22 netmask + broadcast + \
deprecated -failover standby up

インタフェースは、アドレスが NOFAILOVER として設定されたあとにだけ、待機インタフェースとして設定されます。

次のように入力して、インタフェースの待機ステータスを解除します。


# ifconfig interface -standby

1 つの物理インタフェースを持つ IPMP グループの構成

IPMP グループにインタフェースが 1 つしかない場合は、フェイルオーバーを実行できません。ただし、インタフェースを IPMP グループに割り当てることで、インタフェースの障害検出を有効にすることはできます。単一インタフェースの IPMP グループの障害検出を確立するために、専用テストIP アドレスを構成する必要はありません。単一の IP アドレスを、データの送信と障害検出の両方に使用できます。

Procedure単一インタフェースの IPMP グループを構成する方法

  1. 予想される単一インタフェース IPMP グループのあるシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. IPv4 の場合は、単一インタフェースの IPMP グループを作成します。

    次の構文で単一インタフェースを IPMP グループに割り当てます。


    # ifconfig interface group group-name
    

    次の例では、インタフェース hme0 が IPMP グループ v4test に割り当てられます。


    # ifconfig hme0 group v4test
    

    この手順の実行後、IPMP によりリンクベースの障害検出がインタフェース上で有効になります。

    また、ifconfig コマンドの -failover サブコマンドを使用して、検査信号ベースの障害検出を有効にすることもできます。次の例は、検査信号ベースの障害検出を hme0 上で有効にします。その際、 hme0 に現在割り当てられている IP アドレスを使用します。


    # ifconfig hme0 -failover
    

    複数インタフェースのグループとは異なり、同じ IP アドレスをデータアドレスと検査用 IP アドレスの両方に使用できます。アプリケーションで検査用 IP アドレスをデータアドレスとして使用できるようにするには、単一インタフェースの IPMP グループで検査用 IP アドレスに deprecated のマークを付けないでください。

  3. IPv6 の場合は、単一インタフェースの IPMP グループを作成します。

    次の構文で単一インタフェースを IPMP グループに割り当てます。


    # ifconfig interface inet6 group group-name
    

    たとえば、単一インタフェース hme0 を IPMP グループ v6test に追加するには、次のように入力します。


    # ifconfig hme0 inet6 group v6test
    

    この手順の実行後、IPMP によりリンクベースの障害検出がインタフェース上で有効になります。

    また、ifconfig コマンドの -failover サブコマンドを使用して、検査信号ベースの障害検出を有効にすることもできます。次の例は、検査信号ベースの障害検出を hme0 上で有効にします。その際、 hme0 に現在割り当てられている IP アドレスを使用します。


    # ifconfig hme0 inet6 -failover
    

    複数インタフェースのグループとは異なり、同じ IP アドレスをデータアドレスと検査用 IP アドレスの両方に使用できます。アプリケーションで検査用 IP アドレスをデータアドレスとして使用できるようにするには、単一インタフェースの IPMP グループで検査用 IP アドレスに deprecated のマークを付けないでください。

    単一物理インタフェース構成では、検査信号が送信されるターゲットシステムで障害が発生しているのか、インタフェースで障害が発生しているのかを確認できません。検査信号の受信システムは、単一の物理インタフェースを介して検査されます。唯一のデフォルトルーターがサブネット上にある場合、単一物理インタフェースがグループ内にあるときは、IPMP をオフにします。IPv4 と IPv6 のデフォルトルーターが別個に存在する場合 (または複数のデフォルトルーターが存在する場合) は、検査信号のターゲットシステムは 2 つ以上あります。よって、IPMP を安全にオンに設定できます。