Dispatcher の構成

この章のステップを実行する前に、Dispatcher の計画を 参照してください。この章では、Load Balancer の Dispatcher コンポーネントのための基本構成を 作成する方法について説明します。

注:
前のバージョンでは、製品は Network Dispatcher として知られており、Dispatcher 制御コマンド名は ndcontrol でした。 Dispatcher 制御コマンド名は、現在 dscontrol です。

構成作業の概説

この表の構成ステップを始める前に、Dispatcher マシンとすべてのサーバー・マシンをネットワーク に接続し、有効な IP アドレスを与え、相互に ping できるようにしてください。

表 1. Dispatcher 機能の構成タスク
タスク 説明 関連情報
Dispatcher マシンをセットアップする

ロード・バランシング構成をセットアップします。

Dispatcher マシンのセットアップ
ロード・バランシング対象のマシンをセットアップする ループバック・デバイスに別名割り当てし、エクストラ経路をチェックし、エクストラ経路を削除します。 ロード・バランシングのためのサーバー・マシンのセットアップ

構成方法

Dispatcher を構成するための基本的な方法には、以下の 4 つがあります。

コマンド行

これは、Dispatcher を構成する最も直接的な方法です。 コマンド・パラメーター値は、英字で入力する必要があります。 唯一の例外は、ホスト名 (クラスター、サーバー、およびハイ・アベイラビリティー・コマンドで使用) およびファイル名 (ファイル・コマンドで使用) です。

コマンド行から Dispatcher を始動するには、次のようにしてください。

  1. コマンド・プロンプトから dsserver コマンドを実行します。 サービスを停止するには、dsserver stop のように入力します。
    注:
    Windows システムの場合は、「スタート」>「コントロール パネル」>「管理ツール」>「サービス」をクリックします。 「IBM® Dispatcher」を右マウス・ボタンでクリックし、「開始」を選択します。サービスを停止するには、同様のステップに従って、「停止」を選択します。
  2. 次に、構成のセットアップに必要な Dispatcher 制御コマンドを実行します。 本書の手順では、コマンド行の使用を想定しています。コマンドは dscontrol です。コマンドについて詳しくは、Dispatcher および CBR のコマンド解説 を参照してください。

パラメーターの固有文字を入力することで、dscontrol コマンド・パラメーターの最小化バージョンを使用できます。例えば、file save コマンドに関するヘルプを表示するには、dscontrol help file の代わりに dscontrol he f と入力することができます。

コマンド行インターフェースを始動するには、dscontrol を実行して、dscontrol コマンド・プロンプトを表示します。

コマンド行インターフェースを終了するには、exit または quit を実行します。

スクリプト

構成スクリプト・ファイルに Dispatcher を構成するコマンドを入力して、それらを一緒に実行できます。 サンプルの Load Balancer 構成ファイルを参照してください。

注:
スクリプト・ファイル (例えば myscript) の内容を迅速に実行するには、次のコマンドのいずれかを使用します。

現在の構成をスクリプト・ファイル (例えば savescript) に保存するには、次のコマンドを実行します。

dscontrol file save savescript

このコマンドは、構成スクリプト・ファイルを次のディレクトリーに保存します。

GUI

グラフィカル・ユーザー・インターフェース (GUI) の一般的な説明と例については、図 38 を参照してください。

GUI を開始するには、以下のステップに従ってください。

  1. dsserver が実行されるようにする。
  2. オペレーティング・システムに応じて、以下のアクションの 1 つを行います。

GUI から Dispatcher コンポーネントを構成するには、ツリー構造で Dispatcher を最初に 選択しなければなりません。 一度ホストに接続すると、executor および manager を 開始することができるようになります。また、ポートとサーバーを含むクラスターを作成したり、manager の advisor を開始したりすることもできます。

GUI を使用して、dscontrol コマンドで 行うあらゆる処理を実行することができます。例えば、コマンド行を使用してクラスターを定義するには、dscontrol cluster add cluster コマンドを入力します。クラスターを GUI から定義するには、「Executor」を右マウス・ボタンでクリックしてから、ポップアップ・メニューの「クラスターの追加」を左マウス・ボタンでクリックします。 ポップアップ・ウィンドウでクラスター・アドレスを入力して、「OK」をクリックします。

