ADC

Konfigurieren Sie die NetScaler-Appliance als DNS-Proxyserver

Als DNS-Proxyserver kann die ADC-Appliance als Proxy für einen einzelnen DNS-Server oder eine Gruppe von DNS-Servern fungieren. Der Fluss von Anfragen und Antworten wird im folgenden Topologiediagramm veranschaulicht.

Abbildung 1. NetScaler als DNS-Proxy

NetScaler als DNS-Proxy

Standardmäßig speichert die NetScaler-Appliance Antworten von DNS-Nameservern im Cache. Wenn die Appliance eine DNS-Anfrage empfängt, sucht sie in ihrem Cache nach der abgefragten Domain. Wenn die Adresse der abgefragten Domäne in ihrem Cache vorhanden ist, gibt der NetScaler die entsprechende Adresse an den Client zurück. Andernfalls leitet es die Anfrage an einen DNS-Nameserver weiter, der die Verfügbarkeit der Adresse überprüft und sie an den NetScaler zurückgibt. Der NetScaler gibt die Adresse dann an den Client zurück.

Bei Anfragen für eine Domain, die zuvor zwischengespeichert wurde, stellt der NetScaler den Adressdatensatz der Domäne aus dem Cache bereit, ohne den konfigurierten DNS-Server abzufragen.

Bei der DOT-Anfrage für eine Domain leitet NetScaler die Abfrage an einen DNS-Nameserver weiter, der die Verfügbarkeit der Adresse prüft und sie an NetScaler zurückgibt, wenn die zwischengespeicherten Informationen nicht verschlüsselt sind. NetScaler verschlüsselt die Adresse und die Antwort an den Client. Außerdem werden die Datensätze mit einer sicheren Option zwischengespeichert. Für die UDP- oder TCP-Anfrage für eine Domain, für die eine sichere Option aktiviert ist, stellt NetScaler den Adressdatensatz der Domain aus dem Cache bereit, ohne den konfigurierten DNS-Server abzufragen.

Die Appliance verwirft einen in ihrem Cache gespeicherten Datensatz, wenn der Time-to-Live (TTL) -Wert des Datensatzes den konfigurierten Wert erreicht. Ein Client, der einen abgelaufenen Datensatz anfordert, muss warten, bis der NetScaler den Datensatz vom Server abruft und seinen Cache aktualisiert. Um diese Verzögerung zu vermeiden, aktualisiert der NetScaler den Cache proaktiv, indem er den Datensatz vom Server abruft, bevor der Datensatz abläuft.

In der folgenden Tabelle sind Beispielnamen und die Werte der Entitäten aufgeführt, die auf dem NetScaler konfiguriert werden müssen.

Tabelle 1. Beispiel für die Konfiguration einer DNS-Proxy-Entität

Entitätstyp Name IP-Adresse Typ Port
Virtueller LB-Server Vserver-DNS-1 10.102.29.40 DNS 53
Services Service-DNS-1 10.102.29.50 DNS 53
Services Service-DNS-2 10.102.29.51 DNS 53

Das folgende Diagramm zeigt die Entitäten eines DNS-Proxys und die Werte der Parameter, die auf dem NetScaler konfiguriert werden sollen.

Abbildung 2. DNS-Proxy-Entity

DNS-Proxy-Entity

Hinweis

Um die DNS-Proxyfunktion zu konfigurieren, müssen Sie wissen, wie Load Balancing-Dienste und virtuelle Server konfiguriert werden.

Erstellen eines virtuellen Lastausgleichsservers

Um einen DNS-Proxy auf dem NetScaler zu konfigurieren, konfigurieren Sie einen virtuellen Lastausgleichsserver vom Typ DNS. Um einen virtuellen DNS-Server für den Lastausgleich einer Reihe von DNS-Servern zu konfigurieren, die rekursive Abfragen unterstützen, müssen Sie die Option Rekursion verfügbar aktivieren. Mit dieser Option wird das RA-Bit in den DNS-Antworten vom virtuellen DNS-Server auf ON gesetzt.

Anweisungen zum Erstellen eines virtuellen Lastausgleichsservers finden Sie unter Load Balancing.

Erstellen von DNS-Diensten

