Servizi FTP / TFTP attivi e passivi bilanciamento del carico e alta disponibilità

Visualizza categorie

Servizi FTP / TFTP attivi e passivi bilanciamento del carico e alta disponibilità

7 min letto

Panoramica #

FTP or File Transfer Protocol è un protocollo a livello di applicazione ampiamente utilizzato per il trasferimento di file in un'architettura client-server che si basa su livelli di rete TCP / IP. FTP è un protocollo complesso e semplice (non sensibile alla sicurezza) le cui porte utilizzate vengono negoziate a livello di applicazione tra il client e il server, in modo che sia un po 'difficile bilanciare il carico o creare regole del firewall. Inoltre, il server e il client FTP potrebbero comportarsi in modalità attiva o passiva, come descritto di seguito.

Alcune funzionalità che forniscono FTP sono: 2 TCP ports (20, 21 per impostazione predefinita) utilizzato uno per i comandi di controllo e un altro per dati, supporto del meccanismo di autenticazione, nessun supporto crittografico, ASCII e trasferimento binario, ampi comandi disponibili (elenco di directory, navigazione di directory, caricare file, scaricare file, ecc.) e resilienza TCP intrinseca.

TFTP or Trivial FTP è una variante con un trasferimento di file più veloce e una progettazione più semplice dell'architettura che utilizza solo una porta UDP (69 per impostazione predefinita), nessun meccanismo di autenticazione supporto o cifratura, tre modalità di trasferimento disponibili (netascii, ottetto e posta) e solo comandi di base come upload e download File.

Entrambi i servizi FTP e TFTP possono essere facilmente bilanciati con il carico RELIANOID Load Balancer. Continua a leggere per sapere come ottenerlo.

Ambiente di bilanciamento del carico FTP #

Lo scenario che vogliamo raggiungere in questo articolo è mostrato nello schema seguente.

O vi è un'elevata concorrenza di utenti ed è necessario scalare il servizio o è un servizio critico che deve essere ad alta disponibilità, sarà necessario un servizio di bilanciamento del carico del servizio FTP.

Configurazione della modalità FTP attiva #

An FTP attivo l'installazione richiederà di usare le porte 20 and 21 nel lato server o back-end. L'immagine sotto mostra come la connessione scorre quando è necessario trasferire un dato tra un client e un server FTP.

active_ftp_client_server

Nella sequenza mostrata sopra:
1. Il client richiede al server tramite la porta 21 un comando.
2. Il server riconosce al client.
3. Migliori server avviati la connessione dati tramite la porta dati 20.
4. Il client riconosce al server quando ha finito.

A questo punto, dobbiamo impostare un bilanciatore del carico tra client e server e quindi occuparci dei flussi di traffico, degli inizializzatori delle connessioni e degli accordi di porta tra client e server.

Con RELIANOID Load Balancer, dobbiamo ottenere questo tipo di configurazione creando un profilo farm LSLB L4xNAT con porte 20,21 and FTP protocollo, come mostrato nell'immagine sotto, e infine impostare i backend (non necessario per impostare le porte).

zevenet_adc_lb_active_ftp_configuration

I client devono connettersi all'indirizzo VIP della nuova farm FTP.

Nota: Questa configurazione è salvata per essere utilizzata per entrambe le modalità client / server attive e passive.

Configurazione passiva della modalità FTP #

A FTP passivo l'installazione utilizza solo la porta 21 nel lato server o back-end. L'immagine sotto mostra come la connessione scorre quando è necessario trasferire un dato tra un client e un server FTP.

passive_ftp_client_server

Nella sequenza mostrata sopra:
1. Il client richiede al server tramite la porta 21 un comando.
2. Il server riconosce al client.
3. Migliori inizia il cliente la connessione dati utilizzando una porta dati elevata a una porta concordata del livello applicazione sul lato server.
4. Il server riconosce al client quando ha finito.

A questo punto, dobbiamo impostare un bilanciatore del carico tra client e server e quindi occuparci dei flussi di traffico, degli inizializzatori delle connessioni e degli accordi di porta tra client e server.

Con RELIANOID Load Balancer, dobbiamo ottenere questo tipo di configurazione creando un profilo farm LSLB L4xNAT con la porta 21 and FTP protocollo, come mostrato nell'immagine sotto, e infine impostare i backend (non necessario per impostare le porte).

zevenet_adc_lb_passive_ftp_configuration

I client devono connettersi all'indirizzo VIP della nuova farm FTP.

Configurazione TFTP #

Trivial FTP i protocolli sono usati principalmente durante PXE (Preboot eXecution Environment) ambienti che sono composti da una combinazione di servizi DHCP e TFTP, dove decine, centinaia o persino migliaia di computer possono essere distribuiti attraverso la rete.

Il comportamento del protocollo principale sarebbe:
1. Il client richiede al server tramite la porta 69 un comando Read Request (RRQ) o Write Request (WRQ) che include il file e la modalità di trasferimento.
2. Il server riconosce il client e notifica la nuova porta dati da utilizzare.
3. Migliori inizia il cliente la connessione dati a un livello di applicazione ha concordato la porta sul lato server.
4. Il server riconosce al client quando rimangono gli ultimi byte 512.

