ADC

ドメインネームシステム

注: リリース13.0ビルド41.x以降、ADNSおよびプロキシモードのCitrix ADCアプライアンスは、2019年のDNSフラグに完全に準拠しています。

Citrix ADCアプライアンスは、ドメインの権限のあるドメインネームサーバー(ADNSサーバー)として機能するように構成できます。アプライアンスが権限を持つドメインに属する DNS リソースレコードを追加し、リソースレコードパラメータを設定します。ネットワーク内またはネットワーク外にある DNS ネームサーバーのファームをロードバランシングするプロキシ DNS サーバーとしてアプライアンスを構成することもできます。アプライアンスをエンドリゾルバおよびフォワーダとして設定します。完全修飾ドメイン名が構成されていない場合、名前解決を有効にする DNS サフィックスを構成できます。アプライアンスは、ドメインに属するすべてのレコードを取得する DNS ANY クエリもサポートしています。

アプライアンスは、あるドメインの権限のあるDNSサーバーとして同時に機能し、別のドメインのDNSプロキシサーバーとして同時に機能するように構成できます。アプライアンスをゾーンの権限のあるDNSサーバーまたはDNSプロキシサーバーとして構成すると、ユーザーデータグラムプロトコル(UDP)に指定されたサイズ制限を超える応答サイズに対してTCPを使用できるようになります。

DNSがCitrix ADCでどのように動作するか

Citrix ADCアプライアンスは、ADNSサーバー、DNSプロキシサーバー、エンドリゾルバ、フォワーダとして機能するように構成できます。Citrix ADCアプライアンスでは、次のレコードを含むDNSリソースレコードを追加できます。

  • サービス(SRV)レコード
  • IPv6(AAAA)レコード
  • アドレス(A)レコード
  • メール交換 (MX) レコード
  • 正規名 (CNAME) レコード
  • ポインタ (PTR) レコード
  • 権限の開始 (SOA) レコード
  • テキスト (TXT) レコード

また、外部DNSネームサーバーの負荷分散を行うようにCitrix ADCを構成することもできます。

Citrix ADCアプライアンスは、ドメインの権限として構成できます。ドメインの有効な SOA レコードと NS レコードを追加します。

ADNS サーバーは、ゾーンに関する完全な情報を含む DNS サーバーです。

Citrix ADC アプライアンスをゾーンの ADNS サーバーとして構成するには、ADNS サービスを追加し、ゾーンを構成する必要があります。これを行うには、ドメインの有効な SOA レコードと NS レコードを追加します。クライアントがDNSリクエストを送信すると、Citrix ADCアプライアンスは構成されたリソースレコードでドメイン名を検索します。Citrix ADC グローバルサーバー負荷分散 (GSLB) 機能と共に使用するように ADNS サービスを構成できます。

サブドメインの NS レコードを親ドメインのゾーンに追加することで、サブドメインを委任できます。その後、サブドメインネームサーバーごとに「グルーレコード」を追加することで、Citrix ADCにサブドメインに対する権限を付与できます。GSLBが構成されている場合、Citrix ADCはその構成に基づいてGSLBの負荷分散を決定し、選択した仮想サーバーのIPアドレスで応答します。次の図は、ADNS GSLB セットアップと DNS プロキシセットアップのエンティティを示しています。

図1:DNS プロキシエンティティモデル

DNS エンティティモデル

Citrix ADCアプライアンスは、DNSプロキシとして機能できます。DNS プロキシの重要な機能である DNS レコードのキャッシュは、Citrix ADC アプライアンスでデフォルトで有効になっています。キャッシングにより、Citrix ADCアプライアンスは、翻訳を繰り返すための迅速な応答を提供できます。負荷分散の DNS 仮想サーバーと DNS サービスを作成し、これらのサービスを仮想サーバーにバインドします。

