Aktive og passive FTP/TFTP-tjenester belastningsbalancering og høj tilgængelighed

Se kategorier

Aktive og passive FTP/TFTP-tjenester belastningsbalancering og høj tilgængelighed

7 min læses

Oversigt #

FTP or File Transfer Protocol er en applikationslagsprotokol, der i vid udstrækning anvendes til filoverførsel i et klient-server-arkitekturdesign, der er afhængig af TCP/IP-netværkslag. FTP er en kompleks og simpel (ikke sikkerhedsbevidst) protokol, hvor de anvendte porte forhandles på applikationslaget mellem klienten og serveren, så det er lidt vanskeligt at load-balancere eller oprette firewallregler. Derudover kan FTP-server og klient opføre sig i aktiv eller passiv tilstand, hvilket kan beskrives nedenfor.

Nogle funktioner, der tilbyder FTP, er: 2 TCP-porte (20, 21 som standard), der bruges til kontrolkommandoer og en anden til data, understøttelse af godkendelsesmekanismer, ingen understøttelse af kryptering, overførsel af ASCII- og binærfiler, brede kommandoer tilgængelige (mappeoversigt, mappesøgning, upload af filer, download af filer osv.) og iboende TCP-robusthed.

TFTP or Trivial FTP er en variation med hurtigere filoverførsel og et enklere arkitekturdesign, der kun bruger én UDP-port (69 som standard), ingen understøttelse af godkendelsesmekanismer eller kryptering, tre tilgængelige overførselstilstande (netascii, octet og mail) og kun grundlæggende kommandoer som upload og download af filer.

Både FTP- og TFTP-tjenester kan nemt belastningsbalanceres med RELIANOID Load BalancerFortsæt med at læse for at finde ud af, hvordan du opnår det.

FTP-belastningsbalanceringsmiljø #

Det scenarie, vi ønsker at opnå i denne artikel, er vist i diagrammet nedenfor.

Enten er der et højt antal samtidige brugere, og det er nødvendigt at skalere tjenesten, eller det er en kritisk tjeneste, der skal være højt tilgængelig, og en FTP-tjenestebelastningsbalancer vil være nødvendig.

Konfiguration af aktiv FTP-tilstand #

An aktiv FTP opsætningen kræver brug af portene 20 og 21 på server- eller backend-siden. Billedet nedenfor viser, hvordan forbindelsen flyder, når data skal overføres mellem en klient og en FTP-server.

aktiv_ftp_klient_server

I den ovenfor viste rækkefølge:
1. Klienten anmoder til serveren via port 21 en kommando.
2. Serveren kvitterer over for klienten.
3. serveren starter dataforbindelsen ved hjælp af dataporten 20.
4. Klienten kvitterer over for serveren, når den er færdig.

På dette tidspunkt skal vi opsætte en load balancer mellem både klient og server og derefter tage os af trafikstrømmene, forbindelsesinitialiseringerne og portaftalerne mellem klient og server.

Med RELIANOID Load Balancer, vi skal opnå denne type konfiguration ved at oprette en LSLB-farmprofil L4xNAT med porte 20,21 og FTP protokollen, som vist på billedet nedenfor, og til sidst indstil backends (ikke nødvendigt for at indstille portene).

zevenet_adc_lb_active_ftp_configuration

Klienterne skal oprette forbindelse til VIP-adressen på den nye FTP-farm.

Bemærk: Denne konfiguration er beregnet til brug i både aktiv og passiv klient/server-tilstand.

Konfiguration af passiv FTP-tilstand #

A passiv FTP opsætningen bruger kun porten 21 på server- eller backend-siden. Billedet nedenfor viser, hvordan forbindelsen flyder, når data skal overføres mellem en klient og en FTP-server.

passiv_ftp_klient_server

I den ovenfor viste rækkefølge:
1. Klienten anmoder til serveren via port 21 en kommando.
2. Serveren kvitterer over for klienten.
3. klienten initierer dataforbindelsen ved hjælp af en høj dataport til en aftalt port på applikationslaget på serversiden.
4. Serveren kvitterer over for klienten, når den er færdig.

På dette tidspunkt skal vi opsætte en load balancer mellem både klient og server og derefter tage os af trafikstrømmene, forbindelsesinitialiseringerne og portaftalerne mellem klient og server.

Med RELIANOID Load Balancer, vi skal opnå denne type konfiguration ved at oprette en LSLB-farmprofil L4xNAT med porten 21 og FTP protokollen, som vist på billedet nedenfor, og til sidst indstil backends (ikke nødvendigt for at indstille portene).

zevenet_adc_lb_passive_ftp_configuration

Klienterne skal oprette forbindelse til VIP-adressen på den nye FTP-farm.

TFTP-konfiguration #

Trivial FTP protokoller bruges primært under PXE (Preboot eXecution Environment)-miljøer, der er sammensat af en kombination af DHCP- og TFTP-tjenester, hvor tiere, hundreder eller endda tusinder af computere kan implementeres via netværket.

Den primære protokoladfærd ville være:
1. Klienten anmoder til serveren via port 69 en læseanmodning (RRQ) eller skriveanmodning (WRQ) kommando, inklusive fil- og overførselstilstand.
2. Serveren bekræfter over for klienten og giver besked om den nye dataport, der skal bruges.
3. klienten initierer dataforbindelsen til en aftalt port på applikationslaget på serversiden.
4. Serveren kvitterer over for klienten, når de sidste 512 bytes er tilbage.

