Citrix ADC

配置DNS日志记录

您可以将Citrix ADC设备配置为记录其处理的DNS请求和响应。设备以syslog格式记录DNS请求和响应。您可以选择记录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# 

DNS答案部分日志记录

您可以配置Citrix ADC设备以记录设备发送给客户端的DNS响应中的所有答案部分。当Citrix ADC配置为DNS解析器或在GLSB用例中时,DNS答案部分日志记录非常有用。

以下是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/111:2345:6789:ffab:abcd:effa:1234:3212## 

DNS扩展日志记录

要将Citrix ADC设备配置为记录DNS响应中的授权和其他部分,请启用带有答案部分日志记录的扩展日志记录。

注意:如果在处理查询或响应过程中出现错误,则如果在DNS配置文件中设置了此选项,则会记录错误。

以下是缓存查找完成且响应嵌入到数据包中时记录的消息示例:

DNS DNS_RESPONSE 2252 0:师:100.100.100.118 # 21411:100.100.100.10 # 53/48537 / Q / (RD、AA、CD、RA、R) /不/ 1/1/2/6 # a1.citrix.com1. / 1 #和# / 120/1.1.1.1 # # AUTH # citrix.com1 / NS / 120 / n2.citrix.com1 # n1.citrix.com1 # # # n1.citrix.com1 /添加/ 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 / / 120/2.1.1.2 # # n2.citrix.com1 AAAA / 120/2222:小题大作:3212:8976:123:1241:64:ff9b # # # # OPT / 0/1280 /做< !——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 

基于策略的日志

您可以通过配置DNS策略,重写或响应程序策略上的LogAction来配置基于DNS表达式的自定义日志记录。您可以指定只有在特定DNS策略的计算结果为true时才会发生日志记录。有关更多信息,请参阅为DNS配置基于策略的日志记录

了解Citrix ADC系统日志消息格式

Citrix ADC设备以以下系统日志格式记录DNS请求和响应:

:<客户端IP>#<客户端临时端口>:#<端口>:<查询id> /opcode/header flags/rcode/问题段计数/回答段计数/ auth段计数/附加段计数#<查询域名> /<查询类型>#…<!——NeedCopy >
  • < >运输:
    • T = TCP
    • U = udp
  • #< client临时端口>:客户端IP地址地址和端口号

  • #<端口>::Citrix ADC DNS端点IP地址和端口号

  • <查询id >:查询id

  • <操作码>:操作代码。支持的值:

    • 问:查询
    • i:反向查询
    • s:状态
    • x0:未分配
    • n:通知
    • u:更新
    • x1-10:未分配的值
  • <标题>旗帜:标志。支持的值:

    • rd:需要递归
    • tc:已截断
    • aa:权威回应
    • cd:检查已禁用
    • ad:经过验证的数据
    • z:未分配
    • ra:递归可用
    • r:响应
  • < rcode >:响应代码。支持的值:

    • no:没有错误
    • F格式错误
    • s:服务器故障
    • nx:不存在的域
    • ni:尚未实施
    • r:查询被拒绝
    • yx:名称在不能存在时存在
    • YXR:RR设置在不能存在时存在
    • Nxr:必须存在的rr集不存在
    • nas:服务器不是区域的授权
    • na:未授权
    • nz:区域中未包含名称
    • x1-5:未分配
  • /问题部分计数/答案部分数/auth章节计数/其他章节数:问题部分,授权部分计数和DNS请求中的其他章节计数

  • <查询的域名>/<查询的类型>:DNS请求中的查询的域和查询的类型

  • #和# <记录类型> / < ttl > / . .#AUTH#<域名>/<记录类型>/..#ADD#<域名>/<记录类型>/

    在DNS响应中:

    如果在DNS配置文件中启用了答案部分日志记录,则会记录答案部分。如果在DNS配置文件中启用了扩展日志记录,则会记录授权和他部分。根据记录类型的不同,日志格式会有所不同。有关详细信息,请参阅了解记录日志记录格式

    • 答:答案部分
    • auth:权限
    • 添加:加部分
  • OPT//UDP最大有效负载大小/DO: dns日志中的opt记录格式

  • OPT///<“DO”或根据是否设置DNSSEC OK bit为空>/< RDLEN的值>/ECS//<选项长度>////:

    如果DNS查询或响应包含版客户端子网(ECS)选项,则该选项也会以选择记录格式记录在DNS日志文件中。

    当发送带有包含IPv4或IPv6地址的ECS选项的DNS查询时,将使用以下任一选项记录ECS选项;

    • " es / q "表示日志中的值来自查询
    • " es / r "表示日志中的值来自响应。

    范围Prefix-Length的值也进行了适当的设置。在DNS查询中,它被设置为零,对于响应,它被设置为计算出的值。

    下表介绍了各种情况下记录的详细信息:

场景 DNS查询中设置的ecs选项 DNS响应中设置的ecs选项 记录的详情
启用查询日志记录和扩展日志记录 Ecs选项使用字符串“Ecs / r /”记录,范围前缀长度设置为计算值。
启用查询日志记录和扩展日志记录 Ecs选项使用字符串“Ecs / q”记录,范围前缀长度设置为零。
查询日志记录已启用,但未启用扩展日志记录 Ecs选项使用字符串“Ecs / q /”记录,范围前缀长度设置为零。
未启用查询日志记录和扩展日志记录 Ecs选项未记录。
查询日志记录已启用,但未启用扩展日志记录 Ecs选项使用字符串“Ecs / q /”记录,范围前缀长度设置为零。
查询日志记录未启用,但启用了扩展日志记录 Ecs选项使用字符串“Ecs / r /”记录,范围前缀长度设置为计算值。
查询日志记录未启用,但启用了扩展日志记录 Ecs选项未记录。

了解记录日志记录格式

以下是Syslog消息中记录日志记录格式的示例:

/<记录类型>/<记录ttl> /<资源记录数据>#<资源记录数据>#......# # < !——NeedCopy >

其中:

记录类型 样本格式 资源记录数据/格式
地址(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 +日志# # 数据包含所有文本。
Naptr记录 NAPTR / 5/10/11 / / / / dnslogging # 20/21 / R / SIP / / sip.dnslogging.test # # 资源记录格式:////<正则表达式>/<替换字符串>#
Dnskey记录 DNSKEY / 5/1/3/5 AwEAAanP0K + i5bfv5SU478L760EjDjnPqI2Ccx6JZgiDBZhSONP29GfO2bkP056xp7 + 9 wz8x2oo5sanadwszuvr0ytzdpw23gaakth6pfvnwciha / PTFw5VcXyiUaDc + AnaOhNNYOPp7iQ6uTdT9cyuGWJ1OfZ0JRt + 8 eyx6iwrslk7wspz8kidvks2ij9ixz3ozaveemgy4smfhillhqiho1fyadlbaosslebr / 7 eqkv1 / PLXSuVV9elwkH0pqWALUaSEBbmp49 / jbCbc8cZKxzaON9p2jp2j4iodfC8cnEHAS2/4W1FEPpRTyYtcdBq6Uc2orBaaxjhsZELvRcWMr + pDc = # 1/3/5 / AwEAAbJhKdI21LP0pPxv0k1pFBNClZW97TB4FlCW4e4Fuyq7rY7 + aiYdDVxV8N9ZXt4RT3MdNznMVMl / R1ldWLjbCf5bFu9khaM1ME8I25HPTS3J2wK5rjj4HMFRMycUKZCK0UOgyUzd6Fm5b3G04wMIAoqkDHeqlwe7yWGaw94NbZuL # # 资源记录格式:/<协议>/<算法>/<公钥in base64 encoding>#
PTR记录 PTR / 3600 / test4.com test.com。# # # 域名

DNS日志记录的局限性

DNS日志记录有以下限制:

  • 如果启用了响应日志记录,则仅记录以下记录类型:

    • 地址(a)记录
    • Aaaa记录
    • Soa记录
    • Ns记录
    • Mx记录
    • 别名记录
    • SRV记录
    • TXT记录
    • Naptr记录
    • Dnskey记录
    • PTR记录

    对于所有其他记录类型,仅记录l3 / l4参数,dns标头和问题部分。

  • 即使启用了响应日志记录,也不会记录rrsig记录。

  • 不支持dns64。

  • 系统会根据默认配置文件中的设置记录DNS主动更新请求或响应。

  • 在虚拟服务器上,如果启用了无会话选项和响应日志记录,则会记录L3、L4参数,DNS标头和DNS问题部分,而不是响应。

  • Syslog消息的最大大小为1024字节。

  • 如果您为操作类型为“重写响应”的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实体。

使用CLI为配置为DNS代理的Citrix ADC配置DNS日志记录

  1. 添加syslog操作并在操作中启用DNS。在命令提示符下,键入:

    add audit syslogAction  ( | - lvvservername ) [-serverPort ] -logLevel …[-dateFormat ] [-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 ] [-maxLogDataSizeToHold ] [-dns (ENABLED |DISABLED)] 

    示例

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

  2. 创建系统日志策略并在策略中指定创建的系统日志操作。在命令提示符下,键入:

    添加审计syslogPolicy

    示例

    add audit syslogPolicy syslogpol1 ns_true nssyslogact1

  3. 全局绑定syslog策略。在命令提示符下,键入:

    绑定系统全局[ [-priority ]]

    示例

    绑定系统全局syslogpol1

  4. 创建DNS配置文件并启用要配置的以下任何类型的日志:

    • DNS查询日志记录
    • DNS答案部分日志记录
    • DNS扩展日志记录
    • DNS错误记录

    在命令提示符下,键入:

    add dns profile [-dnsQueryLogging (ENABLED | DISABLED)] [-dnsAnswerSecLogging (ENABLED | DISABLED)] [-dnsExtendedLogging (ENABLED | DISABLED)] [-dnsErrorLogging (ENABLED | DISABLED)] [-cacheRecords (ENABLED | DISABLED)] [- cachenegativerespses (ENABLED | DISABLED)]

    示例

    添加dns配置文件dnsprofile1 -dnsQueryLogging ENABLED

  5. 配置DNS类型的服务。在命令提示符下,键入:

    添加服务 <端口>

    示例

    添加服务svc1 10.102.84.140 DNS 53 .单击“添加”

  6. 配置服务类型为DNS的负载平衡虚拟服务器。

    add lb vserver

    示例

    添加lb vserver lb1 DNS 100.100.100.10 53

  7. 将服务绑定到虚拟服务器。在命令提示符下,键入:

    bind lb vserver .使用实例

    示例

    绑定lb vserver lb1 svc1

  8. 将创建的DNS配置文件设置为虚拟服务器。在命令提示符下,键入:

    set lb vserver [- dnsProfileName ]

    示例

    设置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 dnsprofile 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 

配置为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 dnsprofile 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 

配置为转发器的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 dnsprofile dnsprofile1 -dnsqueryLogging ENABLED Done > add dns nameserver 8.8.8.8 -dnsProfileName dnsprofile1 Done 

配置为解析程序的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 dnsprofile dnsprofile1 -dnsqueryLogging ENABLED Done > set dns parameter -recursion ENABLED Done > add nameserver 1.1.1.100 -local dnsProfileName dnsprofile1 Done 

为DNS配置基于策略的日志记录

基于策略的日志记录允许您为日志消息指定格式。日志消息的内容是通过使用高级策略表达式定义的。执行策略中指定的消息操作后,Citrix ADC设备将从表达式构造日志消息并将消息写入日志文件。您可以将设备配置为仅在特定DNS策略评估为True时进行记录。

注意

如果您为请求端设置了带有DNS配置文件的DNS策略,Citrix ADC设备将仅记录查询。

要为DNS策略配置基于策略的日志记录,您必须首先配置审核消息操作。有关配置审计消息操作的详细信息,请参阅配置NetScaler设备以进行审核日志记录。配置审核消息操作后,在DNS策略中指定消息操作。

使用cli为DNS策略配置基于策略的日志记录

在命令提示符下,键入以下命令为DNS策略配置基于策略的日志记录并验证配置:

- add dns action   [- ipaddress …| -viewName  | - preferredlocist …[- ttl ] [- dnsprofilename ] - set dns policy  [] [- actionname ] [- logaction ] - show dns policy [] 

示例 1:

在GSLB部署中,如果要使用不同的IP地址响应来自特定子网的客户端请求,而不是使用用于一般用途的IP地址(例如内部用户的IP地址)进行响应,则可以将操作类型配置为DNS视图的DNS策略。在这种情况下,您可以在指定的DNS操作上配置DNS日志记录,以便记录特定的响应。

>添加dns配置dns_prof1 -dnsqueryLogging启用-dnsanswerSecLogging启用完成>添加dns视图dns_view1做>添加dns操作dns_act1 viewName视图dns_view1 -dnsprofilename dns_prof1做>添加域名策略dns_pol1”CLIENT.IP.SRC.APPLY_MASK (255.255.255.0) .EQ(100.100.100.0)”dns_act1做>绑定域名100年全球dns_pol1 -gotoPriorityExpression结束类型REQ_DEFAULT做>绑定gslb服务site_1_svc -viewName dns_view1 123.1.1.1做>绑定gslb服务site_5_svc视图dns_view1132.1.1.1 Done 

注意:在上述配置中,如果查询在GSLB虚拟服务器上配置的域,例如sampletest.com,则子网100.100.100.0/24的所有内部用户都将使用DNS查看IP地址提供服务,并记录响应。不会记录客户端对其他子网的请求。

示例 2:

如果您只想记录域example.com的查询,则可以创建启用查询日志记录的DNS配置文件,并将DNS配置文件设置为操作类型为无操作的DNS操作,然后创建DNS策略并设置DNS操作。例如:

>add dnsprofile 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