Citrix ADCには、キャッシュされたデータの存続期間を構成するための最小有効期間(TTL)と最大TTLの2つのオプションがあります。キャッシュされたデータは、これら 2 つのオプションの設定で指定されたとおりにタイムアウトします。Citrix ADCは、サーバーから送信されるDNSレコードのTTLをチェックします。TTL が設定された最小 TTL より小さい場合は、設定された最小 TTL に置き換えられます。TTL が設定された最大 TTL より大きい場合は、設定された最大 TTL に置き換えられます。

Citrix ADCでは、ドメインに対する否定的な応答をキャッシュすることもできます。否定的な応答は、要求されたドメインに関する情報が存在しないか、サーバーがクエリに対する応答を提供できないことを示します。この情報の保存は、 ネガティブキャッシングと呼ばれます。ネガティブキャッシュは、ドメイン上のクエリへの応答を高速化するのに役立ちます。また、オプションでレコードタイプを指定することもできます。

負の応答は、次のいずれかになります。

  • NXDOMAINエラーメッセージ-ローカルキャッシュに負の応答がある場合、Citrix ADCはエラーメッセージ(NXDOMAIN)を返します。応答がローカルキャッシュにない場合、クエリはサーバーに転送され、サーバーはCitrix ADCにNXDOMAINエラーを返します。Citrix ADCは応答をローカルにキャッシュし、エラーメッセージをクライアントに返します。
  • NODATAエラーメッセージ-Citrix ADCは、クエリ内のドメイン名が有効であるが、指定された種類のレコードが利用できない場合、NODATAエラーメッセージを送信します。

Citrix ADCは、DNSリクエストの再帰的な解決をサポートしています。再帰的な解決では、リゾルバ(DNSクライアント)はドメイン名の再帰クエリをネーム・サーバに送信します。照会されたネームサーバーがドメインに対して権限を持つ場合、要求されたドメイン名で応答します。それ以外の場合、Citrix ADCは、要求されたドメイン名が見つかるまで、ネームサーバーを再帰的に照会します。

再帰クエリオプションを適用する前に、まず再帰クエリオプションを有効にする必要があります。DNS ルックアップが失敗した場合に、DNS リゾルバーが解決要求 (DNS 再試行) を送信する必要がある回数も設定できます。

Citrix ADCをDNSフォワーダーとして構成できます。フォワーダは DNS 要求を外部ネームサーバに渡します。Citrix ADCでは、外部ネームサーバーを追加したり、ネットワーク外のドメインの名前解決を行えます。Citrix ADCでは、名前検索の優先順位をDNSまたはWindowsインターネットネームサービス(WINS)に設定することもできます。

ADCアプライアンスがDNSを使用してホスト名をそれぞれのIPアドレスに解決できるようにする

注: アプライアンスのコマンドラインインターフェイス(CLI)にアクセスするには、SSH ユーティリティが必要です。

デフォルトでは、ADCアプライアンスはホスト名をそれぞれのIPアドレスに解決できません。アプライアンスで名前解決を有効にするには、次のタスクを実行します。

  1. ネームサーバを定義します。
  2. DNS サフィックスを定義します。

注意事項

CLI から DNS ルックアップを実行します。FreeBSDオペレーティングシステムのシェルプロンプトからのDNSルックアップは、 /etc/resolv.conf ファイルは127.0.0.2のIPアドレスを指しています。

次のコマンドは、アプライアンスの CLI では使用できません。

-  host
-  dig
-  getent/MIP
-  nslookup
<!--NeedCopy-->

アプライアンスが SNIP アドレスで DNS サーバに ping を実行できない場合、サーバのステータスは down と表示されます。アプライアンスがファイアウォールの内側にある場合、ping の成功は重要です。

CLI構成

コマンドプロンプトで入力します。

add dns nameServer <Name_Server_IP_Address>
add dns suffix <DNS_Suffix>
<!--NeedCopy-->

構成を確認するには、次のように入力します。

