Citrix ADC

Configurar el registro DNS

Puede configurar el dispositivo Citrix ADC para registrar las solicitudes DNS y las respuestas que administra. El dispositivo registra las solicitudes y respuestas DNS en formato SYSLOG. Puede elegir registrar solicitudes DNS o respuestas DNS, o ambas, y enviar los mensajes syslog a un servidor de registro remoto. Los mensajes de registro se pueden utilizar para:

  • Auditar las respuestas DNS al cliente
  • Auditar clientes DNS
  • Detectar y prevenir ataques DNS
  • Solución de problemas

Un dispositivo Citrix ADC puede registrar las siguientes secciones en la solicitud o respuesta DNS, en función de su configuración:

  • Sección de encabezado
  • Sección de Preguntas
  • Sección de respuesta
  • Sección de Autoridades
  • Sección adicional

Perfiles DNS

Puede utilizar un perfil DNS para configurar varios parámetros DNS que quiere que el extremo DNS aplique al tráfico DNS. En el perfil, puede habilitar el registro, el almacenamiento en caché y el almacenamiento en caché negativo.

Importante: Desde la versión 11.0 de NetScaler, la habilitación del almacenamiento en caché DNS mediante parámetros DNS globales ha quedado obsoleta. Puede habilitar o inhabilitar el almacenamiento en caché DNS mediante perfiles DNS. Ahora puede habilitar el almacenamiento en caché DNS para un servidor virtual individual habilitando el almacenamiento en caché DNS en un perfil DNS y configurando el perfil DNS en el servidor virtual individual.

Los perfiles DNS admiten los siguientes tipos de registro DNS:

  • Registro de consultas DNS
  • Registro de sección de respuestas DNS
  • Registro extendido de DNS
  • Registro de errores DNS

Registro de consultas DNS

Puede configurar un dispositivo Citrix ADC para que registre solo las consultas DNS recibidas por los endpoints DNS del dispositivo.

Nota: Si se producen errores durante el procesamiento de una consulta, se registran si esta opción se establece en el perfil DNS.

A continuación se muestra un ejemplo de un mensaje de registro de consulta:

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#

Registro de sección de respuestas DNS

Puede configurar un dispositivo Citrix ADC para que registre todas las secciones de Respuesta en las respuestas DNS que el dispositivo envía al cliente. El registro de la sección de respuestas DNS es muy útil cuando Citrix ADC está configurado como un solucionador DNS o en casos de uso de GLSB.

A continuación se muestra un ejemplo de un registro de sección de respuestas 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##

Registro extendido de DNS

Para configurar un dispositivo Citrix ADC para que registre las secciones Autoridad y Adicional en las respuestas DNS, habilite el registro extendido con el registro Sección de respuesta.

Nota: Si se producen errores durante el procesamiento de consultas o respuestas, los errores se registran si esta opción se establece en el perfil DNS.

A continuación se muestra un ejemplo de un mensaje registrado cuando se completa la búsqueda de caché y la respuesta está incrustada en el paquete:

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##

Registro de errores DNS

Puede configurar un dispositivo Citrix ADC para registrar los errores o errores que se producen cuando procesa una consulta o respuesta DNS. Para estos errores, el dispositivo registra el encabezado DNS, las secciones Pregunta y los registros OPT.

A continuación se muestra un ejemplo de un mensaje registrado cuando se produce un error durante el procesamiento de una solicitud o respuesta 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

Registro basado en directivas

Puede configurar el registro personalizado basado en expresiones DNS configurando las directivas LogAction en DNS, Rewrite o Responder. Puede especificar que el registro solo se produce cuando una directiva DNS determinada se evalúa como true. Para obtener más información, consulte Configurar el registro basado en directivas para DNS.

Comprender el formato de mensaje de registro de syslog de Citrix ADC

