ネットワークエンジニアのITブログ

長らくネットワークで生活してきましたが、ここ数年クラウドとサーバー系に触れる機会が増えて、日々成長しています。最近のお気に入りはNSXALBとGoogle Cloud。

NSXALB(30.1.2)のNativeFTP Profileを設定してみた

NSXALBのライフサイクルは結構早く2024年4月30日時点の最新版は30.1.2 2p1となっています。いままで、21.x、22.xで検証していたので、今回最新版のNSXALBを導入してみました。
また、21.xでFTPのVSを作成するとDataScriptを設定し、Active/Passiveモードの設定が必要でしたが、22.xからNative FTP Profileが導入されているので、実際の動作確認をしてみたいと思います。

構成

ホームラボのネットワーク構成は、こちらです。

VS、Pool、VIPの接続イメージは以下のようになります。

30.1.2の構築

構築手順を紹介しようと思ったのですが、以前21.1.5 2p2を導入したときの手順と全く同じだったので、ここでは割愛します。
詳細は、以前の記事を参照ください。
hironw.hatenablog.com

Poolの作成

まずは、FTPサーバーのPoolを作成します。FTPサーバーはWindows Server 2022のIIS機能であらかじめ構築しています。
[Applications]-[Pools]から「CREATE POOL」を選択します。

Pool作成画面で以下の情報を入力します。
Name:Pool_winsrv35
Type:Generic Application
Default Server Port:21
Load Balance Algorithm:Consistent Hash(FTPはこのアルゴリズムのみサポート)
Type:Source IP Address

「Select Server By」で、FTPサーバーのIPアドレス(192.168.10.35)を入力し、「ADD」を選択します。

選択すると、「Servers」に設定が反映されるので、右端の編集ボタンを選択します。

ここの設定変更は必須ではありませんが、わかりやすいように変更し「SAVE」を選択します。
Hostname:winsrv35
Port:21

「Health Monitor」で「System-TCP」を選び「SAVE」を選択し設定を完了します。


VIPの作成

続いてVIPを作成します。[Applications]-[VS VIPs]から「CREATE」を選択します。

VIP作成画面で「Name」に「vip_192.168.10.202」を入力し、「VIPs」で「ADD」を選択します。

IPv4 Addressに「192.168.10.202」を入力し、Placement Networkの「ADD」を選択します。

Placement Network画面で以下の情報を入力し「SAVE」を選択します。
Placement Network:192.168.10.0/24 - 192.168.10.0/24
IPv4 Subnet:192.168.10.0/24

設定が反映されているのを確認して「SAVE」を選択します。



VSの作成

PoolとVIPを作成したので、最後にVirtual Serviceを作成します。
[Applications]-[Virtual Service]から「CREATE」の「Advanced Setup」を選択します。

VS作成画面で以下の情報を入力し「NEXT」を選択します。
Name:vs_winsrv35_FTP
VS VIP:vip_192.168.10.202
Service:21
Application Profile:System-FTP(デフォルトで用意されているProfileを選択)
TCP/UDP Profile:System-TCP-Proxy
Pool:Pool_winsrv35

SETP2、STEP3はなにも設定せず「NEXT」を選択し、STEP4で「Service Engine Group」で「Default-Group」を選んで「SAVE」を選択します。


動作確認

FTPのVS が作成されると、NSXALBはFTPアプリケーションプロファイルが適用されていることを検出し、必要に応じた追加の構成を自動的に作成します。
Service Portで「20」の追加と「System-TCP-Fast-Path-FTP」が追加されています。

DataScriptの設定は、Activeモード、Passiveモードのどちらにも対応可能な「DEFAULT-FULL-FTP」が自動的にセットされます。

Activeモードでの接続

FFFTPでActiveモードで接続後、圧縮ファイル「exp133.lzh」がアップロードできたことを確認できました。

以下は、FFFTP接続時のログです。

FTP over Explicit SSL/TLS (FTPES)を使用します.
ホスト 192.168.10.202 (192.168.10.202:21) に接続しています.
接続しました.
220 Microsoft FTP Service
>AUTH TLS
534 Local policy on server does not allow TLS secure connections.
>AUTH SSL
534 Local policy on server does not allow TLS secure connections.
ログインできません.
通信は暗号化されていません.
第三者にパスワードおよび内容を傍受される可能性があります.
ホスト 192.168.10.202 (192.168.10.202:21) に接続しています.
接続しました.
220 Microsoft FTP Service
>USER ftpuser
331 Password required
>PASS [xxxxxx]
230 User logged in.
>FEAT
211-Extended features supported:
 LANG EN*
 UTF8
 AUTH TLS;TLS-C;SSL;TLS-P;
 PBSZ
 PROT C;P;
 CCC
 HOST
 SIZE
 MDTM
 REST STREAM
