ロード バランサーの最適化: DSR の実装。

投稿日: 26 年 2023 月 XNUMX 日

はじめに

ZEVENET ADC でサポートされている XNUMX 種類のネットワーク アドレス変換 (NAT) のうち、 ソース NAT (NAT), ダイナミックNAT(DNAT), ダイレクトサーバーリターン(DSR)ステートレス DNAT。 この記事では、Direct Server Return (DSR) の複雑さを掘り下げ、そのアーキテクチャ、利点、および潜在的なハードルを探ります。 ZEVENET ADC で DSR もセットアップします。

DSR は、バックエンド アプリケーション サーバーがリクエストの受信と処理時にクライアントのリクエストに直接応答することです。 しかし、これはどのように機能するのでしょうか? サーバーと Web クライアント間の通信の流れは次のとおりです。

DSR通信フロー

oracle_jd_edwards_load_balancing_farm
クライアントのリクエスト: クライアントは、ストリーミング可能なメディア ファイルへのアクセスや、ZEVENET ADC を介したアプリケーション サーバーへのデータ送信などのリクエストを開始します。

ロードバランサーの相互作用: リクエストを受信したZEVENETは、次の点を除き、リクエストの内容を変更しません。 宛先MACアドレス。 変更された MAC アドレスは、要求を処理するバックエンド サーバーの MAC アドレスです。 次に、ロード バランサーは、設定された負荷分散アルゴリズムに基づいて、リクエストを適切なバックエンド サーバーに転送します。

バックエンド アプリケーション サーバー: リクエストを受信すると、バックエンド サーバーはリクエストを処理し、応答を生成します。

直接の返答: その後、バックエンド サーバーは応答をクライアント デバイスに直接送信し、通信ループが完了します。

重要な注意事項

  1. ZEVENET は通常、バックエンド サーバーに代わって ARP リクエストに応答し、元のクライアント/サーバー通信を保持します。 したがって、パケットの適切なルーティングを確保するには、適切な ARP 設定が重要です。
  2. 競合を回避し、クライアントとバックエンド サーバー間の適切な通信を確保するには、IP アドレス指定スキームを慎重に計画する必要があります。 通常、L4xNAT ファームで使用される仮想 IP (VIP) と同様の IP アドレスを持つようにバックエンド サーバーを構成しますが、競合を避けるためにバックエンドは ARP 呼び出しでそれをアナウンスしない場合があります。

ネットワーク インフラストラクチャに DSR を使用する理由

DSR は、大きなボトルネックを引き起こすことなく大量のデータを処理できるため、今日のネットワーク インフラストラクチャにおいて非常に重要になっています。 ここは、大変なことなのです。 DSR が優れている主な理由は、スケーラビリティ、多用途性、高可用性、フォールト トレランスに加えて、次のような理由によるものです。

ターボチャージャーのパフォーマンス: DSR は、従来のルーティング方法によって導入された追加のホップを排除することで、遅延とパケット損失を大幅に削減します。 このセットアップは、大量のデータ チャンクを効率的に配信することが重要であるゲームやビデオ ストリーミングに使用できます。

たとえば、マルチプレイヤー ゲームでは、DSR により、ロード バランサーがすべてのデータ パケットを仲介することなく、ゲーム クライアントとゲーム サーバー間の直接通信が可能になります。 この直接通信により、プレーヤーの動き、アクション、更新などのゲーム関連データをより高速かつ効率的に送信できます。 その結果、DSR はレイテンシを短縮し、ゲーム体験を向上させ、よりスムーズなゲームプレイに貢献します。

同様に、ビデオ ストリーミングでは、クライアントがビデオ ストリームを要求すると、バックエンド サーバーはロード バランサを経由せずにビデオ データをクライアントに直接送信できます。 データ パスのロード バランサーを削除することで、潜在的なボトルネックを最小限に抑え、視聴者にシームレスなストリーミング エクスペリエンスを保証します。 これは、中断のない再生のために大きなデータ チャンクの効率的な処理が不可欠である、高品質または高解像度のビデオ コンテンツの場合に特に有益です。

