ADC

DNS ログを構成する

Citrix ADCアプライアンスは、処理するDNS要求と応答を記録するように構成できます。アプライアンスは、DNS 要求と応答を SYSLOG 形式で記録します。DNS 要求または DNS 応答、またはその両方をログに記録し、syslog メッセージをリモートログサーバに送信するように選択できます。ログメッセージは、次の目的で使用できます。

  • クライアントに対する DNS 応答の監査
  • DNS クライアントの監査
  • DNS 攻撃の検出と防止
  • トラブルシューティング

Citrix ADCアプライアンスは、構成に基づいて、DNS要求または応答に次のセクションを記録できます。

  • ヘッダーセクション
  • 質問セクション
  • 回答セクション
  • 権限セクション
  • 追加 セクション

DNSプロファイル

DNSプロファイルを使用して、DNSエンドポイントがDNSトラフィックに適用するさまざまなDNSパラメーターを構成できます。プロファイルでは、ロギング、キャッシング、およびネガティブキャッシングを有効にできます。

重要: NetScaler 11.0リリース以降、グローバルDNSパラメーターを使用したDNSキャッシュの有効化は非推奨になりました。DNS プロファイルを使用して、DNS キャッシュを有効または無効にできます。DNS プロファイルで DNS キャッシュを有効にし、DNS プロファイルを個々の仮想サーバーに設定することで、個々の仮想サーバーの DNS キャッシュを有効にできるようになりました。

DNS プロファイルは、次の種類の DNS ログをサポートしています。

  • DNS クエリーロギング
  • DNS 応答セクションのロギング
  • DNS 拡張ロギング
  • DNS エラーロギング

DNS クエリーロギング

Citrix ADCアプライアンスは、アプライアンス上のDNSエンドポイントが受信したDNSクエリのみをログに記録するように構成できます。

: クエリの処理中にエラーが発生した場合、DNS プロファイルでこのオプションが設定されていると、エラーがログに記録されます。

次に、クエリログメッセージの例を示します。

DNS DNS_QUERY 143 0 :  U:10.102.27.70#61297:10.102.27.73#53/22142/Q/
(RD)/NO/1/0/0/0#test.com./1#
<!--NeedCopy-->

DNS 応答セクションロギング

アプライアンスがクライアントに送信するDNS応答のすべての 回答 セクションをログに記録するようにCitrix ADCアプライアンスを構成できます。DNS Answer Sectionロギングは、Citrix ADCがDNSリゾルバーとして構成されている場合、またはGLSBのユースケースで役立ちます。

DNS 応答セクションログの例を次に示します。

DNS DNS_RESPONSE 6678 0 :  U:100.100.100.210#32776:100.100.100.10#
53/61373/Q/(RD,AA,RA,R)/NO/1/1/2/4#n1.citrix.com1./
28#ANS#AAAA/120/1111:2345:6789:ffab:abcd:effa:1234:3212##
<!--NeedCopy-->

DNS 拡張ロギング

DNS応答の権限セクションと 追加 セクションをログに記録するようにCitrix ADCアプライアンスを構成するには、応答セクションログを使用して拡張ログを有効にします。

: クエリまたは応答の処理中にエラーが発生した場合、DNS プロファイルでこのオプションが設定されていると、エラーがログに記録されます。

次に、キャッシュルックアップが完了し、応答がパケットに埋め込まれているときにログに記録されるメッセージの例を示します。

DNS DNS_RESPONSE 2252 0 :  T:100.100.100.118#21411:100.100.100.10
#53/48537/Q/(RD,AA,CD,RA,R)/NO/1/1/2/6#a1.citrix.com1./1#ANS#A/
120/1.1.1.1##AUTH#citrix.com1/NS/120/n2.citrix.com1#n1.citrix.com1##ADD#n1.citrix.com1
/A/120/1.1.1.1#1.1.1.2##n1.citrix.com1/AAAA/120/
1111:2345:6789:ffab:abcd:effa:1234:3212##n2.citrix.com1/A/120/2.1.1.2
##n2.citrix.com1/AAAA/120/2222:faff:3212:8976:123:1241:64:ff9b##OPT/0/1280/DO##
<!--NeedCopy-->

DNS エラーログ

