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.

Einzelhost-Topologie

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

  1. 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
    
  2. Melden Sie sich mit dem folgenden Befehl beim Container an:

    docker exec -it <container id> bash
    
  3. Aktivieren Sie die BGP-Funktion mit dem folgenden Befehl:

    cli_script.sh "enable ns feature bgp"
    
  4. Besorgen Sie sich das NSIP mit dem show ns ip Befehl:

    cli_script.sh "show ns ip"
    
  5. Fügen Sie den virtuellen Server mit dem folgenden Befehl hinzu:

    cli_script.sh "add lb  vserver <vserver_name> http <VIP> <PORT>"
    
  6. Dienste hinzufügen und Dienste an den virtuellen Server binden.

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

  8. 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"}}}}}'
    
  9. 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"}}'
    
  10. Ü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 } ]
    
  11. Stellen Sie mit dem folgenden Befehl sicher, dass die durch BGP erlernten Routen in der Paket-Engine installiert sind:

    cli_script.sh “show route”
    
  12. 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.

Unterstützung für dynamisches Routing in NetScaler CPX