In un ambiente in cui il servizio TFTP deve essere scalato, la configurazione con RELIANOID 5 è molto semplice. È necessario creare un profilo farm LSLB L4xNAT con la porta 69 and TFTP protocollo, come mostrato nell'immagine sotto, e infine impostare i backend (non necessario per impostare le porte).

zevenet_adc_lb_tftp_configuration

I client devono connettersi all'indirizzo VIP della nuova farm TFTP.

FTP sicuro #

Per risolvere la maggiore sicurezza del protocollo FTP, il SSH File Transfer Protocol o meglio conosciuto come SFTP è stato progettato per fornire un livello di sicurezza. In tale scenario, i server FTP devono essere configurati come SFTP e il bilanciamento del carico di quelli sarebbe facile come creare un LSLB con la farm del profilo L4xNAT sulla porta predefinita 22 e il protocollo TCP come mostrato nello screenshot qui sotto. Infine, aggiungi semplicemente i backend del servizio SFTP.

zevenet_adc_lb_secure_ftp_sftp_configuration

I client devono connettersi all'indirizzo VIP della nuova farm TCP, che serve un servizio SFTP.

Controlli sanitari avanzati #

Controllo dello stato dell'FTP #

RELIANOID gli elettrodomestici includono già il check_ftp controllo sanitario per i servizi FTP, così possiamo testare il controllo dello stato con un back-up in su:

root@noid:/usr/local/zenloadbalancer/app/libexec# ./check_ftp -H ftp.debian.org FTP OK - Tempo di risposta di 0.262 secondi sulla porta ftp.debian.org 21 [server FTP 220 ftp.debian.org] |tempo=0.262090 s;;;0.000000;10.000000 

D'altra parte, con un backend in basso avremo il seguente output:

root@noid:/usr/local/zenloadbalancer/app/libexec# ./check_ftp -H ftp.debian.org CRITICO - Timeout del socket dopo 10 secondi

Quindi il comando Farm Guardian da configurare nella farm FTP potrebbe essere:

controlla_ftp -H HOST

Nella scheda Servizi, verificare la configurazione di Farm Guardian come mostrato di seguito. Un timeout di 60 secondi sarebbe sufficiente per garantire il corretto comportamento di un back-end.

zevenet_active_passive_ftp_farm_guardian_advanced_health_check_config

Controllo sanitario TFTP #

Se l' check_tftp il controllo avanzato non esiste già nel file RELIANOID dell'appliance, possiamo creare un semplice script di controllo dello stato come descritto di seguito per i nostri servizi TFTP.

Per prima cosa, crea un file fittizio nella tua directory dei backend TFTP, per esempio tftp_relianoid_check.txte aggiungi del contenuto, ad esempio "OK".

Poi, nel tuo RELIANOID sull'appliance installare il client tftp eseguendo il comando seguente:

apt-get installa tftp

Quindi, crea un nuovo file di script nel file RELIANOID directory predefinita dei controlli di integrità, ad esempio /usr/local/zenloadbalancer/app/libexec/check_mytftp.sh con il seguente codice di script:

#!/bin/bash ### ### Controlla i servizi TFTP ### Copyright 2017-ora RELIANOID SL ### ### $1 : Host da controllare CRITICO=1 OK=0 RISULTATO=$(echo get tftp_relianoid_check.txt | tftp $1 2>&1 | head -n 1) echo "Lo stato del controllo di integrità TFTP per $1 è $RESULT" if [ "`echo $RESULT | grep Ricevuto`" != "" ]; then exit $OK else exit $CRITICO fi

Quindi, assegnare le autorizzazioni di esecuzione con il comando:

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

Se proviamo a eseguire lo script, riceveremo un messaggio di successo quando il backend è attivo e ben configurato:

root@noid:/usr/local/zenloadbalancer/app/libexec# ./tftp_check.sh 192.168.101.250 Lo stato del controllo di integrità TFTP per 192.168.101.250 è tftp> Ricevuto 4 byte in 0.0 secondi

o un errore quando il back-end è inattivo:

root@noid:/usr/local/zenloadbalancer/app/libexec# ./tftp_check.sh 192.168.101.250 Lo stato del controllo di integrità TFTP per 192.168.101.254 è tftp> Trasferimento scaduto.

Infine, configura il controllo dello stato nella farm TFTP, incluso nel comando il token HOST.

check_mytftp.sh HOST

Nella scheda Servizi, verificare la configurazione di Farm Guardian come mostrato di seguito. Un timeout di 60 secondi sarebbe sufficiente per garantire il corretto comportamento di un back-end.

zevenet_tftp_farm_guardian_advanced_health_check_config

Controllo dello stato di SFTP #

Dato che è già disponibile il controllo sanitario check_ssh, possiamo usarlo direttamente. Quindi il comando Farm Guardian da configurare nella farm SFTP sarebbe il seguente:

check_sshHOST

Quindi, la configurazione verrà mostrata come mostrato nello screenshot seguente.

zevenet_ssh_sftp_farm_guardian_advanced_health_check_config

Goditi il ​​tuo trasferimento di file disponibile e scalabile!

📄 Scarica questo documento in formato PDF #

    EMAIL: *

    Sviluppato da BetterDocs