既存の Dispatcher 構成ファイルは、「ホスト」ポップアップ・メニューに表示される 「新規構成のロード」オプション (現行の構成を完全に置き換える場合) と 「現行の構成に追加」オプション (現行の構成を更新する場合) を使用してロードすることができます。 Dispatcher 構成は、「ホスト」ポップアップ・メニューに 表示される「構成ファイルの別名保存」オプションを使用して定期的にファイルに保存しなければなりません。GUI の上部にある「ファイル」メニューを使用して、現行のホスト接続をファイルに保存したり、すべての Load Balancer コンポーネントにわたって既存のファイルにある接続を復元したりすることができます。

構成コマンドは、リモートでも実行することができます。詳細については、リモート・メソッド呼び出し (RMI)を参照してください。

GUI からコマンドを実行するには、GUI ツリーでホスト・ノードを強調表示し、「ホスト」ポップアップ・メニューから「コマンドの送信....」を選択します。 コマンド入力フィールドに、実行したいコマンド (例えば executor report) を入力します。 現行セッションでのコマンド実行の結果およびヒストリーが、ウィンドウに表示されます。

Load Balancer ウィンドウの右上隅にある疑問符のアイコンをクリックすると、「ヘルプ」にアクセスすることができます。

GUI の使用について詳しくは、 付録A. GUI: 一般的な説明 を参照してください。

構成ウィザードによる構成

構成ウィザードを使用する場合は、以下のステップに従ってください。

  1. Dispatcher で dsserver を開始します。

  2. Dispatcher のウィザード機能 dswizard を開始します。

ウィザードは、Dispatcher コンポーネントの基本クラスターを作成するプロセスを段階的に案内します。ここでは、ネットワークについての情報を入力します。Dispatcher のためのクラスターのセットアップを通して、サーバーのグループの間のトラフィックのロード・バランシングを行います。

Dispatcher マシンのセットアップ

Dispatcher マシンをセットアップする前に、 root ユーザー (AIX、HP-UX、Linux、 または Solaris システムの場合) または Windows システムの管理者にならなければなりません。

Load Balancer は、サポートされるすべてのプラットフォーム上で、 連結されたサーバーを持つことができます。 連結は、Load Balancer がロード・バランシングしているサ ーバー・マシンに物理的に常駐できることを意味します。

Dispatcher マシンの場合、MAC 転送方式を使用しているときには、少なくとも 2 つの有効 IP アドレスが必要になります。CBR または NAT 転送方式の場合、少なくとも 3 つの有効 IP アドレスが必要になります。

Solaris システムのみ:

IP 転送が、TCP/IP プロトコルに対して使用可能になっていないことを確認します。

図 15 には、クラスターが 1 つ、ポートが 2 つ、およびサーバーが 3 つの Dispatcher のセットアップ例が示されています。

図 15. Dispatcher マシンに必要な IP アドレスの例

この手順で使用するコマンドについては、Dispatcher および CBR のコマンド解説 を参照してください。

サンプルの構成ファイルについては、『サンプルの Load Balancer 構成ファイル』を参照してください。

ステップ 1. サーバー機能の開始

AIX、HP-UX、Linux、または Solaris システム: サーバー機能を開始するには、dsserver と入力します。

Windows システム: サーバー機能は自動的に開始します。

注:
デフォルトの構成ファイル (default.cfg) は、dsserver の始動時に自動的にロードされます。 ユーザーが Dispatcher 構成を default.cfg に保存することを決定すると、次に dsserver を開始するときに、このファイルに保存されたすべてが自動的にロードされます。

ステップ 2. executor 機能の開始

executor 機能を開始するには、dscontrol executor start コマンドを入力します。この時点で、さまざまな executor 設定値を変更することもできます。Dispatcher および CBR のコマンド解説 を参照してください。

ステップ 3. 非転送先アドレスの定義 (ホスト名と異なる場合)

非転送先アドレスは、このマシンに対して Telnet または SMTP を使用するなどの管理目的でマシンに接続するために使用します。デフォルトではこのアドレスはホスト名です。

非転送先アドレスを定義するには、dscontrol executor set nfa IP_address コマンドを入力するか、サンプル構成ファイルを編集します。IP_address は、シンボル名または IP アドレスです。

ステップ 4. クラスターの定義とクラスター・オプションの設定

Dispatcher は、クラスター・アドレスに送信された要求と、そのクラスターのポート上に構成されたサーバーとのバランシングを行います。

クラスターは、シンボル名、小数点付き 10 進表記アドレス、またはワイルドカード・クラスターを定義する特別なアドレス 0.0.0.0 のいずれかです。 クラスターを定義するには、コマンド dscontrol cluster add を発行します。クラスター・オプションを設定するには、コマンド dscontrol cluster set を発行します。また、GUI を使用してコマンドを発行することもできます。ワイルドカード・クラスターを使用すると、ロード・バランシングを行う着信パケットの複数の IP アドレスに一致させることができます。詳細については、ワイルドカード・クラスターを使用したサーバー構成の結合ワイルドカード・クラスターを使用したファイアウォールのロード・バランシング透過プロキシーに Caching Proxy とワイルドカード・クラスターを使用を参照してください。