Citrix ADCアプライアンスは、DNSクエリまたは応答を処理するときに発生するエラーまたは障害をログに記録するように構成できます。これらのエラーの場合、アプライアンスはDNSヘッダー、 質問 セクション、およびOPTレコードをログに記録します。

次に、DNS 要求または応答の処理中にエラーが発生したときに記録されるメッセージの例を示します。

DNS DNS_ERROR 149 0 :  U:10.102.27.70#27832:10.102.27.73#53/61153/Q/
(RD)/NO/1/0/0/0#test.com./1140#Packet Dropped
<!--NeedCopy-->

ポリシーベースのロギング

DNS ポリシー、書き換え、またはレスポンダーポリシーで logAction を構成することで、DNS 式に基づいてカスタムログを構成できます。特定の DNS ポリシーが true と評価された場合にのみロギングが行われるように指定できます。詳細については、「 DNS のポリシーベースのログを構成する」を参照してください。

Citrix ADC Syslog ログメッセージの形式を理解する

Citrix ADCアプライアンスは、DNS要求と応答を次のSyslog形式で記録します。

<transport> :<client IP>#<client ephemeral port>:<DNS endpoint IP>#<port>
 : <query id> /opcode/header flags/rcode/question section count/answer section count
/ auth section count / additional section count #<queried domain name>
/<queried type>#...
<!--NeedCopy-->
  • <transport>:
    • T = TCP
    • U = UDP
  • <client IP>#< client ephemeral port >: DNS クライアントの IP アドレスとポート番号

  • <DNS endpoint IP># <port>: Citrix ADC DNS エンドポイントの IP アドレスとポート番号

  • <query id>: クエリ ID

  • <opcode>:作業コード。サポートされる値:

    • Q: クエリ
    • I: 逆クエリ
    • S: ステータス
    • X0: 未割り当て
    • N: 通知する
    • U: 更新
    • X1-10: 未割り当ての値
  • <header flags>: フラグ。サポートされる値:

    • RD:再帰が必要
    • TC:切り捨て
    • AA:信頼できる対応
    • CD:チェックが無効
    • AD:認証されたデータ
    • Z: 未割り当て
    • RA:再帰が利用可能
    • R: 応答
  • <rcode>: 応答コード。サポートされる値:

    • いいえ:エラーなし
    • F フォーマットエラー
    • S: サーバー障害
    • NX:存在しないドメイン
    • NI:実装されていません
    • R: クエリが拒否されました
    • YX:名前は存在してはならないときに存在します
    • YXR:RRセットは存在してはならないときに存在します
    • NXR:存在しなければならないRRセットは存在しません
    • NAS:サーバーはゾーンに対して権限がありません
    • NA:許可されていません
    • NZ:名前がゾーンに含まれていません
    • X1-5: 未割り当て
  • /questionセクション count/answer セクション count/auth セクション count/additional セクション数: DNS要求の質問セクション、権限セクション数、および 追加 セクション数

  • <queried domain name>/ <queried type>:DNS 要求でクエリされたドメインとクエリされたタイプ

  • #ANS # <record type>/<ttl> /.. #AUTH # <domain name>/<record type>/<ttl>.. #ADD #<domain name>/<record type>/<ttl>…:

    DNS応答の場合:

    DNS プロファイルで応答セクションのログが有効になっている場合は、応答セクションがログに記録されます。DNSプロファイルで拡張ログが有効になっている場合、権限セクションと 追加 セクションがログに記録されます。ログ形式は、レコードの種類によって異なります。詳細については、「レコードログ形式について」を参照してください。

    • ANS: 回答セクション
    • 自動:権限
    • 追加: 追加 セクション
  • OPT/<edns version>/UDP max payload size/DO: DNS ログの OPT レコード形式

  • OPT/<EDNS version>/<UDP payload size>/<“DO”or empty based on whether DNSSEC OK bit is set or not>/<value of RDLEN>/ECS/<Q/R>/<option length>/<Family>/<Source Prefix-Length>/<Scope Prefix-Length>/<ECS Address>:

    DNS クエリまたは応答に EDNS クライアントサブネット (ECS) オプションが含まれている場合は、OPT レコード形式で DNS ログファイルに記録されます。

    IPv4またはIPv6アドレスのいずれかを含むECSオプションを使用したDNSクエリが送信されると、ECSオプションは次のいずれかのオプションでログに記録されます。

    • “ECS/Q” ログの値がクエリからのものであることを示します
    • “ECS/R” ログの値が応答からのものであることを示します。

    [スコーププレフィックス-長さ] の値も適切に設定されます。DNSクエリではゼロに設定され、応答の場合は計算値に設定されます。

    次の表では、さまざまなシナリオでログに記録される詳細について説明します。

