능동 및 수동 FTP / TFTP 서비스로드 균형 조정 및 고 가용성

게시자 Zevenet | 16 년 2017 월 XNUMX 일

WeGO 소개

FTP or 파일 전송 프로토콜 TCP / IP 네트워크 계층에 의존하는 클라이언트-서버 아키텍처 설계에서 파일 전송에 널리 사용되는 애플리케이션 계층 프로토콜입니다. FTP는 사용되는 포트가 클라이언트와 서버 사이의 애플리케이션 계층에서 협상되는 복잡하고 일반 (보안 인식 없음) 프로토콜이므로 부하 분산이나 방화벽 규칙을 만드는 것이 약간 어렵습니다. 또한 FTP 서버 및 클라이언트는 아래에서 설명 할 수있는 활성 또는 수동 모드에서 작동 할 수 있습니다.

FTP를 제공하는 몇 가지 기능은 다음과 같습니다 : 2 TCP 포트 (기본값으로 20, 21)는 제어 명령과 인증 메커니즘 지원, 암호화 지원 안 함, ASCII 및 이진 전송, 광범위한 명령 사용 가능 (디렉토리 목록, 디렉토리 찾아보기, 파일 업로드, 파일 다운로드 등) 및 고유의 TCP 탄력성을 제공합니다.

TFTP or 사소한 FTP 는 단 하나의 UDP 포트 (기본적으로 69), 인증 메커니즘 지원 또는 암호화, 사용 가능한 3 가지 전송 모드 (netascii, octet 및 mail) 및 업로드 및 다운로드와 같은 기본 명령 만 사용하는보다 빠른 파일 전송 및보다 단순한 아키텍처 설계의 변형입니다 파일.

FTP 및 TFTP 서비스는 모두 쉽게로드 균형을 조정할 수 있습니다. Zevenet로드 밸런서. 그것을 달성하는 방법을 알기 위해 계속 읽으십시오.

FTP로드 균형 조정 환경

이 기사에서 우리가 달성하고자하는 시나리오는 아래 다이어그램에 나와 있습니다.

사용자의 동시성이 높고 서비스를 확장해야하거나 고 가용성이 필요한 중요한 서비스 인 경우 FTP 서비스로드 밸런서가 필요합니다.

활성 FTP 모드 구성

An 활성 FTP 설치 프로그램에서 포트를 사용해야합니다. 2021 서버 또는 백엔드 측에서. 아래 그림은 클라이언트와 FTP 서버간에 데이터를 전송해야하는 경우 연결이 어떻게 이루어지는 지 보여줍니다.

active_ftp_client_server

위에 표시된 순서대로 :
1. 포트를 통해 서버에 클라이언트 요청 21 명령.
2. 서버는 클라이언트에 확인 응답합니다.
3. 그리고, 서버 시작 데이터 포트를 사용한 데이터 연결 20.
4. 클라이언트는 완료되면 서버에 확인합니다.

이 시점에서 우리는 클라이언트와 서버간에로드 밸런서를 설정 한 다음 트래픽 흐름, 연결 이니셜 라이저 및 클라이언트와 서버 간의 포트 계약을 처리해야합니다.

Zevenet Load Balancer를 사용하면 포트가있는 LSLB 팜 프로필 L4xNAT를 만드는 이러한 종류의 구성을 달성해야합니다. 20,21FTP 아래 그림과 같이 프로토콜을 사용하고 마지막으로 백엔드를 설정합니다 (포트를 설정할 필요가 없음).

zevenet_adc_lb_active_ftp_configuration

클라이언트는 새 FTP 팜의 VIP 주소에 연결해야합니다.

참고 : 이 구성은 활성 및 수동 클라이언트 / 서버 모드 모두에 사용하기 위해 저장됩니다.

패시브 FTP 모드 구성

A 수동 FTP 설치 프로그램은 포트만 사용합니다. 21 서버 또는 백엔드 측에서. 아래 그림은 클라이언트와 FTP 서버간에 데이터를 전송해야하는 경우 연결이 어떻게 이루어지는 지 보여줍니다.

passive_ftp_client_server

위에 표시된 순서대로 :
1. 포트를 통해 서버에 클라이언트 요청 21 명령.
2. 서버는 클라이언트에 확인 응답합니다.
3. 그리고, 고객 이니셔티브 응용 프로그램 계층에 높은 데이터 포트를 사용하는 데이터 연결은 서버 측에서 합의한 포트입니다.
4. 서버는 완료되면 클라이언트에 확인합니다.

이 시점에서 우리는 클라이언트와 서버간에로드 밸런서를 설정 한 다음 트래픽 흐름, 연결 이니셜 라이저 및 클라이언트와 서버 간의 포트 계약을 처리해야합니다.

Zevenet Load Balancer를 사용하면 포트가있는 LSLB 팜 프로필 L4xNAT를 만드는 이러한 종류의 구성을 달성해야합니다. 21FTP 아래 그림과 같이 프로토콜을 사용하고 마지막으로 백엔드를 설정합니다 (포트를 설정할 필요가 없음).

zevenet_adc_lb_passive_ftp_configuration

클라이언트는 새 FTP 팜의 VIP 주소에 연결해야합니다.

TFTP 구성

사소한 FTP 프로토콜은 주로 PXE 네트워크를 통해 수십, 수백 또는 수천 대의 컴퓨터를 배치 할 수있는 DHCP 및 TFTP 서비스의 조합으로 구성된 사전 부팅 환경 (Preboot eXecution Environment) 환경을 제공합니다.