ステップ 5. ネットワーク・インターフェース・カードの別名割り当て

一度クラスターを定義すると、通常は Dispatcher マシンのネットワーク・インターフェース・カードのうちの 1 つでクラスター・アドレスを構成しなければなりません。 これを行うには、コマンド dscontrol executor configure cluster_address を発行します。これによって、クラスター・アドレスと同じサブネットに属する既存のアドレスを持つ アダプターが検索されます。その後で、検出されたアダプターおよびそのアダプター上で検出された既存のアドレスのネットマスクを使用して、そのクラスター・アドレスのオペレーティング・システムのアダプター構成コマンドを実行します。例えば、以下のようになります。

dscontrol executor configure 204.67.172.72 

クラスター・アドレスを構成しない場合は、ハイ・アベイラビリティー・モードの待機状態のサーバーにクラスターを追加する場合か、リモート・サーバーとして動作する広域 Dispatcher にクラスターを追加する場合です。また、スタンドアロン・モードでサンプル goIdle スクリプトを使用する場合は、executor configure コマンドを実行する必要はありません。goIdle スクリプトについては、スクリプトの使用を参照してください。

まれに、既存のアドレスのいずれのサブネットともクラスター・アドレスが一致しない場合があります。この場合は、executor configure コマンドの 2 番目の形式を使用して、明示的にインターフェース名とネットマスクを提供してください。dscontrol executor configure cluster_address interface_name netmask を使用してください。

例には、以下のようなものがあります。

dscontrol executor configure 204.67.172.72 en0 255.255.0.0 
(AIX systems)
dscontrol executor configure 204.67.172.72 eth0:1 255.255.0.0 
(Linux systems)
dscontrol executor configure 204.67.172.72 eri0 255.255.0.0 
(Solaris systems)
dscontrol executor configure 204.67.172.72 en1 255.255.0.0 
(Windows systems)

Windows システム

Windows システムで executor configure コマンドの 2 番目 の形式を使用するには、使用するインターフェース名を決定しなければなりま せん。 マシンにイーサネット・カードが 1 つしかない場合、インターフェース名は en0 になります。 トークンリング・カードが 1 つしかない場合は、インターフェース名は tr0 です。 いずれかのタイプのカードが複数ある場合は、そのカードのマッピングを判別する必要があります。以下のステップを使用します。

  1. コマンド行から executor を開始します。dscontrol executor start
  2. コマンドを実行します。dscontrol executor xm 1

出力は画面に表示されます。Load Balancer 構成に使用するインターフェース名を判別 するには、 Number of NIC records に続く行で Load Balancer マシンの IP アドレスを検索します。

Load Balancer マシンの IP アドレスは、ia->ia_addr としてリストされます。 関連インターフェース名は、ifp->if_name としてリストされ ます。

executor configure コマンドによって割り当てられたインターフェース名は、 このコマンドでリストされたインターフェース名にマップされます。

このマッピング情報を入手すれば、クラスター・アドレスに対してネットワーク・インターフェースで別名を作成することができます。

ifconfig コマンドを使用したクラスター別名の構成

Linux または UNIX システムの場合、executor configure コマンドでは ifconfig コマンドが実行されます。

Solaris および HP-UX システム

サーバーの IP が含まれない IP アドレスのリストにバインドする、バインド固有のサーバー・アプリケーションを使用している場合には、ifconfig ではなく arp publish コマンドを使用し、Load Balancer マシンで動的に IP アドレスを設定します。 例えば、以下のようになります。

  arp -s <cluster> <Load Balancer MAC address> pub

ステップ 6. ポートの定義とポート・オプションの設定

ポートを定義するには、dscontrol port add cluster:port コマンドを入力するか、サンプル構成ファイルを編集するか、GUI を使用します。cluster は、シンボル名または IP アドレスです。port は、そのプロトコルに使用するポートの番号です。また、この時点でさまざまなポート設定値を変更することもできます。1 つのポートに対して、すべてのサーバーを定義して構成しなければなりません。Dispatcher および CBR のコマンド解説を参照してください。

