DNS ALG
Le service DNS (Domain Name System) couche applicative Gateway (ALG) gère les données associées à la localisation et à la traduction des noms de domaine en adresses IP. L’ALG s’exécute généralement sur le port 53. L’ALG surveille les paquets de requêtes et de réponses DNS et ne prend en charge que le trafic UDP.
Utilisez l’explorateur de fonctionnalités pour confirmer la prise en charge de fonctionnalités spécifiques par la plate-forme et la version.
Consultez la sectionComportement de l’ALG DNS spécifique à la plate-forme pour obtenir des remarques relatives à votre plate-forme.
Présentation de DNS ALG
Le service de passerelle de couche applicative (ALG) DNS fournit une passerelle au niveau de l’application à utiliser avec les clients DNS. Le service DNS ALG permet à un client d’accéder à plusieurs serveurs DNS sur différents réseaux et assure le routage vers et depuis ces serveurs. Il prend également en charge la traduction d’adresse flexible des paquets de requêtes et de réponses DNS. Ces fonctions permettent au client DNS d’interroger de nombreux domaines différents à partir d’une seule instance de serveur DNS côté client du réseau.
Le serveur DNS écoute via le port UDP 53 les requêtes entrantes des résolveurs DNS. Un résolveur communique avec les serveurs DNS en envoyant des requêtes DNS et en gérant les réponses DNS.
Le port par défaut pour DNS ALG est le port 53.
L’ALG DNS remplit les fonctions suivantes :
Surveille les paquets de requêtes et de réponses DNS et ferme la session lorsque la réponse DNS est reçue
Effectue du DNS Doctoring
Effectue les transformations d’adresses IPv4 et IPv6
Le système de noms de domaine (DNS) a été conçu à l’origine pour prendre en charge les requêtes d’une base de données configurée de manière statique et les données étaient susceptibles de changer.
La prise en charge du DNS dynamique (DDNS) est désormais disponible en plus de la norme DNS. La principale différence entre DNS et DDNS réside dans le format de message de la section d’en-tête et du message de mise à jour.
Les messages DDNS sont traités différemment des messages DNS. L’analyse des messages est réécrite pour DDNS. DDNS fait NAT et NAT-PT dans la partie requête du message et DNS fait NAT et NAT-PT dans la partie réponse du message.
Voir aussi
Exemple : Configuration de l’ALG DNS
Cet exemple montre comment configurer l’ALG DNS pour qu’il transmette le trafic DNS avec un pool NAT statique sur les équipements Juniper Networks.
Exigences
Avant de commencer :
Configurez le pool NAT statique pour toutes les adresses IP.
Comprendre les concepts qui sous-tendent ALG for DNS. Reportez-vous à la section Présentation de DNS ALG.
Aperçu
Dans cet exemple, l’ALG pour DNS est configuré pour surveiller et autoriser l’échange de trafic DNS entre les clients et le serveur situés de part et d’autre d’un équipement Juniper Networks.
Cet exemple montre comment configurer un pool NAT statique et un ensemble de règles, et associer l’ALG DNS à une stratégie.
Configuration
- Configuration d’un pool statique NAT et d’un ensemble de règles
- Configuration et impression de la trace DNS
Configuration d’un pool statique NAT et d’un ensemble de règles
Configuration rapide de la CLI
Pour configurer rapidement cette section de l’exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour qu’ils correspondent à la configuration de votre réseau, copiez et collez les commandes dans l’interface de ligne de commande au niveau de la [edit]
hiérarchie, puis passez commit
en mode de configuration.
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
Procédure étape par étape
L’exemple suivant vous oblige à naviguer à différents niveaux dans la hiérarchie de configuration. Pour obtenir des instructions sur cette procédure, reportez-vous à la section Utilisation de l’éditeur CLI en mode configuration dans le Guide de l’utilisateur de l’interface de ligne de commande.
Pour configurer un pool NAT statique :
Créez un ensemble de règles statiques NAT.
[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
Associez l’application DNS à l’aide d’une stratégie.
[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
Résultats
À partir du mode configuration, confirmez votre configuration en entrant la show security nat
commande. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de configuration de cet exemple pour la corriger.
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 vous avez terminé de configurer l’appareil, passez commit
en mode de configuration.
Configuration et impression de la trace DNS
But
Imprime le fichier de trace DNS.
Action
À partir du mode configuration, entrez la commande suivante.
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
Vérification
Pour vérifier que la configuration fonctionne correctement, effectuez les opérations suivantes :
Vérification de DNS ALG
But
Vérifiez que DNS ALG est activé.
Action
À partir du mode opérationnel, entrez la show security alg status
commande.
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
Signification
La sortie indique que l’ALG DNS est activé.
Vérification de la session de flux de sécurité DNS ALG
But
Vérifiez que la session de flux de sécurité ALG est activée.
Action
À partir du mode opérationnel, entrez la show security flow session application dns extensive
commande.
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,
Signification
La sortie indique qu’il existe un flux actif utilisant l’ALG DNS.
Comprendre DNS et DDNS Doctoring
Junos OS prend en charge le système de noms de domaine (DNS) pour les ALG. L’ALG DNS surveille les paquets de requête et de réponse DNS et ferme la session si l’indicateur DNS indique que le paquet est un message de réponse. Pour configurer l’ALG DNS, utilisez l’instruction edit security alg dns
au niveau de la [edit security alg]
hiérarchie.
Le DNS fournit un mappage nom-adresse au sein d’une classe de routage, tandis que la traduction d’adresses réseau (NAT) tente d’assurer un routage transparent entre les hôtes dans des domaines d’adresses disparates de la même classe de routage. Par conséquent, le NAT peut causer des problèmes DNS que le DNG ALG doit gérer par le biais d’un processus appelé DNS doctoring.
La même fonctionnalité de falsification s’applique au système dynamique de noms de domaine (DDNS). Pour DDNS en mode NAT, vous pouvez également effectuer la traduction IP dans la mise à jour DDNS.
Pour résoudre les problèmes introduits par NAT, les fonctionnalités DNS et DDNS ALG ont été étendues pour prendre en charge le NAT statique, ce qui permet de résoudre les problèmes par le biais de DNS Doctoring.
Le processus de restauration et de remédiation se déroule en deux parties :
-
Packet sanity check
Pour le paquet DNS, les champs de contrôle de l’ALG DNS sont les questions, les réponses, l’autorité et les informations supplémentaires. L’ALG DNS abandonne le paquet si le nombre de questions est supérieur à 1, si le nom de domaine est supérieur à 255 octets ou si la longueur de l’étiquette est supérieure à 63 octets.
Pour le paquet DDNS, les champs de contrôle DNS ALG sont la zone, les prérequis, la mise à jour et les données supplémentaires. L’ALG DNS abandonne le paquet si le nombre de zones est supérieur à 1, si le nom de domaine est supérieur à 255 octets ou si la longueur de l’étiquette est supérieure à 63 octets.
Pour le DNS comme pour le DDNS, l’ALG DNS supprime le paquet qui n’est pas conforme aux normes.
-
NAT
La figure 2 montre comment le DNS traduit une adresse privée en adresse publique.

Lorsque l’hôte X dans external.com veut résoudre l’adresse de l’hôte A via DNS et si l’ALG DNS ne prend pas en charge NAT, il prend une adresse privée telle que 172.19.1.10, qui n’est pas valide pour l’hôte X. L’adresse privée est traduite en adresse publique 10,131.108.10 via le DNS ALG.
La figure 3 montre comment DNS traduit une adresse publique en adresse privée.

Lorsque l'hôte A dans private.com souhaite résoudre l'adresse de l'hôte B via DNS et que l'ALG DNS ne prend pas en charge NAT, il prend une adresse publique du serveur DNS en external.com, telle que 10.131.108.8. Si l’hôte A envoie du trafic à l’hôte B avec l’adresse publique 10.131.108.8, qui n’est pas valide pour l’hôte B dans le domaine privé. Par conséquent, l’adresse publique dans l’enregistrement A de la requête DNS est traduite en adresse privée 172.19.2.1 via l’ALG DNS.
L’ALG DNS peut traduire les 32 premiers enregistrements A en une seule réponse DNS. Les enregistrements A après que les 32 premiers enregistrements ne sont pas traités. Notez également que le DNS ALG prend en charge les adresses IPv4 et IPv6 et ne prend pas en charge les tunnels VPN.
Désactivation de DNS et DDNS Doctoring
L’ALG DNS doit être activé sur les appareils pour effectuer le DNS et le DDNS doctoring. Lorsque l’ALG DNS est activé sur l’appareil, la fonctionnalité de falsification DNS et DDNS est activée par défaut. Vous pouvez désactiver le DNS et DDNS doctoring à l’aide de l’interface de ligne de commande.
Pour désactiver la médecine DNS et DDNS :
-
Désactivez toutes les fonctionnalités de falsification en spécifiant l’option de
none
configuration.Cette commande désactive toutes les fonctions de falsification.
user@host#
set security alg dns doctoring none
-
Désactivez la fonctionnalité NAT et conservez la fonction de vérification de l’intégrité en spécifiant l’option
sanity-check
de configuration.Cette option désactive la fonction NAT et conserve la fonction de vérification de l’intégrité.
user@host#
set security alg dns doctoring sanity-check
-
Si vous avez terminé de configurer l’appareil, validez la configuration.
-
Pour vérifier la configuration, utilisez la commande show usp algs dns statsvty .
Comportement de l’ALG DNS spécifique à la plate-forme
Utilisez l’explorateur de fonctionnalités pour confirmer la prise en charge de fonctionnalités spécifiques par la plate-forme et la version.
Utilisez le tableau suivant pour passer en revue les comportements spécifiques à votre plateforme :
Plateforme |
Différence |
---|---|
SRX Series |
|