Unterstützung für dynamisches Routing in NetScaler CPX
NetScaler CPX unterstützt das dynamische Routingprotokoll BGP. Das Hauptziel des dynamischen Routing-Protokolls besteht darin, die IP-Adresse des virtuellen Servers basierend auf der Integrität der an den virtuellen Server gebundenen Dienste bekannt zu geben. Es hilft einem Upstream-Router, die beste aus mehreren Routen zu einem topografisch verteilten virtuellen Server auszuwählen.
Hinweis: Das dynamische Routing-Protokoll von BGP wird von Build 52.15 von NetScaler ADC 12.1 und späteren Versionen unterstützt.
Informationen zum nicht standardmäßigen Kennwort in NetScaler CPX finden Sie im Support for using a non-default password in NetScaler CPX
Abschnitt Konfigurieren von NetScaler CPX .
In einem einzigen Host-Netzwerk werden der Client, die Server und die NetScaler CPX-Instanz als Container auf demselben Docker-Host bereitgestellt. Alle Container sind über die Docker0-Brücke miteinander verbunden. In dieser Umgebung fungiert die NetScaler CPX-Instanz als Proxy für die Anwendungen, die als Container auf demselben Docker-Host bereitgestellt werden. Informationen zur Bereitstellung des NetScaler CPX-Host-Netzwerkmodus finden Sie unter Host-Netzwerkmodus.
Die folgende Abbildung veranschaulicht die Topologie eines einzelnen Hosts.
In dieser Topologie werden virtuelle Server konfiguriert und (basierend auf dem Zustand der Dienste) mithilfe von BGP an das Upstream-Netzwerk oder den Router angekündigt.
Führen Sie die folgenden Schritte aus, um BGP auf NetScaler CPX auf einem einzelnen Docker-Host mit dem Bridge-Netzwerkmodus zu konfigurieren.
Konfigurieren Sie BGP-basierte Route Health Injection mithilfe der REST-API auf NetScaler CPX
-
Erstellen Sie mit dem folgenden Befehl einen Container aus dem NetScaler CPX-Image:
docker run -dt --privileged=true -p 22 -p 80 -p 161 -e EULA=yes --ulimit core=-1 cpx: <tag>
Beispiel:
docker run -dt --privileged=true -p 22 -p 80 -p 161 -e EULA=yes --ulimit core=-1 cpx:12.1-50.16
-
Melden Sie sich mit dem folgenden Befehl beim Container an:
docker exec -it <container id> bash
-
Aktivieren Sie die BGP-Funktion mit dem folgenden Befehl:
cli_script.sh "enable ns feature bgp"
-
Besorgen Sie sich das NSIP mit dem
show ns ip
Befehl:cli_script.sh "show ns ip"
-
Fügen Sie den virtuellen Server mit dem folgenden Befehl hinzu:
cli_script.sh "add lb vserver <vserver_name> http <VIP> <PORT>"
-
Dienste hinzufügen und Dienste an den virtuellen Server binden.
-
Aktivieren Sie
hostroute
für den VIP mit dem folgenden Befehl:cli_script.sh "set ns ip <VIP> -hostroute enabled”
Melden Sie sich vom Container ab und senden Sie BGP NITRO-Befehle vom Host zum NSIP auf dem Port 9080.
-
Konfigurieren Sie den BGP-Router:
Wenn Sie beispielsweise Folgendes konfigurieren möchten:
router bgp 100 Neighbour 172.17.0.2 remote-as 101 Redistribute kernel
Geben Sie den Befehl wie folgt an:
curl -u username:password http://<NSIP>:9080/nitro/v1/config/ -X POST --data 'object={"routerDynamicRouting": {"bgpRouter" : {"localAS":100, "neighbor": [{ "address": "172.17.0.2", "remoteAS": 101}], "afParams":{"addressFamily": "ipv4", "redistribute": {"protocol": "kernel"}}}}}'
-
Installieren Sie die erlernten BGP-Routen mit dem folgenden NITRO-Befehl in das PE:
curl -u username:password http://<NSIP>:9080/nitro/v1/config/ --data 'object={"params":{"action":"apply"},"routerDynamicRouting": {"commandstring" : "ns route-install bgp"}}'
-
Überprüfen Sie den BGP-Nachbarschaftszustand mit dem folgenden NITRO-Befehl:
curl -u username:password http://<NSIP>:9080/nitro/v1/config/routerDynamicRouting/bgpRouter
Beispielausgabe:
root@ubuntu:~# curl -u username:password http://172.17.0.3:9080/nitro/v1/config/routerDynamicRouting/bgpRouter { "errorcode": 0, "message": "Done", "severity": "NONE", "routerDynamicRouting":{"bgpRouter":[{ "localAS": 100, "routerId": "172.17.0.3", "afParams": [ { "addressFamily": "ipv4" }, { "addressFamily": "ipv6" } ], "neighbor": [ { "address": "172.17.0.2", "remoteAS": 101, "ASOriginationInterval": 15, "advertisementInterval": 30, "holdTimer": 90, "keepaliveTimer": 30, "state": "Connect", "singlehopBfd": false, "multihopBfd": false, "afParams": [ { "addressFamily": "ipv4", "activate": true }, { "addressFamily": "ipv6", "activate": false } ]
-
Stellen Sie mit dem folgenden Befehl sicher, dass die durch BGP erlernten Routen in der Paket-Engine installiert sind:
cli_script.sh “show route”
-
Speichern Sie die Konfiguration mit dem folgenden Befehl:
cli_script.sh “save config”
Die dynamische Routing-Konfiguration wird in der /nsconfig/ZebOS.conf
Datei gespeichert.