DNS ALG
El servicio de puerta de enlace de capa de aplicación (ALG) del sistema de nombres de dominio (DNS) maneja los datos asociados con la localización y traducción de nombres de dominio a direcciones IP. La ALG normalmente se ejecuta en el puerto 53. ALG monitorea los paquetes de respuestas y consultas DNS y solo admite tráfico UDP.
Descripción general de DNS ALG
El servicio de puerta de enlace de capa de aplicación (ALG) de DNS ofrece una puerta de enlace a nivel de aplicación para su uso con clientes DNS. El servicio ALG dns permite que un cliente acceda a varios servidores DNS en diferentes redes y proporciona enrutamiento hacia y desde esos servidores. También admite la traducción flexible de direcciones de los paquetes de respuesta y consulta DNS. Estas funciones permiten que el cliente DNS consulte muchos dominios diferentes desde una única instancia de servidor DNS en el lado del cliente de la red.
El servidor DNS escucha a través del puerto UDP 53 para las consultas entrantes de los solucionadores DNS. Un solucionador se comunica con los servidores DNS mediante el envío de consultas DNS y el manejo de respuestas DNS.
El puerto predeterminado para DNS ALG es el puerto 53.
Dns ALG realiza las siguientes funciones:
Supervisa los paquetes de respuestas y consultas DNS, y cierra la sesión cuando se recibe la respuesta dns
Realiza la medición de DNS
Realiza las transformaciones de direcciones IPv4 e IPv6
El sistema de nombres de dominio (DNS) se diseñó originalmente para admitir consultas de una base de datos estática configurada y se esperaba que los datos cambiara.
La compatibilidad con DNS dinámico (DDNS) ya está disponible, además del estándar DNS. La principal diferencia entre DNS y DDNS está en el formato del mensaje de la sección de encabezado y el mensaje de actualización.
Los mensajes DDNS se procesan de manera diferente en comparación con los mensajes DNS. El análisis de mensajes se reescribe para DDNS. DDNS hace NAT y NAT-PT en la parte de consulta del mensaje y DNS hace TDR y NAT-PT en la parte de respuesta del mensaje.
Ver también
Ejemplo: Configurar el DNS ALG
En este ejemplo, se muestra cómo configurar la ALG DE DNS para que pase a través del tráfico DNS con un conjunto TDR estático en dispositivos de Juniper Networks.
Requisitos
Antes de empezar:
Configure el conjunto TDR estático para todas las direcciones IP.
Comprenda los conceptos detrás de ALG para DNS. Consulte Descripción general de ALG de DNS.
Visión general
En este ejemplo, ALG para DNS está configurado para supervisar y permitir el intercambio de tráfico DNS entre los clientes y el servidor ubicado en lados opuestos de un dispositivo Juniper Networks.
En este ejemplo, se muestra cómo configurar un conjunto de reglas y un conjunto de reglas TDR estáticos, y cómo asociar la ALG dns a una política.
Configuración
- Configuración de un conjunto de reglas y un conjunto de reglas estáticos TDR
- Configuración e impresión del seguimiento de DNS
Configuración de un conjunto de reglas y un conjunto de reglas estáticos TDR
Configuración rápida de CLI
Para configurar rápidamente esta sección del ejemplo, copie los siguientes comandos, péguelos en un archivo de texto, elimine los saltos de línea, cambie los detalles necesarios para que coincidan con su configuración de red, copie y pegue los comandos en la CLI en el nivel de jerarquía y, luego, ingrese commit
desde el [edit]
modo de configuración.
set security nat static rule-set rs1 from zone untrust set security nat static rule-set rs1 rule r1 match destination-address 203.0.113.100 set security nat static rule-set rs1 rule r1 then static-nat prefix 192.0.2.100 set security policies from-zone untrust to-zone trust policy u2t match source-address any set security policies from-zone untrust to-zone trust policy u2t match destination-address any set security policies from-zone untrust to-zone trust policy u2t match application junos-dns-udp set security policies from-zone untrust to-zone trust policy u2t then permit
Procedimiento paso a paso
El siguiente ejemplo requiere que navegue por varios niveles en la jerarquía de configuración. Para obtener instrucciones sobre cómo hacerlo, consulte Uso del editor de CLI en modo de configuración en la Guía del usuario de CLI.
Para configurar un conjunto TDR estático:
Cree un conjunto de reglas estáticas TDR.
[edit] user@host# set security nat static rule-set rs1 from zone untrust user@host# set security nat static rule-set rs1 rule r1 match destination-address 203.0.113.100 user@host# set security nat static rule-set rs1 rule r1 then static-nat prefix 192.0.2.100
Asocie la aplicación DNS mediante una política.
[edit] user@host# set security policies from-zone untrust to-zone trust policy u2t match source-address any user@host# set security policies from-zone untrust to-zone trust policy u2t match destination-address any user@host# set security policies from-zone untrust to-zone trust policy u2t match application junos-dns-udp user@host# set security policies from-zone untrust to-zone trust policy u2t then permit
Resultados
Desde el modo de configuración, ingrese el comando para confirmar la show security nat
configuración. Si el resultado no muestra la configuración deseada, repita las instrucciones de configuración en este ejemplo para corregirla.
user@host# show security nat static { rule-set rs1 { from zone untrust; rule r1 { match { destination-address 203.0.113.100; } then { static-nat { prefix { 192.0.2.100; } } } } } }
[edit] user@host# show security policies from-zone untrust to-zone trust { policy u2t { match { source-address any; destination-address any; application [ junos-dns-udp]; } then { permit; } } } default-policy { permit-all; }
Si ha terminado de configurar el dispositivo, ingrese commit
desde el modo de configuración.
Configuración e impresión del seguimiento de DNS
Propósito
Imprima el archivo de seguimiento DNS.
Acción
Desde el modo de configuración, escriba el siguiente comando.
set security alg traceoptions file alglog set security alg traceoptions file size 1g set security alg traceoptions level verbose set security alg dns traceoptions flag all
Verificación
Para confirmar que la configuración funciona correctamente, realice estas tareas:
Verificar ALG de DNS
Propósito
Compruebe que DNS ALG está habilitado.
Acción
Desde el modo operativo, ingrese el show security alg status
comando.
user@host> show security alg status ALG Status : DNS : Enabled FTP : Enabled H323 : Disabled MGCP : Disabled MSRPC : Enabled PPTP : Enabled RSH : Disabled RTSP : Disabled SCCP : Disabled SIP : Disabled SQL : Disabled SUNRPC : Enabled TALK : Enabled TFTP : Enabled IKE-ESP : Disabled
Significado
El resultado muestra que el DNS ALG está habilitado.
Verificar sesión de flujo de seguridad ALG de DNS
Propósito
Compruebe que la sesión de flujo de seguridad ALG está habilitada.
Acción
Desde el modo operativo, ingrese el show security flow session application dns extensive
comando.
user@host> show security flow session application dns extensive Session ID: 24088, Status: Normal Flags: 0x40/0x0/0x2/0x2000103 Policy name: unt2tru/6 Source NAT pool: Null, Application: junos-dns-udp/16 Dynamic application: junos:UNKNOWN, Encryption: Unknown Application traffic control rule-set: INVALID, Rule: INVALID Maximum timeout: 60, Current timeout: 56 Session State: Valid Start time: 658866, Duration: 10 In: 192.0.2.0/38926 --> 198.51.100.0/53;udp, Conn Tag: 0x0, Interface: ge-0/0/3.0, Session token: 0xa, Flag: 0x621 Route: 0x110010, Gateway: 192.0.2.0, Tunnel: 0 Port sequence: 0, FIN sequence: 0, FIN state: 0, Pkts: 2, Bytes: 116 Out: 198.51.100.0/53 --> 192.0.2.0/38926;udp, Conn Tag: 0x0, Interface: ge-0/0/2.0, Session token: 0x9, Flag: 0x620 Route: 0x100010, Gateway: 198.51.100.0, Tunnel: 0 Port sequence: 0, FIN sequence: 0,
Significado
El resultado muestra que hay un flujo activo que utiliza el DNS ALG.
Descripción de la medición de DNS y DDNS
Junos OS admite sistema de nombres de dominio (DNS) para alg. La ALG DNS monitorea los paquetes de consulta y respuesta DNS y cierra la sesión si la marca DNS indica que el paquete es un mensaje de respuesta. Para configurar el DNS ALG, utilice la edit security alg dns
instrucción en el [edit security alg]
nivel de jerarquía.
DNS proporciona asignación de nombre a dirección dentro de una clase de enrutamiento, mientras que la traducción de direcciones de red (TDR) intenta proporcionar un enrutamiento transparente entre hosts en reinos de direcciones dispares de la misma clase de enrutamiento. Como resultado, TDR puede causar algunos problemas de DNS que el ALG DNG debe manejar a través de un proceso llamado medición de DNS .
La misma función de medición se aplica al sistema de nombres de dominio dinámico (DDNS). Para DDNS en modo TDR, también puede hacer la traducción de IP en la actualización de DDNS.
Para resolver los problemas introducidos por TDR, DNS y DDNS ALG funcionalidad se ha extendido para admitir TDR estático, lo que permite que los problemas se resuelvan mediante la medición de DNS.
El DNS ALG debe habilitarse en los dispositivos para realizar la medición de DNS. Con DNS ALG habilitado en los dispositivos SRX3400, SRX3600, SRX4600, SRX5600 y SRX5800, la medición DNS está habilitada de forma predeterminada. (La compatibilidad de la plataforma depende de la versión de Junos OS en su instalación.)
El proceso de restauración y medición se realiza en dos partes:
-
Packet sanity check
Para el paquete DNS, los campos de verificación ALG de DNS son preguntas, respuestas, autoridad e información adicional. El DNS ALG deja caer el paquete si el número de preguntas es más de 1, el nombre de dominio es más de 255 bytes o la longitud de la etiqueta es más de 63 bytes.
Para el paquete DDNS, los campos de comprobación ALG de DNS son zona, prerrequisito, actualización y datos adicionales. El DNS ALG deja caer el paquete si el número de zonas es más de 1, el nombre de dominio es más de 255 bytes o la longitud de la etiqueta es más de 63 bytes.
Tanto para DNS como para DDNS, el DNS ALG deja caer el paquete que no cumple con los estándares.
-
NAT
La Figura 2 muestra cómo DNS traduce una dirección privada a una dirección pública.
![DNS Address Translation (Private to Public)](/documentation/us/en/software/junos/alg/images/g043267.png)
Cuando el host X en external.com quiere resolver la dirección del host A mediante DNS y si el ALG DNS no admite TDR, toma una dirección privada como 172.19.1.10, que no es válida para el host X. La dirección privada se traduce a la dirección pública 10,131.108.10 a través del DNS ALG.
La Figura 3 muestra cómo DNS traduce una dirección pública a una dirección privada.
![DNS Address Translation (Public to Private)](/documentation/us/en/software/junos/alg/images/g043268.png)
Cuando el host A en private.com desea resolver la dirección del host B mediante DNS y si el ALG DNS no admite TDR, toma una dirección pública del servidor DNS en external.com, como 10.131.108.8. Si el host A envía tráfico al host B con dirección pública 10.131.108.8, que no es válido para el host B en el dominio privado. Por lo tanto, la dirección pública en el registro A de consulta DNS se traduce a la dirección privada 172.19.2.1 a través del DNS ALG.
El DNS ALG puede traducir los primeros 32 registros A en una única respuesta DNS. Registros A después de que los primeros 32 registros no se manejen. También tenga en cuenta que dns ALG admite direcciones IPv4 e IPv6 y no admite túneles VPN.
Deshabilitar la medición de DNS y DDNS
El DNS ALG debe estar habilitado en los dispositivos para realizar la medición de DNS y DDNS. Con la ALG de DNS habilitada en el dispositivo, la función de medición de DNS y DDNS está habilitada de forma predeterminada. Puede deshabilitar la medición de DNS y DDNS con la CLI.
Para deshabilitar la medición de DNS y DDNS:
-
Desactive todas las funciones de medición especificando la opción de
none
configuración.Este comando deshabilita todas las funciones de medición.
user@host#
set security alg dns doctoring none
-
Desactive la función TDR y conserve la función de comprobación de cordura especificando la opción de
sanity-check
configuración.Esta opción deshabilita la función TDR y conserva la función de verificación de cordura.
user@host#
set security alg dns doctoring sanity-check
-
Si termina de configurar el dispositivo, confirme la configuración.
-
Para comprobar la configuración, utilice el comando show usp algs dns statsvty .