動的ラウンドトリップ時間 (RTT) は、クライアントのローカル DNS サーバーとデータリソース間のネットワークの時間または遅延の尺度です。動的RTTを測定するために、NetScalerアプライアンスはクライアントのローカルDNSサーバーをプローブし、RTTメトリック情報を収集します。次に、アプライアンスはこのメトリックを使用して負荷分散を決定します。グローバルサーバー負荷分散は、ネットワークのリアルタイムの状態を監視し、RTT値が最も低いデータセンターにクライアント要求を動的に送信します。
クライアントのドメインに対するDNS要求が、そのドメインの権限のあるDNSとして構成されたNetScalerアプライアンスに届くと、アプライアンスはRTT値を使用して最もパフォーマンスの高いサイトのIPアドレスを選択し、DNS要求への応答として送信します。
NetScalerアプライアンスは、ICMPエコー要求または応答(PING)、UDP、TCPなどのさまざまなメカニズムを使用して、ローカルDNSサーバーと参加サイト間の接続のRTTメトリックを収集します。アプライアンスはまず Ping プローブを送信して RTT を決定します。ping プローブが失敗すると、DNS UDP プローブが使用されます。そのプローブにも障害が発生した場合、アプライアンスは DNS TCP プローブを使用します。
これらのメカニズムはNetScalerアプライアンスでは負荷分散モニターとして表示され、「ldns」プレフィックスが使用されているため簡単に識別できます。3 つのモニターは、デフォルトの順序で次のとおりです。
-
ldns-ping
-
ldns-dns
-
ldns-tcp
これらのモニターはアプライアンスに組み込まれており、安全なデフォルトに設定されています。ただし、アプライアンス上の他のモニターと同様にカスタマイズできます。
デフォルトの順序は、GSLB パラメータとして明示的に設定することで変更できます。たとえば、DNS UDP クエリ、PING、TCP の順に順序を設定するには、次のコマンドを入力します。
set gslb parameter -ldnsprobeOrder DNS PING TCP
カスタマイズされていない限り、NetScalerアプライアンスはポート53でUDPとTCPのプロービングを実行しますが、通常の負荷分散モニターとは異なり、プローブが成功して有効なRTT情報を提供する必要はありません。通常、障害と見なされる ICMP ポート使用不可メッセージ、TCP リセット、DNS エラー応答はすべて RTT 値の計算に使用できます。
RTT データがコンパイルされると、アプライアンスは独自のメトリック交換プロトコル (MEP) を使用して参加サイト間で RTT 値を交換します。RTTメトリックを計算した後、アプライアンスはRTT値をソートして、RTTメトリックが最良(最小)のデータセンターを特定します。
RTT情報が利用できない場合(たとえば、クライアントのローカルDNSサーバーが初めてサイトにアクセスしたときなど)、NetScalerアプライアンスはラウンドロビン方式を使用してサイトを選択し、クライアントをそのサイトに誘導します。
動的メソッドを設定するには、サイトの GSLB 仮想サーバーをダイナミック RTT 用に構成します。ローカル DNS サーバーがプローブされる間隔をデフォルト以外の値に設定することもできます。