DNS64
Die NetScaler DNS64-Funktion reagiert mit einem synthetisierten DNS-AAAA-Datensatz auf einen IPv6-Client, der eine AAAA-Anfrage für eine reine IPv4-Domäne sendet. Die DNS64-Funktion wird zusammen mit der NAT64-Funktion verwendet, um eine nahtlose Kommunikation zwischen reinen IPv6-Clients und reinen IPv4-Servern zu ermöglichen. DNS64 ermöglicht die Erkennung der IPv4-Domäne durch reine IPv6-Clients, und NAT64 ermöglicht die Kommunikation zwischen den Clients und Servern.
Für die Synthese eines AAAA-Eintrags ruft die NetScaler-Appliance einen DNS-A-Datensatz von einem DNS-Server ab. Das DNS64-Präfix ist ein 96-Bit-IPv6-Präfix, das auf der NetScaler-Appliance konfiguriert ist. Die NetScaler-Appliance synthetisiert den AAAA-Datensatz durch Verkettung des DNS64-Präfixes (96 Bit) und der IPv4-Adresse (32 Bit).
Um die Kommunikation zwischen IPv6-Clients und IPv4-Servern zu ermöglichen, kann eine NetScaler-Appliance mit DNS64- und NAT64-Konfiguration entweder auf der IPv6-Clientseite oder auf der IPv4-Serverseite bereitgestellt werden. In beiden Fällen ist die DNS64-Konfiguration auf der NetScaler-Appliance ähnlich und beinhaltet einen virtuellen Lastausgleichsserver, der als Proxyserver für DNS-Server fungiert. Wenn die NetScaler-Appliance auf der Clientseite bereitgestellt wird, muss der virtuelle Load-Balancing-Server auf dem IPv6-Client als Nameserver für eine Domäne angegeben werden.
Stellen Sie sich ein Beispiel vor, in dem eine NetScaler-Appliance mit DNS64- und NAT64-Konfiguration auf der IPv4-Seite konfiguriert ist. In diesem Beispiel hostet ein Unternehmen die Website www.example.com auf dem Server S1, der eine IPv4-Adresse hat. Um die Kommunikation zwischen IPv6-Clients und dem IPv4-Server S1 zu ermöglichen, wird die NetScaler Appliance NS1 mit einer DNS64- und statusfähigen NAT64-Konfiguration bereitgestellt.
Die DNS64-Konfiguration umfasst den virtuellen DNS-Lastausgleichsserver LBVS-DNS64-1, auf dem die DNS64-Option aktiviert ist. Eine DNS64-Richtlinie mit dem Namen DNS64-Policy-1 und eine zugehörige DNS64-Aktion mit dem Namen DNS64-Action-1 sind ebenfalls auf NS1 konfiguriert, und DNS64-Policy-1 ist an LBVS-DNS64-1 gebunden. LBVS-DNS64-1 fungiert als DNS-Proxyserver für die DNS-Server DNS-1 und DNS-2.
Wenn der bei LBVS-DNS64-1 eingehende Verkehr den in DNS64-Policy-1 angegebenen Bedingungen entspricht, wird der Datenverkehr gemäß den Einstellungen in DNS64-Action-1 verarbeitet. DNS64-Action-1 gibt das DNS64-Präfix an, das zusammen mit dem von einem DNS-Server empfangenen A-Eintrag verwendet wird, um einen AAAA-Eintrag zu synthetisieren.
Der globale DNS-Parameter cacherecords ist auf der NetScaler-Appliance aktiviert, sodass die Appliance DNS-Einträge zwischenspeichert. Diese Einstellung ist erforderlich, damit der DNS64 ordnungsgemäß funktioniert.
In der folgenden Tabelle sind die im obigen Beispiel verwendeten Einstellungen aufgeführt: DNS64-Beispieleinstellungen.
Es folgt der Verkehrsfluss in diesem Beispiel:
- Der IPv6-Client CL1 sendet eine DNS-AAAA-Anfrage für die IPv6-Adresse der Site www.example.com.
- Die Anfrage wird vom virtuellen DNS-Lastausgleichsserver LBVS-DNS64-1 auf der NetScaler Appliance NS1 empfangen.
- NS1 überprüft seine DNS-Cache-Einträge auf den angeforderten AAAA-Eintrag und stellt fest, dass der AAAA-Eintrag für die Site www.example.com nicht im DNS-Cache vorhanden ist.
- Der Load-Balancing-Algorithmus von LBVS-DNS64-1 wählt den DNS-Server DNS-1 aus und leitet die AAAA-Anfrage an ihn weiter.
- Da die Site www.example.com auf einem IPv4-Server gehostet wird, hat der DNS-Server DNS-1 keinen AAAA-Eintrag für die Site www.example.com.
- DNS-1 sendet entweder eine leere DNS-AAAAA-Antwort oder eine Fehlermeldung an LBVS-DNS64-1.
- Da die DNS64-Option auf LBVS-DNS64-1 aktiviert ist und die AAAA-Anfrage von CL1 der in DNS64-Policy-1 angegebenen Bedingung entspricht, sendet NS1 eine DNS-A-Anfrage an DNS-1 für die IPv4-Adresse von www.example.com.
- DNS-1 reagiert, indem es den DNS-A-Eintrag für www.example.com an LBVS-DNS64-1 sendet. Der A-Datensatz enthält die IPv4-Adresse für www.example.com.
- NS1 synthetisiert einen AAAA-Datensatz für die Site www.example.com mit:
- IPv6 address for site www.example.com = Concatenation of DNS64 Prefix (96 bits) specified in the associated DNS64action, and IPv4 address of DNS A record (32 bits) = 2001:DB8:300::192.0.2.60
- NS1 sendet den synthetisierten AAAA-Datensatz an den IPv6-Client CL1. NS1 speichert auch den A-Datensatz in seinem Speicher. NS1 verwendet den zwischengespeicherten A-Datensatz, um AAAA-Datensätze für nachfolgende AAAA-Anfragen zu synthetisieren.
Punkte, die bei einer DNS64-Konfiguration zu beachten sind
Bevor Sie DNS64 auf einer NetScaler-Appliance konfigurieren, sollten Sie die folgenden Punkte berücksichtigen:
-
Die DNS64-Funktion der NetScaler-Appliance entspricht RFC 6174.
-
Die DNS64-Funktion der NetScaler-Appliance unterstützt DNSSEC nicht. Die NetScaler-Appliance synthetisiert keinen AAAA-Datensatz aus einer DNSSEC-Antwort, die von einem DNS-Server empfangen wurde. Eine Antwort wird nur dann als DNSSEC-Antwort klassifiziert, wenn sie RRSIG-Datensätze enthält.
-
Die NetScaler-Appliance unterstützt das DNS64-Präfix mit einer Länge von nur 96 Bit.
-
Obwohl die DNS64-Funktion zusammen mit der NAT64-Funktion verwendet wird, sind die DNS64- und NAT64-Konfigurationen von der NetScaler-Appliance unabhängig. Für einen bestimmten Flow müssen Sie denselben IPv6-Präfixwert für das DNS64-Präfix und die NAT64-Präfixparameter angeben, damit die vom Client empfangenen synthetisierten IPv6-Adressen an die bestimmte NAT64-Konfiguration weitergeleitet werden. Weitere Informationen zum Konfigurieren von NAT64 auf einer NetScaler Appliance finden Sie unter Stateful NAT64.
-
Im Folgenden sind die verschiedenen Fälle der DN64-Verarbeitung durch die NetScaler Appliance aufgeführt:
-
Wenn die AAAA-Antwort des DNS-Servers AAAA-Einträge enthält, wird jeder Datensatz in der Antwort auf den Satz von Ausschlussregeln überprüft, der auf der NetScaler-Appliance für die jeweilige DNS64-Konfiguration konfiguriert ist. Der NetScaler entfernt die IPv6-Adressen, deren Präfix der Ausnahmeregel entspricht, aus der Antwort. Wenn die resultierende Antwort mindestens einen IPv6-Datensatz enthält, leitet die NetScaler-Appliance diese Antwort an den Client weiter. Andernfalls synthetisiert die Appliance eine AAAA-Antwort aus dem A-Datensatz der Domäne und sendet sie an den IPv6-Client.
-
Wenn die AAAA-Antwort des DNS-Servers eine leere Antwortantwort ist, fordert die Appliance A-Ressourceneinträge mit demselben Domainnamen an oder sucht in ihren eigenen Datensätzen, ob die Appliance ein authentischer Domainnamenserver für die Domain ist. Wenn die Anfrage zu einer leeren Antwort oder einem leeren Fehler führt, wird diese an den Client weitergeleitet.
-
Wenn die Antwort des DNS-Servers RCODE=1 (Formatfehler) enthält, leitet die NetScaler-Appliance dies an den Client weiter. Wenn vor dem Timeout keine Antwort erfolgt, sendet die NetScaler-Appliance eine Antwort mit RCODE=2 (Serverausfall) an den Client.
-
Wenn die Antwort des DNS-Servers einen CNAME enthält, wird die Kette so lange verfolgt, bis der abschließende A- oder AAAA-Datensatz erreicht ist. Wenn der CNAME keine AAAA-Ressourceneinträge hat, ruft die NetScaler-Appliance den DNS-A-Datensatz ab, der für die Synthese des AAAA-Datensatzes verwendet werden soll. Die CNAME-Kette wird zusammen mit dem synthetisierten AAAA-Datensatz zum Antwortabschnitt hinzugefügt und dann an den Client gesendet.
-
-
Die DNS64-Funktion der NetScaler-Appliance unterstützt auch die Beantwortung von PTR-Anfragen. Wenn eine PTR-Anfrage für eine Domäne mit einer IPv6-Adresse auf der Appliance empfangen wird und die IPv6-Adresse mit einem der konfigurierten DNS64-Präfixe übereinstimmt, erstellt die Appliance einen CNAME-Datensatz, der die IP6-ARPA-Domäne dem entsprechenden IN-ADDR zuordnet. Die ARPA-Domain und die neu gegründete IN-ADDR.ARPA-Domain werden zur Auflösung verwendet. Die Appliance durchsucht die lokalen PTR-Einträge und wenn die Datensätze nicht vorhanden sind, sendet die Appliance eine PTR-Anfrage für die IN-ADDR.ARPA-Domäne an den DNS-Server. Die NetScaler-Appliance verwendet die Antwort des DNS-Servers, um die Antwort für die erste PTR-Anfrage zu synthetisieren.
Konfigurationsschritte
Das Erstellen der erforderlichen Entitäten für die statusmäßige NAT64-Konfiguration auf der NetScaler-Appliance umfasst die folgenden Verfahren:
-
Fügen Sie DNS-Dienste hinzu. DNS-Dienste sind logische Darstellung von DNS-Servern, für die die NetScaler Appliance als DNS-Proxyserver fungiert. Weitere Informationen zum Festlegen optionaler Parameter eines Dienstes finden Sie unter Load Balancing.
-
Fügen Sie DNS64-Aktion und DNS64-Richtlinie hinzu, und binden Sie dann die DNS64-Aktion an die DNS64-Richtlinie. Eine DNS64-Richtlinie legt die Bedingungen fest, die gemäß den Einstellungen in der zugehörigen DNS64-Aktion mit dem Datenverkehr für die DNS64-Verarbeitung abgeglichen werden. Die DNS64-Aktion gibt das obligatorische DNS64-Präfix und die optionalen Einstellungen für die Ausschlussregel und die zugeordneten Regeln an.
-
Erstellen Sie einen virtuellen DNS-Lastausgleichsserver und binden Sie die DNS-Dienste und die DNS64-Richtlinie daran. Der virtuelle DNS-Lastenausgleichsserver fungiert als DNS-Proxyserver für DNS-Server, die durch die gebundenen DNS-Dienste repräsentiert werden. Datenverkehr, der auf dem virtuellen Server eintrifft, wird mit der gebundenen DNS64-Richtlinie für die DNS64-Verarbeitung abgeglichen. Weitere Informationen zum Festlegen optionaler Parameter eines virtuellen Lastausgleichsservers finden Sie unter Load Balancing.
Hinweis: Die CLI verfügt über separate Befehle für diese beiden Aufgaben, aber die GUI kombiniert sie in einem einzigen Dialogfeld.
Aktivieren Sie das Zwischenspeichern von DNS-Einträgen. Aktivieren Sie den globalen Parameter für die NetScaler Appliance, um DNS-Einträge zwischenzuspeichern, die über DNS-Proxyvorgänge abgerufen werden. Weitere Informationen zum Aktivieren des Zwischenspeichers von DNS-Datensätzen finden Sie unter Domänennamensystem.
CLI-Verfahren
Um einen Dienst vom Typ DNS mithilfe der CLI zu erstellen, gehen Sie wie folgt vor:
Geben Sie in der Befehlszeile Folgendes ein:
- add service <name> <IP> <serviceType> <port> …
Um eine DNS64-Aktion mit der CLI zu erstellen:
Geben Sie in der Befehlszeile Folgendes ein:
- add dns action64 <actionName> -Prefix <ipv6_addr|*> [-mappedRule \<expression>] [-excludeRule \<expression>]
So erstellen Sie eine DNS64-Richtlinie mit der CLI:
Geben Sie in der Befehlszeile Folgendes ein:
- add dns policy64 <name> -rule <expression> -action <string>
Um einen virtuellen DNS-Lastausgleichsserver mithilfe der CLI zu erstellen, gehen Sie wie folgt vor:
Geben Sie in der Befehlszeile Folgendes ein:
- add lb vserver <name> DNS <IPAddress> <port> -dns64 ( ENABLED | DISABLED ) [-bypassAAAA ( YES | NO )] …
So binden Sie die DNS-Dienste und die DNS64-Richtlinie an den virtuellen DNS-Lastausgleichsserver mit der CLI:
Geben Sie in der Befehlszeile Folgendes ein:
- bind lb vserver <name> <serviceName> …
- bind lb vserver <name> -policyName <string> -priority <positive_integer> …
GUI-Verfahren
Um einen Dienst vom Typ DNS mithilfe der GUI zu erstellen, gehen Sie wie folgt vor:
- Navigieren Sie zu Traffic Management > Load Balancing > Services und fügen Sie einen neuen Dienst hinzu.
- Legen Sie die folgenden Parameter fest:
- Name des Diensts*
- Server*
- Protokoll* (Wählen Sie DNS aus der Dropdown-Liste aus.)
- Port*
Um eine DNS64-Aktion mithilfe der GUI zu erstellen:
Navigieren Sie zu Traffic Management > DNS > Actions und fügen Sie auf der Registerkarte DNS Actions64 eine neue DNS64-Aktion hinzu.
So erstellen Sie eine DNS64-Richtlinie mithilfe der GUI:
Navigieren Sie zu Traffic Management > DNS > Policies und fügen Sie auf der Registerkarte DNS-Policies64 eine neue DNS64-Richtlinie hinzu.
Gehen Sie wie folgt vor, um einen virtuellen DNS-Lastausgleichsserver zu erstellen und die DNS-Dienste und die DNS64-Richtlinie mithilfe der GUI daran zu binden:
- Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server und fügen Sie einen neuen virtuellen Server hinzu.
- Legen Sie die folgenden Parameter fest:
- Vorname*
- IP-Adresse*
- Protokoll* (Wählen Sie DNS aus der Dropdown-Liste aus.)
- Port*
- Wählen Sie die Option DNS64 aktivieren.
- Binden Sie den Dienst im Bereich Dienste an den virtuellen Server.
- Binden Sie die Richtlinie im Bereich Richtlinien an den virtuellen Server.
Beispielkonfiguration
> add service SVC-DNS-1 203.0.113.50 DNS 53
Done
> add service SVC-DNS-2 203.0.113.60 DNS 53
Done
> add dns Action64 DNS64-Action-1 -Prefix 2001:DB8:300::/96
Done
> add dns Policy64 DNS64-Policy-1 -rule "CLIENT.IPv6.SRC.IN_SUBNET(2001:DB8:5001::/64)"
-action DNS64-Action-1
Done
> add lb vserver LBVS-DNS64-1 DNS 2001:DB8:9999::99 53 -dns64 ENABLED
Done
> bind lb vserver LBVS-DNS64-1 SVC-DNS-1
Done
> bind lb vserver LBVS-DNS64-1 SVC-DNS-2
Done
> bind lb vserver LBVS-DNS64-1 -policyname DNS64-Policy-1 -priority 2
Done
<!--NeedCopy-->