Citrix ADC

Anwendungsfall 7: Konfigurieren des Lastausgleichs im DSR-Modus mit IP over IP

Sie können eine Citrix ADC Appliance so konfigurieren, dass sie den Direktserverrückkehrmodus (DSR) über Layer-3-Netzwerke hinweg verwendet, indem Sie IP-Tunneling verwenden, auch als IP over IP-Konfiguration bezeichnet. Wie bei Standard-Load Balancing-Konfigurationen für den DSR-Modus können Server direkt auf Clients reagieren, anstatt einen Rückkehrpfad über die Citrix ADC Appliance zu verwenden. Dies verbessert die Reaktionszeit und den Durchsatz. Wie im Standard-DSR-Modus überwacht die Citrix ADC Appliance die Server und führt Zustandsprüfungen an den Anwendungsports durch.

Bei IP-over-IP-Konfiguration müssen sich die Citrix ADC Appliance und die Server nicht im selben Layer-2-Subnetz befinden. Stattdessen kapselt die Citrix ADC Appliance die Pakete, bevor sie an den Zielserver gesendet werden. Nachdem der Zielserver die Pakete empfängt, entkapselt er die Pakete und sendet dann seine Antworten direkt an den Client. Dies wird oft als L3DSR bezeichnet.

So konfigurieren Sie den L3-DSR-Modus auf Ihrer Citrix ADC Appliance:

  • Erstellen Sie einen virtuellen Lastausgleichsserver. Stellen Sie den Modus auf IPTUNNEL ein und aktivieren Sie das sitzungslose Tracking.
  • Erstellen Sie Dienste. Erstellen Sie für jede Back-End-Anwendung einen Dienst und binden Sie die Dienste an den virtuellen Server.
  • Konfigurieren Sie für die Entkapselung. Konfigurieren Sie entweder eine Citrix ADC Appliance oder einen Back-End-Server für.

    Hinweis:

    Wenn Sie eine Citrix ADC Appliance verwenden, ist das Entkapselungs-Setup ein IP-Tunnel zwischen den ADC-Appliances, wobei das Back-End L2DSR zu den realen Servern durchführt.

Konfigurieren eines virtuellen Lastausgleichsservers

Konfigurieren Sie einen virtuellen Server für die Verarbeitung von Anforderungen an Ihre Anwendungen. Weisen Sie den Diensttyp zu, der dem Dienst entspricht, oder verwenden Sie einen Typ ANY für mehrere Dienste. Stellen Sie die Weiterleitungsmethode auf IPTUNNEL ein und ermöglichen Sie dem virtuellen Server, im sitzungslosen Modus zu arbeiten. Konfigurieren Sie jede Load Balancing-Methode, die Sie verwenden möchten.

So erstellen und konfigurieren Sie einen virtuellen Lastausgleichsserver für IP-über-IP-DSR mit der Befehlszeilenschnittstelle

Geben Sie an der Eingabeaufforderung den folgenden Befehl ein, um einen virtuellen Lastausgleichsserver für IP über IP DSR zu konfigurieren und die Konfiguration zu überprüfen:

add lb vserver <name> serviceType <serviceType> IPAddress <ip> Port <port> -lbMethod <method> -m <ipTunnelTag> -sessionless [ENABLED | DISABLED]

show lb vserver <name>
<!--NeedCopy-->

Beispiel:

Im folgenden Beispiel haben wir die Load Balancing-Methode als SourceIPHash ausgewählt und den Sitzungslosen Lastausgleich konfiguriert.

add lb vserver Vserver-LB-1 ANY 1.1.1.80 * -lbMethod SourceIPHash -m IPTUNNEL -sessionless ENABLED
<!--NeedCopy-->

So erstellen und konfigurieren Sie einen virtuellen Lastausgleichsserver für IP über IP DSR mit der GUI

  1. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server.
  2. Erstellen Sie einen virtuellen Server und geben Sie den Umleitungsmodus als IP-Tunnel-basiertan.

Konfigurieren von Diensten für IP-über-IP-DSR

Konfigurieren Sie nach dem Erstellen Ihres Servers mit Lastausgleich einen Dienst für jede Ihrer Anwendungen. Der Dienst verarbeitet den Datenverkehr von der Citrix ADC Appliance zu diesen Anwendungen und ermöglicht es der Citrix ADC-Appliance, den Zustand der einzelnen Anwendungen zu überwachen.

Weisen Sie die Dienste zu, um den USIP-Modus zu verwenden, und binden Sie einen Monitor vom Typ IPTUNNEL an den Dienst zur tunnelbasierten Überwachung.

So erstellen und konfigurieren Sie einen Dienst für IP-über-IP-DSR mit der Befehlszeilenschnittstelle

Geben Sie an der Eingabeaufforderung die folgenden Befehle ein, um einen Dienst zu erstellen, und erstellen Sie optional einen Monitor und binden ihn an den Dienst:

add service <serviceName> <serverName> <serviceType> <port> -usip <usip>

add monitor <monitorName> <monitorType> -destip <ip> -iptunnel <iptunnel>

bind service <serviceName> -monitorName <monitorName>
<!--NeedCopy-->

Beispiel:

Im folgenden Beispiel wird ein Monitor vom Typ IPTUNNEL erstellt.

add monitor mon_DSR PING -destip 1.1.1.80 -iptunnel yes
add service svc_DSR01 2.2.2.100 ANY * -usip yes
bind service svc_DSR01 -monitorName mon_DSR
<!--NeedCopy-->

Ein alternativer Ansatz zur Vereinfachung des Routing sowohl auf dem Server als auch auf der ADC-Appliance besteht darin, sowohl den ADC als auch den Server so einzurichten, dass sie eine IP aus demselben Subnetz verwenden. Dadurch wird sichergestellt, dass jeder Datenverkehr mit einem Ziel eines Tunnelendpunkts über den Tunnel gesendet wird. Im Beispiel wird 10.0.1.0/30 verwendet.

Hinweis:

Der Zweck des Monitors besteht darin, sicherzustellen, dass der Tunnel aktiv ist, indem der Loopback jedes Servers durch den IP-Tunnel erreicht wird. Wenn der Dienst nicht verfügbar ist, überprüfen Sie, ob das äußere IP-Routing zwischen ADC und Server gut ist. Überprüfen Sie auch, ob die inneren IP-Adressen über den IP-Tunnel erreichbar sind. Auf dem Server sind möglicherweise Routen erforderlich, oder je nach gewählter Implementierung wird PBR zu ADC hinzugefügt.

Beispiel:

add ns ip 10.0.1.2 255.255.255.252 -vServer DISABLED
add netProfile netProfile_DSR -srcIP 10.0.1.2
add lb monitor mon_DSR PING -LRTM DISABLED -destIP 1.1.1.80 -ipTunnel YES -netProfile netProfile_DSR
<!--NeedCopy-->

So konfigurieren Sie einen Monitor mit der GUI

  1. Navigieren Sie zu Traffic Management > Load Balancing > Monitore.
  2. Erstellen Sie einen Monitor und wählen Sie IP-Tunnelaus.

So erstellen und konfigurieren Sie einen Dienst für IP über IP DSR mit der GUI

  1. Navigieren Sie zu Traffic Management > Load Balancing > Services.
  2. Erstellen Sie einen Dienst und wählen Sie auf der Registerkarte Einstellungen die Option Quell-IP-Adresse verwendenaus.

So binden Sie einen Dienst mit der Befehlszeilenschnittstelle an einen virtuellen Lastausgleichsserver

Geben Sie an der Eingabeaufforderung den folgenden Befehl ein:

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

Beispiel:

bind lb vserver Vserver-LB-1 Service-DSR-1
<!--NeedCopy-->

So binden Sie einen Dienst mit der GUI an einen virtuellen Lastausgleichsserver

  1. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server.
  2. Öffnen Sie einen virtuellen Server und klicken Sie in den Abschnitt “ Dienste “, um einen Dienst an den virtuellen Server zu binden.

Verwenden der Client-IP-Adresse im Outer Header von Tunnelpaketen

Der Citrix ADC unterstützt die Verwendung der Clientquell-IP-Adresse als Quell-IP-Adresse im äußeren Header von Tunnelpaketen, die sich auf den Rückgabemodus des Direktservers mit IP-Tunneling beziehen. Diese Funktion wird für DSR mit IPv4 und DSR mit IPv6-Tunneling-Modi unterstützt. Um diese Funktion zu aktivieren, aktivieren Sie den IP-Adressparameter use client source für IPv4 oder IPv6. Diese Einstellung wird global auf alle DSR-Konfigurationen angewendet, die IP-Tunneling verwenden.

So verwenden Sie eine Clientquell-IP-Adresse als Quell-IP-Adresse über die Befehlszeilenschnittstelle

Geben Sie an der Eingabeaufforderung Folgendes ein:

  • set iptunnelparam -useclientsourceip [YES | NO]
  • show iptunnelparam

So verwenden Sie die Clientquell-IP-Adresse als Quell-IP-Adresse über die grafische Benutzeroberfläche

  1. Navigieren Sie zu System > Netzwerk.
  2. Klicken Sie auf der Registerkarte Einstellungen auf Globale IPv4-Tunnel-Einstellungen.
  3. Aktivieren Sie auf der Seite Globale Parameter für IPv4-Tunnel konfigurieren das Kontrollkästchen Client-Quell-IP verwenden.
  4. Klicken Sie auf OK.

So verwenden Sie die Clientquell-IP-Adresse als Quell-IP-Adresse über die Befehlszeilenschnittstelle

