ILB は、1 脚または 2 脚のトポロジで、IPv4 および IPv6 に対するステートレス DSR および NAT の動作モードをサポートします。
DSR モードでは、ILB は受信リクエストをバックエンドサーバーに分散しますが、サーバーからクライアントへの戻りトラフィックは ILB をバイパスします。ただし、ILB がバックエンドサーバーのルーターとして使用されるように設定すると、バックエンドサーバーからクライアントへの応答は、ILB を実行しているシステムを通るようにルーティングされます。ILB の現在の DSR 実装は TCP 接続追跡を提供せず、ステートレスにします。ステートレス DSR では、ILB は基本的な統計情報を除き、処理されるパケットのステート情報を保存しません。ステートレス中、パフォーマンスは通常の IP 転送のパフォーマンスに相当します。DSR モードはコネクションレスプロトコルに最適です。
DSR では、パケットの着信先 MAC アドレスのみが変更され、サーバーがクライアントに直接応答するため、NAT よりもパフォーマンスが優れています。
サーバーとクライアントの間に完全な透過性があります。サーバーはクライアント IP アドレスから接続を直接認識し、デフォルトゲートウェイを介してクライアントに応答します。
バックエンドサーバーは、それ固有の IP アドレス (健全性検査用) および仮想 IP アドレス (負荷分散トラフィック用) の両方に応答する必要があります。
ステートレス中に、サーバーを追加または削除すると、接続の中断が発生します。
次の図に、DSR モードでの ILB の実装を示します。
図 4 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 ネットワークアドレス変換トポロジ
この場合、VIP へのリクエストはすべて ILB を経由し、バックエンドサーバーに転送されます。バックエンドサーバーからの応答はすべて、NAT のために ILB を経由します。
注意 - ILB に実装されている NAT コードパスは、Oracle Solaris の IP フィルタ機能に実装されているコードパスとは異なります。これらのコードパスを同時に使用しないでください。 |
ILB のハーフ NAT 動作モードでは、ILB はパケットのヘッダー内の着信先 IP アドレスのみを書き換えます。ハーフ NAT 実装を使用している場合、サーバーが存在する同一のサブネットから、サービスの VIP アドレスに接続できません。次の表に、クライアントと ILB の間、および ILB とバックエンドサーバーの間を流れるパケットの IP アドレスを示します。
|
クライアントシステムをサーバーと同じネットワークに接続した場合、意図したサーバーはクライアントに直接応答し、表の 4 番目の手順は発生しません。したがって、クライアントに対するサーバー応答の発信元 IP アドレスは無効です。クライアントが接続リクエストをロードバランサに送信すると、応答は意図したサーバーから発生します。これ以降のクライアントの IP スタックはすべての応答を適切に削除します。このシナリオでは、リクエストフローと応答フローは次の表に示すとおりに進行します。
|
ILB 動作のフル NAT 実装では、発信元 IP アドレスと着信先 IP アドレスが書き換えられることで、トラフィックがロードバランサを両方向で通過します。フル NAT モードでは、サーバーが存在する同一のサブネットから VIP に接続できるようになります。
次の表に、フル NAT モードの使用時にクライアントと ILB の間、および ILB とバックエンドサーバーの間を流れるパケットの IP アドレスを示します。サーバーには、ILB ボックスを使用する特別なデフォルトルートは不要です。ただし、フル NAT モードでは、ILB がバックエンドサーバーとの通信に発信元アドレスとして使用する 1 つの IP アドレスまたは IP アドレス範囲を、管理者が別途設定する必要があります。使用するアドレスがサブネット C に属しているとします。このシナリオでは、ILB はプロキシとして動作します。
|