ADC

Diameter-Lastausgleich konfigurieren

Das Diameter-Protokoll ist ein AAA-Signalisierungsprotokoll (Authentication, Authorization, Accounting) der nächsten Generation, das hauptsächlich auf Mobilgeräten wie Laptops und Mobiltelefonen verwendet wird. Es ist ein Peer-to-Peer-Protokoll, im Gegensatz zu dem traditionellen Client-Server-Modell, das von den meisten anderen Protokollen verwendet wird. In den meisten Diameter-Bereitstellungen stellen jedoch die Clients die Anfrage her und der Server reagiert auf die Anfrage.

Wenn Diameter-Nachrichten ausgetauscht werden, verarbeitet der Diameter-Server normalerweise viel mehr als der Diameter-Client. Mit der Zunahme der Signalmenge auf der Steuerungsebene wird der Diameter-Server zu einem Engpass. Daher muss für Diameter-Nachrichten ein Lastenausgleich auf mehrere Server verteilt werden. Ein virtueller Server, der den Lastenausgleich von Diameter-Nachrichten durchführt, bietet die folgenden Vorteile:

  • Geringere Auslastung der Diameter-Server, was sich in einer schnelleren Reaktionszeit für Endbenutzer niederschlägt.
  • Überwachung des Serverzustands und bessere Failover-Funktionen.
  • Bessere Skalierbarkeit in Bezug auf die Servererweiterung ohne Änderung der Client-Konfiguration.
  • Hohe Verfügbarkeit.
  • Entladung mit SSL-Durchmesser.

Die folgende Abbildung zeigt ein Diameter-System in einer Citrix ADC-Bereitstellung:

diameter-system

Ein Durchmessersystem besteht aus den folgenden Komponenten:

  • Kunde von Diameter. Unterstützt Diameter Client-Anwendungen zusätzlich zum Basisprotokoll. Durchmesser-Clients werden häufig in Geräten am Rande eines Netzwerks implementiert und bieten Zugangskontrolldienste für dieses Netzwerk. Typische Beispiele für Diameter Clients sind ein Network Access Server (NAS) und der Mobile IP Foreign Agent (FA).
  • Mittel mit einem Diameter. Stellt Relay-, Proxy-, Weiterleitungs- oder Übersetzungsdienste bereit. Die Citrix ADC Appliance (konfiguriert mit einem virtuellen Diameter-Load-Balancing-Server) spielt die Rolle eines Diameter-Agenten.
  • Diameter des Servers. Bearbeitet die Authentifizierungs-, Autorisierungs- und Abrechnungsanfragen für einen bestimmten Bereich. Ein Diameter-Server muss zusätzlich zum Basisprotokoll Diameter-Serveranwendungen unterstützen.

In einer typischen Diameter-Topologie sendet ein Endbenutzergerät (z. B. ein Mobiltelefon), wenn es einen Dienst benötigt, eine Anfrage an einen Diameter-Client. Jeder Diameter-Client stellt eine einzelne Verbindung (TCP-Verbindung — SCTP wird noch nicht unterstützt) mit einem Diameter-Server her, wie im Diameter-Basisprotokoll RFC 6733 spezifiziert. Die Verbindung ist langlebig und alle Nachrichten zwischen den beiden Diameter-Knoten (Client und Server) werden über diese Verbindung ausgetauscht. Der Citrix ADC verwendet einen nachrichtenbasierten Lastenausgleich.

Beispiel:

Ein Mobilfunkanbieter verwendet Diameter für sein Abrechnungssystem. Wenn ein Abonnent eine Prepaid-Nummer verwendet, sendet der Diameter-Client wiederholt Anfragen an den Server, um das verfügbare Guthaben zu überprüfen. Das Diameter-Protokoll stellt eine Verbindung zwischen dem Client und dem Server her, und alle Anfragen werden über diese Verbindung ausgetauscht. Verbindungsbasiertes Load Balancing wäre sinnlos, da es nur eine Verbindung gibt. Aufgrund der großen Anzahl von Nachrichten auf der Verbindung beschleunigt der nachrichtenbasierte Lastausgleich jedoch den Prozess der Abrechnung an den Prepaid-Mobilfunkabonnenten.

So funktioniert der Durchmesserlastenausgleich