show dns nameServer
show dns suffix
<!--NeedCopy-->

DNS 解決をテストするには、次のように入力します。

show dns addrec <Host_Name>
<!--NeedCopy-->

GUI構成

  1. [トラフィック管理] > [DNS] > [ネームサーバー] > [追加]に移動します。
  2. [ネームサーバの作成] ダイアログボックスで、ネームサーバの IP アドレスを入力し、[作成] をクリックします。
  3. [トラフィック管理] > [DNS] > [DNS サフィックス] > [追加]に移動します。
  4. [DNS サフィックスの作成] ダイアログボックスで、すべてのホストクエリに使用する DNS サフィックス(example.com など)を入力し、[作成] をクリックします。

ラウンドロビンDNS

クライアントは DNS リソースレコードを検索する DNS 要求を送信すると、DNS 要求内の名前に解決する IP アドレスの一覧を受信します。次に、クライアントはリスト内の IP アドレスのいずれか(通常は最初のレコードまたは IP アドレス)を使用します。したがって、単一のサーバーがキャッシュの合計TTLに使用され、多くの要求が到着したときに過負荷になります。

Citrix ADCは、DNS要求を受信すると、ラウンドロビン方式でDNSリソースレコードのリストの順序を変更することで応答します。この機能は、 ラウンドロビン DNSと呼ばれます。ラウンドロビンは、トラフィックをデータセンター間で均等に分散します。Citrix ADCはこの機能を自動的に実行します。この動作を構成する必要はありません。

機能の概要

Citrix ADC が ADNS サーバーとして構成されている場合、レコードが構成されている順序で DNS レコードが返されます。Citrix ADCがDNSプロキシとして構成されている場合、サーバーからレコードを受信した順序でDNSレコードを返します。キャッシュに存在するレコードの順序は、サーバーからレコードを受信する順序と一致します。

次に、Citrix ADCは、ラウンドロビン方式でDNS応答でレコードが送信される順序を変更します。最初の応答にはシーケンス内の最初のレコードが含まれ、2 番目の応答にはシーケンス内の 2 番目のレコードが含まれ、順序は同じシーケンスで継続されます。したがって、同じ名前を要求するクライアントは、異なる IP アドレスに接続できます。

ラウンドロビン DNS の例

ラウンドロビン DNS の例として、次のように追加された DNS レコードについて考えます。

  add dns addRec ns1 1.1.1.1  add dns addRec ns1 1.1.1.2  add dns addRec ns1 1.1.1.3  add dns addRec ns1 1.1.1.4
<!--NeedCopy-->

ドメイン abc.com は、次のようにNSレコードにリンクされています。

  add dns nsrec abc.com. ns1
<!--NeedCopy-->

Citrix ADCがns1のAレコードのクエリを受信すると、アドレスレコードは次のようにラウンドロビン方式で提供されます。最初の DNS 応答では、1.1.1.1 が最初のレコードとして提供されます。

  ns1.                    1H IN A         1.1.1.1  ns1.                    1H IN A         1.1.1.2  ns1.                    1H IN A         1.1.1.3  ns1.                    1H IN A         1.1.1.4
<!--NeedCopy-->

2 番目の DNS 応答では、2 番目の IP アドレス 1.1.1.2 が最初のレコードとして提供されます。

  ns1.                    1H IN A         1.1.1.2  ns1.                    1H IN A         1.1.1.3  ns1.                    1H IN A         1.1.1.4  ns1.                    1H IN A         1.1.1.1
<!--NeedCopy-->

3 番目の DNS 応答では、3 番目の IP アドレス 1.1.1.2 が最初のレコードとして提供されます。

  ns1.                    1H IN A         1.1.1.3  ns1.                    1H IN A         1.1.1.4  ns1.                    1H IN A         1.1.1.1  ns1.                    1H IN A         1.1.1.2
<!--NeedCopy-->
ドメインネームシステム