NetScaler CPXでのダイナミックルーティングのサポート

NetScaler CPXはBGP動的ルーティングプロトコルをサポートしています。動的ルーティングプロトコルの主な目的は、仮想サーバーにバインドされたサービスの状態に基づいて、仮想サーバーのIPアドレスをアドバタイズすることです。これは、アップストリームルーターが、地形的に分散した仮想サーバーへの複数のルートから最適なルートを選択するのに役立ちます。

NetScaler CPXのデフォルト以外のパスワードについては、「NetScaler CPXの構成Support for using a non-default password in NetScaler CPX ドキュメントのセクションを参照してください。

単一ホストネットワークでは、クライアント、サーバー、およびNetScaler CPXインスタンスが、同じDockerホストのコンテナとして展開されます。コンテナはすべてdocker0ブリッジで接続されます。この環境で、NetScaler CPXインスタンスは、同一のDockerホストでコンテナとしてプロビジョニングされているアプリケーションのプロキシとして機能します。NetScaler CPXホストネットワークモードの展開について詳しくは、「 ホストネットワークモード」を参照してください。

次の図は、シングルホストトポロジを示しています。

シングルホストトポロジ

このトポロジでは、仮想サーバーが構成され、BGPを使用してアップストリームネットワークまたはルーターに(サービスの状態に基づいて)アドバタイズされます。

ブリッジネットワークモードの単一Docker ホストでNetScaler CPXでBGPを構成するには、次の手順を実行します。

NetScaler CPXでREST APIを使用してBGPベースのルートヘルスインジェクションを構成する

  1. 次のコマンドを使用して、NetScaler CPXイメージからコンテナーを作成します。

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

    例:

    docker run -dt --privileged=true -p 22 -p 80 -p 161 -e EULA=yes --ulimit core=-1 cpx:12.1-50.16
    
  2. 次のコマンドを実行してコンテナにログインします:

    docker exec -it <container id> bash
    
  3. 次のコマンドを実行して、BGP機能を有効にします:

    cli_script.sh "enable ns feature bgp"
    
  4. show ns ipコマンドを実行してNSIPを取得します。

    cli_script.sh "show ns ip"
    
  5. 次のコマンドを実行して仮想サーバーを追加します:

    cli_script.sh "add lb  vserver <vserver_name> http <VIP> <PORT>"
    
  6. サービスを追加し、サービスを仮想サーバーにバインドします。

  7. 次のコマンドを実行して、VIPのhostrouteを有効にします:

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

    コンテナからログアウトし、ホストからポート9080のNSIPにBGP NITROコマンドを送信します。

  8. BGPルーターを構成します:

    たとえば、次のように構成する場合:

    router bgp 100
    Neighbour 172.17.0.2 remote-as 101
    Redistribute kernel
    

    コマンドを次のように指定します:

     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. 次のNITROコマンドを実行して、学習したBGPルートをPEにインストールします:

    curl -u username:password http://<NSIP>:9080/nitro/v1/config/ --data 'object={"params":{"action":"apply"},"routerDynamicRouting": {"commandstring" : "ns route-install bgp"}}'
    
  10. 次のNITROコマンドを実行して、BGP隣接状態を確認します:

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

    出力例:

     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. 次のコマンドを実行して、BGPを介して学習したルートがパケットエンジンにインストールされていることを確認します:

    cli_script.sh “show route”
    
  12. 次のコマンドを実行して構成を保存します。

    cli_script.sh “save config”
    

動的ルーティング構成は/nsconfig/ZebOS.confファイルに保存されます。

NetScaler CPXでのダイナミックルーティングのサポート