Ein Diameter-Client öffnet eine Verbindung zur NetScaler Appliance und sendet eine Diameter-Capability Exchange Request (CER) -Nachricht. Der NetScaler wählt einen Diameter-Server aus, öffnet eine Verbindung zum Server und leitet die CER-Nachricht an den Server weiter. Der Server liest die Client-Identität und stellt fest, dass sie direkt mit dem Client verbunden ist.

Der Diameter-Server bereitet die Diameter-Handshake-Antwort vor und sendet sie an die NetScaler Appliance. Die Appliance ändert den Handshake und fügt ihre eigene Identität ein. Zu diesem Zeitpunkt stellt der Diameter-Client fest, dass er direkt mit dem NetScaler (dem Agenten) verbunden ist.

Hinweis:

Alle Diameter-Anforderungsnachrichten vom Client werden auf dem ausgewählten Server in die Warteschlange gestellt, bis der Diameter-Handshake abgeschlossen ist. Die Pakete werden an den Server weitergeleitet, wenn der Handshake abgeschlossen ist.

Load Balancing von Diameter-Verkehr

Wenn ein Client eine Anforderung an die NetScaler ADC Appliance sendet, analysiert die Appliance die Anforderung und gleicht sie kontextuell auf einen Diameter-Server basierend auf einem Persist-AVP aus. Die Appliance hat dem Server die Clientidentität angekündigt, sodass keine Routeneinträge hinzugefügt werden, da der Server Nachrichten direkt vom Client erwartet.

Serverinitiierte Anfragen sind nicht so häufig wie Clientanfragen. Serverinitiierte Anfragen ähneln vom Client initiierten Anfragen, außer:

  • Da Nachrichten von mehreren Servern empfangen werden, behält die Appliance den Transaktionsstatus bei, indem sie jeder weitergeleiteten Anforderungsnachricht eine eindeutige Hop by Hop (HByH) -Nummer hinzufügt. Wenn die Nachrichtenantwort eintrifft (mit derselben HbYH-Nummer), übersetzt die Appliance diese HbYH-Nummer in die HbYH-Nummer, die auf dem Server empfangen wurde, als die Anfrage eintraf.
  • Die Citrix ADC Appliance fügt einen Routeneintrag hinzu, indem sie ihre Identität eingibt, da der Client die Appliance als Relay-Agent sieht.

Hinweis: Wenn sich eine Diameter-Nachricht über mehr als ein Paket erstreckt, sammelt die Appliance die Pakete in einer unvollständigen Header-Warteschlange und leitet sie an den Server weiter, wenn die vollständige Nachricht gesammelt ist. In ähnlicher Weise teilt die Appliance, wenn ein einzelnes Paket mehr als eine Diameter-Nachricht enthält, das Paket auf und leitet die Nachrichten an Server weiter, wie vom virtuellen Lastausgleichsserver festgelegt.

Trennen Sie eine Sitzung

Eine Disconnect Peer Request (DPR) zeigt die Absicht des Peers an, die Verbindung zu schließen, mit dem Grund für das Schließen der Verbindung. Der Peer antwortet mit einem DPA (TCP sorgt immer für eine erfolgreiche DPA).

  • Wenn die Citrix ADC Appliance eine DPR vom Client empfängt, überträgt sie die DPR an alle Server und antwortet sofort mit einem DPA an den Client. Die Server antworten mit DPAs, aber die Appliance ignoriert sie. Der Client sendet eine FIN, die die Appliance an alle Server sendet.
  • Wenn die Appliance eine DPR vom Server empfängt, antwortet sie nur an diesen Server mit einem DPA und entfernt den Server nicht aus dem Wiederverwendungspool. Wenn der Server eine FIN sendet, antwortet die Appliance mit FIN/ACK und entfernt Verbindungen aus dem Wiederverwendungspool.
  • Wenn die Appliance eine FIN vom Client empfängt, sendet sie dem Client eine FIN/ACK, sendet die FIN und entfernt sofort die Serververbindung aus dem Wiederverwendungspool.
  • Wenn die Appliance eine FIN vom Server empfängt, sendet sie eine FIN/ACK und entfernt sie aus dem Wiederverwendungspool. Jede neue Nachricht für diesen Server wird über eine neue Verbindung gesendet.

Load Balancing für Durchmesserverkehr konfigurieren