oracle_jd_edwards_load_balancing_farm

ロードバランサーの負荷の軽減: DSR を使用すると、バックエンド サーバーからの戻りトラフィックを処理するロード バランサーの負担が軽減されます。 このオフロードにより、ロード バランサーの処理負荷が大幅に軽減され、受信リクエストの効率的な分散に集中できるようになります。 その結果、ロード バランサーはより大量のトラフィックを処理し、全体的なスケーラビリティが向上します。

ルーティング テーブルを維持する必要はありません。 ルーティングは、特に複数のサブネットと複雑なルーティング ポリシーを備えた大規模ネットワークでは複雑になる場合があります。 戻りトラフィック用のルーティング テーブルを維持しないことで、ロード バランサーは複雑なルーティング構成を処理および管理する必要がなくなり、構成ミスやルーティング関連の問題が発生する可能性が減ります。

Linux および Windows バックエンド サーバーの ZEVENET 構成

DSR を有効にするには、まずレイヤー 4 仮想サーバーまたは L4xNAT ファームを構成する必要があります。 読む この 作成するための記事。

DSRの要件:

  1. 仮想IP バックエンドは同じネットワーク内にある必要があります。
  2. 仮想ポート バックエンド ポートは同じである必要があります。
  3. バックエンドを構成する必要があります ループバック ロード バランサで構成された VIP と同じ IP アドレスを持つインターフェイスを無効にして、 ARP このインターフェースでは。

Linuxバックエンドサーバー

# ifconfig lo:0 192.168.0.99 netmask 255.255.255.255 -arp up

このコマンドを使用して、仮想ネットワーク インターフェイスを作成します ロー:0 IPアドレス付き 192.168.0.99 およびのサブネットマスク 255.255.255.255.

-arp flag は、このインターフェイスのアドレス解決プロトコル (ARP) を無効にします。

バックエンドでの無効な ARP 応答を無効にします。

# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

このコマンドは、arp_ignore の値を次のように設定します。 1 /proc/sys/net/ipv4/conf/all ファイル。 このパラメータは、カーネルが ARP 要求にどのように応答するかを決定します。 これを 1 に設定すると、システムはネットワーク インターフェイス上で設定されていない IP アドレスに対する ARP 要求を無視する必要があります。

# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

このコマンドは、バックエンド サーバーの arp_announce パラメータを変更します。 DSR 構成では、arp_announce を次のように設定します。 2 バックエンド サーバーが ARP 要求に応答するときに、要求の宛先 IP アドレスが ARP 応答の送信元 IP アドレスとして使用されるようにします。 これにより、クライアントはリクエストの送信先 IP アドレスからのレスポンスを受け取ることを期待するため、バックエンド サーバーとクライアント間の適切な通信が維持されます。

Windows バックエンドサーバー

  1. 開始->設定->コントロールパネル->ネットワークおよびダイヤルアップ接続.
  2. ネットワークアダプターを右クリックし、 プロパティ.
  3. のみ インターネットプロトコル を選択する必要があります (「MS ネットワーク用クライアント」と「ファイルとプリンターの共有」の選択を解除します)
  4. TCP/IP プロパティ-> ZEVENET ADC ファームの VIP の IP アドレスを入力します。 デフォルトゲートウェイはオプションです。 マスクを入力してください 255.255.255.255
  5. インターフェイスメトリックを次のように設定します 254。 この設定は、VIP への ARP 応答への応答を停止するために必要です。
  6. イベント OK 変更を保存します。

その後、NIC インターフェイス上で ZEVNET ADC からのトラフィックを受け入れるようにホスト セキュリティ モデルを構成します。 さらに、ZEVENET ADC がデフォルトの NIC インターフェイスを介してトラフィックを送受信できるようにします。 管理者として CMD を開き、提供されている XNUMX つのコマンドを実行します。

netsh interface ipv4 set interface NIC weakhostreceive=enabled
netsh interface ipv4 set interface loopback weakhostreceive=enabled
netsh interface ipv4 set interface loopback weakhostsend=enabled

