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