Citrix ADC

Diensterkennung mit DNS-SRV-Einträgen

Ein SRV-Datensatz (Dienstdatensatz) ist eine Spezifikation der Daten im Domain Name System, die den Speicherort definiert, d. h. den Hostnamen und die Portnummer der Server für bestimmte Dienste. Der Datensatz definiert auch das Gewicht und die Priorität der einzelnen Server.

Beispiel für einen SRV-Datensatz:

_http._tcp.example.com. 100 IN SRV 10 60 5060 a.example.com.

In der folgenden Tabelle werden die einzelnen Elemente in einem SRV-Datensatz beschrieben:

Beispiel für SRV-Erkennungsdatensätze

Sie können die DNS-SRV-Einträge verwenden, um die Dienstendpunkte zu ermitteln. Die Citrix ADC Appliance ist so konfiguriert, dass sie regelmäßig die DNS-Server mit dem SRV-Eintrag abfragt, der einem Dienst zugeordnet ist. Beim Empfang des SRV-Datensatzes ist jeder im SRV-Datensatz veröffentlichte Zielhost an eine dem Dienst zugeordnete Dienstgruppe gebunden. Jede Bindung erbt den Port, die Priorität und das Gewicht aus dem SRV-Datensatz. Für jede Dienstbereitstellung muss der Benutzer die Citrix ADC Appliance einmal konfigurieren, während er sie hochbringt, sodass sie zu einer einzigen Touch-Bereitstellung für Anwendungen wird.

Wichtig:Die Gewichtung dynamisch erlernter Servicegruppenmitglieder kann nicht mit der CLI oder der GUI geändert werden.

Anwendungsfall: Load Balancing Microservices

Anwendungen bewegen sich in Richtung Microservice-Architektur aus monolithischen Architekturen. Durch die Umstellung auf die Microservice-Architektur zusammen mit der automatischen Back-End-Server-Lösung wird die Anwendungsbereitstellung dynamischer. Um eine solche dynamische Bereitstellung zu unterstützen, müssen die Proxys oder ADC in der Lage sein, die Back-End-Anwendungs- oder Service-Instanzen dynamisch zu erkennen und in die Proxy-Konfiguration aufzunehmen. Die Service Discovery mit DNS SRV-Aufzeichnungen hilft bei der Konfiguration der Citrix ADC Appliance in einem solchen dynamischen Bereitstellungsszenario. Anwendungsentwickler können einige Orchestrierungsplattformen verwenden, um die Anwendung bereitzustellen. Orchestrierungsplattformen beim Instanziieren von Containern während der Anwendungsbereitstellung weisen möglicherweise nicht den protokollspezifischen Standardport für jeden dieser Container zu. In solchen Szenarien wird das Erkennen der Portinformationen der Schlüssel zur Konfiguration der Citrix ADC Appliance. SRV-Datensätze sind in einem solchen Szenario hilfreich. SRV-Record-Parameter wie Priorität und Gewicht können für einen besseren Lastausgleich von Anwendungen verwendet werden.

  • Priority Parameter kann verwendet werden, um die Priorität des Server-Pools zu diktieren.
  • Der重量参数萤石verwendet了,死了Kapazität der Back-End-Dienstinstanzen zu bestimmen und kann daher für den gewichteten Lastausgleich verwendet werden.
  • Wenn eine Änderung im Back-End-Server-Pool vorliegt, z. B. eine Back-End-Instanz aus dem Pool entfernt wird, wird die Instanz nur dann gnadenlos entfernt, nachdem alle vorhandenen Clientverbindungen berücksichtigt wurden.

Hinweis:

  • Bei einer A/AAAA datensatzbasierten Service-Erkennung haben alle aufgelösten IP-Adressen das gleiche Gewicht, da Sie die Gewichtung der aufgelösten Domäne zuweisen.

  • Wenn die Gewichtung in der SRV-Antwort größer als 100 ist, werden keine Dienste erstellt.

Prioritätsbasierter Lastausgleich mit SRV-Datensätzen

Sie können SRV-Datensätze verwenden, um prioritätsbasierte Lastenausgleich durchzuführen. Der prioritätsbasierte Serverpool kann eine Alternative für die virtuellen Backup-Server sein. Die Datei ns.conf erfordert eine minimale Konfiguration im Vergleich zu den virtuellen Backup-Servern.

