회사 개요 #
FTP or 파일 전송 프로토콜 TCP/IP 네트워크 계층을 기반으로 하는 클라이언트-서버 아키텍처 설계에서 파일 전송에 널리 사용되는 애플리케이션 계층 프로토콜입니다. FTP는 복잡하고 단순한(보안을 고려하지 않는) 프로토콜로, 사용되는 포트는 클라이언트와 서버 간의 애플리케이션 계층에서 협상되므로 부하 분산이나 방화벽 규칙 생성이 다소 어렵습니다. 또한, FTP 서버와 클라이언트는 액티브 또는 패시브 모드로 동작할 수 있으며, 이에 대한 설명은 아래에서 확인할 수 있습니다.
FTP를 제공하는 일부 기능은 다음과 같습니다. 2개의 TCP 포트(기본적으로 20, 21)는 하나는 제어 명령에, 다른 하나는 데이터 명령에 사용, 인증 메커니즘 지원, 암호화 지원 안 함, ASCII 및 바이너리 전송, 광범위한 명령 사용 가능(디렉토리 목록, 디렉토리 검색, 파일 업로드, 파일 다운로드 등), 고유한 TCP 복원력.
TFTP or 사소한 FTP 는 더 빠른 파일 전송 속도와 더 간단한 아키텍처 설계를 갖춘 변형으로, UDP 포트를 하나만 사용하고(기본값 69), 인증 메커니즘 지원이나 암호화가 없으며, 세 가지 전송 모드(netascii, octet 및 mail)를 사용할 수 있고 파일 업로드 및 다운로드와 같은 기본 명령만 사용합니다.
FTP 및 TFTP 서비스는 모두 쉽게 부하를 분산할 수 있습니다. RELIANOID 로드 밸런서. 그 방법을 알아보려면 계속 읽어보세요.
FTP 부하 분산 환경 #
이 글에서 우리가 이루고자 하는 시나리오는 아래 다이어그램에 나와 있습니다.
사용자의 동시성이 높아 서비스를 확장해야 하거나 가용성이 높아야 하는 중요한 서비스인 경우 FTP 서비스 부하 분산 장치가 필요합니다.
활성 FTP 모드 구성 #
An 활성 FTP 설정에는 포트를 사용해야 합니다. 20 21 서버 또는 백엔드 측에서. 아래 그림은 클라이언트와 FTP 서버 간에 데이터 전송이 필요할 때 연결 흐름을 보여줍니다.
위에 표시된 순서대로:
1. 클라이언트는 포트를 통해 서버에 요청합니다. 21 명령.
2. 서버는 클라이언트에게 확인응답을 보냅니다.
3. The 서버가 시작합니다 데이터 포트를 사용한 데이터 연결 20.
4. 클라이언트는 작업이 완료되면 서버에 확인응답을 보냅니다.
이 시점에서 클라이언트와 서버 사이에 부하 분산 장치를 설정한 다음 클라이언트와 서버 간의 트래픽 흐름, 연결 초기화 프로그램 및 포트 계약을 처리해야 합니다.
와 RELIANOID 로드 밸런서, 우리는 포트를 사용하여 L4xNAT LSLB 팜 프로필을 생성하여 이러한 종류의 구성을 달성해야 합니다. 20,21 FTP 아래 그림과 같이 프로토콜을 설정하고 마지막으로 백엔드를 설정합니다(포트 설정은 필수 아님).
클라이언트는 새로운 FTP 팜의 VIP 주소에 연결해야 합니다.
참고 : 이 구성은 활성 및 수동 클라이언트/서버 모드 모두에 사용하도록 저장됩니다.
수동 FTP 모드 구성 #
A 패시브 FTP 설치는 포트만 사용합니다 21 서버 또는 백엔드 측에서. 아래 그림은 클라이언트와 FTP 서버 간에 데이터 전송이 필요할 때 연결 흐름을 보여줍니다.
위에 표시된 순서대로:
1. 클라이언트는 포트를 통해 서버에 요청합니다. 21 명령.
2. 서버는 클라이언트에게 확인응답을 보냅니다.
3. The 클라이언트가 시작합니다 서버 측에서 합의된 애플리케이션 계층 포트에 높은 데이터 포트를 사용하여 데이터를 연결합니다.
4. 서버는 작업이 완료되면 클라이언트에게 확인을 보냅니다.
이 시점에서 클라이언트와 서버 사이에 부하 분산 장치를 설정한 다음 클라이언트와 서버 간의 트래픽 흐름, 연결 초기화 프로그램 및 포트 계약을 처리해야 합니다.
와 RELIANOID 로드 밸런서, 우리는 포트를 사용하여 LSLB 팜 프로필 L4xNAT을 생성하여 이러한 종류의 구성을 달성해야 합니다. 21 FTP 아래 그림과 같이 프로토콜을 설정하고 마지막으로 백엔드를 설정합니다(포트 설정은 필수 아님).
클라이언트는 새로운 FTP 팜의 VIP 주소에 연결해야 합니다.
TFTP 구성 #
사소한 FTP 프로토콜은 주로 사용됩니다 PXE (Preboot eXecution Environment) DHCP와 TFTP 서비스의 조합으로 구성된 환경으로, 네트워크를 통해 수십, 수백, 심지어 수천 대의 컴퓨터를 배포할 수 있습니다.
주요 프로토콜 동작은 다음과 같습니다.
1. 클라이언트는 포트를 통해 서버에 요청합니다. 69 파일 및 전송 모드를 포함하는 읽기 요청(RRQ) 또는 쓰기 요청(WRQ) 명령입니다.
2. 서버는 클라이언트에게 확인을 요청하고 사용할 새로운 데이터 포트를 알립니다.
3. The 클라이언트가 시작합니다 서버 측에서 애플리케이션 계층에 합의된 포트로 데이터를 연결합니다.
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 가전제품에는 이미 다음이 포함되어 있습니다. check_ftp FTP 서비스에 대한 상태 점검을 통해 업엔드로 상태 점검을 테스트할 수 있습니다.
root@noid:/usr/local/zenloadbalancer/app/libexec# ./check_ftp -H ftp.debian.org FTP 정상 - ftp.debian.org 포트 0.262에서 응답 시간 21초 [220 ftp.debian.org FTP 서버]|시간=0.262090초;;;0.000000;10.000000
반면, 다운 백엔드를 사용하면 다음과 같은 출력을 얻게 됩니다.
root@noid:/usr/local/zenloadbalancer/app/libexec# ./check_ftp -H ftp.debian.org 중요 - 10초 후 소켓 시간 초과
따라서 FTP 팜에서 구성할 Farm Guardian 명령은 다음과 같습니다.
check_ftp -H 호스트
서비스 탭에서 아래와 같이 Farm Guardian 구성을 확인하세요. 백엔드의 올바른 동작을 보장하려면 60초의 시간 제한이면 충분합니다.
TFTP 상태 점검 #
경우 체크_tftp 고급 확인이 아직 존재하지 않습니다. RELIANOID 어플라이언스를 사용하면 아래 설명된 대로 TFTP 서비스에 대한 간단한 상태 점검 스크립트를 만들 수 있습니다.
먼저 TFTP 백엔드 디렉토리에 더미 파일을 만듭니다. tftp_relianoid_check.txt, 그리고 "확인"과 같은 몇 가지 내용을 추가합니다.
그 다음에는 당신의 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 상태 점검 #
이미 건강 검진이 가능하므로 check_ssh, 바로 사용할 수 있습니다. 따라서 SFTP 팜에서 Farm Guardian 명령을 구성하는 방법은 다음과 같습니다.
check_ssh 호스트
그러면 다음 스크린샷에 표시된 대로 구성이 표시됩니다.
가용성과 확장성이 뛰어난 파일 전송을 즐겨보세요!