重要な注意事項
NIC を変更し、Windows コンピュータのデフォルトのインターフェイス名にループバックします。

DSR 使用の課題

ダイレクト サーバー リターン (DSR) には多くの利点がありますが、場合によっては、組織が検討して対処する必要がある潜在的な課題を引き起こす可能性があります。 これらの課題を理解することは、DSR を効果的に計画し実装するのに役立ちます。 DSR に関連する一般的な課題をいくつか示します。

非対称ルーティング: これは、往路と復路が異なるルートをたどることを意味します。 これには利点があるかもしれませんが、トラフィック フローが対称ではないため、非対称ルーティングにはネットワークのトラブルシューティングと監視が複雑になる可能性があります。

サーバーの互換性: すべてのサーバーがすべての種類のアプリケーションで DSR をサポートするわけではありません。 たとえば、ZEVENET を使用する場合、Linux サーバーまたは Windows サーバーでのみ DSR を実行できます。

ステートフルオペレーション: セッション情報の維持に依存するステートフルな操作の場合、DSR は課題を引き起こす可能性があります。 他の NAT タイプを使用する場合、ロード バランサーはあらゆる形式のセッション永続性を処理しますが、DSR を使用すると、直接ルーティングがこれらの仲介者をバイパスします。 これを回避する 4 つの方法は、セッションの永続性のためにレイヤー 7 でソース IP アドレスを使用し、レイヤー XNUMX で Cookie Insert を使用することです。

ネットワークの可視性と監視: DSR は、トラフィックがロード バランサーやリバース プロキシをバイパスするため、ネットワークの可視性と監視に影響を与える可能性があります。 これらの仲介者によるトラフィック検査や傍受に依存する監視ツールやシステムは、ネットワーク トラフィックの全体像を把握できない可能性があります。 組織は、DSR パスを通過するトラフィックの可視性を確保するために、代替の監視ソリューションを実装する場合があります。

導入の複雑さ: DSR を実装すると、展開および構成中にさらに複雑さが生じる可能性があります。 適切な計画、設計、テストは、スムーズな実装を保証するために非常に重要です。 たとえば、SSL オフロードとログ記録を実行するように各バックエンド サーバーを設定する必要がある場合があります。

セキュリティに関する考慮事項: DSR は、特にトラフィックがロード バランサーに実装されているセキュリティ対策を直接バイパスする場合に、セキュリティの問題を引き起こす可能性があります。 場合によっては、応答ヘッダーの詳細を変更する必要がある場合がありますが、DSR セットアップではこれは不可能です。

これらの課題に積極的に対処することで、組織は DSR を正常に実装し、潜在的な欠点を最小限に抑えながらその利点を活用できます。

結論

Direct Server Return (DSR) は、インフラストラクチャを強化して大きな利点をもたらす可能性を備えた魅力的な負荷分散アプローチを提供します。 DSR は、バックエンド サーバーからの戻りトラフィックをオフロードし、応答をクライアントに直接送信できるようにすることで、ロード バランサーの負荷を軽減し、システム全体のスケーラビリティを向上させます。

もう XNUMX つの利点は、応答がロード バランサーをバイパスしてクライアントへのより直接的なパスを通るため、ネットワーク遅延が短縮されることです。 これは、遅延に敏感なアプリケーションにとって特に有利であり、コンテンツのより高速な配信とユーザー エクスペリエンスの向上が保証されます。

ただし、DSR を実装する前に、ネットワーク アーキテクチャの特定の要件とアプリケーションのニーズを慎重に評価してください。 ネットワーク トポロジ、ルーティング プロトコル、セッション永続性の必要性、および関連する潜在的な課題などの要素を考慮します。

DSR の利点を活用することで、インフラストラクチャを最適化して増加するトラフィック負荷に対処し、シームレスなユーザー エクスペリエンスを提供できます。

上の共有:

GNU Free Documentation Licenseの条項に基づくドキュメンテーション。

この記事は役に立ちましたか?

関連記事