I et miljø, hvor TFTP-tjenesten skal skaleres, er konfigurationen med RELIANOID 5 er meget nemt. Det er nødvendigt at oprette en LSLB-farmprofil L4xNAT med porten 69 og TFTP protokollen, som vist på billedet nedenfor, og til sidst indstil backends (ikke nødvendigt for at indstille portene).

zevenet_adc_lb_tftp_configuration

Klienterne skal oprette forbindelse til VIP-adressen på den nye TFTP-farm.

Sikker FTP #

For at løse den forbedrede sikkerhed ved FTP-protokollen, SSH File Transfer Protocol eller bedre kendt som SFTP blev designet til at give et sikkerhedslag. I det scenarie bør FTP-serverne konfigureres som SFTP, og belastningsbalanceringen af ​​disse ville være lige så nem som at oprette en LSLB med L4xNAT-profilfarm over standardporten. 22 og protokol TCP som vist på skærmbilledet nedenfor. Til sidst skal du blot tilføje dine SFTP-tjeneste-backends.

zevenet_adc_lb_secure_ftp_sftp_konfiguration

Klienterne skal oprette forbindelse til VIP-adressen på den nye TCP-farm, der betjener en SFTP-tjeneste.

Avancerede sundhedstjek #

FTP-sundhedstjek #

RELIANOID apparaterne inkluderer allerede check_ftp sundhedstjek for FTP-tjenester, så vi kan teste sundhedstjekket med en up-backend:

root@noid:/usr/local/zenloadbalancer/app/libexec# ./check_ftp -H ftp.debian.org FTP OK - 0.262 sekunders svartid på ftp.debian.org port 21 [220 ftp.debian.org FTP-server]|tid=0.262090s;;;0.000000;10.000000 

På den anden side, med en down-backend får vi følgende output:

root@noid:/usr/local/zenloadbalancer/app/libexec# ./check_ftp -H ftp.debian.org KRITISK - Socket timeout efter 10 sekunder

Så Farm Guardian-kommandoen til konfiguration i FTP-gården ville være:

check_ftp -H VÆRT

Under fanen Tjenester skal du sørge for konfigurationen af ​​Farm Guardian som vist nedenfor. En timeout på 60 sekunder ville være nok til at sikre korrekt opførsel af en backend.

zevenet_active_passive_ftp_farm_guardian_advanced_health_check_config

TFTP-sundhedstjek #

Hvis check_tftp avanceret kontrol findes ikke allerede i RELIANOID apparatet, kan vi oprette et nemt script til sundhedstjek som beskrevet nedenfor for vores TFTP-tjenester.

Først skal du oprette en dummy-fil i din TFTP-backend-mappe, for eksempel tftp_relianoid_check.txt, og tilføj noget indhold, for eksempel “OK”.

Så, i din RELIANOID apparatet installerer tftp-klienten ved at udføre følgende kommando:

apt-get installerer tftp

Og opret derefter en ny scriptfil i RELIANOID standardmappe for sundhedstjek, for eksempel /usr/local/zenloadbalancer/app/libexec/check_mytftp.sh med følgende scriptkode:

#!/bin/bash ### ### Tjek TFTP-tjenester ### Copyright 2017-now RELIANOID SL ### ### $1: Vært, der skal kontrolleres CRITICAL=1 OK=0 RESULT=$(echo get tftp_relianoid_check.txt | tftp $1 2>&1 | head -n 1) echo "TFTP-sundhedstjekstatus for $1 er $RESULT" if [ "`echo $RESULT | grep Received`" != "" ]; then exit $OK else exit $CRITICAL fi

Tildel derefter udførelsestilladelser med kommandoen:

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

Hvis vi forsøger at udføre scriptet, får vi en fejlmeddelelse, når backend'en er oppe og korrekt konfigureret:

root@noid:/usr/local/zenloadbalancer/app/libexec# ./tftp_check.sh 192.168.101.250 TFTP-sundhedstjekstatus for 192.168.101.250 er tftp> Modtaget 4 bytes på 0.0 sekunder

eller en fejl, når backend'en er nede:

root@noid:/usr/local/zenloadbalancer/app/libexec# ./tftp_check.sh 192.168.101.250 TFTP-sundhedstjekstatus for 192.168.101.254 er tftp> Overførsel udløbet.

Til sidst skal du konfigurere sundhedstjekket i TFTP-farmen, inklusive HOST-tokenet i kommandoen.

check_mytftp.sh VÆRT

Under fanen Tjenester skal du sørge for konfigurationen af ​​Farm Guardian som vist nedenfor. En timeout på 60 sekunder ville være nok til at sikre korrekt opførsel af en backend.

zevenet_tftp_farm_guardian_advanced_health_check_config

SFTP-sundhedstjek #

Da sundhedstjekket allerede er tilgængeligt check_ssh, kan vi bruge den direkte. Så Farm Guardian-kommandoen til konfiguration i SFTP-farmen ville være som følger:

check_ssh VÆRT

Derefter vises konfigurationen, som den er vist på følgende skærmbillede.

zevenet_ssh_sftp_farm_guardian_advanced_health_check_config

Nyd din højt tilgængelige og skalerbare filoverførsel!

📄 Download dette dokument i PDF-format #

    EMAIL: *

    drevet af BetterDocs