ポート番号 0 (ゼロ) は、ワイルドカード・ポートを指定するために使用します。 このポートは、クラスターに定義されたポートのいずれにも定まられない ポートに対するトラフィックを受け入れます。ワイルドカード・ポートは、すべてのポートについてルールとサーバーを構成するために使用します。この機能は、複数のポートに同じサーバーとルールの構成がある場合にも使用できます。 このため、あるポートのトラフィックが、他のポートのトラフィックのロード・バランシング決定に影響を与えることがあります。 ワイルドカード・ポートの使用が必要な場合について詳しくは、『ワイルドカード・ポートを使用した未構成ポート・トラフィックの送信』を参照してください。

ステップ 7. ロード・バランシングが行われるサーバー・マシンの定義

ロード・バランシングが行われるサーバー・マシンを定義するには、dscontrol server add cluster:port:server コマンドを入力するか、サンプル構成ファイルを編集するか、GUI を使用します。cluster および server は、シンボル名または IP アドレスです。port は、そのプロトコルに使用するポートの番号です。ロード・バランシングを行うためには、クラスター上の 1 つのポートに対して複数のサーバーを定義しなければなりません。

バインド固有サーバー: Dispatcher コンポーネントがバインド固有サーバーに対してロード・バランシングを行う場合は、そのサーバーはクラスター・アドレスにバインドするように構成されていなければなりません。 Dispatcher は宛先 IP アドレスを変更しないでパケットを転送するので、パケットがサーバーに到着した時は、そのパケットには宛先としてクラスター・アドレスが入ったままとなります。サーバーが、 クラスター・アドレス以外の IP アドレスにバインドするよう に構成されている場合は、サーバーはクラスター向けの要求を受け入れられなくなります。

サーバーがバインド固有のものかどうかを判別するには、netstat -an コマンドを発行して server:port を検索します。サーバーが バインド固有でない場合、このコマンドの結果は 0.0.0.0:80 です。サーバーが バインド固有の場合、192.168.15.103:80 のようなアドレスが表示されます。

注:
Solaris および Linux システムの場合: advisor を使用している場合は、バインド固有サーバーは連結されていてはなりません。

マルチアドレスの連結: 連結された構成では、連結サーバー・マシンのアドレスは nonforwarding アドレス (NFA) と同じである必要は ありません。 ご使用のマシンが複数の IP アドレスで定義されている場合には、別のアドレスを使用することができます。 Dispatcher コンポーネントの場合、連結されたサーバー・マシンは、dscontrol server コマンドを使用して collocated と定義しなければなりません。連結サーバーについて詳しくは、連結サーバーの使用 を参照してください。

dscontrol サーバー・コマンド構文の詳細については、dscontrol server — サーバーの構成を参照してください。

ステップ 8. manager 機能の開始 (オプション)

manager 機能によって、ロード・バランシング性能が向上します。 manager を開始するには、dscontrol manager start コマンドを入力するか、サンプル構成ファイルを編集するか、GUI を使用します。

ステップ 9. advisor 機能の開始 (オプション)

advisor は、ロード・バランシングが行われるサーバー・マシンが要求に応答する能力 に関する詳細情報を manager に提供します。advisor はプロトコル固有です。例えば、HTTP advisor を開始するには、以下のコマンドを発行します。

dscontrol advisor start http port
advisor とそのデフォルト・ポートのリストについては、Dispatcher および CBR のコマンド解説を参照してください。各 advisor の説明については、『advisor のリスト』を参照してください。

ステップ 10. 必要によりクラスター割合を設定

advisor を開始すると、ロード・バランシングの判断に含まれる advisor 情報に指定された重要度の割合を変更できます。 クラスターの割合を設定するには、dscontrol cluster set cluster proportions コマンドを発行します。 詳細については、状況情報に与えられる重要性の割合 を参照してください。

ロード・バランシングのためのサーバー・マシンのセットアップ

以下の条件のいずれかに当てはまる場合は、サーバー・マシン上でこれらの操作を実行してください。

MAC 転送方式を使用している時には、 IP アドレス (バックエンド・サーバーが ARP (アドレス解決プロトコル) 要求に対して応答してしまわないもの) を 追加することでループバック・アダプターを構成することが可能なサーバー間でのみ、 Dispatcher のロード・バランシングが行われます。 このセクションのステップに従って、ロード・バランシングが行われるサーバー・マシンをセットアップします。

ステップ 1. ループバック・デバイスへの別名割り当て