シナリオ DNS クエリに設定された ECS オプション DNS 応答に設定された ECS オプション ログに記録された詳細
クエリー・ロギングと拡張ロギングの両方が有効になっている はい はい ECS オプションは、文字列「ECS/R/」でログに記録され、スコーププレフィックス-長さが計算された値に設定されます。
クエリー・ロギングと拡張ロギングの両方が有効になっている はい いいえ ECS オプションは、文字列「ECS/Q」でログに記録され、スコーププレフィクス-長さがゼロに設定されます。
クエリー・ロギングは有効だが、拡張ロギングは有効にならない はい はい ECS オプションは、文字列「ECS/Q/」でログに記録され、スコーププレフィクス-長さがゼロに設定されます。
クエリログと拡張ログが有効になっていません はい はい ECS オプションはログに記録されません。
クエリー・ロギングは有効だが、拡張ロギングは有効にならない はい いいえ ECS オプションは、文字列「ECS/Q/」でログに記録され、スコーププレフィクス-長さがゼロに設定されます。
クエリー・ロギングは有効になっていないが、拡張ロギングは有効になっている はい はい ECS オプションは、文字列「ECS/R/」でログに記録され、スコーププレフィックス-長さが計算された値に設定されます。
クエリー・ロギングは有効になっていないが、拡張ロギングは有効になっている はい いいえ ECS オプションはログに記録されません。

レコードロギング形式を理解する

次に、Syslog メッセージのレコードロギング形式の例を示します。

<domainname>/<record type>/ <record ttl> / <resource record data>#<resource record data>#......##
<!--NeedCopy-->

各項目の意味は次のとおりです:

レコードタイプ サンプル形式 リソースレコードデータ/形式
Address (A) レコード A/5/1.1.1.1#1.1.1.2#1.1.1.3## IPv4アドレス
AAAAレコード AAAA/5/1::1#1::2#1::3## IPv6アドレス
SOAレコード SOA/3600/ns1.dnslogging.test./root.dnslogging.test./100/3600/3/3600/5## 元のサーバー、連絡先、およびその他の詳細。リソースレコードの形式://////// ##
NSレコード NS/5/ns1.dnslogging.test ネームサーバーのホスト名。
MXレコード #MX/5/10/host1.dnslogging.test.#11/host2.dnslogging.test.## 優先設定に続いてメール交換サーバーのホスト名
CNAME レコードロギング CNAME/5/host1.dnslogging.test.## 標準名
SRVレコード SRV/5/1/2/3/host1.dnslogging.test.#4/5/6/host2.dnslogging.test.## リソースレコード形式://// #
TXTレコード TXT/5/dns+logging## データは、すべてのテキストを含みます。
NAPTRレコード NAPTR/5/10/11////dnslogging#20/21/R/SIP//sip.dnslogging.test## リソースレコード形式://///// #
DNSKEYレコード DNSKEY/5/1/3/5/AwEAAanP0K+i5bfv5SU478L760EjDjnPqI2Ccx6JZgiDBZhSONP29GfO2bkP056xp7+9Wz8X2oo5sANaDwSzUVR0YtZdPw23gAaktH6pFvnwcIHa/PTFw5VcXyiUaDc+AnaOhNNYOPp7iQ6uTdT9cyuGWJ1OfZ0JRt+8EyX6iwRsLk7WSpz8KidvKs2ij9IXZ3OzaVEEMGY4SMfHIlLhqIho1fyADlbAoSsLEbr/7eqKv1/PLXSuVV9elwkH0pqWALUaSEBbmp49/jbCbc8cZKxzaON9p2jp2j4iodfC8cnEHAS2/4W1FEPpRTyYtcdBq6Uc2orBaaxjhsZELvRcWMr+pDc=#1/3/5/AwEAAbJhKdI21LP0pPxv0k1pFBNClZW97TB4FlCW4e4Fuyq7rY7+aiYdDVxV8N9ZXt4RT3MdNznMVMl/R1ldWLjbCf5bFu9khaM1ME8I25HPTS3J2wK5rjj4HMFRMycUKZCK0UOgyUzd6Fm5b3G04wMIAoqkDHeqlwe7yWGaw94NbZuL## リソースレコード形式://// #
PTRレコード PTR/3600/test.com.#test4.com.## ドメイン名

