配置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 # # | 资源记录格式: |
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日志记录的概述:
- 创建Syslog操作并在操作中启用DNS。
- 创建Syslog策略并在策略中指定Syslog操作。
- 全局绑定Syslog策略以启用所有Citrix ADC系统事件的日志记录。或者,将Syslog策略绑定到特定的负载平衡虚拟服务器。
- 创建DNS配置文件并定义要启用的以下任何类型的日志记录:
- DNS查询日志记录
- DNS答案部分日志记录
- DNS扩展日志记录
- DNS错误记录
- 根据您的要求配置以下任一项:
- DNS服务和DNS的虚拟服务器
- Adns服务
- Citrix ADC作为货运代理
- Citrix ADC作为解析器
- 将创建的DNS配置文件设置为其中一个DNS实体。
使用CLI为配置为DNS代理的Citrix ADC配置DNS日志记录
添加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
创建系统日志策略并在策略中指定创建的系统日志操作。在命令提示符下,键入:
添加审计syslogPolicy
示例:
add audit syslogPolicy syslogpol1 ns_true nssyslogact1
全局绑定syslog策略。在命令提示符下,键入:
绑定系统全局[
[-priority ]] 示例:
绑定系统全局syslogpol1
创建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
配置DNS类型的服务。在命令提示符下,键入:
添加服务
<端口> 示例:
添加服务svc1 10.102.84.140 DNS 53 .单击“添加”
配置服务类型为DNS的负载平衡虚拟服务器。
add lb vserver
示例:
添加lb vserver lb1 DNS 100.100.100.10 53
将服务绑定到虚拟服务器。在命令提示符下,键入:
bind lb vserver
.使用实例 示例:
绑定lb vserver lb1 svc1
将创建的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