ロード・バランシングが行われるサーバー・マシンを機能させるには、ループバック・デバイス (通常は lo0 と呼ばれます) をクラスター・アドレスに設定しなければなりません (別名割り当てされることをお勧めします)。mac 転送方式を使用している時は、Dispatcher コンポーネントは、パケットを TCP サーバー・マシンに転送する前に、TCP/IP パケット中の宛先 IP アドレスを変更しません。ループバック・デバイスをクラスター・アドレスに設定または別名割り当てすることで、ロード・バランシングが行われるサーバー・マシンは、クラスター・アドレスにアドレス指定されたパケットを受け入れます。

オペレーティング・システムがネットワーク・インターフェースの別名割り当てをサポートしている 場合 (AIX、HP-UX、 Linux、Solaris、 または Windows システムなど) は、ループバック・デバイスをクラスター・アドレスに別名で割り当ててください。 別名をサポートするオペレーティング・システムを使用する利点は、ロード・バランシングが行われるサーバー・マシンを、複数のクラスター・アドレスについてサービスを提供するように構成できることです。

重要: Linux システムの場合は、 Linux における Load Balancer の MAC 転送の使用時のループバック別名割り当ての代替手段を参照してください。

サーバーのオペレーティング・システムが 別名をサポートしない場合は、ループバック・デバイスを クラスター・アドレスに設定しなければなりません。

表 2』に示されているご使用のオペレーティング・システム用のコマンドを使用して、ループバック・デバイスを設定するか、別名を割り当てます。

表 2. Dispatcher のループバック・デバイス (lo0) の別名を割り当てるコマンド
AIX
AIX 4.3 以前:
ifconfig lo0 alias cluster_address netmask netmask
注:
基本アダプターのネットマスクを使用してください。
AIX 5.x 以降:
ifconfig lo0 alias cluster_address netmask 255.255.255.255
HP-UX
ifconfig lo0:1 cluster_address up
注:
サーバーの IP が含まれていない IP アドレスのリストにバインドするバインド固有のサーバー・アプリケーションを使用する場合には、ifconfig ではなく arp publish コマンドを使用して、Load Balancer マシン上の IP アドレスを動的に設定します。

例えば、以下のようになります。

arp -s cluster_address Load Balancer's_MAC_address pub
Linux 以下のいずれかのコマンドを選択します。
  • 次の ip コマンドを使用します。
    ip -4 addr add cluster_address/32 dev lo
  • 次の ifconfig コマンドを使用します。
    ifconfig lo:1 cluster_address  netmask 255.255.255.255 up
重要: ご使用のマシンで構成コマンドの 1 つを実行した場合は、常に同じ構成コマンド (ip または ifconfig) を使用するようにしてください。そうしないと、予期しない結果が起こることがあります。
OS/2 ifconfig lo cluster_address
OS/390® OS/390 システムでのループバック別名の構成
  • 管理者は、IP パラメーター・メンバー (ファイル) で、ホーム・アドレス・リストに項目を作成する必要があります。例を以下に示します。
    HOME
    ;Address                   Link
    192.168.252.11             tr0
    192.168.100.100            1tr1
    192.168.252.12             loopback
  • ループバックには、複数のアドレスを定義できます。
  • 127.0.0.1 というループバック・アドレスがデフォルトで構成されます。
Solaris
Solaris 7
ifconfig lo0:1 cluster_address 127.0.0.1 up
Solaris 8 以降
ifconfig lo0:1 plumb cluster_address netmask netmask up
Windows
Windows NT
  1. スタート」をクリックし、続いて「設定」をクリックします。
  2. コントロール パネル」をクリックし、続いて「ネットワーク」をダブルクリックします。
  3. まだ MS Loopback Adapter ドライバーを追加していなければ、追加します。
    1. 「Network」ウィンドウで、「アダプター」をクリックします。
    2. MS Loopback Adapter」を選択し、続いて「了解」をクリックします。
    3. プロンプトが出されたら、インストール CD またはディスクを挿入します。
    4. 「Network」ウィンドウで、「プロトコル」をクリックします。
    5. TCP/IP プロトコル」を選択し、続いて「プロパティ」をクリックします。
    6. MS Loopback Adapter」を選択し、続いて「了解」をクリックします。
  4. ループバック・アドレスをクラスター・アドレスに設定します。 デフォルトのサブネット・マスク (255.0.0.0) を受け入れ、ゲートウェイ・アドレスを入力しません。
