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ベースのルートヘルスインジェクションを構成する
-
次のコマンドを使用して、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
-
次のコマンドを実行してコンテナにログインします:
docker exec -it <container id> bash
-
次のコマンドを実行して、BGP機能を有効にします:
cli_script.sh "enable ns feature bgp"
-
show ns ip
コマンドを実行してNSIPを取得します。cli_script.sh "show ns ip"
-
次のコマンドを実行して仮想サーバーを追加します:
cli_script.sh "add lb vserver <vserver_name> http <VIP> <PORT>"
-
サービスを追加し、サービスを仮想サーバーにバインドします。
-
次のコマンドを実行して、VIPの
hostroute
を有効にします:cli_script.sh "set ns ip <VIP> -hostroute enabled”
コンテナからログアウトし、ホストからポート9080のNSIPにBGP NITROコマンドを送信します。
-
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"}}}}}'
-
次のNITROコマンドを実行して、学習したBGPルートをPEにインストールします:
curl -u username:password http://<NSIP>:9080/nitro/v1/config/ --data 'object={"params":{"action":"apply"},"routerDynamicRouting": {"commandstring" : "ns route-install bgp"}}'
-
次の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 } ]
-
次のコマンドを実行して、BGPを介して学習したルートがパケットエンジンにインストールされていることを確認します:
cli_script.sh “show route”
-
次のコマンドを実行して構成を保存します。
cli_script.sh “save config”
動的ルーティング構成は/nsconfig/ZebOS.conf
ファイルに保存されます。