DNS ALG
Der ALG-Service (Domain Name System) auf Anwendungsebene Gateway verarbeitet Daten, die mit der Suche und Übersetzung von Domänennamen in IP-Adressen verbunden sind. Das ALG wird in der Regel auf Port 53 ausgeführt. Das ALG überwacht DNS-Abfrage- und Antwortpakete und unterstützt nur UDP-Datenverkehr.
Verwenden Sie Funktionen entdecken, um die Plattform- und Releaseunterstützung für bestimmte Funktionen zu bestätigen.
Lesen Sie den AbschnittPlattformspezifisches DNS-ALG-Verhalten , um Hinweise zu Ihrer Plattform zu erhalten.
DNS ALG Übersicht
Der ALG-Dienst (Anwendungsebene Gateway) stellt ein Gateway auf Anwendungsebene für die Verwendung mit DNS-Clients bereit. Der DNS ALG-Dienst ermöglicht einem Client den Zugriff auf mehrere DNS-Server in verschiedenen Netzwerken und bietet Routing zu und von diesen Servern. Es unterstützt auch die flexible Adressübersetzung der DNS-Abfrage- und Antwortpakete. Diese Funktionen ermöglichen es dem DNS-Client, viele verschiedene Domänen von einer einzigen DNS-Serverinstanz auf der Clientseite des Netzwerks abzufragen.
Der DNS-Server lauscht über den UDP-Port 53 auf eingehende Abfragen von DNS-Resolvern. Ein Resolver kommuniziert mit DNS-Servern, indem er DNS-Abfragen sendet und DNS-Antworten verarbeitet.
Der Standardport für DNS ALG ist Port 53.
Das DNS-ALG führt die folgenden Funktionen aus:
Überwacht DNS-Abfrage- und Antwortpakete und schließt die Sitzung, wenn die DNS-Antwort empfangen wird
Führt DNS Doctoring durch
Führt die IPv4- und IPv6-Adresstransformationen durch
Das Domain Name System (DNS) wurde ursprünglich entwickelt, um Abfragen einer statisch konfigurierten Datenbank zu unterstützen, und es wurde erwartet, dass sich die Daten ändern würden.
Zusätzlich zum DNS-Standard ist jetzt auch die Unterstützung von dynamischem DNS (DDNS) verfügbar. Der Hauptunterschied zwischen DNS und DDNS liegt im Nachrichtenformat des Header-Abschnitts und der Update-Nachricht.
DDNS-Nachrichten werden im Vergleich zu DNS-Nachrichten anders verarbeitet. Die Nachrichtenanalyse wurde für DDNS umgeschrieben. DDNS führt NAT und NAT-PT im Abfrageteil der Nachricht und DNS NAT und NAT-PT im Antwortteil der Nachricht aus.
Siehe auch
Beispiel: Konfigurieren des DNS-ALG
In diesem Beispiel wird gezeigt, wie die DNS-ALG so konfiguriert wird, dass DNS-Datenverkehr mit einem statischen NAT-Pool auf Geräten von Juniper Networks weitergeleitet wird.
Anforderungen
Bevor Sie beginnen:
Konfigurieren Sie den statischen NAT-Pool für alle IP-Adressen.
Machen Sie sich mit den Konzepten hinter ALG for DNS vertraut. Weitere Informationen finden Sie unter DNS ALG – Übersicht.
Überblick
In diesem Beispiel ist die ALG für DNS so konfiguriert, dass DNS-Datenverkehr zwischen den Clients und dem Server, die sich auf gegenüberliegenden Seiten eines Juniper Networks-Geräts befinden, überwacht und ausgetauscht werden kann.
In diesem Beispiel wird gezeigt, wie ein statischer NAT-Pool und -Regelsatz konfiguriert und die DNS-ALG einer Richtlinie zugeordnet wird.
Konfiguration
- Konfigurieren eines statischen NAT-Pools und -Regelsatzes
- Konfigurieren und Drucken der DNS-Ablaufverfolgung
Konfigurieren eines statischen NAT-Pools und -Regelsatzes
CLI Schnellkonfiguration
Um diesen Abschnitt des Beispiels schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die erforderlich sind, um Ihrer Netzwerkkonfiguration zu entsprechen, kopieren Sie die Befehle, fügen Sie sie in die CLI auf der Hierarchieebene ein, und wechseln Sie commit
dann aus dem [edit]
Konfigurationsmodus.
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
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Anweisungen hierzu finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im CLI-Benutzerhandbuch.
So konfigurieren Sie einen statischen NAT-Pool:
Erstellen Sie einen statischen NAT-Regelsatz.
[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
Ordnen Sie die DNS-Anwendung mithilfe einer Richtlinie zu.
[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
Befund
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie den show security nat
Befehl eingeben. Wenn in der Ausgabe nicht die beabsichtigte Konfiguration angezeigt wird, wiederholen Sie die Konfigurationsanweisungen in diesem Beispiel, um sie zu korrigieren.
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; }
Wenn Sie mit der Konfiguration des Geräts fertig sind, wechseln commit
Sie aus dem Konfigurationsmodus.
Konfigurieren und Drucken der DNS-Ablaufverfolgung
Zweck
Drucken Sie die DNS-Ablaufverfolgungsdatei.
Aktion
Geben Sie im Konfigurationsmodus den folgenden Befehl ein.
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
Verifizierung
Führen Sie die folgenden Schritte aus, um zu bestätigen, dass die Konfiguration ordnungsgemäß funktioniert:
Überprüfen von DNS ALG
Zweck
Stellen Sie sicher, dass DNS ALG aktiviert ist.
Aktion
Geben Sie im Betriebsmodus den show security alg status
Befehl ein.
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
Bedeutung
Die Ausgabe zeigt, dass die DNS-ALG aktiviert ist.
Überprüfen der DNS-ALG-Sicherheitsflusssitzung
Zweck
Vergewissern Sie sich, dass die ALG-Sicherheitsflusssitzung aktiviert ist.
Aktion
Geben Sie im Betriebsmodus den show security flow session application dns extensive
Befehl ein.
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,
Bedeutung
Die Ausgabe zeigt, dass ein aktiver Datenfluss unter Verwendung des DNS-ALG vorhanden ist.
Grundlegendes zu DNS und DDNS Doctoring
Junos OS unterstützt das Domain Name System (DNS) für ALGs. Das DNS-ALG überwacht DNS-Abfrage- und Antwortpakete und schließt die Sitzung, wenn das DNS-Flag anzeigt, dass es sich bei dem Paket um eine Antwortnachricht handelt. Um die DNS-ALG zu konfigurieren, verwenden Sie die edit security alg dns
Anweisung auf der [edit security alg]
Hierarchieebene.
DNS bietet eine Name-zu-Adress-Zuordnung innerhalb einer Routing-Klasse, während Network Address Translation (NAT) versucht, transparentes Routing zwischen Hosts in unterschiedlichen Adressbereichen derselben Routing-Klasse bereitzustellen. Infolgedessen kann NAT einige DNS-Probleme verursachen, die das DNG-ALG durch einen Prozess namens DNS Doctoring behandeln muss.
Die gleiche Doctoring-Funktion gilt für das dynamische Domänennamensystem (DDNS). Für DDNS im NAT-Modus können Sie die IP-Übersetzung auch im DDNS-Update durchführen.
Um die durch NAT, DNS und DDNS verursachten Probleme zu beheben, wurde die ALG-Funktionalität erweitert, um statisches NAT zu unterstützen, sodass die Probleme durch DNS Doctoring behoben werden können.
Der Restaurations- und Doctoring-Prozess besteht aus zwei Teilen:
-
Packet sanity check
Für das DNS-Paket sind die DNS-ALG-Prüffelder Fragen, Antworten, Autorität und zusätzliche Informationen. Das DNS-ALG verwirft das Paket, wenn die Anzahl der Fragen mehr als 1, der Domänenname mehr als 255 Byte oder die Labellänge mehr als 63 Byte beträgt.
Für das DDNS-Paket sind die DNS-ALG-Prüffelder Zone, Voraussetzung, Aktualisierung und zusätzliche Daten. Die DNS-ALG verwirft das Paket, wenn die Anzahl der Zonen größer als 1, der Domänenname mehr als 255 Byte oder die Bezeichnungslänge mehr als 63 Byte beträgt.
Sowohl bei DNS als auch bei DDNS verwirft die DNS-ALG das Paket, das nicht den Standards entspricht.
-
NAT
Abbildung 2 zeigt, wie DNS eine private Adresse in eine öffentliche Adresse übersetzt.

Wenn Host X in external.com die Adresse von Host A über DNS auflösen möchte und das DNS-ALG NAT nicht unterstützt, nimmt es eine private Adresse wie 172.19.1.10 an, die für Host X ungültig ist. Die private Adresse wird über das DNS-ALG in die öffentliche Adresse 10,131.108.10 übersetzt.
Abbildung 3 zeigt, wie DNS eine öffentliche Adresse in eine private Adresse übersetzt.

Wenn Host A in private.com die Adresse von Host B über DNS auflösen möchte und das DNS-ALG NAT nicht unterstützt, nimmt es eine öffentliche Adresse vom DNS-Server in external.com, z. B. 10.131.108.8. Wenn Host A Datenverkehr an Host B mit der öffentlichen Adresse 10.131.108.8 sendet, was für Host B in der privaten Domäne ungültig ist. Daher wird die öffentliche Adresse im A-Eintrag der DNS-Abfrage über das DNS-ALG in die private Adresse 172.19.2.1 übersetzt.
Das DNS-ALG kann die ersten 32 A-Einträge in einer einzigen DNS-Antwort übersetzen. A-Datensätze nach den ersten 32 Datensätzen werden nicht behandelt. Beachten Sie auch, dass das DNS-ALG IPv4- und IPv6-Adressen unterstützt und keine VPN-Tunnel.
Deaktivieren von DNS- und DDNS-Doctoring
Die DNS-ALG muss auf den Geräten aktiviert sein, um DNS- und DDNS-Doctoring durchführen zu können. Wenn die DNS-ALG auf dem Gerät aktiviert ist, ist die DNS- und DDNS-Doctoring-Funktion standardmäßig aktiviert. Sie können DNS und DDNS Doctoring über die CLI deaktivieren.
So deaktivieren Sie DNS- und DDNS-Doctoring:
-
Deaktivieren Sie alle Doctoring-Funktionen, indem Sie die
none
Konfigurationsoption angeben.Mit diesem Befehl werden alle Doctoring-Funktionen deaktiviert.
user@host#
set security alg dns doctoring none
-
Deaktivieren Sie die NAT-Funktion, und behalten Sie die Plausibilitätsprüfungsfunktion bei, indem Sie die
sanity-check
Konfigurationsoption angeben.Mit dieser Option wird die NAT-Funktion deaktiviert und die Funktion zur Plausibilitätsprüfung beibehalten.
user@host#
set security alg dns doctoring sanity-check
-
Wenn Sie mit der Konfiguration des Geräts fertig sind, bestätigen Sie die Konfiguration.
-
Um die Konfiguration zu überprüfen, verwenden Sie den Befehl show usp algs dns statsvty .
Plattformspezifisches DNS-ALG-Verhalten
Verwenden Sie Funktionen entdecken, um die Plattform- und Releaseunterstützung für bestimmte Funktionen zu bestätigen.
Verwenden Sie die folgende Tabelle, um plattformspezifische Verhaltensweisen für Ihre Plattform zu überprüfen:
Bahnsteig |
Unterschied |
---|---|
SRX-Serie |
|