注:
TCP/IP 構成で MS Loopback Driver を表示するには、その前に終了させて Network 設定を再入力しなければならない場合があります。
他の Windows バージョン (Windows Server 2003 以降を含む)
  1. ipconfig コマンドを使用して、ループバック・デバイスのインターフェース名を判別します。
    ipconfig /all
    このコマンドは、Microsoft Loopback Adapter の記述がある接続を検出します。 以下の例は、ipconfig /all コマンドの出力です。ここで、Microsoft Loopback Adapter は Ethernet adapter Local Area Connection 2 であるため、接続は Local Area Connection 2 です。
    Windows IP Configuration
    
     Host Name . . . . . . . . . . . . : ndserv10
     Primary Dns Suffix . . . . . . .  : rtp.somewhere.ibm.com
     Node Type . . . . . . . . . . . . : Unknown
     IP Routing Enabled. . . . . . . . : No
     WINS Proxy Enabled. . . . . . . . : No
     DNS Suffix Search List. . . . . . : rtp.somewhere.ibm.com
    
    Ethernet adapter Local Area Connection 2:
    
     Connection-specific DNS Suffix . :
     Description . . . . . . . . . . . : Microsoft Loopback Adapter
     Physical Address. . . . . . . . . : 02-00-4C-4F-4F-50
     DHCP Enabled. . . . . . . . . . . : No
     IP Address. . . . . . . . . . . . : 9.42.92.158
     Subnet Mask . . . . . . . . . . . : 255.255.252.0
     IP Address. . . . . . . . . . . . : 9.42.92.159
     Subnet Mask . . . . . . . . . . . : 255.255.252.0
     IP Address. . . . . . . . . . . . : 9.42.92.160
     IP Address. . . . . . . . . . . . : 9.42.92.159
     Default Gateway . . . . . . . . . :
     DNS Servers . . . . . . . . . . . : 127.0.0.1
  2. netsh コマンドを使用して、ループバックにクラスター・アドレスを追加します。 例えば、以下のようになります。
    netsh interface ipv4 add address "Local Area Connection 2"
        9.42.92.161
    注:
    HA 構成を使用していて、マシンがプライマリー・マシンとして稼働している場合は、ループバック・デバイスに別名を割り当てないでください。こうすると、Load Balancer マシンがクラスター・アドレスへのトラフィックを経路指定しなくなるからです。
  3. 次の ipconfig コマンドを再び発行すると、ループバック・アダプターに追加したアドレスが表示されるはずです。例えば、次のコマンドを発行します。
    ipconfig /all
    以下のような出力が表示されます。
    Ethernet adapter Local Area Connection 2:
    
     Connection-specific DNS Suffix . :
     Description . . . . . . . . . . . : Microsoft Loopback Adapter
     Physical Address. . . . . . . . . : 02-00-4C-4F-4F-50
     DHCP Enabled. . . . . . . . . . . : No
     IP Address. . . . . . . . . . . . : 9.42.92.158
     Subnet Mask . . . . . . . . . . . : 255.255.252.0
     IP Address. . . . . . . . . . . . : 9.42.92.159
     Subnet Mask . . . . . . . . . . . : 255.255.252.0
     IP Address. . . . . . . . . . . . : 9.42.92.161 
     IP Address. . . . . . . . . . . . : 9.42.92.160
     IP Address. . . . . . . . . . . . : 9.42.92.159
     Default Gateway . . . . . . . . . :
     DNS Servers . . . . . . . . . . . : 127.0.0.1
  4. 次のコマンドを使用して、マシン内のすべてのインターフェースに対して転送を使用可能にします。
    netsh interface ipv4 show interface
    Local Area Connection という名前でリストされたすべてのインターフェースで、IP 転送が使用可能になっていなければなりません。 例えば、以下のようになります。
    netsh interface ipv4>show interface
    Querying active state...
    
    Idx  Met   MTU    State         Name
    ---  ---- ----- ------------  -----
    6    2    1280  Disconnected  Teredo Tunneling Pseudo-Interface
    5    0    1500  Connected     Local Area Connection
    4    0    1500  Connected     Local Area Connection 2
    2    1    1280  Connected     Automatic Tunneling Pseudo-Interface
     1     0   1500  Connected     Loopback Pseudo-Interface
    netsh interface ipv4>set interface "Local Area Connection"
       forwarding=enabled
    Ok. 
    
    netsh interface ipv4>set interface "Local Area Connection 2"
       forwarding=enabled
    Ok.
  5. Local Area Connection ごとに 転送パケットが「Yes」に設定されていることを確認してください。以下のコマンドを使用します。
    netsh interface ipv4>show interface "Local Area Connection"
    
    netsh interface ipv4>show interface "Local Area Connection 2"

ステップ 2. エクストラ経路のチェック

いくつかのオペレーティング・システムでは、デフォルトの経路が既に作成されている場合があります。その場合には、その経路を削除する必要があります。

