DNS64

Die Citrix ADC DNS64-Funktion reagiert mit einem synthetisierten DNS-AAAA-Eintrag an einen IPv6-Client, der eine AAAA-Anforderung für eine reine IPv4-Domäne sendet. Die DNS64-Funktion wird zusammen mit der NAT64-Funktion verwendet, um eine nahtlose Kommunikation zwischen nur IPv6-Clients und nur IPv4-Servern zu ermöglichen. DNS64 ermöglicht die Erkennung der IPv4Domain durch nur IPV6-Clients, und NAT64 ermöglicht die Kommunikation zwischen den Clients und Servern.

Für die Synthese eines AAAA-Eintrags ruft die Citrix ADC Appliance einen DNS-A-Eintrag von einem DNS-Server ab. Das DNS64-Präfix ist ein 96-Bit-IPv6-Präfix, das auf der Citrix ADC Appliance konfiguriert ist. Die Citrix ADC 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 Citrix ADC 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 Citrix ADC Appliance ähnlich und umfasst einen virtuellen Lastausgleichsserver, der als Proxyserver für DNS-Server fungiert. Wenn die Citrix ADC Appliance auf der Clientseite bereitgestellt wird, muss der virtuelle Lastausgleichsserver auf dem IPv6-Client als Nameserver für eine Domäne angegeben werden.

Betrachten Sie ein Beispiel, in dem eine Citrix ADC Appliance mit DNS64- und NAT64-Konfiguration auf der IPv4-Seite konfiguriert ist. In diesem Beispiel hostet ein Unternehmen Website www.example.com auf Server S1, der eine IPv4-Adresse hat. Um die Kommunikation zwischen IPv6-Clients und IPv4-Server S1 zu ermöglichen, wird die Citrix ADC Appliance NS1 mit einer DNS64- und statusbehafteten 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 werden ebenfalls auf NS1 konfiguriert und DNS64-Policy-1 ist an LBVS-DNS64-1 gebunden. LBVS-DNS64-1 fungiert als DNS-Proxy-Server für DNS-Server DNS-1 und DNS-2.

Wenn der Datenverkehr, der bei LBVS-DNS64-1 eintrifft, 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 mit dem A-Eintrag, der von einem DNS-Server empfangen wird, zum Synthesisieren eines AAAA-Eintrags verwendet wird.

Die globalen DNS-Parametercacherecords sind auf der Citrix ADC 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:

  1. IPv6-Client CL1 sendet eine DNS-AAAA-Anforderung für die IPv6-Adresse der Website www.example.com.
  2. Die Anforderung wird vom virtuellen DNS-Lastausgleichsserver LBVS-DNS64-1 auf der Citrix ADC Appliance NS1 empfangen.
  3. NS1 überprüft seine DNS-Cache-Einträge für den angeforderten AAAA-Eintrag und stellt fest, dass AAAA-Eintrag für die Website www.beispiel.com nicht im DNS-Cache vorhanden ist.
  4. Der Lastausgleichsalgorithmus von LBVS-DNS64-1 wählt DNS-Server DNS-1 aus und leitet die AAAA-Anforderung an ihn weiter.
  5. Da die Website www.example.com auf einem IPv4-Server gehostet wird, verfügt der DNS-Server DNS-1 über keinen AAAA-Eintrag für die Website www.example.com.
  6. DNS-1 sendet entweder eine leere DNS-AAAA-Antwort oder eine Fehlermeldung an LBVS-DNS64-1.
  7. Da DNS64-Option auf LBVS-DNS64-1 aktiviert ist und die AAAA-Anforderung von CL1 der in DNS64-Policy-1 angegebenen Bedingung entspricht, sendet NS1 eine DNS-A-Anforderung für die IPv4-Adresse von www.example.com an DNS-1.
  8. DNS-1 antwortet, indem der DNS-A-Eintrag für www.example.com an LBVS-DNS64-1 gesendet wird. Der A-Eintrag enthält die IPv4-Adresse für www.example.com.
  9. NS1 synthetisiert einen AAAA-Eintrag für die Website www.example.com mit:
    • IPv6-Adresse für Website www.example.com = Verkettung des DNS64-Präfixes (96 Bit), das in der zugehörigen DNS64Action angegeben ist, und IPv4-Adresse des DNS-A-Datensatzes (32 Bit) = 2001:DB 8:300: :192.0.2.60
  10. NS1 sendet den synthetisierten AAAA-Datensatz an den IPv6-Client CL1. NS1 speichert auch den A-Datensatz in seinen Speicher. NS1 verwendet den zwischengespeicherten A-Datensatz, um AAAA-Datensätze für nachfolgende AAAA-Anforderungen zu synthetisieren.

