ADC

Domain-Namenssystem

Hinweis: Ab Version 13.0 Build 41.x ist die NetScaler-Appliance im ADNS- und Proxy-Modus vollständig mit dem DNS-Flag-Tag 2019 kompatibel.

Sie können die NetScaler-Appliance so konfigurieren, dass sie als autorisierender Domänennamenserver (ADNS-Server) für eine Domäne fungiert. Fügen Sie die DNS-Ressourceneinträge hinzu, die zu der Domäne gehören, für die die Appliance autorisierend ist, und konfigurieren Sie die Ressourceneintragsparameter. Sie können die Appliance auch als Proxy-DNS-Server konfigurieren, der die Last einer Farm von DNS-Nameservern ausgleicht, die sich entweder innerhalb oder außerhalb Ihres Netzwerks befinden. Konfigurieren Sie die Appliance als Endresolver und Forwarder. Sie können DNS-Suffixe konfigurieren, die die Namensauflösung ermöglichen, wenn vollqualifizierte Domainnamen nicht konfiguriert sind. Die Appliance unterstützt auch die DNS ANY-Abfrage, die alle Datensätze abruft, die zu einer Domäne gehören.

Sie können die Appliance so konfigurieren, dass sie gleichzeitig als autorisierender DNS-Server für eine Domäne und als DNS-Proxyserver für eine andere Domäne fungiert. Wenn Sie die Appliance als autorisierenden DNS-Server oder DNS-Proxyserver für eine Zone konfigurieren, können Sie der Appliance ermöglichen, den TCP für Antwortgrößen zu verwenden, die die für das User Datagram Protocol (UDP) angegebene Größenbeschränkung überschreiten.

So funktioniert DNS auf dem NetScaler

Sie können die NetScaler-Appliance so konfigurieren, dass sie als ADNS-Server, DNS-Proxyserver, Endresolver und Weiterleitung fungiert. Sie können DNS-Ressourceneinträge auf der NetScaler-Appliance hinzufügen, einschließlich der folgenden Datensätze:

  • Service (SRV) -Aufzeichnungen
  • IPv6 (AAAA) -Aufzeichnungen
  • Adresse (A) Aufzeichnungen
  • Mail-Exchange (MX) -Datensätze
  • Aufzeichnungen über kanonische Namen (CNAME)
  • Pointer (PTR) -Aufzeichnungen
  • Beginn der Behörde (SOA) -Aufzeichnungen
  • Text (TXT) -Datensätze
  • Name Authority Pointer (NAPTR) -Datensätze
  • DNSKEY
  • Datensätze für die Autorisierung der Zertifizierungsstelle (CAA)

Sie können den NetScaler auch so konfigurieren, dass der Lastenausgleich externer DNS-Nameserver erfolgt.

Die NetScaler-Appliance kann als Autorität für eine Domäne konfiguriert werden. Fügen Sie gültige SOA- und NS-Datensätze für die Domäne hinzu.

Ein ADNS-Server ist ein DNS-Server, der vollständige Informationen über eine Zone enthält.

Um die NetScaler-Appliance als ADNS-Server für eine Zone zu konfigurieren, müssen Sie einen ADNS-Dienst hinzufügen und dann die Zone konfigurieren. Dazu fügen Sie gültige SOA- und NS-Records für die Domäne hinzu. Wenn ein Client eine DNS-Anforderung sendet, durchsucht die NetScaler-Appliance die konfigurierten Ressourceneinträge nach dem Domänennamen. Sie können den ADNS-Dienst für die Verwendung mit der Funktion NetScaler Global Server Load Balancing (GSLB) konfigurieren.

Sie können eine Subdomain delegieren, indem Sie NS-Datensätze für die Subdomain zur Zone der übergeordneten Domäne hinzufügen. Sie können dann den NetScaler für die Subdomain autorisierend machen, indem Sie für jeden der Subdomain-Namenserver einen “Glue-Record” hinzufügen. Wenn GSLB konfiguriert ist, trifft der NetScaler basierend auf seiner Konfiguration eine Entscheidung für den GSLB-Lastausgleich und antwortet mit der IP-Adresse des ausgewählten virtuellen Servers. Die folgende Abbildung zeigt die Entitäten in einem ADNS GSLB-Setup und einem DNS-Proxy-Setup.

Abbildung 1. DNS-Proxy-Entity

DNS-Entitätsmodell

Die NetScaler-Appliance kann als DNS-Proxy fungieren. Das Zwischenspeichern von DNS-Datensätzen, was eine wichtige Funktion eines DNS-Proxys ist, ist standardmäßig auf der NetScaler-Appliance aktiviert. Durch das Zwischenspeichern kann die NetScaler-Appliance schnelle Antworten auf wiederholte Übersetzungen liefern. Erstellen Sie einen virtuellen DNS-Server mit Lastausgleich und DNS-Dienste, und binden Sie diese Dienste dann an den virtuellen Server.