Beim prioritätsbasierten Lastenausgleich mit SRV-Datensätzen wird jedem Serverpool eine Prioritätsnummer zugewiesen. Die kleinste Zahl hat die höchste Priorität. Einer der Server im Pool der höchsten Priorität wird für den Lastenausgleich ausgewählt, basierend auf dem Zustand und der Verfügbarkeit des Servers. Wenn alle Server im Serverpool mit höchster Priorität ausgefallen sind, werden die Server mit der nächsthöheren Priorität für den Lastenausgleich ausgewählt. Wenn jedoch die Server im Serverpool mit höchster Priorität erneut hochgesetzt sind, werden die Server erneut aus dem Pool der höchsten Priorität ausgewählt.

Der Wechsel von einem Prioritätsserverpool zu einem anderen Serverpool erfolgt gnädig, indem die vorhandenen Client-Transaktionen entlüftet werden. Daher sehen die aktuellen Clients keine Unterbrechung im Anwendungszugriff.

So aktivieren Sie die Abfrage von SRV-Datensätzen mit der CLI

Führen Sie die folgenden Aufgaben durch, um die Abfrage von SRV-Datensätzen zu ermöglichen:

  1. Erstellen您杯服务器,indem您窝Abfragetypparameter als SRV angeben.

    Geben Sie an der Eingabeaufforderung Folgendes ein:

    add server   [-queryType ]) 

    Beispiel:

    add server web_serv example.com -queryType SRV 

    Hinweis:

    • Standardmäßig werden IPv4-Abfragen gesendet. Um IPv6-Abfragen zu senden, müssen Sie die IPv6-Domäne aktivieren.
    • Der SRV-Zieldomänenname darf 127 Zeichen nicht überschreiten.
  2. Erstellen Sie eine Dienstgruppe mit dem Autoskalierungsmodus als DNS.

    Geben Sie an der Eingabeaufforderung Folgendes ein:

    add serviceGroup   [-autoScale ] 

    Beispiel:

    add servicegroup svc_grp_1 http -autoscale dns 
  3. Binden Sie den in Schritt 1 erstellten Server an die Dienstgruppe als Mitglied.

    Geben Sie an der Eingabeaufforderung Folgendes ein:

    bind serviceGroup   

    Beispiel:

    bind servicegroup svc_grp_1 web_serv 

Hinweis:

  • Wenn Sie Server an Servicegruppenmitglieder binden, müssen Sie die Portnummer für SRV-Servertypen nicht eingeben. Wenn Sie eine Portnummer für den SRV-Servertyp angeben, wird eine Fehlermeldung angezeigt.

  • Sie können optional einen Nameserver und einen TTL-Wert angeben, während Sie einen Server an die Dienstgruppe binden.

So aktivieren Sie die Abfrage von SRV-Datensätzen mit der GUI

Erstellen eines Servers

  1. Navigieren Sie zuTraffic Management>Load Balancing>Server, und klicken Sie aufHinzufügen.

    Server erstellen

  2. Wählen Sie auf der SeiteServer erstellenden Domänennamen aus.

  3. Geben Sie die Details aller erforderlichen Parameter ein.

  4. Wählen Sie unterAbfragetypdie OptionSRVaus.

  5. Klicken Sie aufErstellen.

Erstellen einer Dienstgruppe mit Autoskalierungsmodus als DNS

  1. Navigieren Sie zuTraffic Management>Load Balancing>Dienstgruppen.

  2. Geben Sie auf der SeiteLastausgleichsdienstgruppeDetails aller erforderlichen Parameter ein.

  3. Wählen Sie fürAutoScale Modedie OptionDNSaus.

    Wählen Sie den Modus als DNS

  4. Klicken Sie aufOK.

Server an das Dienstgruppenmitglied binden

  1. Navigieren Sie zuTraffic Management>Load Balancing>Dienstgruppen.

  2. Wählen Sie auf der SeiteDienstgruppendie von Ihnen erstellte Dienstgruppe aus, und klicken Sie aufBearbeiten.

  3. Klicken Sie auf der SeiteLastausgleichsdienstgruppenaufDienstgruppenmitglieder.

  4. Wählen Sie auf der SeiteBindung von Dienstgruppenmitgliedernden Server aus, den Sie erstellt haben, und klicken Sie aufSchließen.

    Server binden

Hinweis:

  • Während der Bindung müssen Sie die Portnummer für SRV-Servertypen nicht eingeben. Wenn Sie eine Portnummer für den SRV-Servertyp eingeben, wird eine Fehlermeldung angezeigt.

  • Sie können optional einen Nameserver und einen TTL-Wert angeben, während Sie einen Server an die Dienstgruppe binden.

TTL-Werte überschreiben

