Citrix ADC

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.

直径后要是ausgetauscht了fuhrt 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. 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).
  • 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.

要是静脉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 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 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  -realm  -serverClosePropagation  

Beispiel:

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

Fügen Sie einen Diameter-Monitor hinzu.

add lb monitor  DIAMETER -originHost  -originRealm  

Beispiel:

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

Erstellen Sie die Diameter Services.

add service   DIAMETER  

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 @ 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  DIAMETER   -persistenceType DIAMETER -persistAVPno  

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   

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 DiensttypSSL_DIAMETERverwenden.

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

  1. Navigieren Sie zuSystem>Einstellungen>Diameter-Parameter ändern, und legen Sie die Diameter-Parameter fest.
  2. Navigieren Sie zuTraffic 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 aufPersistenz, geben Sie den Durchmesser an, und geben Sie eine Persistenz-AVP-Nummer ein.
  7. Klicken Sie aufSpeichern, und klicken Sie aufFertig.
Konfigurieren des Durchmesser-Lastausgleichs