Nachdem Sie einen virtuellen Lastausgleichsserver vom Typ DNS erstellt haben, müssen Sie DNS-Dienste erstellen. Sie können einen DNS-Dienst hinzufügen, ändern, aktivieren, deaktivieren und entfernen. Anweisungen zum Erstellen eines DNS-Dienstes finden Sie unter Load Balancing.

Binden eines virtuellen Lastausgleichsservers an DNS-Dienste

Um die DNS-Proxykonfiguration abzuschließen, müssen Sie die DNS-Dienste an den virtuellen Lastausgleichsserver binden. Anweisungen zum Binden eines Dienstes an einen virtuellen Lastausgleichsserver finden Sie unter Load Balancing.

Konfigurieren des DNS-Proxy-Setups für die Verwendung von TCP

Einige Clients verwenden das User Datagram Protocol (UDP) für die DNS-Kommunikation. UDP gibt jedoch eine maximale Paketgröße von 512 Byte an. Wenn die Payload-Länge 512 Byte überschreitet, muss der Client TCP verwenden. Wenn ein Client der NetScaler-Appliance eine DNS-Anfrage sendet, leitet die Appliance die Anfrage an einen der Nameserver weiter. Wenn die Antwort für ein UDP-Paket zu groß ist, setzt der Nameserver das Kürzungsbit in seiner Antwort an den NetScaler. Das Kürzungsbit gibt an, dass die Antwort für UDP zu groß ist und dass der Client die Anfrage über eine TCP-Verbindung senden muss. Die ADC-Appliance leitet die Antwort an den Client weiter, wobei das Kürzungsbit intakt ist. Es wartet darauf, dass der Client eine TCP-Verbindung mit der IP-Adresse des virtuellen DNS-Load-Balancing-Servers auf Port 53 initiiert. Der Client sendet die Anfrage über eine TCP-Verbindung. Die NetScaler-Appliance leitet die Anfrage dann an den Nameserver weiter und leitet die Antwort an den Client weiter.

Um den NetScaler so zu konfigurieren, dass er das TCP-Protokoll für DNS verwendet, müssen Sie einen virtuellen Lastausgleichsserver und Dienste konfigurieren, beide vom Typ DNS_TCP. Sie können Monitore vom Typ DNS_TCP konfigurieren, um den Status der Dienste zu überprüfen. Anweisungen zum Erstellen virtueller Server, Dienste und Monitore von DNS_TCP finden Sie unter Load Balancing.

Um die Datensätze proaktiv zu aktualisieren, verwendet NetScaler eine TCP-Verbindung zum Server, um die Datensätze abzurufen.

Wichtig

Um den NetScaler so zu konfigurieren, dass er UDP für DNS verwendet und TCP nur verwendet, wenn die Nutzlastlänge von UDP 512 Byte überschreitet, müssen Sie sowohl die DNS- als auch die DNS_TCP-Dienste konfigurieren. Die IP-Adresse des DNS_TCP-Dienstes muss mit der IP-Adresse des DNS-Dienstes übereinstimmen.

Time-to-Live-Werte für DNS-Einträge konfigurieren

Die TTL ist für alle DNS-Einträge mit demselben Domainnamen und Datensatztyp gleich. Wenn der TTL-Wert für einen der Datensätze geändert wird, spiegelt sich der neue Wert in allen Datensätzen desselben Domainnamens und -typs wider. Der Standard-TTL-Wert ist 3600 Sekunden. Das Minimum ist 0 und das Maximum ist 604800. Wenn ein DNS-Eintrag einen TTL-Wert hat, der kleiner als das Minimum oder größer als das Maximum ist, wird er als minimaler bzw. maximaler TTL-Wert gespeichert.

Minimale und maximale TTL mithilfe der CLI angeben

Geben Sie an der NetScaler-Befehlszeile die folgenden Befehle ein, um die minimale und maximale TTL anzugeben und die Konfiguration zu überprüfen:

-  set dns parameter [-minTTL <secs>] [-maxTTL <secs>]
-  show dns parameter
<!--NeedCopy-->

Beispiel:

> set dns parameter -minTTL 1200 -maxTTL 1800
 Done
> show dns parameter
        DNS parameters:
        DNS retries: 5
        Minimum TTL: 1200               Maximum TTL: 1800
            .
            .
            .
 Done
>
<!--NeedCopy-->