DNS ログ記録の制限

DNS ログには、次の制限があります。

  • 応答ロギングが有効な場合、次のレコードタイプのみがログに記録されます。

    • Address (A) レコード
    • AAAAレコード
    • SOAレコード
    • NSレコード
    • MXレコード
    • CNAMEレコード
    • SRVレコード
    • TXTレコード
    • NAPTRレコード
    • DNSKEYレコード
    • PTRレコード

    他のすべてのレコードタイプでは、L3/L4 パラメータ、DNS ヘッダー、および質問セクションのみがログに記録されます。

  • RRSIG レコードは、応答ロギングが有効になっている場合でもログに記録されません。

  • DNS64 はサポートされていません。

  • DNS プロアクティブ更新要求または応答は、既定のプロファイルの設定に従ってログに記録されます。

  • 仮想サーバーで、セッションレスオプションおよび応答ロギングが有効になっている場合、応答ではなく L3/L4 パラメータ、DNS ヘッダー、および DNS クエスチョンセクションがログに記録されます。

  • syslog メッセージの最大サイズは 1024 バイトです。

  • アクションタイプRewriteResponseでDNSポリシーのDNSプロファイルを設定した場合、Citrix ADCアプライアンスはクエリまたは操作された応答をログに記録しません。必要な情報をログに記録するには、DNSポリシーで監査メッセージアクションを使用する必要があります。

  • DNS 監視トラフィックが原因の DNS トランザクションはログに記録されません。

DNS ロギングの設定

DNS ロギングの設定の概要を次に示します。

  1. Syslog アクションを作成し、アクションで DNS を有効にします。
  2. Syslog ポリシーを作成し、ポリシーで Syslog アクションを指定します。
  3. Syslogポリシーをグローバルにバインドして、すべてのCitrix ADCシステムイベントのログを有効にします。または、特定の負荷分散仮想サーバーに Syslog ポリシーをバインドします。
  4. DNSプロファイルを作成し、有効にする次のタイプのログのいずれかを定義します。
    • DNS クエリーロギング
    • DNS 応答セクションのロギング
    • DNS 拡張ロギング
    • DNS エラーロギング
  5. 要件に応じて、次のいずれかを設定します。
    • DNS サービスおよび DNS 用の仮想サーバー
    • ADNS サービス
    • フォワーダとしての Citrix ADC
    • リゾルバとしてのCitrix ADC
  6. 作成した DNS プロファイルを DNS エンティティの 1 つに設定します。