211 END
>OPTS UTF8 ON
200 OPTS UTF8 command successful - UTF8 encoding now ON.
>XPWD
257 "/" is current directory.
>TYPE A
200 Type set to A.
>PORT 192,168,100,16,249,128
200 PORT command successful.
>LIST
125 Data connection already open; Transfer starting.
226 Transfer complete.
ファイル一覧の取得は正常終了しました. (51 Bytes)
>>CD ..
>>CD ..
>>CD Users
>>CD hippi
>>CD Downloads
>TYPE I
200 Type set to I.
>PORT 192,168,100,16,249,181
200 PORT command successful.
>STOR /exp133.lzh
125 Data connection already open; Transfer starting.
226 Transfer complete.
アップロードは正常終了しました. (1 Sec. 336051 B/S).
>TYPE A
200 Type set to A.
>PORT 192,168,100,16,249,182
200 PORT command successful.
>LIST
125 Data connection already open; Transfer starting.
226 Transfer complete.
ファイル一覧の取得は正常終了しました. (51 Bytes)
切断しました

NSXALBのログでも、FTP(20,21)で通信できていることが確認できました。

Passiveモードでの確認

FFFTPでPassiveモードで接続後、圧縮ファイル「exp133.lzh」がアップロードできたことを確認できました。

以下は、FFFTP接続時のログです。

FTP over Explicit SSL/TLS (FTPES)を使用します.
ホスト 192.168.10.202 (192.168.10.202:21) に接続しています.
接続しました.
220 Microsoft FTP Service
>AUTH TLS
534 Local policy on server does not allow TLS secure connections.
>AUTH SSL
534 Local policy on server does not allow TLS secure connections.
ログインできません.
通信は暗号化されていません.
第三者にパスワードおよび内容を傍受される可能性があります.
ホスト 192.168.10.202 (192.168.10.202:21) に接続しています.
接続しました.
220 Microsoft FTP Service
>USER ftpuser
331 Password required
>PASS [xxxxxx]
230 User logged in.
>FEAT
211-Extended features supported:
 LANG EN*
 UTF8
 AUTH TLS;TLS-C;SSL;TLS-P;
 PBSZ
 PROT C;P;
 CCC
 HOST
 SIZE
 MDTM
 REST STREAM
211 END
>OPTS UTF8 ON
200 OPTS UTF8 command successful - UTF8 encoding now ON.
>XPWD
257 "/" is current directory.
>TYPE A
200 Type set to A.
>PASV
227 Entering Passive Mode (192,168,10,202,254,92).
ホスト 192.168.10.202 (192.168.10.202:65116) に接続しています.
接続しました.
>LIST
125 Data connection already open; Transfer starting.
226 Transfer complete.
ファイル一覧の取得は正常終了しました. (51 Bytes)
>TYPE I
200 Type set to I.
>PASV
227 Entering Passive Mode (192,168,10,202,254,92).
ホスト 192.168.10.202 (192.168.10.202:65116) に接続しています.
接続しました.
>STOR /exp133.lzh
125 Data connection already open; Transfer starting.
226 Transfer complete.
アップロードは正常終了しました. (1 Sec. 336051 B/S).
>TYPE A
200 Type set to A.
>PASV ★★★Passiveモードでの接続に切り替えている
227 Entering Passive Mode (192,168,10,202,254,92).
ホスト 192.168.10.202 (192.168.10.202:65116) に接続しています.
接続しました.
>LIST
125 Data connection already open; Transfer starting.
226 Transfer complete.
ファイル一覧の取得は正常終了しました. (51 Bytes)
切断しました

NSXALBのログでも、FTP(21,62955)で通信できていることが確認できました。

制限事項

今回、NativeのFTP Profileによる通信確認を行いましたが、現時点で以下の制限事項があるため、使用する場合は、公式ドキュメントを確認してください。

  • FTPSはサポートされていません。
  • FTPのVSは、他のプロトコルとのVIP共有は許可されていません。(FTP専用のVIPが必要)
  • FTPのロードバランスアルゴリズムは、Consistent Hashのみサポートされています。

docs.vmware.com

以上、Native FTP Profileの検証でした。