概要 #
FTP or ファイル転送プロトコル FTPは、TCP/IPネットワーク層を基盤とするクライアントサーバーアーキテクチャ設計において、ファイル転送に広く利用されているアプリケーション層プロトコルです。FTPは複雑でシンプルな(セキュリティを考慮していない)プロトコルであり、使用するポートはクライアントとサーバー間のアプリケーション層でネゴシエートされるため、負荷分散やファイアウォールルールの作成がやや困難です。また、FTPサーバーとクライアントは、アクティブモードとパッシブモードで動作できます。それぞれのモードについては、以下で説明します。
FTP を提供する機能には、制御コマンド用とデータ用にそれぞれ 2 つずつ使用される 20 つの TCP ポート (デフォルトでは 21 と XNUMX)、認証メカニズムのサポート、暗号化のサポートなし、ASCII およびバイナリ転送、幅広いコマンド (ディレクトリの一覧表示、ディレクトリの参照、ファイルのアップロード、ファイルのダウンロードなど)、および固有の TCP 耐性などがあります。
TFTP or 簡単なFTP は、より高速なファイル転送とよりシンプルなアーキテクチャ設計を備えたバリエーションであり、UDP ポート (デフォルトでは 69) のみを使用し、認証メカニズムのサポートや暗号化はなく、XNUMX つの転送モード (netascii、octet、mail) が使用可能で、ファイルのアップロードやダウンロードなどの基本コマンドのみを使用できます。
FTPとTFTPサービスはどちらも簡単に負荷分散できます。 RELIANOID ロードバランサそれを達成する方法については、読み続けてください。
FTP負荷分散環境 #
この記事で実現したいシナリオを以下の図に示します。
同時ユーザー数が多く、サービスを拡張する必要がある場合、または高可用性が求められる重要なサービスの場合は、FTP サービス ロード バランサーが必要になります。
アクティブFTPモードの設定 #
An アクティブFTP セットアップにはポートの使用が必要です 20 の三脚と 21 サーバー側またはバックエンド側で。下の図は、クライアントとFTPサーバー間でデータを転送する必要がある場合の接続の流れを示しています。
上記のシーケンスでは、次のようになります。
1. クライアントはポート経由でサーバーにリクエストする 21 コマンド。
2. サーバーはクライアントに確認応答します。
3. その サーバーが開始する データポートを使用したデータ接続 20.
4. 完了すると、クライアントはサーバーに確認応答します。
この時点で、クライアントとサーバーの両方の間にロード バランサーを設定し、クライアントとサーバー間のトラフィック フロー、接続初期化子、およびポート合意を処理する必要があります。
自律的AI RELIANOID ロードバランサでは、このような構成を実現するために、ポート付きのLSLBファームプロファイルL4xNATを作成する必要があります。 20,21 の三脚と FTP 下の図に示すように、プロトコルを設定し、最後にバックエンドを設定します (ポートを設定する必要はありません)。
クライアントは新しい FTP ファームの VIP アドレスに接続する必要があります。
注意: この構成は、アクティブおよびパッシブの両方のクライアント/サーバー モードで使用するために保存されています。
パッシブFTPモードの設定 #
A パッシブFTP セットアップではポートのみが使用されます 21 サーバー側またはバックエンド側で。下の図は、クライアントとFTPサーバー間でデータを転送する必要がある場合の接続の流れを示しています。
上記のシーケンスでは、次のようになります。
1. クライアントはポート経由でサーバーにリクエストする 21 コマンド。
2. サーバーはクライアントに確認応答します。
3. その クライアントが開始する サーバー側のアプリケーション層合意ポートへの高データポートを使用したデータ接続。
4. 完了すると、サーバーはクライアントに確認応答します。
この時点で、クライアントとサーバーの両方の間にロード バランサーを設定し、クライアントとサーバー間のトラフィック フロー、接続初期化子、およびポート合意を処理する必要があります。
自律的AI RELIANOID ロードバランサでは、このような構成を実現するために、ポートを持つLSLBファームプロファイルL4xNATを作成する必要があります。 21 の三脚と FTP 下の図に示すように、プロトコルを設定し、最後にバックエンドを設定します (ポートを設定する必要はありません)。
クライアントは新しい FTP ファームの VIP アドレスに接続する必要があります。
TFTP設定 #
簡単なFTP プロトコルは主に PXE (Preboot eXecution Environment) 環境は、DHCP サービスと TFTP サービスの組み合わせで構成され、数十台、数百台、さらには数千台のコンピューターをネットワーク経由で展開できます。
主なプロトコルの動作は次のようになります。
1. クライアントはポート経由でサーバーにリクエストする 69 ファイルと転送モードを含む読み取り要求 (RRQ) コマンドまたは書き込み要求 (WRQ) コマンド。
2. サーバーはクライアントに確認応答し、使用する新しいデータ ポートを通知します。
3. その クライアントが開始する サーバー側のアプリケーション層合意ポートへのデータ接続。
4. 最新の 512 バイトが残っている場合、サーバーはクライアントに確認応答します。
TFTPサービスを拡張する必要がある環境では、 RELIANOID 5は非常に簡単です。ポートを使用してLSLBファームプロファイルL4xNATを作成する必要があります。 69 の三脚と TFTP 下の図に示すように、プロトコルを設定し、最後にバックエンドを設定します (ポートを設定する必要はありません)。
クライアントは新しい TFTP ファームの VIP アドレスに接続する必要があります。
セキュアFTP #
FTPプロトコルのセキュリティ強化を解決するために、 SSHファイル転送プロトコル またはよりよく知られている SFTP セキュリティ層を提供するために設計されました。このシナリオでは、FTPサーバーをSFTPとして構成し、それらの負荷分散は、デフォルトポートでL4xNATプロファイルファームを備えたLSLBを作成するのと同じくらい簡単です。 22 そして、プロトコル TCP 下のスクリーンショットに示すように、SFTPサービスのバックエンドを追加します。
クライアントは、SFTP サービスを提供する新しい TCP ファームの VIP アドレスに接続する必要があります。
高度なヘルスチェック #
FTPヘルスチェック #
RELIANOID 家電製品にはすでに チェック_ftp FTP サービスのヘルス チェックなので、稼働中のバックエンドでヘルス チェックをテストできます。
root@noid:/usr/local/zenloadbalancer/app/libexec# ./check_ftp -H ftp.debian.org FTP OK - ftp.debian.org ポート 0.262 での応答時間 21 秒 [220 ftp.debian.org FTP サーバー]|time=0.262090s;;;0.000000;10.000000
一方、バックエンドがダウンしている場合は、次の出力が得られます。
root@noid:/usr/local/zenloadbalancer/app/libexec# ./check_ftp -H ftp.debian.org CRITICAL - 10秒後にソケットがタイムアウトしました
したがって、FTP ファームで構成する Farm Guardian コマンドは次のようになります。
check_ftp -H ホスト
「サービス」タブで、Farm Guardian の設定が以下のように設定されていることを確認してください。バックエンドの正常な動作を確保するには、タイムアウトを 60 秒に設定すれば十分です。
TFTPヘルスチェック #
Status チェック_tftp 高度なチェックがまだ存在しない RELIANOID アプライアンスを使用すると、TFTP サービスに対して、以下に説明する簡単なヘルス チェック スクリプトを作成できます。
まず、TFTPバックエンドディレクトリにダミーファイルを作成します。たとえば、 tftp_relianoid_check.txtをクリックし、「OK」などのコンテンツを追加します。
そして、あなたの RELIANOID アプライアンスは、次のコマンドを実行して TFTP クライアントをインストールします。
apt-get tftp をインストール
そして、新しいスクリプトファイルを作成します。 RELIANOID ヘルスチェックのデフォルトディレクトリ、例 /usr/local/zenloadbalancer/app/libexec/check_mytftp.sh 次のスクリプト コードを使用します。
#!/bin/bash ### ### TFTP サービスをチェック ### Copyright 2017-now RELIANOID SL ### ### $1 : チェックするホスト CRITICAL=1 OK=0 RESULT=$(echo get tftp_relianoid_check.txt | tftp $1 2>&1 | head -n 1) echo "$1 の TFTP ヘルスチェックステータスは $RESULT です" if [ "`echo $RESULT | grep Received`" != "" ]; then exit $OK else exit $CRITICAL fi
次に、次のコマンドで実行権限を割り当てます。
root@noid:/# chmod 755 /usr/local/zenloadbalancer/app/libexec/check_mytftp.sh
スクリプトを実行しようとすると、バックエンドが起動して適切に構成されている場合は成功メッセージが表示されます。
root@noid:/usr/local/zenloadbalancer/app/libexec# ./tftp_check.sh 192.168.101.250 192.168.101.250 の TFTP ヘルスチェックステータスは tftp> 4 秒で 0.0 バイトを受信しました
またはバックエンドがダウンしている場合はエラーが発生します。
root@noid:/usr/local/zenloadbalancer/app/libexec# ./tftp_check.sh 192.168.101.250 192.168.101.254 の TFTP ヘルス チェック ステータスは tftp> 転送がタイムアウトしました。
最後に、コマンドに HOST トークンを含めて、TFTP ファームでヘルス チェックを構成します。
check_mytftp.sh ホスト
「サービス」タブで、Farm Guardian の設定が以下のように設定されていることを確認してください。バックエンドの正常な動作を確保するには、タイムアウトを 60 秒に設定すれば十分です。
SFTPヘルスチェック #
健康診断はすでに利用可能であるため チェック_ssh直接使用できます。SFTPファームで設定するFarm Guardianコマンドは次のようになります。
check_sshホスト
すると、次のスクリーンショットに示すように構成が表示されます。
高い可用性とスケーラビリティを備えたファイル転送をお楽しみください。