CLIを使用してDNSプロキシとして構成されたCitrix ADC DNSログを構成する

  1. syslog アクションを追加し、アクションで DNS を有効にします。コマンドプロンプトで入力します。

    add audit syslogAction <name> (<serverIP> | -lbVserverName <string>) [-serverPort <port>] -logLevel <logLevel> ... [-dateFormat <dateFormat>] [-logFacility <logFacility>] [-tcp ( NONE | ALL )] [-acl ( ENABLED | DISABLED )] [-timeZone ( GMT_TIME | LOCAL_TIME )] [-userDefinedAuditlog ( YES | NO )] [-appflowExport ( ENABLED |DISABLED )] [-lsn ( ENABLED | DISABLED )] [-alg ( ENABLED | DISABLED )] [-transport ( TCP | UDP )] [-tcpProfileName <string>] [-maxLogDataSizeToHold <positive_integer>] [-dns ( ENABLED | DISABLED)]
    <!--NeedCopy-->
    

    :

    add audit syslogAction nssyslogact1 10.102.151.136 -logLevel CRITICAL ERROR WARNING NOTICE INFORMATIONAL DEBUG -logFacility LOCAL4 -timeZone LOCAL_TIME -dns ENABLED

  2. syslog ポリシーを作成し、作成した syslog アクションをポリシー内で指定します。コマンドプロンプトで入力します。

    add audit syslogPolicy <name> <rule> <action>

    :

    add audit syslogPolicy syslogpol1 ns_true nssyslogact1

  3. syslog ポリシーをグローバルにバインドします。コマンドプロンプトで入力します。

    bind system global [<policyName> [-priority <positive_integer>]]

    :

    bind system global syslogpol1

  4. DNS プロファイルを作成し、構成する次の種類のログのいずれかを有効にします。

    • DNS クエリーロギング
    • DNS 応答セクションのロギング
    • DNS 拡張ロギング
    • DNS エラーロギング

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

    add dns profile <dnsProfileName> [-dnsQueryLogging ( ENABLED | DISABLED )] [-dnsAnswerSecLogging ( ENABLED | DISABLED )] [-dnsExtendedLogging (ENABLED | DISABLED )] [-dnsErrorLogging ( ENABLED | DISABLED )] [-cacheRecords ( ENABLED | DISABLED )] [-cacheNegativeResponses ( ENABLED | DISABLED )]

    :

    add dns profile dnsprofile1 -dnsQueryLogging ENABLED

  5. DNS タイプのサービスを構成します。コマンドプロンプトで入力します。

    add service <name> <serverName> <serviceType> <port>

    :

    add service svc1 10.102.84.140 dns 53

  6. サービスタイプ DNS の負荷分散仮想サーバーを構成します。

    add lb vserver <name> <serviceType> <ip> <port>

    :

    add lb vserver lb1 dns 100.100.100.10 53

  7. サービスを仮想サーバーにバインドします。コマンドプロンプトで入力します。

    bind lb vserver <name> <serviceName>

    :

    bind lb vserver lb1 svc1

  8. 作成した DNS プロファイルを仮想サーバーに設定します。コマンドプロンプトで入力します。

    set lb vserver <name> [ - dnsProfileName <string>]

    :

    set lb vserver lb1 –dnsProfileName dnsprofile1

DNSプロキシとして構成されたCitrix ADCアプライアンスのDNSログ設定例

> add audit syslogAction nssyslogact1 10.102.151.136 -logLevel
CRITICAL ERROR WARNING NOTICE INFORMATIONAL DEBUG -logFacility LOCAL4 -timeZone
LOCAL_TIME -dns ENABLED
Done
> add audit syslogPolicy syslogpol1 ns_true nssyslogact1
Done
> bind system global syslogpol1
Done
> add dns profile dnsprofile1 -dnsqueryLogging ENABLED
Done
> add lb vserver lb1 dns 100.100.100.10 53 –dnsProfileName dnsprofile1
Done
> add service svc1 10.102.84.140 dns 53
Done
> bind lb vserver lb1 svc1
Done
<!--NeedCopy-->

ADNSとして構成されたCitrix ADCアプライアンスのDNSログ構成例

> add audit syslogAction nssyslogact1 10.102.151.136 -logLevel CRITICAL
ERROR WARNING NOTICE INFORMATIONAL DEBUG -logFacility LOCAL4 -timeZone LOCAL_TIME
-dns ENABLED
Done
> add audit syslogPolicy syslogpol1 ns_true nssyslogact1
Done
> bind system global syslogpol1
Done
> add dns profile dnsprofile1 -dnsqueryLogging ENABLED
Done
> add lb vserver lb1 dns 100.100.100.10 53 –dnsProfileName dnsprofile1
Done
> add service svc1 10.102.84.140 dns 53
Done
> bind lb vserver lb1 svc1
Done
<!--NeedCopy-->

フォワーダーとして構成されたCitrix ADCアプライアンスのDNSログ設定の例

> add audit syslogAction nssyslogact1 10.102.151.136 -logLevel CRITICAL
ERROR WARNING NOTICE INFORMATIONAL DEBUG -logFacility LOCAL4 -timeZone LOCAL_TIME
-dns ENABLED
Done
> add audit syslogPolicy syslogpol1 ns_true nssyslogact1
Done
> bind system global syslogpol1
Done
> add dns profile dnsprofile1 -dnsqueryLogging ENABLED
Done
> add dns nameserver 8.8.8.8 –dnsProfileName dnsprofile1
Done
<!--NeedCopy-->