Windows の場合の例:

  1. route print の入力後に、以下の例と同様の 表が表示されます。 (この例では、デフォルトのネットマスク 255.0.0.0 を持つクラスター 9.67.133.158 への エクストラ経路を検索し、除去します。)
    Active Routes:
     
    Network Address Netmask         Gateway Address  Interface      Metric
    0.0.0.0         0.0.0.0         9.67.128.1       9.67.133.67     1
    9.0.0.0         255.0.0.0       9.67.133.158     9.67.133.158    1
    9.67.128.0      255.255.248.0   9.67.133.67      9.67.133.67     1
    9.67.133.67     255.255.255.255 127.0.0.1        127.0.0.1       1
    9.67.133.158    255.255.255.255 127.0.0.1        127.0.0.1       1
    9.255.255.255   255.255.255.255 9.67.133.67      9.67.133.67     1
    127.0.0.0       255.0.0.0       127.0.0.1        127.0.0.1       1
    224.0.0.0       224.0.0.0       9.67.133.158     9.67.133.158    1
    224.0.0.0       224.0.0.0       9.67.133.67      9.67.133.67     1
    255.255.255.255 255.255.255.255 9.67.133.67      9.67.133.67     1  
  2. 「Gateway Address」欄でご使用のクラスター・アドレスを見つけます。 エクストラ経路がある場合には、クラスター・アドレスが 2 つ出力されています。この例では、クラスター・アドレス (9.67.133.158) が 2 行目と 8 行目にあります。
  3. クラスター・アドレスが出力されている各行で、ネットワーク・アドレスを探します。必要なのはこれらの経路うちの一方であり、エクストラ経路を削除する必要があります。削除するエクストラ経路は、ネットワーク・アドレスがクラスター・アドレスの最初の桁で始まり、ゼロが 3 つ 続くものです。上記の例では、エクストラ経路は 2 行目にあり、ネットワーク・アドレスは 9.0.0.0 です。
              9.0.0.0         255.0.0.0       9.67.133.158     9.67.133.158    1
     

ステップ 3. エクストラ経路の削除

エクストラ経路は削除しなければなりません。『表 3』に示されているオペレーティング・システム用のコマンドを使用して、エクストラ経路を削除します。

例: ステップ 2 の「活動状態の経路」の例に示されているエクストラ経路を削除するためには、次のように入力してください。

route delete 9.0.0.0 9.67.133.158
表 3. Dispatcher のすべてのエクストラ経路を削除するコマンド
HP-UX route delete cluster_address cluster_address
Windows route delete network_address cluster_address (MS-DOS プロンプトで)
注:
エクストラ経路は、サーバーをリブートするたびに削除しなければなりません。

Windows 2003 では、経路を削除することができません。Windows 2003 では、エクストラ経路 を無視する必要があります。 別名割り当ての後、経路指定で問題が生じた場合、別名を除 去し、異なった netmask を使用して別名を再度追加します。

図 15 に示す例を使用し、AIX システムを実行するサーバー・マシンをセットアップする場合のコマンドは、以下のようになります。

  route delete -net  204.0.0.0  204.67.172.72

ステップ 4. サーバーが正しく構成されているかの確認

バックエンドのサーバーが適正に構成されていることを確認するためには、同じサブネット上の別のマシンで、Load Balancer が実行されていなくて、cluster が構成されていない時に、以下のステップを実行してください。

  1. 以下のコマンドを発行する。
    arp -d cluster
  2. 以下のコマンドを発行する。
    ping cluster
    無応答でなければなりません。 ping に対して応答がある場合には、クラスター・アドレスをインターフェースに ifconfig していないことを確認してください。 どのマシンも、クラスター・アドレスに対する公開された arp 項目をもっていないことを確認してください。
  3. バックエンドのサーバーを PING してから、直ちに次のコマンドを実行してください。
    arp -a
    コマンドからの出力の中に、サーバーの MAC アドレスがあるはずです。 以下のコマンドを発行する。
    arp -s cluster server_mac_address
  4. クラスターを Ping します。 応答があるはずです。バックエンドのサーバーで処理したい、クラスターにアドレス指定されている HTTP、Telnet、またはその他の要求を出してください。 それが正常に機能していることを確認してください。
  5. 以下のコマンドを発行する。
    arp -d cluster
  6. クラスターを Ping します。 無応答でなければなりません。
    注:
    応答があったら、arp cluster 命令を出して、間違って構成されているマシンの MAC アドレスを表示してください。 その後で、ステップ 1 から 6 を繰り返してください。

