DNS-Unterstützung für das Rewrite-Feature

Sie können die Funktion zum Umschreiben konfigurieren, um DNS-Anforderungen und -Antworten zu ändern, wie für HTTP- oder TCP-Anforderungen und -Antworten. Sie können Rewrite verwenden, um den Fluss von DNS-Anforderungen zu verwalten und notwendige Änderungen im Header oder im Antwortbereich vorzunehmen. Wenn für die DNS-Antwort beispielsweise nicht das AA-Bit im Header-Flag festgelegt ist, können Sie mit Rewrite das AA-Bit in der DNS-Antwort festlegen und es an den Client senden.

DNS-Ausdrücke

In einer Rewrite-Konfiguration können Sie die folgenden Citrix ADC Ausdrücke verwenden, um auf verschiedene Teile einer DNS-Anforderung oder -Antwort zu verweisen:

Siehe Ausdrücke und Beschreibungen

DNS-Bindungspunkte

Die folgenden globalen Bindungspunkte sind für Richtlinien verfügbar, die DNS-Ausdrücke enthalten.

Punkte binden Beschreibung
DNS_REQ_OVERRIDE Überschreiben Sie die Anforderungsrichtlinienwarteschlange.
DNS_REQ_DEFAULT Standardanforderungsrichtlinienwarteschlange.
DNS_RES_OVERRIDE Überschreiben der Antwortrichtlinienwarteschlange.
DNS_RES_DEFAULT Standardwarteschlange für Antwortrichtlinien.

Zusätzlich zu den Standardverbindungspunkten können Sie Richtlinienbeschriftungen vom Typ DNS_REQ oder DNS_RES erstellen und DNS-Richtlinien an diese binden.

Umschreiben von Aktionstypen für DNS

  • replace_dns_answer_section—Diese Aktion ersetzt den DNS-Antwortabschnitt durch den definierten Ausdruck in der DNS-Richtlinie.
  • replace_dns_header_field—Überprüft den Opcode-Typ in der DNS-Anforderung. Gibt True oder False zurück, der angibt, ob der Opcode-Typ in der DNS-Anforderung mit dem angegebenen Opcode-Typ übereinstimmt. Diese Aktion ersetzt den DNS-Header-Abschnitt durch den definierten Ausdruck in der DNS-Richtlinie.

Konfigurieren von Rewrite-Richtlinien für DNS

Das folgende Verfahren verwendet die Citrix ADC Befehlszeile, um eine Umschreibungsaktion und -richtlinie zu konfigurieren und die Richtlinie an einen neu schreibspezifischen globalen Bindungspunkt zu binden.

Aktion und Richtlinie neu schreiben konfigurieren und die Richtlinie für DNS binden

Geben Sie an der Eingabeaufforderung die folgenden Befehle ein:

  1. add rewrite action <actName> <actType>

    <actname>Ersetzen Sie einen Namen für Ihre neue Aktion. Der Name kann 1 bis 127 Zeichen lang sein und kann Buchstaben, Zahlen, Bindestriche (-) und Unterstriche (_) enthalten. <actType>Geben Sie für die für DNS-Ausdrücke bereitgestellten Umschreibungsaktionstypen an.

  2. add rewrite policy <polName> <rule> <actName>

    <polname>Ersetzen Sie einen Namen für Ihre neue Richtlinie. Für <actname> kann der Name 1 bis 127 Zeichen lang sein und kann Buchstaben, Zahlen, Bindestriche (-) und Unterstriche (_) enthalten. <actname>Ersetzen Sie den Namen der Aktion, die Sie gerade erstellt haben.

  3. bind rewrite global <polName> <priority> < gotoPriorityExpression> -type <bindPoint>

    <polName>Ersetzen Sie den Namen der Richtlinie, die Sie gerade erstellt haben. <priority>Geben Sie für die Priorität der Richtlinie an. <bindPoint>Ersetzen Sie für einen der umschreibspezifischen globalen Bindungspunkte.

Beispiel:

Legen Sie das AA-Bit der DNS-Anforderung für den Lastenausgleich virtuellen Serverfest.

Mit den folgenden Befehlen wird die Citrix ADC Appliance so konfiguriert, dass sie als autorisierender DNS-Server für alle von ihr bereiteten Abfragen fungiert.

add rewrite action set_aa replace_dns_header_field dns.req.header.flags.set(aa)
add rewrite policy pol !dns.req.header.flags.is_set(aa)  set_aa
bind rewrite global  pol  100  -type dns_res_override

Ändern Sie die Antwortantwort und den Kopfzeilenabschnitt.

Wenn der Server mit einer NX-Domäne antwortet, können Sie die Umschreibungsaktion so einstellen, dass die Antwort durch die angegebene IP-Adresse ersetzt wird. Ein NOPOLICY-REWRITE ermöglicht es Ihnen, eine externe Bank aufzurufen, ohne einen Ausdruck (eine Regel) zu verarbeiten. Dieser Eintrag ist eine Dummy-Richtlinie, die keine Regel enthält, sondern den Eintrag an eine Richtlinienbezeichnung oder virtuelle serverspezifische Richtlinienbanken weiterleitet.

add rewrite action set_aa_res replace_dns_header_field "dns.res.header.flags.set(aa)"
add rewrite action modify_nxdomain_res replace_dns_answer_section "dns.new_rrset_a("10.102.218.160",300)"
add rewrite policy set_res_aa true set_aa_res
add add rewrite policy modify_answer "dns.RES.HEADER.RCODE.EQ(nxdomain) && dns.RES.QUESTION.TYPE.EQ(A)"
modify_nxdomain_res
add rewrite policylabel MODIFY_NODATA dns_res
bind rewrite policylabel MODIFY_NODATA modify_answer 10 END
bind rewrite policylabel MODIFY_NODATA set_res_aa 11 END
bind lb vserver v1 -policyName NOPOLICY-REWRITE -priority 11 -gotoPriorityExpression END -type
RESPONSE -invoke policylabel MODIFY_NODATA

Einschränkungen:

  • Rewrite-Richtlinien werden nur dann ausgewertet, wenn die Citrix ADC Appliance als DNS-Proxyserver konfiguriert ist und ein Cache-Fehler vorliegt.
  • Wenn das Flag Recursion Available (RA) im Header auf YES gesetzt ist, wird das RA-Flag bei den Rewrites nicht geändert.
  • Wenn das RA-Flag im Header auf YES gesetzt ist, wird das CD-Flag im Header unabhängig von einer Umschreibung geändert.