Konfigurieren des Durchmesser-Lastausgleichs

Das Diameter Protocol ist ein AAA (Authentication, Authorization and Accounting) Signalprotokoll der nächsten Generation, das hauptsächlich auf mobilen Geräten wie Laptops und Mobiltelefonen verwendet wird. Es handelt sich um 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 Deployments stammen die Clients jedoch die Anforderung, und der Server antwortet auf die Anforderung.

Wenn Diameter Nachrichten ausgetauscht werden, führt der Diameter Server in der Regel viel mehr Verarbeitung als der Diameter Client. Mit der Zunahme des Signalisierungsvolumens der Steuerebene wird der Diameter Server zu einem Engpass. Daher müssen Diameter-Meldungen auf mehrere Server ausbalanciert werden. Ein virtueller Server, der Lastenausgleich von Diameter-Meldungen durchführt, bietet folgende Vorteile:

  • Geringere Belastung von Diameter Servern, was zu einer schnelleren Reaktionszeit für Endbenutzer führt.
  • Überwachung des Serverzustands und bessere Failover-Funktionen.
  • Bessere Skalierbarkeit in Bezug auf die Serverzufügung ohne Änderung der Clientkonfiguration.
  • Hohe Verfügbarkeit.
  • SSL-Diameter-Offloading.

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

Durchmesser-System

Ein Diameter-System besteht aus folgenden Komponenten:

  • Diameter Client. Unterstützt Diameter Client-Anwendungen zusätzlich zum Basisprotokoll. Diameter Clients werden häufig in Geräten implementiert, die sich am Rande eines Netzwerks befinden und bieten Zugriffssteuerungsdienste für dieses Netzwerk an. Typische Beispiele für Diameter Clients sind ein Network Access Server (NAS) und der Mobile IP Foreign Agent (FA).
  • Diameter Agent. Bietet Relay-, Proxy-, Umleitungs- oder Übersetzungsdienste. Die Citrix ADC Appliance (konfiguriert mit einem virtuellen Diameter Load Balancing Server) spielt die Rolle eines Diameter Agents.
  • Diameter Server. Behandelt die Authentifizierungs-, Autorisierungs- und Buchhaltungsanforderungen für einen bestimmten Bereich. Ein Diameter Server muss Diameter Server-Anwendungen zusätzlich zum Basisprotokoll unterstützen.

Wenn ein Endbenutzergerät (z. B. ein Mobiltelefon) einen Dienst benötigt, sendet es in einer typischen Diameter Topologie eine Anforderung an einen Diameter Client. Jeder Diameter Client stellt eine einzelne Verbindung (TCP-Verbindung — SCTP wird noch nicht unterstützt) mit einem Diameter Server wie im Diameter Base-Protokoll RFC 6733 angegeben. Die Verbindung ist langlebig und alle Nachrichten zwischen den beiden Diameter Knoten (Client und Server) werden über diese Verbindung ausgetauscht. Citrix ADC verwendet 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 den verfügbaren Saldo zu überprüfen. Das Diameter Protokoll stellt eine Verbindung zwischen dem Client und dem Server her, und alle Anforderungen werden über diese Verbindung ausgetauscht. Verbindungsbasierter Lastausgleich wäre sinnlos, da es nur eine Verbindung gibt. Angesichts der großen Anzahl von Nachrichten auf der Verbindung beschleunigt der nachrichtenbasierte Lastausgleich jedoch die Abrechnung des Prepaid-Mobilfunkteilnehmers.

Funktionsweise des Durchmesser-Lastausgleichs

Eine Disconnect Peer Request (DPR) gibt 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 bietet immer einen erfolgreichen DPA).

  • Wenn die Appliance eine DPR vom Client empfängt, sendet 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 allein mit einem DPA an diesen Server 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 erhält, sendet sie dem Client eine FIN/ACK, sendet die FIN und entfernt die Serververbindung sofort 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 von Diameter-Verkehr

Wenn ein Client eine Anforderung an die Citrix ADC Appliance sendet, analysiert die Appliance die Anforderung und richtet sie kontextuell auf Basis eines persistenten AVP an einen Diameter Server 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 Anforderungen sind nicht so häufig wie Clientanforderungen. Serverinitiierte Anforderungen ähneln Client-initiierten Anforderungen, außer:

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

Hinweis: Wenn eine Diameter-Nachricht mehr als ein Paket umfasst, sammelt die Appliance die Pakete in einer unvollständigen Header-Warteschlange und leitet sie an den Server weiter, wenn die vollständige Nachricht angesammelt wird. Wenn ein einzelnes Paket mehr als eine Diameter-Nachricht enthält, teilt die Appliance das Paket auf und leitet die Nachrichten an Server weiter, wie vom virtuellen Lastausgleichsserver festgelegt.

Trennen einer Sitzung

Eine Disconnect Peer Request (DPR) gibt 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 bietet immer einen erfolgreichen DPA).

  • Wenn die Citrix ADC Appliance eine DPR vom Client empfängt, sendet 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 allein mit einem DPA an diesen Server 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 erhält, sendet sie dem Client eine FIN/ACK, sendet die FIN und entfernt die Serververbindung sofort 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.

Konfigurieren des Lastausgleichs für Durchmesserverkehr

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

So konfigurieren Sie den Lastausgleich für Durchmesserverkehr mit der Befehlszeilenschnittstelle

Konfigurieren Sie die Durchmesserparameter.

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

Beispiel:

set ns diameter -identity mydomain.org -realm org -serverClosePropagation YES

Fügen Sie einen Diameter-Monitor hinzu.

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

Beispiel:

add lb monitor diameter_mon DIAMETER -originHost mydomain.org -originRealm org

Erstellen Sie die Diameter Services.

add service <name> <IP> DIAMETER <port>

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

Binden Sie die Diameter Services an den Diameter Monitor.

bind service <name>@ monitorName <monitorName>

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

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>

Beispiel:

add lb vserver diameter_vs DIAMETER 10.102.112.152 3868 -persistenceType DIAMETER -persistAVPno 263

Binden Sie die Diameter Services an den virtuellen Diameter Load Balancing Server.

bind lb vserver <name> <serviceName>

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

Speichern Sie die Konfiguration.

save ns config

Hinweis: Sie können auch den Lastausgleich von Diameter-Verkehr über SSL konfigurieren, indem Sie den Diensttyp SSL_DIAMETERverwenden.

So konfigurieren Sie den Lastausgleich für den Diameter-Verkehr mit dem Konfigurationsdienstprogramm

  1. Navigieren Sie zu System > Einstellungen > Diameter-Parameter ändern, und legen Sie die Diameter-Parameter fest.
  2. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server, und erstellen Sie einen virtuellen Lastausgleichsserver vom Typ Diameter.
  3. Erstellen Sie einen Service vom Typ Diameter.
  4. Erstellen Sie einen Monitor vom Typ Diameter. Legen Sie unter Spezielle Parameter den Ursprungshost und den Ursprungsbereich fest.
  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 Diameter an, und geben Sie eine Persistenz-AVP-Nummer ein.
  7. Klicken Sie auf Speichern, und klicken Sie auf Fertig.