El dispositivo Citrix ADC registra solicitudes y respuestas DNS en el siguiente formato de 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>#...
  • <transport>:
    • T = TCP
    • U = UDP
  • <client IP>#< client ephemeral port >: Dirección IP del cliente DNS y número de puerto

  • <DNS endpoint IP>#<port>: Dirección IP del extremo DNS de Citrix ADC y número de puerto

  • <query id>: ID de consulta.

  • <opcode>: Código de operación. Valores admitidos:

    • P: Consulta
    • I: Consulta inversa
    • S: Estado
    • X0: Sin asignar
    • N: Notificar
    • U: Actualizar
    • X1-10: Valores no asignados
  • <header flags>: Marcadores. Valores admitidos:

    • RD: Recursión deseada
    • TC: Truncado
    • AA: Respuesta autorizada
    • CD: Comprobación desactivada
    • AD: Datos autenticados
    • Z: Sin asignar
    • RA: Recursión disponible
    • R: Respuesta
  • <rcode>: Código de respuesta. Valores admitidos:

    • NO: Ningún error
    • Error de formato F
    • S: Error del servidor
    • NX: Dominio inexistente
    • NI: No implementado
    • R: Consulta rechazada
    • YX: El nombre existe cuando no debería
    • YXR: RR Set Existe cuando no debería
    • NXR: RR Set que debe existir no
    • NAS: Servidor no autorizado para la zona
    • NA: No autorizado
    • NZ: Nombre no incluido en la zona
    • X1-5: Sin asignar
  • /conteo de sección de pregunta/conteo de sección de respuesta/conteo de sección adicional/recuento de sección adicional: sección de preguntas, recuento de sección de autoridad y recuento de sección adicional en la solicitud DNS

  • <queried domain name>/<queried type>: Dominio consultado y tipo consultado en la solicitud DNS.

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

    En caso de respuestas DNS:

    La sección de respuesta se registra si el registro de sección de respuesta está habilitado en el perfil DNS. Las secciones Autoridad y Adicional se registran si el registro extendido está habilitado en el perfil DNS. El formato de registro variaría según el tipo de registro. Para obtener más información, consulte Descripción del formato de registro de registros.

    • ANS: Sección de respuestas
    • AUTH: Autoridad
    • ADD: Sección adicional
  • OPT/<edns version>/UDP max payload size/DO: Formato de registro OPT en el registro DNS

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

    Si la consulta o respuesta DNS incluye la opción EDNS Client Subnet (ECS), también se registra en el formato de registro OPT en el archivo de registro DNS.

    Cuando se envía una consulta DNS con la opción ECS que incluye direcciones IPv4 o IPv6, la opción ECS se registra con “ECS/Q” que indica que los valores del registro son de la consulta o “ECS/R” que indica que los valores del registro son de la respuesta.

    El valor de Scope Prefix-Length también se establece correctamente. En el caso de la consulta DNS, se establece en cero, y para la respuesta, se establece en el valor calculado.

    En la siguiente tabla se describen los detalles registrados en varios casos:

Caso Opción ECS establecida en la consulta DNS Opción ECS establecida en la respuesta DNS Detalles registrados
Tanto el registro de consultas como el registro extendido habilitado La opción ECS se registra con la cadena “ECS/R/” y la longitud del prefijo de alcance se establece en el valor calculado.
Tanto el registro de consultas como el registro extendido habilitado No La opción ECS se registra con la cadena “ECS/Q” y la longitud del prefijo de alcance se establece en cero.
El registro de consultas está habilitado, pero el registro extendido no está habilitado La opción ECS se registra con la cadena “ECS/Q/” y la longitud del prefijo de alcance se establece en cero.
El registro de consultas y el registro extendido no están habilitados La opción ECS no está registrada.
El registro de consultas está habilitado, pero el registro extendido no está habilitado No La opción ECS se registra con la cadena “ECS/Q/” y la longitud del prefijo de alcance se establece en cero.
El registro de consultas no está habilitado, pero el registro extendido está habilitado La opción ECS se registra con la cadena “ECS/R/” y la longitud del prefijo de alcance se establece en el valor calculado.
El registro de consultas no está habilitado, pero el registro extendido está habilitado No La opción ECS no está registrada.

Comprender el formato de registro de registros

A continuación se muestra un ejemplo del formato de registro de registros en un mensaje Syslog:

<domainname>/<record type>/ <record ttl> / <resource record data>#<resource record data>#......##

donde:

Tipo de registro Formato de muestra Formato y datos de registro de recursos
Registro de dirección (A) A/5/1.1.1.1#1.1.1.2#1.1.1.3## Dirección IPv4
Registro AAAA AAAA/5/1::1#1::2#1::3## Dirección IPv6
Registro SOA SOA/3600/ns1.dnslogging.test./root.dnslogging.test./100/3600/3/3600/5## Servidor de origen, contacto y otros detalles. El formato de registro de recursos es: <originServer> <contact>/<serial number>/<refresh rate>/<retry>//<expire>/<minimum> ##
Registro NS NS/5/ns1.dnslogging.test Nombre de host del servidor de nombres.
Registro MX #MX/5/10/host1.dnslogging.test.#11/host2.dnslogging.test.## Preferencia seguida por el nombre de host del servidor de intercambio de correo
Registro de registros CNAME CNAME/5/host1.dnslogging.test.## Nombre canónico
Registro SRV SRV/5/1/2/3/host1.dnslogging.test.#4/5/6/host2.dnslogging.test.## Formato de registro de recursos: <priority> <weight>//<port>/<target> #
Registro TXT TXT/5/dns+logging## Los datos comprenden todos los textos.
Registro NAPTR NAPTR/5/10/11////dnslogging#20/21/R/SIP//sip.dnslogging.test## Formato de registro de recursos: <order> <preference>/<glags>//<services>/<regular expression>/<replacement string> #
Registro DNSKEY DNSKEY/5/1/3/5/AwEAAanP0K+i5bfv5SU478L760EjDjnPqI2Ccx6JZgiDBZhSONP29GfO2bkP056xp7+9Wz8X2oo5sANaDwSzUVR0YtZdPw23gAaktH6pFvnwcIHa/PTFw5VcXyiUaDc+AnaOhNNYOPp7iQ6uTdT9cyuGWJ1OfZ0JRt+8EyX6iwRsLk7WSpz8KidvKs2ij9IXZ3OzaVEEMGY4SMfHIlLhqIho1fyADlbAoSsLEbr/7eqKv1/PLXSuVV9elwkH0pqWALUaSEBbmp49/jbCbc8cZKxzaON9p2jp2j4iodfC8cnEHAS2/4W1FEPpRTyYtcdBq6Uc2orBaaxjhsZELvRcWMr+pDc=#1/3/5/AwEAAbJhKdI21LP0pPxv0k1pFBNClZW97TB4FlCW4e4Fuyq7rY7+aiYdDVxV8N9ZXt4RT3MdNznMVMl/R1ldWLjbCf5bFu9khaM1ME8I25HPTS3J2wK5rjj4HMFRMycUKZCK0UOgyUzd6Fm5b3G04wMIAoqkDHeqlwe7yWGaw94NbZuL## Formato de registro de recursos: <glags> <protocol>//<algorithm>/<public key in base64 encoding> #
Registro PTR PTR/3600/test.com.#test4.com.## Nombre del dominio

Limitaciones del registro DNS

El registro DNS tiene las siguientes limitaciones:

  • Si el registro de respuestas está habilitado, solo se registran los siguientes tipos de registro:

    • Registro de dirección (A)
    • Registro AAAA
    • Registro SOA
    • Registro NS
    • Registro MX
    • Registro CNAME
    • Registro SRV
    • Registro TXT
    • Registro NAPTR
    • Registro DNSKEY
    • Registro PTR

    Para todos los demás tipos de registro, solo se registran los parámetros L3/L4, encabezado DNS y sección Pregunta.

  • Los registros RRSIG no se registran incluso si el registro de respuestas está habilitado.

  • DNS64 no es compatible.

  • Las solicitudes o respuestas de actualización proactiva de DNS se registran de acuerdo con la configuración del perfil predeterminado.

  • En el servidor virtual, si el registro de respuesta y opción sin sesión está habilitado, los parámetros L3/L4, encabezado DNS y la sección Pregunta DNS se registran en lugar de la respuesta.

  • El tamaño máximo del mensaje syslog es de 1024 bytes.

  • Si ha establecido un perfil DNS para una directiva DNS con el tipo de acción Rewrite Response, el dispositivo Citrix ADC no registra la consulta ni las respuestas manipuladas. Para registrar la información necesaria, debe utilizar la acción de mensaje de auditoría en la directiva DNS.

  • Las transacciones DNS que se deben al tráfico de supervisión DNS no se registran.

Configuración del registro DNS

A continuación se presenta una descripción general de la configuración del registro DNS:

  1. Cree una acción Syslog y habilite DNS en la acción.
  2. Cree una directiva Syslog y especifique la acción Syslog en la directiva.
  3. Enlazar globalmente la directiva Syslog para habilitar el registro de todos los eventos del sistema Citrix ADC. O bien, enlazar la directiva Syslog a un servidor virtual de equilibrio de carga específico.
  4. Cree un perfil DNS y defina cualquiera de los siguientes tipos de registro que quiera habilitar:
    • Registro de consultas DNS
    • Registro de sección de respuestas DNS
    • Registro extendido de DNS
    • Registro de errores DNS
  5. Configure cualquiera de las siguientes opciones, en función de sus requisitos:
    • Servicio DNS y servidor virtual para DNS
    • Servicio ADNS
    • Citrix ADC como reenviador
    • Citrix ADC como solución
  6. Establezca el perfil DNS creado en una de las entidades DNS.