Zu berücksichtigende Punkte für eine DNS64-Konfiguration

Berücksichtigen Sie vor der Konfiguration von DNS64 auf einer Citrix ADC Appliance die folgenden Punkte:

  • Die DNS64-Funktion der Citrix ADC Appliance ist mit RFC 6174 kompatibel.

  • Die DNS64-Funktion der Citrix ADC Appliance unterstützt DNSSEC nicht. Die Citrix ADC Appliance synthetisiert keinen AAAA-Eintrag 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 Citrix ADC Appliance unterstützt das DNS64-Präfix mit einer Länge von nur 96 Bit.

  • Obwohl die DNS64-Funktion mit der NAT64-Funktion verwendet wird, sind die Konfigurationen DNS64 und NAT64 unabhängig von der Citrix ADC Appliance. 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 Citrix ADC Appliance finden Sie unterStateful-NAT64.

  • Im Folgenden sind die verschiedenen Fälle der DN64-Verarbeitung durch die Citrix ADC Appliance aufgeführt:

    • Wenn die AAAA-Antwort vom DNS-Server AAAA-Einträge enthält, wird jeder Datensatz in der Antwort auf den Satz der Ausschlussregel überprüft, der auf der Citrix ADC Appliance für die jeweilige DNS64-Konfiguration konfiguriert ist. Citrix ADC entfernt die IPv6-Adressen, deren Präfix mit der Ausschlussregel übereinstimmt, aus der Antwort. Wenn die resultierende Antwort mindestens einen IPv6-Eintrag enthält, leitet die Citrix ADC 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 vom DNS-Server eine leere Antwortantwort ist, fordert die Appliance nach A-Ressourceneinträgen mit demselben Domänennamen an oder sucht in eigenen Datensätzen, wenn es sich bei der Appliance um einen authentischen Domänennamenserver für die Domäne handelt. 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 Citrix ADC Appliance dasselbe an den Client weiter. Wenn vor dem Timeout keine Antwort auftritt, sendet die Citrix ADC Appliance eine Antwort mit RCODE=2 (Serverfehler) an den Client.

    • Wenn die Antwort des DNS-Servers einen CNAME enthält, wird die Kette verfolgt, bis der abschließende A- oder AAAA-Eintrag erreicht ist. Wenn der CNAME keine AAAA-Ressourceneinträge enthält, ruft die Citrix ADC Appliance den DNS-A-Eintrag ab, der für die Synthese von AAAA-Einträgen verwendet werden soll. Die CNAME-Kette wird zusammen mit dem synthetisierten AAAA-Datensatz zum Antwortbereich hinzugefügt und dann an den Client gesendet.

  • Die DNS64-Funktion der Citrix ADC Appliance unterstützt auch das Beantworten von PTR-Anfragen. Wenn eine PTR-Anforderung für eine Domäne einer IPv6-Adresse auf der Appliance empfangen wird und die IPv6-Adresse einem der konfigurierten DNS64-Präfix entspricht, erstellt die Appliance einen CNAME-Datensatz, der die IP6-ARPA-Domäne dem entsprechenden IN-ADDR zugeordnet. Die ARPA-Domäne und die neu gebildete IN-ADDR.ARPA-Domäne 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-Anforderung für die IN-ADDR.ARPA-Domäne an den DNS-Server. Die Citrix ADC Appliance verwendet die Antwort des DNS-Servers, um die Antwort für die ursprüngliche PTR-Anforderung zu synthetisieren.

Konfigurationsschritte