Citrix ADC电器坚持所以konfiguriert死去,采掘带sie den DNS-Server während des Anwendungsstarts regelmäßig nach einem Update im SRV-Eintrag abfragt, der mit der Anwendung verknüpft ist. Standardmäßig hängt die Periodizität für diese Abfrage von der im SRV-Datensatz veröffentlichten TTL ab. In Microservice- oder Cloud-World-Anwendungen ändern sich die Bereitstellungen dynamischer. Daher müssen Proxys schneller Änderungen an der Anwendungsbereitstellung absorbieren. Daher wird empfohlen, den domänenbasierten Dienst-TTL-Parameter explizit auf einen Wert festzulegen, der niedriger ist als die TTL des SRV-Datensatzes und optimal für Ihre Bereitstellung ist. Sie können den TTL-Wert mit zwei Methoden überschreiben:

  • Beim Binden eines Mitglieds an die Servicegruppe
  • Festlegen des TTL-Werts global mithilfe des Befehls set lb parameter.

Falls der TTL-Wert sowohl beim Binden des Dienstgruppenmitglieds als auch global konfiguriert wird, hat der beim Binden des Dienstgruppenmitglieds angegebene TTL-Wert Vorrang. Wenn der TTL-Wert weder beim Binden eines Dienstgruppenmitglieds noch auf globaler Ebene angegeben wird, wird das DBS-Überwachungsintervall vom TTL-Wert in der DNS-Antwort abgeleitet.

Überschreiben der TTL-Werte mit der CLI

  • Um den TTL-Wert während der Bindung zu überschreiben, geben Sie an der Eingabeaufforderung Folgendes ein:

    bind serviceGroup  ( [-dbsTTL ]) 

    Beispiel:

    bind servicegroup svc_grp_1 web_serv -dbsTTL 10 
  • Um den TTL-Wert global zu überschreiben, geben Sie an der Eingabeaufforderung Folgendes ein:

    set lb parameter [-dbsTTL ] 

    Beispiel:

    set lb parameter -dbsTTL 15 

Überschreiben der TTL-Werte mit der GUI

So überschreiben Sie den TTL-Wert während der Bindung:

  1. Navigieren Sie zuTraffic Management>Load Balancing>Dienstgruppen.

  2. Wählen Sie auf der SeiteDienstgruppendie von Ihnen erstellte Dienstgruppe aus, und klicken Sie aufBearbeiten.

  3. Klicken Sie auf der SeiteLastausgleichsdienstgruppenaufDienstgruppenmitglieder.

  4. Wählen Sie auf der SeiteBindung von Dienstgruppenmitgliedernden Server aus, den Sie erstellt haben, und klicken Sie aufBearbeiten.

  5. Geben Sie unterDomänenbasierter Dienst-TTLden TTL-Wert ein.

So überschreiben Sie den TTL-Wert auf globaler Ebene:

  1. Navigieren Sie zuTraffic Management>Load Balancing>Load Balancing Parameter ändern.

  2. Geben Sie unterDomänenbasierter Dienst-TTLden TTL-Wert ein.

Hinweis: Wenn der TTL-Wert des domänenbasierten Servers auf 0 festgelegt ist, wird der TTL-Wert aus dem Datenpaket verwendet.

Angeben verschiedener Nameserver für Dienstgruppen- und Domänennamensbindungen

Sie können verschiedene Nameserver für verschiedene Domänennamen in einer bestimmten Gruppe konfigurieren. Das Festlegen des NameServer-Parameters ist optional, während ein DBS-Server an die Dienstgruppe gebunden wird. Wenn beim Binden eines Mitglieds an die Dienstgruppe kein Nameserver angegeben wird, wird der global konfigurierte Nameserver berücksichtigt.

Angeben von Namensservern während der Bindung eines Servers an Servicegruppen mit der CLI

Geben Sie an der Eingabeaufforderung Folgendes ein:

bind serviceGroup  ( [-nameServer ] [-dbsTTL ]) 

Beispiel:

bind servicegroup svc_grp_1 web_serv -ns.nameserver.com 10.102.27.155 -dbsTTL 10 

Angeben von Namensservern während der Bindung eines Servers an Servicegruppen mit der GUI

  1. Navigieren Sie zuTraffic Management>Load Balancing>Dienstgruppen.

  2. Wählen Sie auf der SeiteDienstgruppendie von Ihnen erstellte Dienstgruppe aus, und klicken Sie aufBearbeiten.

  3. Klicken Sie auf der SeiteLastausgleichsdienstgruppenaufDienstgruppenmitglieder.

  4. Wählen Sie auf der SeiteBindung von Dienstgruppenmitgliedernden Server aus, den Sie erstellt haben, und klicken Sie aufBearbeiten.

  5. Geben SieunterNameserver den Namen des Nameservers an, an den die Abfrage für die gebundene Domäne gesendet werden muss.

Diensterkennung mit DNS-SRV-Einträgen