Geben Sie an der Eingabeaufforderung Folgendes ein:

  • set ip6tunnelparam -useclientsourceip [YES | NO]
  • show ip6tunnelparam

So verwenden Sie die Clientquell-IP-Adresse als Quell-IP-Adresse über die grafische Benutzeroberfläche

  1. Navigieren Sie zu System > Netzwerk.
  2. Klicken Sie auf der Registerkarte Einstellungen auf Globale IPv6-Tunnel-Einstellungen.
  3. Aktivieren Sie auf der Seite Globale Parameter für IPv6-Tunnel konfigurieren das Kontrollkästchen Client-Quell-IP verwenden.
  4. Klicken Sie auf OK.

Konfiguration der Entkapselung

Sie können entweder eine Citrix ADC Appliance oder einen Back-End-Server als Entkapselung konfigurieren.

Citrix ADC Entkapselung

Wenn eine Citrix ADC Appliance als Entkapselung verwendet wird, muss in der Citrix ADC Appliance ein IP-Tunnel erstellt werden. Weitere Informationen finden Sie unter Konfigurieren von IP-Tunneln.

Das Citrix ADC Dekapselungs-Setup besteht aus den folgenden zwei virtuellen Servern:

  • Der erste virtuelle Server empfängt das gekapselte Paket und entfernt die äußere IP-Kapselung.
  • Der zweite virtuelle Server verfügt über die IP des ursprünglichen Dienstes im Front-End ADC und leitet das Paket mithilfe der MAC-Adresse der gebundenen Dienste mithilfe der MAC-Adresse der gebundenen Dienste an das Back-End weiter. Dieses Setup wird normalerweise als L2DSR bezeichnet. Stellen Sie sicher, dass Sie ARP auf diesem virtuellen Server deaktivieren.

Beispiel-Setup:

Die folgende Abbildung zeigt ein Entkapselungs-Setup mit den ADC-Appliances.

Einrichtung der ADC-Entkapselung

Die vollständige Konfiguration, die für das Setup erforderlich ist, lautet wie folgt.

Front-End-ADC-Konfiguration:

add service svc_DSR01 2.2.2.80 ANY * -usip YES -useproxyport NO
add lb vserver vip_DSR_ENCAP ANY 1.1.1.80 * -lbMethod SOURCEIPHASH -m IPTUNNEL -sessionless ENABLED
bind lb vserver vip_DSR_ENCAP svc_DSR01
<!--NeedCopy-->

Back-End-ADC-Konfiguration:

add ipTunnel DSR-IPIP 1.1.1.100 255.255.255.255 *

add service svc_DSR01_01 2.2.2.101 ANY * -usip YES -useproxyport NO
add service svc_DSR01_02 2.2.2.102 ANY * -usip YES -useproxyport NO
add service svc_DSR01_03 2.2.2.103 ANY * -usip YES -useproxyport NO

add lb vserver vs_DSR_DECAP ANY 2.2.2.80 * -lbMethod SOURCEIPHASH -m IPTUNNEL -sessionless ENABLED -netProfile netProf_DSR_MBF_noIP

add ns ip 1.1.1.80 255.255.255.255 -type VIP -arp DISABLED -snmp DISABLED
add lb vserver vs_DSR_Relay ANY 1.1.1.80 * -lbMethod SOURCEIPHASH -m MAC -sessionless ENABLED

bind lb vserver vs_DSR_DECAP svc_DSR01_01
bind lb vserver vs_DSR_DECAP svc_DSR01_02
bind lb vserver vs_DSR_DECAP svc_DSR01_03

bind lb vserver vip_DSR_Relay svc_DSR01_01
bind lb vserver vip_DSR_Relay svc_DSR01_02
bind lb vserver vip_DSR_Relay svc_DSR01_03

add netProfile netProf_DSR_MBF_noIP -MBF ENABLED
add lb monitor mon_DSR_MAC PING -netProfile netProf_DSR_MBF_noIP
bind service svc_DSR01_01 -monitorName mon_DSR_MAC
bind service svc_DSR01_02 -monitorName mon_DSR_MAC
bind service svc_DSR01_03 -monitorName mon_DSR_MAC
<!--NeedCopy-->

Das folgende Beispiel zeigt ein Test-Setup mit Ubuntu- und Red Hat Servern, auf denen apache2 ausgeführt wird. Diese Befehle werden auf jedem Back-End-Server eingerichtet.

sudo ip addr add 1.1.1.80 255.255.255.255 dev lo
sudo sysctl net.ipv4.conf.all.arp_ignore=1
sudo sysctl net.ipv4.conf.all.arp_announce=2
sudo sysctl net.ipv4.conf.eth4.rp_filter=2 (The interface has the external IP with route towards the ADC)
sudo sysctl net.ipv4.conf.all.forwarding=1
sudo ip link set dev lo arp on
<!--NeedCopy-->