Minimale und maximale TTL mithilfe der GUI angeben

  1. Navigieren Sie zu Traffic Management > DNS.
  2. Klicken Sie im Detailbereich unter Einstellungen auf DNS-Einstellungen ändern.
  3. Geben Sie im Dialogfeld DNS-Parameter konfigurieren unter TTL in den Textfeldern Minimum und Maximum die minimale bzw. maximale Lebensdauer (in Sekunden) ein, und klicken Sie dann auf OK.

Hinweis: Wenn die TTL abläuft, wird der Datensatz aus dem Cache gelöscht. Der NetScaler kontaktiert proaktiv die Server und ruft den DNS-Eintrag ab, kurz bevor der DNS-Eintrag abläuft.

DNS-Einträge leeren

Sie können alle im Cache vorhandenen DNS-Einträge löschen. Beispielsweise möchten Sie möglicherweise DNS-Einträge löschen, wenn ein Server nach Änderungen neu gestartet wird.

Alle Proxy-Datensätze mithilfe der CLI löschen

Geben Sie an der NetScaler Eingabeaufforderung Folgendes ein:

flush dns proxyRecords

Alle Proxy-Datensätze mithilfe der GUI löschen

  1. Navigieren Sie zu Traffic Management > DNS > Records.
  2. Klicken Sie im Detailbereich auf Flush Proxy Records.

DNS-Ressourceneinträge hinzufügen

Sie können DNS-Einträge zu einer Domäne hinzufügen, für die die NetScaler Appliance als DNS-Proxyserver konfiguriert ist. Informationen zum Hinzufügen von DNS-Datensätzen finden Sie unter Konfigurieren von DNS-Ressourceneinträgen.

Entfernen eines virtuellen DNS-Servers für Lastausgleich

Informationen zum Entfernen eines virtuellen Lastausgleichsservers finden Sie unter Load Balancing.

Begrenzen der Anzahl gleichzeitiger DNS-Anforderungen für eine Clientverbindung

Sie können die Anzahl gleichzeitiger DNS-Anfragen auf einer einzelnen Clientverbindung begrenzen, die durch das <clientip:port>-<vserver ip:port> Tupel gekennzeichnet ist. Gleichzeitige DNS-Anfragen sind die Anfragen, die die NetScaler-Appliance an die Nameserver weitergeleitet hat und für die die Appliance auf Antworten wartet. Durch die Begrenzung der Anzahl gleichzeitiger Anfragen auf einer Clientverbindung können Sie die Nameserver schützen, wenn ein feindlicher Client versucht, einen Distributed-Denial-of-Service (DDoS) -Angriff zu starten, indem er eine Flut von DNS-Anfragen sendet. Wenn das Limit für eine Clientverbindung erreicht ist, werden nachfolgende DNS-Anfragen für die Verbindung verworfen, bis die Anzahl der ausstehenden Anfragen das Limit unterschreitet. Dieses Limit gilt nicht für die Anfragen, die die NetScaler-Appliance aus ihrem Cache verarbeitet.

Der Standardwert für diesen Parameter ist 255. Dieser Standardwert ist in den meisten Szenarien ausreichend. Wenn die Nameserver unter normalen Betriebsbedingungen viele gleichzeitige DNS-Anfragen bearbeiten, können Sie entweder einen großen Wert oder einen Wert von Null (0) angeben. Ein Wert von 0 deaktiviert diese Funktion und gibt an, dass die Anzahl der DNS-Anfragen, die für eine einzelne Clientverbindung zulässig sind, unbegrenzt ist. Dieser Parameter ist ein globaler Parameter und gilt für alle virtuellen DNS-Server, die auf der NetScaler-Appliance konfiguriert sind. Der Standardwert für diesen Parameter ist 255. Dieser Standardwert ist in den meisten Szenarien ausreichend. Wenn die Nameserver unter normalen Betriebsbedingungen viele gleichzeitige DNS-Anfragen bearbeiten, können Sie entweder einen großen Wert oder einen Wert von Null (0) angeben. Ein Wert von 0 deaktiviert diese Funktion und gibt an, dass die Anzahl der DNS-Anfragen, die für eine einzelne Clientverbindung zulässig sind, unbegrenzt ist. Dieser Parameter ist ein globaler Parameter und gilt für alle virtuellen DNS-Server, die auf der NetScaler-Appliance konfiguriert sind. Der Standardwert für diesen Parameter ist 255. Dieser Standardwert ist in den meisten Szenarien ausreichend. Wenn die Nameserver unter normalen Betriebsbedingungen viele gleichzeitige DNS-Anfragen bearbeiten, können Sie entweder einen großen Wert oder einen Wert von Null (0) angeben. Ein Wert von 0 deaktiviert diese Funktion und gibt an, dass die Anzahl der DNS-Anfragen, die für eine einzelne Clientverbindung zulässig sind, unbegrenzt ist. Dieser Parameter ist ein globaler Parameter und gilt für alle virtuellen DNS-Server, die auf der NetScaler-Appliance konfiguriert sind.