Das Erstellen der erforderlichen Entitäten für die statusbehaftete NAT64-Konfiguration auf der Citrix ADC Appliance umfasst die folgenden Verfahren:

  • DNS-Dienste hinzufügen. DNS-Dienste sind logische Darstellung von DNS-Servern, für die die Citrix ADC Appliance als DNS-Proxyserver fungiert. Weitere Hinweise zum Festlegen optionaler Parameter eines Dienstes finden Sie unterLastausgleich.

  • Fügen Sie DNS64-Aktion und DNS64-Richtlinie hinzu, und binden Sie dann die DNS64-Aktion an die DNS64-Richtlinie. Eine DNS64-Richtlinie legt Bedingungen fest, die mit dem Datenverkehr für die DNS64-Verarbeitung gemäß den Einstellungen in der zugeordneten DNS64-Aktion abgeglichen werden sollen. Die DNS64-Aktion gibt das obligatorische DNS64-Präfix sowie die optionalen Ausschlussregel und zugeordnete Regeleinstellungen 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 dargestellt werden. Datenverkehr, der auf dem virtuellen Server eintrifft, wird mit der gebundenen DNS64-Richtlinie für die DNS64-Verarbeitung abgeglichen. Weitere Hinweise zum Festlegen optionaler Parameter eines virtuellen Lastausgleichsservers finden Sie unter Lastausgleich.

    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-Datensätzen. Aktivieren Sie den globalen Parameter für die Citrix ADC Appliance, um DNS-Einträge zwischenzuspeichern, die über DNS-Proxyvorgänge abgerufen werden. Weitere Hinweise zum Aktivieren der Zwischenspeicherung von DNS-Einträgen finden Sie unter Domain-Namenssystem.

CLI-Verfahren

So erstellen Sie einen Dienst vom Typ DNS mit der CLI:

Geben Sie an der Eingabeaufforderung Folgendes ein:

  • add service <name> <IP> <serviceType> <port> …

So erstellen Sie eine DNS64-Aktion mit der CLI:

Geben Sie an der Eingabeaufforderung Folgendes ein:

  • add dns action64 <actionName> -Prefix <ipv6_addr|*> [-mappedRule <expression>] [-excludeRule <expression>]

So erstellen Sie eine DNS64-Richtlinie mit der CLI:

Geben Sie an der Eingabeaufforderung Folgendes ein:

  • add dns policy64 <name> -rule <expression> -action <string>

So erstellen Sie einen virtuellen DNS-Load Balancing Server mit der CLI:

Geben Sie an der Eingabeaufforderung 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 an der Eingabeaufforderung Folgendes ein:

  • bind lb vserver <name> <serviceName> …
  • bind lb vserver <name> -policyName <string> -priority <positive_integer> …

GUI-Verfahren

So erstellen Sie einen Dienst vom Typ DNS mit der GUI:

  1. Navigieren Sie zu Traffic Management > Load Balancing > Services, und fügen Sie einen neuen Dienst hinzu.
  2. Legen Sie die folgenden Parameter fest:
    • Servicename*
    • Server*
    • Protokoll* (Wählen Sie DNS aus der Dropdownliste aus.)
    • Port*

So erstellen Sie eine DNS64-Aktion mit der GUI:

Navigieren Sie zu Verkehrsverwaltung > DNS > Aktionen, fügen Sie auf der Registerkarte DNS-Aktionen64 eine neue DNS64-Aktion hinzu.

So erstellen Sie eine DNS64-Richtlinie mit der GUI:

Navigieren Sie zu Verkehrsverwaltung > DNS > Richtlinien. Fügen Sie auf der Registerkarte DNS-Richtlinien64 eine neue DNS64-Richtlinie hinzu.

So erstellen Sie einen virtuellen DNS-Lastenausgleichsserver und binden die DNS-Dienste und die DNS64-Richtlinie mit der GUI daran:

  1. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server, und fügen Sie einen neuen virtuellen Server hinzu.
  2. Legen Sie die folgenden Parameter fest:
    • Name*
    • IP-Adresse*
    • Protokoll* (Wählen Sie DNS aus der Dropdownliste aus.)
    • Port*
  3. Wählen Sie die Option DNS64 aktivieren.
  4. Binden Sie den Dienst im Bereich Dienste an den virtuellen Server.
  5. 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