リゾルバーとして構成されたCitrix ADCアプライアンスのDNSロギング構成の例

> add audit syslogAction nssyslogact1 10.102.151.136
-logLevel CRITICAL ERROR WARNING NOTICE INFORMATIONAL DEBUG -logFacility LOCAL4
-timeZone LOCAL_TIME -dns ENABLED
Done
> add audit syslogPolicy syslogpol1 ns_true nssyslogact1
Done
> bind system global syslogpol1
Done
> add dns profile dnsprofile1 -dnsqueryLogging ENABLED
Done
> set dns parameter -recursion enABLED
Done
> add nameserver 1.1.1.100 -local dnsProfileName dnsprofile1
Done
<!--NeedCopy-->

DNS のポリシーベースのログ記録を構成する

ポリシーベースのロギングでは、ログメッセージの形式を指定できます。ログメッセージの内容は、デフォルトの構文式を使用して定義されます。ポリシーで指定されたメッセージアクションが実行されると、Citrix ADCアプライアンスは式からログメッセージを作成し、ログファイルにメッセージを書き込みます。特定の DNS ポリシーが True と評価された場合にのみログを記録するようにアプライアンスを設定できます。

要求側のDNSプロファイルを使用してDNSポリシーを設定した場合、Citrix ADCアプライアンスはクエリのみをログに記録します。

DNS ポリシーのポリシーベースのロギングを設定するには、まず監査メッセージアクションを設定する必要があります。監査メッセージアクションの構成の詳細については、「 監査ログ用のNetScaler アプライアンスの構成」を参照してください。監査メッセージアクションを設定したら、DNS ポリシーでメッセージアクションを指定します。

CLI を使用して DNS ポリシーのポリシーベースのログ記録を構成する

コマンドプロンプトで次のコマンドを入力して、DNS ポリシーのポリシーベースのログを構成し、構成を確認します。

-  add dns action <actionName> <actionType> [-IPAddress <ip_addr|ipv6_addr> ... | -viewName <string> | -preferredLocList <string> ...] [-TTL <secs>] [-dnsProfileName <string>]
-  set dns policy <name> [<rule>] [-actionName <string>] [-logAction <string>]
-  show dns policy [<name>]
<!--NeedCopy-->

例1:

GSLB 展開で、特定のサブネットからのクライアント要求に異なる IP アドレスで応答する場合、一般的な目的で使用される IP アドレス (内部ユーザーの IP アドレスなど) で応答するのではなく、アクションタイプを DNS ビューとして DNS ポリシーを設定できます。この場合、特定の応答を記録できるように、指定された DNS アクションで DNS ロギングを設定できます。

> add dns profile dns_prof1 -dnsqueryLogging enABLED -dnsanswerSecLogging enABLED
 Done
> add dns view dns_view1
 Done
> add dns action dns_act1 viewName -view dns_view1 –dnsprofilename dns_prof1
 Done
> add dns policy dns_pol1 "CLIENT.IP.SRC.APPLY_MASK(255.255.255.0).EQ(100.100.100.0)”
dns_act1
 Done
> bind dns global dns_pol1 100 -gotoPriorityExpression END -type REQ_DEFAULT
 Done
> bind gslb service site_1_svc -viewName dns_view1 123.1.1.1
 Done
> bind gslb service site_5_svc -view dns_view1 132.1.1.1
 Done
<!--NeedCopy-->

注: 前述の構成で、GSLB仮想サーバー(たとえば、 sampletest.com)で構成されたドメインを照会すると、サブネットのすべての内部ユーザー 100.100.100.0/24 DNSビューのIPアドレスが提供され、応答がログに記録されます。他のサブネットに対するクライアント要求はログに記録されません。

例2:

ドメイン example.comのクエリのみをログに記録する場合は、クエリログを有効にした DNS プロファイルを作成し、アクションタイプ NOOPで DNS プロファイルを DNS アクションに設定してから、DNS ポリシーを作成し、DNS アクションを設定します。次に例を示します:

>add dns profile query_logging -dnsqueryLogging ENABLED
Done
>add dns action dns_act1 NOOP -dnsprofileName query_logging
Done
>add dns policy dns_pol1 DNS.REQ.QUESTION.DOMAIN.EQ("example.com")  dns_act1
Done
<!--NeedCopy-->