주요 프로토콜 동작은 다음과 같습니다.
1. 포트를 통해 서버에 클라이언트 요청 69 파일 및 전송 모드를 포함하는 읽기 요청 (RRQ) 또는 쓰기 요청 (WRQ) 명령.
2. 서버는 클라이언트에 확인 응답하고 사용할 새 데이터 포트에 알립니다.
3. 그리고, 고객 이니셔티브 응용 프로그램 계층에 대한 데이터 연결은 서버 측에서 합의한 포트입니다.
4. 서버는 최신 512 바이트가 남아있을 때 클라이언트에 확인 응답합니다.

TFTP 서비스를 확장해야하는 환경에서 Zevenet 5를 사용한 구성은 매우 쉽습니다. 포트를 사용하여 LSLB 팜 프로필 L4xNAT를 생성해야합니다. 69TFTP 아래 그림과 같이 프로토콜을 사용하고 마지막으로 백엔드를 설정합니다 (포트를 설정할 필요가 없음).

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 상태 확인

Zevenet 어플라이언스에는 이미 check_ftp FTP 서비스의 상태 점검을 통해 백엔드로 상태 검사를 테스트 할 수 있습니다.

root@zevenet:/usr/local/zenloadbalancer/app/libexec# ./check_ftp -H ftp.debian.org
FTP OK - 0.262 second response time on ftp.debian.org port 21 [220 ftp.debian.org FTP server]|time=0.262090s;;;0.000000;10.000000 

반면에 다운 백엔드를 사용하면 다음과 같은 출력을 얻을 수 있습니다.

root@zevenet:/usr/local/zenloadbalancer/app/libexec# ./check_ftp -H ftp.debian.org
CRITICAL - Socket timeout after 10 seconds

따라서 FTP 팜에서 구성 할 Farm Guardian 명령은 다음과 같습니다.

check_ftp -H HOST

서비스 탭에서 아래와 같이 Farm Guardian의 구성을 확인하십시오. 60 초의 타임 아웃은 백엔드의 올바른 작동을 보장하기에 충분합니다.

zevenet_active_passive_ftp_farm_guardian_advanced_health_check_config

TFTP 상태 점검

경우 check_tftp Zevenet 어플라이언스에는 고급 검사가 아직 존재하지 않으므로 TFTP 서비스에 대해 아래 설명 된대로 간편한 상태 검사 스크립트를 만들 수 있습니다.

먼저 TFTP 백엔드 디렉토리에 더미 파일을 만듭니다. 예를 들면 다음과 같습니다. tftp_zevenet_check.txt을 클릭하고 일부 콘텐츠를 추가합니다 (예 : "OK").

그런 다음 Zevenet 어플라이언스에서 다음 명령을 실행하여 tftp 클라이언트를 설치하십시오.

apt-get install tftp

그런 다음 Zevenet 상태 검사 기본 디렉토리에 새 스크립트 파일을 만듭니다 (예 : /usr/local/zenloadbalancer/app/libexec/check_mytftp.sh 다음 스크립트 코드를 사용하십시오.

#!/bin/bash
###
### Check TFTP services
### Copyright 2017-now Zevenet SL
###
### $1 : Host to be checked
CRITICAL=1
OK=0
RESULT=$(echo get tftp_zevenet_check.txt | tftp $1 2>&1 | head -n 1)

echo "TFTP health check status for $1 is $RESULT"

if [ "`echo $RESULT | grep Received`" != "" ]; then
        exit $OK
else
        exit $CRITICAL
fi

그런 다음 명령에 실행 권한을 할당합니다.

root@zevenet:/# chmod 755 /usr/local/zenloadbalancer/app/libexec/check_mytftp.sh

스크립트를 실행하려고하면 백엔드가 작동하고 올바르게 구성되었을 때 성공적인 메시지가 표시됩니다.

root@zevenet:/usr/local/zenloadbalancer/app/libexec# ./tftp_check.sh 192.168.101.250
TFTP health check status for 192.168.101.250 is tftp> Received 4 bytes in 0.0 seconds

또는 백엔드가 다운되었을 때의 오류 :

root@zevenet:/usr/local/zenloadbalancer/app/libexec# ./tftp_check.sh 192.168.101.250
TFTP health check status for 192.168.101.254 is tftp> Transfer timed out.

마지막으로 명령에 HOST 토큰을 포함하여 TFTP 팜의 상태 확인을 구성합니다.

check_mytftp.sh HOST

서비스 탭에서 아래와 같이 Farm Guardian의 구성을 확인하십시오. 60 초의 타임 아웃은 백엔드의 올바른 작동을 보장하기에 충분합니다.

zevenet_tftp_farm_guardian_advanced_health_check_config

SFTP 상태 확인

이미 상태 확인이 가능하므로 check_ssh, 우리는 그것을 직접 사용할 수 있습니다. 따라서 SFTP 팜에서 구성 할 Farm Guardian 명령은 다음과 같습니다.

check_ssh HOST

그러면 다음 스크린 샷과 같이 구성이 표시됩니다.

zevenet_ssh_sftp_farm_guardian_advanced_health_check_config

고 가용성 및 확장 성 파일 전송을 즐기십시오!

공유 :

GNU Free Documentation License의 조건에 따른 문서.

이 글이 도움 되었나요?

관련 기사