ネットワーク仮想化ソリューション 「NSX」 におけるアプリケーションインフラの中核を担う NSX-T Load Balancer は、これまで多くのお客様の重要なサービスを支えてきたベーシックな L4/L7 ロードバランサーです。一方、アプリケーションを取り巻く環境の複雑化に伴い、通信制御の高度化や可視化、パフォーマス向上、セキュリティ強化、DR 対策、マルチクラウド対応など多様化するニーズに対処する必要性も出てきました。このような背景もあり、より高機能かつ高性能なロードバランサーをお客様にご利用いただきたく、NSX-T Load Balancer の後継として、NSX Advanced Load Balancer への移行を推奨しております。本ブログでは、NSX-T Load Balancer (以下 NSX-T LB) を NSX Advanced Load Balancer (以下 NSX ALB) へ移行するために役立つツールをご紹介します。
移行ツールの概要
NSX-T LB から NSX ALB への移行を支援するために開発されたツールです。以下の特徴があります。
- オープンソースで CLI ベースのツール *
- コンフィグ移行やカットオーバー、ロールバック、クリーンアップを実行
- NSX-T の VLAN および オーバーレイ構成にある LB の移行をサポート
- NSX ALB の Basic Edition および Enterprise Edition への移行で利用可能
- 複数の Virtual Servers を選択して一括で移行することが可能
* 弊社テクニカルサポートの対象外のツールであることをご了承ください
移行構成パターン
2023年1月現在リリースされている移行ツールでは、大きく分けて6つの移行構成パターンがサポートされています。移行構成パターンによっては、移行ツールの実行以外にも追加設定が必要だったり、LBの冗長化方式に制限が発生したりするのでご注意ください。
移行ツールの利用方法
ここからは、移行ツールを実行する環境や指定するパラメータの種類、コマンド実行例、出力ファイルについて具体的に説明します。
1.移行ツールを実行する環境
- NSX ALB Controller で実行する方法
- admin アカウントで SSH ログイン
- 移行ツールが保存されているディレクトリ(/opt/avi/python/lib/avi/migrationtools/nsxt_converter)へ移動して スクリプトを実行
- Linux / Mac / Windows マシンで実行する方法
- Linux / Mac マシンでは Terminal を起動し、Avi SDK を保存したディレクトリへ移動してスクリプトを実行
- Windows マシンでは CMD を起動し、Avi SDK を保存したディレクトリへ移動してスクリプトを実行
- スクリプトを実行する前に以下の事前作業が必要
- git clone https://github.com/vmware/alb-sdk.git
- pip3 install –upgrade pip
- pip3 install avimigrationtools
- cd alb-sdk/python/avi/migrationtools/nsxt_converter
- python3 install_nsx_dependencies.py
2. 移行ツールを実行する際に指定する主なパラメータ
詳細なこちらのドキュメントもご参照ください。
3. 移行フェーズ別のコマンド実行例
- コンフィグ移行 (Migration)
# python3 nsxt_converter.py –nsxt_ip 192.168.110.201 –nsxt_user admin –nsxt_password ‘pass’ –alb_controller_ip 192.168.110.91 –alb_controller_user admin –alb_controller_password ‘pass’ –option auto-upload
- トラフィック カットオーバー (Traffic Cutover)
# python3 nsxt_traffic_cutover.py –nsxt_ip 192.168.110.201 –nsxt_user admin –nsxt_password ‘pass’ –alb_controller_ip 192.168.110.91 –alb_controller_user admin –alb_controller_password ‘pass’ –vs_filter demo-vs
- ロールバック (Rollback)
# python3 nsxt_rollback.py –nsxt_ip 192.168.110.201 –nsxt_user admin –nsxt_password ‘pass’ –alb_controller_ip 192.168.110.91 –alb_controller_user admin –alb_controller_password ‘pass’ –vs_filter demo-vs
- クリーンアップ (Cleanup)
# python3 nsxt_cleanup.py –nsxt_ip 192.168.110.201 –nsxt_user admin –nsxt_password ‘pass’ –vs_filter demo-vs
4. コンフィグ移行のコマンド実行後に出力されるファイル一覧
移行前の事前準備
移行ツールを実行する前に以下の作業が完了していることを確認します。
- NSX ALB Controller のデプロイおよびライセンスの適用
- NSX ALB Controller にて Cloud オブジェクトを設定 *
- NSX ALB Controller にて SE Group オブジェクトを設定 **
- NSX-T オーバーレイ セグメントに NSX ALB を構成する場合、Tier-1 ルータでスタティックルートをTier-0 ルータへ再配送するように設定し、Tier-0 ルータではそのルーティング情報を BGP 等で外部ルータへ再配送するように設定
- NSX-T VLAN セグメントに NSX ALB を構成する場合において、VIP がその VLAN セグメントに属さないときに限り、以下の追加設定が必要
- VIP ルートを BGP 経由で外部ルータへ広報する場合、移行ツールで指定する ’default_params_file’ のパラメータで ‘bgp_peer_configured_for_vlan’を True に設定 ***
- スタティックルートを利用する場合、Tier-1/外部ルータにて VIP 宛のスタティックルートを設定
* Cloud: Service Engine のデプロイや Tier-1 Router のスタティックルート作成などを自動化するために、NSX ALB Controller が NSX Manager/vCenter と API 連携させるためのオブジェクト
** SE Group: Service Engine の冗長化方式や割り当てるリソースなどを定義するためのオブジェクト
*** 本ブログでは’default_params_file’の詳細は割愛します
また、移行ツールを実行する環境では以下のネットワーク接続性と認証情報が必要です。
- ネットワーク接続性
- NSX-T Manager へ HTTPS(TCP/443) 接続ができること
- NSX-T Manager へ SSH(TCP/22) 接続ができること
- NSX ALB Controller へ HTTPS(TCP/443) 接続ができること
- 認証情報
- NSX-T Manager の認証情報を準備
- NSX ALB Controller の認証情報を準備
NSX-T LB から NSX ALB への移行例
それでは、実際に移行ツールを使ってみたいと思います。今回は最もシンプルで導入事例の多い構成パターン③(インライン + SNAT あり + オーバーレイ構成)で試します。その他の構成パターンについては、後続のブログでご紹介する予定です。
実際のネットワーク構成
既存 NSX-T LB のコンフィグ(Virtual Server / Server Pool)
移行前の事前準備のセクションで説明した作業はすべて完了している前提で進めます。また、移行ツールは Ubuntu(20.04.4 LTS) マシン上で実行します。
Step1 コンフィグ移行の実行
root@jumpbox:~/avi/alb-sdk/python/avi/migrationtools/nsxt_converter# python3 nsxt_converter.py –nsxt_ip 192.168.110.201 –nsxt_user admin –nsxt_password ‘pass’ –alb_controller_ip 192.168.110.91 –alb_controller_user admin –alb_controller_password ‘pass’ –option auto-upload
<実行時の出力ログは省略>
nsxt-report-ConversionStatus.xlsx ファイルの中身を確認し、Virtual Service や Pool が正常に移行できたことを確認します。
NSX ALB の管理画面で Service Engine(NSX ALB のデータプレーンを司る VM) や Virtual Service、Pool が作成されていることを確認します。
Virtual Service の Traffic 状態は Disabled のため、ARP 要求に応答せず、トラフィックは受け付けない状態になっています。
Step2 カットオーバーの実行
root@jumpbox:~/avi/alb-sdk/python/avi/migrationtools/nsxt_converter# python3 nsxt_traffic_cutover.py –nsxt_ip 192.168.110.201 –nsxt_user admin –nsxt_password ‘pass’ –alb_controller_ip 192.168.110.91 –alb_controller_user admin –alb_controller_password ‘pass’ –vs_filter demo-vs
<実行時の出力ログは省略>
Windows 端末から VIP 宛の連続 ping では3回パケットロスしました。
Virtual Service の Traffic 状態は Enabled のため、ARP 要求に応答し、トラフィックは受け付けている状態になっています。
NSX-T の Tier-1 Router にて VIP 宛のスタティックルートがネクストホップ NSX ALB として自動的に構成されています。
NSX ALB 側にトラフィックが流れていることを確認します。今回は NSX ALB Enterprise Edition で検証しているため、詳細な分析と可視化が可能です。
NSX-T LB では Virtual Server と Server Pool が Disabled 状態になっていることを確認します。
Step3-1 ロールバックの実行
root@jumpbox:~/avi/alb-sdk/python/avi/migrationtools/nsxt_converter# python3 nsxt_rollback.py –nsxt_ip 192.168.110.201 –nsxt_user admin –nsxt_password ‘pass’ –alb_controller_ip 192.168.110.91 –alb_controller_user admin –alb_controller_password ‘pass’ –vs_filter demo-vs
<実行時の出力ログは省略>
Step2を実行する前の状態に戻りました。NSX ALB の Virtual Service では Traffic 状態 が Disabled に、NSX-T LB の Virtual Serverと Server Pool の状態は Enabled に、それぞれ変更されました。また、NSX-T の Tier-1 Router では VIP 宛のスタティックルートが削除されました。(画面キャプチャは省略)
Step3-2 クリーンアップの実行
root@jumpbox:~/avi/alb-sdk/python/avi/migrationtools/nsxt_converter# python3 nsxt_cleanup.py –nsxt_ip 192.168.110.201 –nsxt_user admin –nsxt_password ‘pass’ –vs_filter demo-vs
<実行時の出力ログは省略>
NSX-T LB の Virtual Server および Server Pool が削除されていることを確認します。
まとめ
今回ご紹介した移行ツールは、現場のフィードバックや様々なユースケースに対応すべく、今後も改善が行われる予定です。移行作業のすべてを完全自動化することは難しいですが、大量の Virtual Servers や Server Pools を効率よく移行するために便利なツールであることは間違いありません。ぜひ、機会があればお試しください。
〜お知らせ〜
※VMwareでは、各種製品をクラウド上でご評価いただくHands-on Labs(HOL) という仕組みを無償でご提供しています。
今回ご紹介した各種ソリューションへの最初の一歩の入り口としてぜひご活用ください。
おすすめのHOLメニューはこちらから
- VMware NSX Advanced Load Balancer (Avi Networks) – Getting Started (HOL-2337-01-NET)
- VMware NSX Advanced Load Balancer (Avi Networks) – Global Server Load Balancing (HOL-2337-02-NET)
- VMware NSX Advanced Load Balancer (Avi Networks) Web Application Security (HOL-2337-03-NET)
- VMware NSX Advanced Load Balancer (Avi Networks) with Kubernetes (HOL-2337-04-NET)
- Migrate to NSX Advanced Load Balancer (Avi) using the Migration Toolkit (HOL-2337-05-NET)