Support du routage dynamique dans NetScaler CPX

NetScaler CPX prend en charge le protocole de routage dynamique BGP. L’objectif principal du protocole de routage dynamique est d’annoncer l’adresse IP du serveur virtuel en fonction de l’état des services liés au serveur virtuel. Il aide un routeur en amont à choisir le meilleur itinéraire parmi plusieurs itinéraires vers un serveur virtuel réparti topographiquement.

Remarque : Le protocole de routage dynamique BGP est pris en charge à partir de la version 52.15 de NetScaler ADC 12.1 et versions ultérieures.

Pour plus d’informations sur le mot de passe autre que celui par défaut dans NetScaler CPX, consultez la Support for using a non-default password in NetScaler CPX section du document Configuration de NetScaler CPX.

Dans un réseau hôte unique, le client, les serveurs et l’instance NetScaler CPX sont déployés en tant que conteneurs sur le même hôte Docker. Tous les conteneurs sont reliés par le pont docker0. Dans cet environnement, l’instance NetScaler CPX agit en tant que proxy pour les applications provisionnées en tant que conteneurs sur le même hôte Docker. Pour plus d’informations sur le déploiement du mode réseau hôte NetScaler CPX, consultez la section Mode réseau hôte.

La figure suivante illustre la topologie à hôte unique.

Topologie à hôte unique

Dans cette topologie, les serveurs virtuels sont configurés et annoncés (en fonction de l’état des services) sur le réseau ou le routeur en amont à l’aide du protocole BGP.

Effectuez les étapes suivantes pour configurer BGP sur NetScaler CPX sur un seul hôte Docker avec le mode réseau de pont.

Configurer l’injection d’intégrité de route basée sur BGP à l’aide de l’API REST sur NetScaler CPX

  1. Créez un conteneur à partir de l’image NetScaler CPX à l’aide de la commande suivante :

    docker run -dt --privileged=true -p 22 -p 80 -p 161 -e EULA=yes --ulimit core=-1 cpx: <tag>
    

    Par exemple :

    docker run -dt --privileged=true -p 22 -p 80 -p 161 -e EULA=yes --ulimit core=-1 cpx:12.1-50.16
    
  2. Connectez-vous au conteneur à l’aide de la commande suivante :

    docker exec -it <container id> bash
    
  3. Activez la fonctionnalité BGP à l’aide de la commande suivante :

    cli_script.sh "enable ns feature bgp"
    
  4. Obtenez le NSIP à l’aide de la commande show ns ip :

    cli_script.sh "show ns ip"
    
  5. Ajoutez le serveur virtuel à l’aide de la commande suivante :

    cli_script.sh "add lb  vserver <vserver_name> http <VIP> <PORT>"
    
  6. Ajoutez des services et liez des services au serveur virtuel.

  7. Activez hostroute pour l’adresse IP virtuelle à l’aide de la commande suivante :

    cli_script.sh "set ns ip <VIP> -hostroute enabled”
    

    Déconnectez-vous du conteneur et envoyez des commandes BGP NITRO de l’hôte au NSIP sur le port 9080.

  8. Configurez le routeur BGP :

    Par exemple, si vous souhaitez configurer :

    router bgp 100
    Neighbour 172.17.0.2 remote-as 101
    Redistribute kernel
    

    Spécifiez la commande comme suit :

     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. Installez les routes BGP apprises dans le PE à l’aide de la commande NITRO suivante :

    curl -u username:password http://<NSIP>:9080/nitro/v1/config/ --data 'object={"params":{"action":"apply"},"routerDynamicRouting": {"commandstring" : "ns route-install bgp"}}'
    
  10. Vérifiez l’état d’adjacence BGP à l’aide de la commande NITRO suivante :

    curl -u username:password http://<NSIP>:9080/nitro/v1/config/routerDynamicRouting/bgpRouter
    

    Exemple de sortie :

     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. Vérifiez que les routes apprises par le biais de BGP sont installées dans le moteur de paquets à l’aide de la commande suivante :

    cli_script.sh “show route”
    
  12. Enregistrez la configuration à l’aide de la commande suivante :

    cli_script.sh “save config”
    

La configuration du routage dynamique est enregistrée dans le fichier /nsconfig/ZebOS.conf.

Support du routage dynamique dans NetScaler CPX