Der NetScaler bietet zwei Optionen: minimale Lebenszeit (TTL) und maximale TTL für die Konfiguration der Lebensdauer der zwischengespeicherten Daten. Bei den zwischengespeicherten Daten tritt eine Zeitüberschreitung auf, wie in Ihren Einstellungen für diese beiden Optionen angegeben. Der NetScaler überprüft die TTL des DNS-Eintrags, der vom Server kommt. Wenn die TTL kleiner als die konfigurierte Mindest-TTL ist, wird sie durch die konfigurierte minimale TTL ersetzt. Wenn die TTL größer als die konfigurierte maximale TTL ist, wird sie durch die konfigurierte maximale TTL ersetzt.

Der NetScaler ermöglicht auch das Zwischenspeichern negativer Antworten für eine Domäne. Eine negative Antwort weist darauf hin, dass Informationen zu einer angeforderten Domäne nicht existieren oder dass der Server keine Antwort auf die Abfrage geben kann. Die Speicherung dieser Informationen wird als negatives Cachingbezeichnet. Negatives Caching beschleunigt die Antworten auf Abfragen in einer Domäne und kann optional den Datensatztyp bereitstellen.

Eine negative Reaktion kann eine der folgenden sein:

  • NXDOMAIN-Fehlermeldung - Wenn eine negative Antwort im lokalen Cache vorhanden ist, gibt NetScaler eine Fehlermeldung (NXDOMAIN) zurück. Wenn sich die Antwort nicht im lokalen Cache befindet, wird die Abfrage an den Server weitergeleitet, und der Server gibt einen NXDOMAIN-Fehler an den NetScaler zurück. Der NetScaler speichert die Antwort lokal im Cache und gibt dann die Fehlermeldung an den Client zurück.
  • NODATA-Fehlermeldung - Der NetScaler sendet eine NODATA-Fehlermeldung, wenn der Domainname in der Abfrage gültig ist, Datensätze des angegebenen Typs jedoch nicht verfügbar sind.

Der NetScaler unterstützt die rekursive Auflösung von DNS-Anforderungen. Bei rekursiver Auflösung sendet der Resolver (DNS-Client) eine rekursive Abfrage nach einem Domänennamen an einen Nameserver. Wenn der abgefragte Nameserver für die Domäne autorisierend ist, antwortet er mit dem angeforderten Domainnamen. Andernfalls fragt der NetScaler die Nameserver rekursiv ab, bis der angeforderte Domänenname gefunden wurde.

Bevor Sie die rekursive Abfrageoption anwenden können, müssen Sie sie zuerst aktivieren. Sie können auch festlegen, wie oft der DNS-Resolver eine Auflösungsanfrage senden muss (DNS-Wiederholungen), falls eine DNS-Suche fehlschlägt.

Sie können den NetScaler als DNS-Weiterleitung konfigurieren. Ein Forwarder leitet DNS-Anfragen an externe Nameserver weiter. Mit dem NetScaler können Sie externe Nameserver hinzufügen und die Namensauflösung für Domänen außerhalb des Netzwerks bereitstellen. Mit dem NetScaler können Sie auch die Priorität der Namenssuche auf DNS oder Windows Internet Name Service (WINS) festlegen.

Ermöglichen Sie der ADC-Appliance, DNS zu verwenden, um den Hostnamen in die entsprechende IP-Adresse aufzulösen

Hinweis: Sie benötigen ein SSH-Dienstprogramm, um auf die Befehlszeilenschnittstelle (CLI) der Appliance zuzugreifen.

Standardmäßig kann die ADC-Appliance den Hostnamen nicht in die entsprechende IP-Adresse auflösen. Führen Sie die folgenden Aufgaben aus, um die Namensauflösung auf der Appliance zu aktivieren:

  1. Definieren Sie Nameserver.
  2. Definieren Sie ein DNS-Suffix.

Wichtige Hinweise

Führen Sie die DNS-Suche von der CLI aus. DNS-Lookups von der Shell-Eingabeaufforderung des FreeBSD-Betriebssystems schlagen fehl, weil der Eintrag in der Datei /etc/resolv.conf auf die 127.0.0.2 IP-Adresse verweist.

Die folgenden Befehle werden durch den Befehl drill in der FreeBSD-CLI der Appliance ersetzt, die mit dem Befehl shell erreichbar ist:

-  host
-  dig
-  getent/MIP
-  nslookup
<!--NeedCopy-->

Anstatt beispielsweise mit dig www.google.com @8.8.8.8 den “A”-Datensatz “www.google.com” auf dem Namenserver “8.8.8.8” abzufragen, können Sie den Befehl drill www.google.com @8.8.8.8 ausführen. Der Befehl drill zeigt das gleiche Ergebnis wie der Befehl dig.

root@lab# drill www.google.com @8.8.8.8
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 57980
;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; www.google.com. IN A

;; ANSWER SECTION:
www.google.com. 300 IN A 142.250.187.196

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 53 msec
;; SERVER: 8.8.8.8
;; WHEN: Thu Jun 9 11:04:55 2022
;; MSG SIZE rcvd: 48
<!--NeedCopy-->