Geben Sie die maximale Anzahl gleichzeitiger DNS-Anforderungen an, die für eine einzelne Clientverbindung zulässig sind, mithilfe der Befehlszeilenschnittstelle

Geben Sie an der Befehlszeile die folgenden Befehle ein, um die maximale Anzahl gleichzeitiger DNS-Anfragen anzugeben, die für eine einzelne Clientverbindung zulässig sind, und überprüfen Sie die Konfiguration:

-  set dns parameter -maxPipeline <positive_integer>
-  show dns parameter
<!--NeedCopy-->

Beispiel:

> set dns parameter -maxPipeline 1000
 Done
> show dns parameter
        DNS parameters:
        DNS retries: 5
        .
        .
        .
        Max DNS Pipeline Requests: 1000
 Done
<!--NeedCopy-->

Geben Sie mithilfe der GUI die maximale Anzahl gleichzeitiger DNS-Anfragen an, die für eine einzelne Client-Verbindung zulässig sind

  1. Navigieren Sie zu Traffic Management > DNS.
  2. Klicken Sie im Detailbereich auf DNS-Einstellungen ändern.
  3. Geben Sie im Dialogfeld DNS-Parameter konfigurieren einen Wert für Max. DNS-Pipelineanfragen an.
  4. Klicken Sie auf OK.

Unterstützung für DNS-ECS-Einfügung

Die Antwortzeit des DNS-Servers kann verbessert werden, indem das ECS in die DNS-Abfrage aufgenommen wird. Dadurch kann der DNS-Server Anfragen an den entsprechenden geografischen Standort umleiten. Abhängig von der Client-IP-Adresse und einer Subnetzmaske können Sie eine ECS-Option (Extended Client Subnet) in Proxy-DNS-Abfragen einbeziehen.

ECS-Parameter mit CLI konfigurieren

Geben Sie in der Befehlszeile Folgendes ein:

add dns profile <profilename> -insertECS <ENABLED|DISABLED> -replaceECS <ENABLED|DISABLED> -maxCacheableECSPrefixLength <0-32> -maxCacheableECSPrefixLength6 <0-128>

  • insertECS - Wenn diese Option aktiviert ist, verfügen DNS-Anfragen, die über einen virtuellen Lastausgleichsserver mit dem DNS-Profil weitergeleitet werden, über eine ECS-Option, die auf der Client-IP-Adresse basiert. Standardmäßig ist dieser Parameter DISABLED.

  • replaceECS — Wenn diese Option aktiviert ist, werden DNS-Anfragen, die über einen virtuellen Lastausgleichsserver mit der ECS-Option für das DNS-Profil weitergeleitet werden, durch ein neues ECS ersetzt, das auf der Client-IP-Adresse basiert. Standardmäßig ist dieser Parameter DISABLED.

  • maxCacheableECSPrefixLength - Gibt die maximale Präfixlänge der Netzwerkmaske an, die für die ECS-Option für IPv4-Adressen verwendet wird. Gültige Werte: 0-32 Standardwert: 32
  • maxCacheableECSPrefixLength6 - Gibt die maximale Präfixlänge der Netzwerkmaske an, die für die ECS-Option für IPv6-Adressen verwendet wird. Gültige Werte: 0-128 Standardwert: 128.

ECS-Parameter mit der GUI konfigurieren

  1. Navigieren Sie zu System > Profile > DNS-Profil und erstellen Sie das DNS-Profil.
  2. Aktivieren Sie ECS einfügen oder ECS ersetzen.
  3. Geben Sie die Präfixlänge für IPv4 und IPv6 ein.
  4. Klicken Sie auf OK.