Linux における Load Balancer の MAC 転送の使用時のループバック別名割り当ての代替手段

一部の Linux システム・バージョンはマシン上に存在するどのインターフェースについて構成された IP アドレスに対しても、 ARP 応答を出します。 Linux はまた、 ARP who-has 照会に対して、マシン上に存在するすべての IP アドレスに 基づいて ARP ソース IP アドレスを選択する場合があります。 これらのアドレスがどのインターフェース上で構成されているかは関係ありません。 このことにより、クラスターのトラフィックはすべて、 単一のサーバーに対して不確定に送信されます。

Dispatcher の MAC 転送方式を使用しているときは、クラスター宛てのトラフィックをバックエンド・サーバーのスタックが確実に受け入れることができるようにするための機構が必要です。ハイ・アベイラビリティーと連結の両方が使用されているときは、これらのバックエンド・サーバーに、連結されたハイ・アベイラビリティーのスタンバイ・マシンも含まれます。

ほとんどの場合、ループバックでクラスター・アドレスに別名を割り当てる必要があります。したがって、バックエンド・サーバーはループバック上でクラスターに別名が割り当てられている必要があります。また、ハイ・アベイラビリティーと連結を使用している場合は、スタンバイのロード・バランシング・サーバーはループバック上でクラスターに別名が割り当てられている必要があります。

Linux システムがループバック上のアドレスを公示しないようにするために、以下の 4 つの解決方法のいずれかを使用して、 Linux システムに Dispatcher の MAC 転送との互換性を持たせます。

  1. アドレスを公示しないカーネルを使用する。 この方法はパケットごとのオーバーヘッドを発生させず、 また各カーネルごとに再構成を行う必要がないため、このオプションが推奨されます。
  2. IP テーブルを使用して、受信クラスター・トラフィックをすべてローカル・ホストに宛先変更する。 この方法を使用する場合は、ループバック・アダプターに別名を構成しないでください。 代わりに、次のコマンドを使用してください。
     # iptables -t nat -A PREROUTING -d $CLUSTER_ADDRESS -j REDIRECT
    これにより、 Linux システムは 各パケットごとに宛先 NAT を行い、 クラスター・アドレスをインターフェース・アドレスに変換します。 この方式では、一秒ごとの接続数のスループットに 6.4% の低下があります。 この方式は、通常のサポートされる配布で機能し、 カーネル・モジュールまたはカーネル・パッチ + ビルド + インストールの必要がありません。
  3. noarp モジュールのバージョン 1.2.0 以降を適用する。カーネル・ソースは使用可能で、 適切に構成されている必要があり、開発ツール (gcc、gnu make など) が使用可能である必要があります。 カーネルをアップグレードする度に モジュールをビルドしインストールする必要があります。 http://www.masarlabs.com/noarp/ で入手可能です。 カーネル・コード自体は変更されないため、 下記の 4 番目の解決方法ほど内部を深く変更せず、 エラーが起こる可能性も大幅に低いです。 また、このモジュールの構成は、クラスター・アドレスをループバック上で別名割り当てする前に行う必要があります。例えば、以下のようになります。
    # modprobe noarp
    # noarpctl add $CLUSTER_ADDRESS nic-primary-addr
    ここ で nic-primary-addr は、クラスター・アドレスと同じサブネット中のアドレスです。 以降は、クラスターは通常の方法で別名を割り当てることができます。例えば、次のようにします。
     # ifconfig lo:1 cluster address netmask 255.255.255.255 up
    注:
    高可用性連結構成の場合は、noarpctl addsdels を go* スクリプトに書き込む必要があります。 これにより、活動中の Load Balancer がクラスター・アドレス に ARP を確実に使用することができるようになり、 サーバーとして機能している待機中の Load Balancer が誤って (すなわち 不確定に) すべてのクラスター・トラフィックの受信を確実に開始しないよ うにすることができます。
  4. Web サイト http://www.ssi.bg/~ja/#hidden から Julian パッチを入手する。 カーネルにパッチを当てて、その配布で使用するのに相応しいカーネルをコンパイルするには 配布指示に従ってください。 これが高可用性の連結 Load Balancer である場合は、uname -r が配布で提供されたカーネルに一致することを確認し、 配布のカーネルの .config ファイルで作業を開始するようにしてください。 ビルドし、インストールして、Julian 隠しパッチを持つカーネルを実行 した後に、パッチの使用可能化の方法として挙げられている最初の解決方法 に指示に従います。
    注:
    カスタム・カーネルを実行する場合、配布サポートによる影響が出る場合があります。