Wenn die Appliance den DNS-Server nicht an seiner SNIP-Adresse anpingen kann, wird der Serverstatus als ausgefallen angezeigt. Ein erfolgreicher Ping ist wichtig, wenn sich das Gerät hinter einer Firewall befindet.

CLI-Konfiguration

Geben Sie in der Befehlszeile Folgendes ein:

add dns nameServer <Name_Server_IP_Address>
add dns suffix <DNS_Suffix>
<!--NeedCopy-->

Um die Konfiguration zu überprüfen, geben Sie Folgendes ein:

show dns nameServer
show dns suffix
<!--NeedCopy-->

Um die DNS-Auflösung zu testen, geben Sie:

show dns addrec <Host_Name>
<!--NeedCopy-->

GUI-Konfiguration

  1. Navigieren Sie zu Traffic Management > DNS > Nameserver > Hinzufügen.
  2. Geben Sie im Dialogfeld Nameserver erstellen die IP-Adresse des Nameservers ein und klicken Sie auf Erstellen.
  3. Navigieren Sie zu Traffic Management > DNS > DNS-Suffix > Hinzufügen.
  4. Geben Sie im Dialogfeld DNS-Suffix erstellen das DNS-Suffix ein, z. B. example.com, das für alle Host-Abfragen verwendet werden soll, und klicken Sie auf Erstellen.

Runder Robin DNS

Wenn ein Client eine DNS-Anforderung sendet, um den DNS-Ressourceneintrag zu finden, erhält er eine Liste von IP-Adressen, die auf den Namen in der DNS-Anforderung aufgelöst werden. Der Client verwendet dann eine der IP-Adressen in der Liste, im Allgemeinen den ersten Datensatz oder die erste IP-Adresse. Daher wird ein einzelner Server für die gesamte TTL des Caches verwendet und ist überlastet, wenn viele Anfragen eingehen.

Wenn der NetScaler eine DNS-Anforderung erhält, antwortet er, indem er die Reihenfolge der Liste der DNS-Ressourceneinträge in einer Round-Robin-Methode ändert. Diese Funktion wird Round-Robin-DNSgenannt. Round-Robin verteilt den Verkehr gleichmäßig zwischen Rechenzentren. Der NetScaler führt diese Funktion automatisch aus. Sie müssen dieses Verhalten nicht konfigurieren.

Funktioneller Überblick

Wenn der NetScaler als ADNS-Server konfiguriert ist, gibt er die DNS-Einträge in der Reihenfolge zurück, in der die Datensätze konfiguriert sind. Wenn der NetScaler als DNS-Proxy konfiguriert ist, gibt er die DNS-Einträge in der Reihenfolge zurück, in der er die Datensätze vom Server empfängt. Die Reihenfolge der im Cache vorhandenen Datensätze stimmt mit der Reihenfolge überein, in der Datensätze vom Server empfangen werden.

Der NetScaler ändert dann die Reihenfolge, in der Datensätze in der DNS-Antwort gesendet werden, in einer Round-Robin-Methode. Die erste Antwort enthält den ersten Datensatz in der Reihenfolge, die zweite Antwort enthält den zweiten Datensatz in der Folge, und die Reihenfolge wird in derselben Reihenfolge fortgesetzt. Daher können Clients, die denselben Namen anfordern, eine Verbindung zu verschiedenen IP-Adressen herstellen.

Beispiel für DNS-Round-Robin

Betrachten Sie als Beispiel für Round-Robin-DNS-Datensätze, die wie folgt hinzugefügt wurden:

  add dns addRec ns1 1.1.1.1  add dns addRec ns1 1.1.1.2  add dns addRec ns1 1.1.1.3  add dns addRec ns1 1.1.1.4
<!--NeedCopy-->

Die Domain abc.com ist wie folgt mit einem NS-Datensatz verknüpft:

  add dns nsrec abc.com. ns1
<!--NeedCopy-->

Wenn der NetScaler eine Abfrage für den A-Datensatz von ns1 erhält, werden die Adressdatensätze wie folgt in einer Round-Robin-Methode bedient. In der ersten DNS-Antwort wird 1.1.1.1 als erster Datensatz serviert:

  ns1.                    1H IN A         1.1.1.1  ns1.                    1H IN A         1.1.1.2  ns1.                    1H IN A         1.1.1.3  ns1.                    1H IN A         1.1.1.4
<!--NeedCopy-->

In der zweiten DNS-Antwort wird die zweite IP-Adresse 1.1.1.2 als erster Datensatz serviert:

  ns1.                    1H IN A         1.1.1.2  ns1.                    1H IN A         1.1.1.3  ns1.                    1H IN A         1.1.1.4  ns1.                    1H IN A         1.1.1.1
<!--NeedCopy-->

In der dritten DNS-Antwort wird die dritte IP-Adresse 1.1.1.2 als erster Datensatz serviert:

  ns1.                    1H IN A         1.1.1.3  ns1.                    1H IN A         1.1.1.4  ns1.                    1H IN A         1.1.1.1  ns1.                    1H IN A         1.1.1.2
<!--NeedCopy-->
Domain-Namenssystem