Go to main content
ルーターまたはロードバランサとしての Oracle® Solaris 11.3 システムの構成

印刷ビューの終了

更新: 2016 年 11 月
 
 

ILB の動作モード

ILB は、1 脚または 2 脚のトポロジで、IPv4 および IPv6 に対するステートレス DSR および NAT の動作モードをサポートします。

Direct Server Return モード

DSR モードでは、ILB は受信リクエストをバックエンドサーバーに分散しますが、サーバーからクライアントへの戻りトラフィックは ILB をバイパスします。ただし、ILB がバックエンドサーバーのルーターとして使用されるように設定すると、バックエンドサーバーからクライアントへの応答は、ILB を実行しているシステムを通るようにルーティングされます。ILB の現在の DSR 実装は TCP 接続追跡を提供せず、ステートレスにします。ステートレス DSR では、ILB は基本的な統計情報を除き、処理されるパケットのステート情報を保存しません。ステートレス中、パフォーマンスは通常の IP 転送のパフォーマンスに相当します。DSR モードはコネクションレスプロトコルに最適です。

    メリット:

  • DSR では、パケットの着信先 MAC アドレスのみが変更され、サーバーがクライアントに直接応答するため、NAT よりもパフォーマンスが優れています。

  • サーバーとクライアントの間に完全な透過性があります。サーバーはクライアント IP アドレスから接続を直接認識し、デフォルトゲートウェイを介してクライアントに応答します。

    デメリット:

  • バックエンドサーバーは、それ固有の IP アドレス (健全性検査用) および仮想 IP アドレス (負荷分散トラフィック用) の両方に応答する必要があります。

  • ステートレス中に、サーバーを追加または削除すると、接続の中断が発生します。

次の図に、DSR モードでの ILB の実装を示します。

図 4  Direct Server Return トポロジ

image:この図は、Direct Server Return のトポロジについて説明しています。

この図で、バックエンドサーバーはどちらも ILB ボックスと同じサブネット (192.168.1.0/24) 内にあります。また、サーバーはルーターにも接続されているため、ILB ボックスから転送されたリクエストを受け取ったあと、クライアントに直接応答できます。

ネットワークアドレス変換モード

ILB は負荷分散機能のためだけに、NAT をスタンドアロンモードで使用します。このモードでは、ILB はヘッダー情報を書き換え、受信トラフィックと送信トラフィックを処理します。ILB はハーフ NAT モードとフル NAT モードの両方で動作します。ただし、フル NAT は発信元 IP アドレスも書き換えるため、サーバーには、すべての接続がロードバランサから発信されているように見えます。NAT は TCP 接続追跡を提供します (つまりステートフルです)。NAT モードは、追加のセキュリティーを提供し、ハイパーテキスト転送プロトコル (HTTP) または Secure Sockets Layer (SSL) トラフィックに最適です。

    メリット:

  • ロードバランサを指定するようにデフォルトゲートウェイを変更することによって、すべてのバックエンドサーバーで動作します。

  • ロードバランサにより接続状態が保持されるため、接続を中断せずにサーバーを追加または削除できます。

    デメリット:

  • 処理に IP ヘッダーの操作を伴い、サーバーがロードバランサに応答を送信するため、DSR よりもパフォーマンスが低くなります。

  • すべてのバックエンドサーバーがロードバランサをデフォルトゲートウェイとして使用する必要があります。

NAT モードの一般的な実装を、次の図に示します。

図 5  ネットワークアドレス変換トポロジ

image:この図は、ネットワークアドレス変換トポロジについて説明しています。

この場合、VIP へのリクエストはすべて ILB を経由し、バックエンドサーバーに転送されます。バックエンドサーバーからの応答はすべて、NAT のために ILB を経由します。


Caution

注意  -  ILB に実装されている NAT コードパスは、Oracle Solaris の IP フィルタ機能に実装されているコードパスとは異なります。これらのコードパスを同時に使用しないでください


ハーフ NAT 負荷分散モード

ILB のハーフ NAT 動作モードでは、ILB はパケットのヘッダー内の着信先 IP アドレスのみを書き換えます。ハーフ NAT 実装を使用している場合、サーバーが存在する同一のサブネットから、サービスの VIP アドレスに接続できません。次の表に、クライアントと ILB の間、および ILB とバックエンドサーバーの間を流れるパケットの IP アドレスを示します。

表 5  サーバーとクライアントが異なるネットワーク上にある場合のハーフ NAT 実装のリクエストフローと応答フロー
リクエストフロー
発信元 IP アドレス
着信先 IP アドレス
1.
クライアント –> ILB
クライアント
ILB の VIP
2.
ILB –> サーバー
クライアント
サーバー
応答フロー
3.
サーバー –> ILB
サーバー
クライアント
4.
ILB –> クライアント
ILB の VIP
クライアント

クライアントシステムをサーバーと同じネットワークに接続した場合、意図したサーバーはクライアントに直接応答し、表の 4 番目の手順は発生しません。したがって、クライアントに対するサーバー応答の発信元 IP アドレスは無効です。クライアントが接続リクエストをロードバランサに送信すると、応答は意図したサーバーから発生します。これ以降のクライアントの IP スタックはすべての応答を適切に削除します。このシナリオでは、リクエストフローと応答フローは次の表に示すとおりに進行します。

表 6  サーバーとクライアントが同じネットワーク上にある場合のハーフ NAT 実装のリクエストフローと応答フロー
リクエストフロー
発信元 IP アドレス
着信先 IP アドレス
1.
クライアント –> ILB
クライアント
ILB の VIP
2.
ILB –> サーバー
クライアント
サーバー
応答フロー
3.
サーバー –> クライアント
サーバー
クライアント

フル NAT 負荷分散モード

ILB 動作のフル NAT 実装では、発信元 IP アドレスと着信先 IP アドレスが書き換えられることで、トラフィックがロードバランサを両方向で通過します。フル NAT モードでは、サーバーが存在する同一のサブネットから VIP に接続できるようになります。

次の表に、フル NAT モードの使用時にクライアントと ILB の間、および ILB とバックエンドサーバーの間を流れるパケットの IP アドレスを示します。サーバーには、ILB ボックスを使用する特別なデフォルトルートは不要です。ただし、フル NAT モードでは、ILB がバックエンドサーバーとの通信に発信元アドレスとして使用する 1 つの IP アドレスまたは IP アドレス範囲を、管理者が別途設定する必要があります。使用するアドレスがサブネット C に属しているとします。このシナリオでは、ILB はプロキシとして動作します。

表 7  フル NAT 実装のリクエストフローと応答フロー
リクエストフロー
発信元 IP アドレス
着信先 IP アドレス
1.
クライアント –> ILB
クライアント
ILB の VIP
2.
ILB –> サーバー
ロードバランサのインタフェースアドレス (サブネット C)
サーバー
応答フロー
3.
サーバー –> ILB
サーバー
ILB のインタフェースアドレス (サブネット C)
4.
ILB –> クライアント
ILB の VIP
クライアント