Um die Citrix ADC Appliance für den Lastausgleich des Diameter-Datenverkehrs zu konfigurieren, müssen Sie zuerst die Diameter-Parameter auf der Appliance festlegen, dann den Diameter-Monitor hinzufügen, die Diameter-Dienste hinzufügen, die Dienste an den Monitor binden, den virtuellen Diameter-Lastausgleichsserver hinzufügen und die Dienste an den virtuellen Server binden.

So konfigurieren Sie den Lastenausgleich für den Diameter-Verkehr mithilfe der Befehlszeilenschnittstelle

Konfigurieren Sie die Durchmesserparameter.

set ns diameter -identity <string> -realm <string> -serverClosePropagation <YES|NO>
<!--NeedCopy-->

Beispiel:

set ns diameter -identity mydomain.org -realm org -serverClosePropagation YES
<!--NeedCopy-->

Fügen Sie einen Durchmessermonitor hinzu.

add lb monitor <monitorName> DIAMETER -originHost <string> -originRealm <string>
<!--NeedCopy-->

Beispiel:

add lb monitor diameter_mon DIAMETER -originHost mydomain.org -originRealm org
<!--NeedCopy-->

Erstellen Sie die Diameter-Dienste.

add service <name> <IP> DIAMETER <port>
<!--NeedCopy-->

Beispiel:

add service diameter_svc0 10.102.82.86 DIAMETER 3868

add service diameter_svc1 10.102.82.87 DIAMETER 3868

add service diameter_svc2 10.102.82.88 DIAMETER 3868

add service diameter_svc3 10.102.82.89 DIAMETER 3868
<!--NeedCopy-->

Binden Sie die Diameter-Dienste an den Diameter-Monitor.

bind service <name>@ monitorName <monitorName>
<!--NeedCopy-->

Beispiel:

bind service diameter_svc0 -monitorName diameter_mon

bind service diameter_svc1 -monitorName diameter_mon

bind service diameter_svc2 -monitorName diameter_mon

bind service diameter_svc3 -monitorName diameter_mon
<!--NeedCopy-->

Fügen Sie einen virtuellen Diameter-Load-Balancing-Server mit Diameter-Persistenz hinzu.

add lb vserver <name> DIAMETER <IPAddress> <port> -persistenceType DIAMETER -persistAVPno <positive_integer>
<!--NeedCopy-->

Beispiel:

add lb vserver diameter_vs DIAMETER 10.102.112.152 3868 -persistenceType DIAMETER -persistAVPno 263
<!--NeedCopy-->

Binden Sie die Diameter-Dienste an den virtuellen Diameter-Load-Balancing-Server.

bind lb vserver <name> <serviceName>
<!--NeedCopy-->

Beispiel:

bind lb vserver diameter_vs diameter_svc0

bind lb vserver diameter_vs diameter_svc1

bind lb vserver diameter_vs diameter_svc2

bind lb vserver diameter_vs diameter_svc3
<!--NeedCopy-->

Speichern Sie die Konfiguration.

save ns config
<!--NeedCopy-->

Hinweis: Sie können den Lastausgleich des Diameter-Datenverkehrs über SSL auch mithilfe des Diensttyps SSL_DIAMETER konfigurieren.

So konfigurieren Sie den Lastenausgleich für den Diameter-Verkehr mithilfe des Konfigurationsprogramms

  1. Navigieren Sie zu System > Einstellungen > Durchmesserparameter ändern und stellen Sie die Durchmesserparameter ein.
  2. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Serverund erstellen Sie einen virtuellen Lastausgleichsserver vom Typ Diameter.
  3. Erstellen Sie einen Dienst vom Typ Diameter.
  4. Erstellen Sie einen Monitor vom Typ Diameter. Stellen Sie unter Spezielle Parameter den Ursprungshost und den Ursprungsbereich ein.
  5. Binden Sie den Monitor an den Dienst, und binden Sie den Dienst an den virtuellen Diameter Server.
  6. Klicken Sie unter Erweiterte Einstellungen auf Persistenz, geben Sie den Durchmesser an, und geben Sie eine Persistenz-AVP-Nummer ein.
  7. Klicken Sie auf Speichern, und klicken Sie auf Fertig.
Diameter-Lastausgleich konfigurieren