Configure el registro DNS para Citrix ADC configurado como proxy DNS mediante la CLI

  1. Agregue una acción de syslog y habilite DNS en la acción. En el símbolo del sistema, escriba:

    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)]
    

    Ejemplo:

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

  2. Cree una directiva syslog y especifique la acción syslog creada en la directiva. En el símbolo del sistema, escriba:

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

    Ejemplo:

    add audit syslogPolicy syslogpol1 ns_true nssyslogact1

  3. Enlazar la directiva de syslog globalmente. En el símbolo del sistema, escriba:

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

    Ejemplo:

    bind system global syslogpol1

  4. Cree un perfil DNS y habilite cualquiera de los siguientes tipos de registros que quiera configurar:

    • Registro de consultas DNS
    • Registro de sección de respuestas DNS
    • Registro extendido de DNS
    • Registro de errores DNS

    En el símbolo del sistema, escriba:

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

    Ejemplo:

    add dns profile dnsprofile1 -dnsQueryLogging ENABLED

  5. Configurar el servicio de tipo DNS. En el símbolo del sistema, escriba:

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

    Ejemplo:

    add service svc1 10.102.84.140 dns 53

  6. Configure un servidor virtual de equilibrio de carga de tipo de servicio DNS.

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

    Ejemplo:

    add lb vserver lb1 dns 100.100.100.10 53

  7. Enlazar el servicio al servidor virtual. En el símbolo del sistema, escriba:

    bind lb vserver <name> <serviceName>

    Ejemplo:

    bind lb vserver lb1 svc1

  8. Establezca el perfil DNS creado en el servidor virtual. En el símbolo del sistema, escriba:

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

    Ejemplo:

    set lb vserver lb1 –dnsProfileName dnsprofile1

Configuración de registro DNS de ejemplo para el dispositivo Citrix ADC configurado como proxy 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

Configuración de registro DNS de ejemplo para el dispositivo Citrix ADC configurado como ADNS

> 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

Configuración de registro DNS de ejemplo para el dispositivo Citrix ADC configurado como reenviador

> 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

Configuración de registro DNS de ejemplo para el dispositivo Citrix ADC configurado como sesolver

> 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

Configurar el registro basado en directivas para DNS

El registro basado en directivas permite especificar un formato para los mensajes de registro. El contenido de un mensaje de registro se define mediante una expresión de sintaxis predeterminada. Cuando se realiza la acción de mensaje especificada en la directiva, el dispositivo Citrix ADC construye el mensaje de registro a partir de la expresión y escribe el mensaje en el archivo de registro. Puede configurar el dispositivo para que registre solo cuando una directiva DNS determinada se evalúe como True.

Nota

Si ha establecido una directiva DNS con un perfil DNS para el lado de la solicitud, el dispositivo Citrix ADC registra solo la consulta.

Para configurar el registro basado en directivas para una directiva DNS, primero debe configurar una acción de mensaje de auditoría. Para obtener más información acerca de cómo configurar una acción de mensaje de auditoría, consulte Configurar el dispositivo NetScaler para el registro de auditoría. Después de configurar la acción de mensaje de auditoría, especifique la acción de mensaje en una directiva DNS.

Configurar el registro basado en directivas para una directiva DNS mediante la CLI

En el símbolo del sistema, escriba los siguientes comandos para configurar el registro basado en directivas para una directiva DNS y compruebe la configuración:

-  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>]

Ejemplo 1:

En una implementación de GSLB, si quiere responder con direcciones IP diferentes a las solicitudes del cliente procedentes de una subred determinada, en lugar de responder con direcciones IP utilizadas para fines generales (como las direcciones IP de los usuarios internos), puede configurar una directiva DNS con el tipo de acción como vista DNS. En este caso, puede configurar el registro DNS en la acción DNS especificada de modo que pueda registrar las respuestas específicas.

> 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

Nota: En la configuración anterior, si consulta el dominio configurado en un servidor virtual GSLB, por ejemplo, sampletest.com, todos los usuarios internos de la subred 100.100.100.0/24 se sirven con las direcciones IP de vista DNS, y las respuestas se registran. Las solicitudes de cliente para otras subredes no se registran.

Ejemplo 2:

Si quiere registrar solo las consultas para el dominio example.com, puede crear un perfil DNS con el registro de consultas habilitado y establecer el perfil DNS en una acción DNS con el tipo de acción NOOP y, a continuación, crear una directiva DNS y establecer la acción DNS. Por ejemplo:

>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