このセクションでは、ilbadm コマンドを使用して負荷分散規則を作成、削除、および一覧表示する方法について説明します。
ILB のアルゴリズムはトラフィック分散を制御し、負荷分散およびサーバー選択のためのさまざまな特性を提供します。
ILB は 2 つの動作モードに対して次のアルゴリズムを提供します。
ラウンドロビン – ラウンドロビンアルゴリズムでは、ロードバランサはサーバーグループに対してローテーションベースでリクエストを割り当てます。サーバーにリクエストが割り当てられると、そのサーバーはリストの末尾に移動します。
src-IP ハッシュ – 発信元 IP ハッシュ方式では、ロードバランサは受信リクエストの発信元 IP アドレスのハッシュ値に基づいてサーバーを選択します。
src-IP, port ハッシュ – 発信元 IP、ポートハッシュ方式では、ロードバランサは受信リクエストの発信元 IP アドレスおよび発信元ポートのハッシュ値に基づいてサーバーを選択します。
src-IP, VIP ハッシュ – 発信元 IP、VIP ハッシュ方式では、ロードバランサは受信リクエストの発信元 IP アドレスおよび着信先 IP アドレスのハッシュ値に基づいてサーバーを選択します。
ILB では、仮想サービスは負荷分散規則によって表現され、次のパラメータで定義されます。
仮想 IP アドレス
トランスポートプロトコル: TCP または UDP
ポート番号 (またはポート範囲)
負荷分散アルゴリズム
負荷分散モード (DSR、フル NAT、またはハーフ NAT)
一連のバックエンドサーバーで構成されるサーバーグループ
サーバーグループ内の各サーバーに対して実行できる、オプションのサーバー健全性検査
健全性検査に使用するオプションのポート
仮想サービスを表す規則名
該当するパックエンドサーバーを含むサーバーグループを作成します。詳細は、ILB のサーバーグループおよびバックエンドサーバーの定義を参照してください。
健全性検査を作成し、サーバー健全性検査と規則を関連付けます。詳細は、健全性検査の作成を参照してください。
規則に関連付ける VIP、ポート、およびオプションのプロトコルを特定します。
使用する動作 (DSR、ハーフ NAT、またはフル NAT) を特定します。
使用する負荷分散アルゴリズムを特定します。詳細は、ILB のアルゴリズムを参照してください。
ilbadm create-rule コマンドを使用して、ILB 規則を作成します。ilbadm create-rule コマンドの使用の詳細は、ilbadm(1M) のマニュアルページを参照してください。
構文は次のとおりです。
# ilbadm create-rule -e -i vip=IPaddr,port=port,protocol=protocol \ -m lbalg=lb-algorithm,type=topology-type,proxy-src=IPaddr1-IPaddr2,\ pmask=value -h hc-name=hc1-o servergroup=sg rule1
この例では、hc1 という健全性検査と、sg1 というサーバーグループを作成します。サーバーグループは、それぞれポート範囲を持つ 2 つのサーバーで構成されます。最後のコマンドは、rule1 という規則を作成して有効にし、この規則をサーバーグループおよび健全性検査に関連付けます。この規則はフル NAT 動作モードを実装します。サーバーグループおよび健全性検査の作成は、規則の作成よりも前に行う必要があります。
# ilbadm create-healthcheck -h hc-test=tcp,hc-timeout=2,\ hc-count=3,hc-interval=10 hc1 # ilbadm create-servergroup -s server=192.168.0.10:6000-6009,192.168.0.11:7000-7009 sg1 # ilbadm create-rule -e -p -i vip=10.0.0.10,port=5000-5009,\ protocol=tcp -m lbalg=rr,type=NAT,proxy-src=192.168.0.101-192.168.0.104,pmask=24 \ -h hc-name=hc1 -o servergroup=sg1 rule1
持続性マッピングを作成すると、その後に続く仮想サービスへの接続またはパケット、あるいはその両方のリクエストは、クライアントの発信元 IP アドレスが一致する場合、同一のバックエンドサーバーに転送されます。クラスレスドメイン間ルーティング (CIDR) 表記の接頭辞長は、IPv4 では 0-32、IPv6 では 0-128 の間の値です。
ハーフ NAT またはフル NAT 規則を作成する場合は、connection-drain タイムアウト値を指定します。conn-drain タイムアウトのデフォルト値は 0 で、つまり接続が正常にシャットダウンされるまで接続排出が待機し続けることを意味します。
規則の構成の詳細を一覧表示するには、次のコマンドを発行します。規則名を指定しない場合、すべての規則の情報が提供されます。
# ilbadm show-rule RULENAME STATUS LBALG TYPE PROTOCOL VIP PORT rule-http E hash-ip-port NAT TCP 10.0.0.1 80 rule-dns D hash-ip NAT UDP 10.0.0.1 53 rule-abc D roundrobin NAT TCP 2001:db8::1 1024 rule-xyz E ip-vip NAT TCP 2001:db8::1 2048-2050
ilbadm delete-rule コマンドを使用して、規則を削除します。-a オプションを追加して、すべての規則を削除します。次の例では、rule1 という規則を削除します。
# ilbadm delete-rule rule1