アクティブおよびパッシブFTP/TFTPサービスの負荷分散と高可用性

カテゴリを表示

アクティブおよびパッシブFTP/TFTPサービスの負荷分散と高可用性

所要時間

概要 #

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サーバー間でデータを転送する必要がある場合の接続の流れを示しています。

アクティブFTPクライアントサーバー

上記のシーケンスでは、次のようになります。
1. クライアントはポート経由でサーバーにリクエストする 21 コマンド。
2. サーバーはクライアントに確認応答します。
3. その サーバーが開始する データポートを使用したデータ接続 20.
4. 完了すると、クライアントはサーバーに確認応答します。

この時点で、クライアントとサーバーの両方の間にロード バランサーを設定し、クライアントとサーバー間のトラフィック フロー、接続初期化子、およびポート合意を処理する必要があります。

自律的AI RELIANOID ロードバランサでは、このような構成を実現するために、ポート付きのLSLBファームプロファイルL4xNATを作成する必要があります。 20,21 の三脚と FTP 下の図に示すように、プロトコルを設定し、最後にバックエンドを設定します (ポートを設定する必要はありません)。

zevenet_adc_lb_active_ftp_configuration

クライアントは新しい FTP ファームの VIP アドレスに接続する必要があります。

注意: この構成は、アクティブおよびパッシブの両方のクライアント/サーバー モードで使用するために保存されています。

パッシブFTPモードの設定 #

A パッシブFTP セットアップではポートのみが使用されます 21 サーバー側またはバックエンド側で。下の図は、クライアントとFTPサーバー間でデータを転送する必要がある場合の接続の流れを示しています。

パッシブFTPクライアントサーバー

上記のシーケンスでは、次のようになります。
1. クライアントはポート経由でサーバーにリクエストする 21 コマンド。
2. サーバーはクライアントに確認応答します。
3. その クライアントが開始する サーバー側のアプリケーション層合意ポートへの高データポートを使用したデータ接続。
4. 完了すると、サーバーはクライアントに確認応答します。

この時点で、クライアントとサーバーの両方の間にロード バランサーを設定し、クライアントとサーバー間のトラフィック フロー、接続初期化子、およびポート合意を処理する必要があります。

自律的AI RELIANOID ロードバランサでは、このような構成を実現するために、ポートを持つLSLBファームプロファイルL4xNATを作成する必要があります。 21 の三脚と FTP 下の図に示すように、プロトコルを設定し、最後にバックエンドを設定します (ポートを設定する必要はありません)。

zevenet_adc_lb_passive_ftp_configuration

クライアントは新しい 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 下の図に示すように、プロトコルを設定し、最後にバックエンドを設定します (ポートを設定する必要はありません)。

zevenet_adc_lb_tftp_configuration

クライアントは新しい TFTP ファームの VIP アドレスに接続する必要があります。

セキュアFTP #

FTPプロトコルのセキュリティ強化を解決するために、 SSHファイル転送プロトコル またはよりよく知られている SFTP セキュリティ層を提供するために設計されました。このシナリオでは、FTPサーバーをSFTPとして構成し、それらの負荷分散は、デフォルトポートでL4xNATプロファイルファームを備えたLSLBを作成するのと同じくらい簡単です。 22 そして、プロトコル TCP 下のスクリーンショットに示すように、SFTPサービスのバックエンドを追加します。

zevenet_adc_lb_secure_ftp_sftp_configuration

クライアントは、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 秒に設定すれば十分です。

zevenet_active_passive_ftp_farm_guardian_advanced_health_check_config

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 秒に設定すれば十分です。

zevenet_tftp_farm_guardian_advanced_health_check_config

SFTPヘルスチェック #

健康診断はすでに利用可能であるため チェック_ssh直接使用できます。SFTPファームで設定するFarm Guardianコマンドは次のようになります。

check_sshホスト

すると、次のスクリーンショットに示すように構成が表示されます。

zevenet_ssh_sftp_farm_guardian_advanced_health_check_config

高い可用性とスケーラビリティを備えたファイル転送をお楽しみください。

📄 この文書をPDF形式でダウンロードする #

    EMAIL: *