Entkapselung des Backend-Servers

Wenn Sie die Back-End-Server als Entkapselung verwenden, variiert die Back-End-Konfiguration je nach Serverbetriebssystemtyp. Sie können einen Back-End-Server als Entkapselung konfigurieren, indem Sie die folgenden Schritte ausführen:

  1. Konfigurieren Sie eine Loop-Back-Schnittstelle mit IP für Dienst-IP.
  2. Erstellen Sie eine Tunnelschnittstelle.
  3. Fügen Sie eine Route über Tunnelschnittstelle hinzu.
  4. Konfigurieren Sie die Einstellungen der Benutzeroberfläche nach Bedarf für den Datenverkehr

Hinweis:

Windows-Betriebssystem-Server können IP-Tunneln nicht nativ durchführen, daher werden die Befehle als Beispiele für Linux-basierte Systeme bereitgestellt. Plug-Ins von Drittanbietern sind für Windows-Betriebssystem-Server verfügbar, das liegt jedoch außerhalb des Geltungsbereichs dieses Beispiels.

Die folgende Abbildung zeigt ein Entkapselungs-Setup unter Verwendung der Back-End-Server.

Einrichtung der Serverentkapselung

Beispielkonfiguration:

In diesem Beispiel ist 1.1.1.80 die virtuelle IP-Adresse (VIP) von Citrix ADC und 2.2.2.10-2.2.2.12 sind die IP-Adressen des Back-End-Servers. Die VIP-Adresse ist in der Loopback-Schnittstelle konfiguriert und eine Route wird über die Tunnelschnittstelle hinzugefügt. Die Monitore verwenden die Server-IP und tunneln die Monitorpakete mithilfe der Tunnelendpunkte über den IP-Tunnel.

Die vollständige Konfiguration, die für das Setup erforderlich ist, lautet wie folgt.

Front-End-ADC-Konfiguration:

Die folgende Konfiguration erstellt einen Monitor, der den Tunnelendpunkt als Quelle verwendet. Senden Sie dann Pings über den Tunnel an die Dienst-IP-Adresse.

add ns ip 10.0.1.2 255.255.255.252 -vServer DISABLED
add netProfile netProfile_DSR -srcIP 10.0.1.2
add lb monitor mon_DSR PING -LRTM DISABLED -destIP 1.1.1.80 -ipTunnel YES -netProfile netProfile_DSR
<!--NeedCopy-->

Die folgende Konfiguration erstellt einen VIP für den Dienst, der die ursprüngliche Quell-IP-Adresse verwendet. Leitet dann den Datenverkehr über den IP-Tunnel an Back-End-Server weiter.

add service svc_DSR01 2.2.2.10 ANY * -usip YES -useproxyport NO
bind service svc_DSR01 -monitorName mon_DSR

add service svc_DSR02 2.2.2.11 ANY * -usip YES -useproxyport NO
bind service svc_DSR02 -monitorName mon_DSR

add service svc_DSR03 2.2.2.12 ANY * -usip YES -useproxyport NO
bind service svc_DSR03 -monitorName mon_DSR

add lb vserver vip_DSR_ENCAP ANY 1.1.1.80 * -lbMethod SOURCEIPHASH -m IPTUNNEL -sessionless ENABLED
bind lb vserver vip_DSR_ENCAP svc_DSR01
bind lb vserver vip_DSR_ENCAP svc_DSR02
bind lb vserver vip_DSR_ENCAP svc_DSR03
<!--NeedCopy-->

Back-End-Serverkonfiguration jedes Servers:

Die folgenden Befehle sind erforderlich, damit der Back-End-Server das IPIP-Paket empfangen, die äußere Kapselung entfernt und dann vom Loopback auf die ursprüngliche Client-IP reagiert. Dadurch wird sichergestellt, dass die IP-Adressen in dem vom Client empfangenen Paket mit den IP-Adressen in der ursprünglichen Anforderung übereinstimmen.

modprobe ipip
sudo ip addr add 1.1.1.80 255.255.255.255 dev lo
nmcli connection add type ip-tunnel ip-tunnel.mode ipip con-name tun0
ifname tun0 remote 198.51.100.5 local 203.0.113.10
nmcli connection modify tun0 ipv4.addresses '10.0.1.1/30'
nmcli connection up tun0
sudo sysctl net.ipv4.conf.all.arp_ignore=1
sudo sysctl net.ipv4.conf.all.arp_announce=2
sudo sysctl net.ipv4.conf.tun0.rp_filter=2
sudo sysctl net.ipv4.conf.all.forwarding=1
sudo ip link set dev lo arp off
<!--NeedCopy-->
Anwendungsfall 7: Konfigurieren des Lastausgleichs im DSR-Modus mit IP over IP