Conteúdo
Visão geral
FTP or File Transfer Protocol é um protocolo de camada de aplicativo amplamente utilizado para transferência de arquivos em um projeto de arquitetura cliente-servidor que depende de camadas de rede TCP / IP. O FTP é um protocolo complexo e simples (sem reconhecimento de segurança) cujas portas são negociadas na camada do aplicativo entre o cliente e o servidor, de modo que é um pouco difícil balancear a carga ou criar regras de firewall. Além disso, o servidor e o cliente FTP podem se comportar em modos ativos ou passivos, que podem ser descritos a seguir.
Alguns recursos que fornecem FTP são: 2 portas TCP (20, 21 por padrão) usado um para comandos de controle e outro para dados, suporte a mecanismo de autenticação, sem suporte a criptografia, ascii e binário, comandos amplos disponíveis (listagem de diretório, diretório de navegação, upload de arquivos, download de arquivos, etc.) e resiliência de TCP inerente.
TFTP or FTP Trivial é uma variação com transferência de arquivos mais rápida e design de arquitetura mais simples que usa apenas uma porta UDP (69 por padrão), sem suporte ou criptografia de mecanismo de autenticação, três modos de transferência disponíveis (netascii, octet e mail) e apenas comandos básicos como upload e download arquivos.
Os serviços FTP e TFTP podem ser balanceados facilmente com Balanceador de carga Zevenet. Continue lendo para saber como alcançá-lo.
Ambiente de balanceamento de carga de FTP
O cenário que queremos alcançar neste artigo é mostrado no diagrama abaixo.
Ou existe uma alta simultaneidade de usuários e é necessário escalar o serviço ou é um serviço crítico que precisa estar altamente disponível, um balanceador de carga de serviço FTP será necessário.
Configuração ativa do modo de FTP
An FTP ativo instalação exigirá usar as portas 20 e 21 nos servidores ou backends. A figura abaixo mostra como a conexão flui quando um dado é necessário para ser transferido entre um cliente e um servidor FTP.
Na sequência mostrada acima:
1. O cliente solicita ao servidor via porta 21 um comando.
2. O servidor reconhece para o cliente.
3. A servidor inicia a conexão de dados usando a porta de dados 20.
4. O cliente reconhece ao servidor quando termina.
Neste ponto, temos que configurar um balanceador de carga entre cliente e servidor e cuidar dos fluxos de tráfego, inicializadores de conexões e acordos de porta entre cliente e servidor.
Com o Zevenet Load Balancer, devemos alcançar esse tipo de configuração criando um perfil de farm LSLB L4xNAT com portas 20,21 e FTP protocolo, como é mostrado na imagem abaixo, e finalmente definir os back-ends (não é necessário definir as portas).
Os clientes precisam se conectar ao endereço VIP do novo farm de FTP.
Nota: Essa configuração é salva para ser usada nos modos cliente / servidor ativo e passivo.
Configuração do modo FTP passivo
A FTP passivo instalação só usa a porta 21 nos servidores ou backends. A figura abaixo mostra como a conexão flui quando um dado é necessário para ser transferido entre um cliente e um servidor FTP.
Na sequência mostrada acima:
1. O cliente solicita ao servidor via porta 21 um comando.
2. O servidor reconhece para o cliente.
3. A cliente inicia a conexão de dados usando uma porta de dados alta para uma porta acordada da camada de aplicativo no lado do servidor.
4. O servidor reconhece ao cliente quando termina.
Neste ponto, temos que configurar um balanceador de carga entre cliente e servidor e cuidar dos fluxos de tráfego, inicializadores de conexões e acordos de porta entre cliente e servidor.
Com o Zevenet Load Balancer, devemos alcançar este tipo de configuração criando um perfil de farm LSLB L4xNAT com a porta 21 e FTP protocolo, como é mostrado na imagem abaixo, e finalmente definir os back-ends (não é necessário definir as portas).
Os clientes precisam se conectar ao endereço VIP do novo farm de FTP.
Configuração TFTP
FTP Trivial protocolos são usados principalmente durante PXE Ambientes (Preboot eXecution Environment) que são compostos por uma combinação de serviços DHCP e TFTP, onde dezenas, centenas ou até milhares de computadores podem ser implantados através da rede.
O principal comportamento do protocolo seria:
1. O cliente solicita ao servidor via porta 69 um comando Pedido de leitura (RRQ) ou Pedido de escrita (WRQ), incluindo o modo de arquivo e transferência.
2. O servidor confirma para o cliente e notifica a nova porta de dados a ser usada.
3. A cliente inicia a conexão de dados a uma porta acordada da camada de aplicação no lado do servidor.
4. O servidor reconhece ao cliente quando os últimos bytes 512 permanecem.
Em um ambiente onde o serviço TFTP precisa ser escalonado, a configuração com Zevenet 5 é muito fácil. É necessário criar um perfil de farm LSLB L4xNAT com a porta 69 e TFTP protocolo, como é mostrado na imagem abaixo, e finalmente definir os back-ends (não é necessário definir as portas).
Os clientes precisam se conectar ao endereço VIP do novo farm TFTP.
FTP seguro
Para resolver a segurança aprimorada do protocolo FTP, o Protocolo de transferência de arquivos SSH ou melhor conhecido como SFTP foi projetado para fornecer uma camada de segurança. Nesse cenário, os servidores FTP devem ser configurados como SFTP e o balanceamento de carga desses seria tão fácil quanto criar um farm de perfil LSLB com L4xNAT sobre a porta padrão 22 e protocolo TCP como é mostrado na imagem abaixo. Por fim, basta adicionar seus back-ends de serviço SFTP.
Os clientes precisam se conectar ao endereço VIP do novo farm TCP, que atende a um serviço SFTP.
Verificações de integridade avançadas
Verificação de integridade de FTP
Os aparelhos Zevenet já incluem o check_ftp verificação de integridade para serviços de FTP, para que possamos testar a verificação de integridade com um back-end up:
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
Por outro lado, com um back-end inativo, obteremos a seguinte saída:
root@zevenet:/usr/local/zenloadbalancer/app/libexec# ./check_ftp -H ftp.debian.org CRITICAL - Socket timeout after 10 seconds
Portanto, o comando Farm Guardian para configurar no farm FTP seria:
check_ftp -H HOST
Na guia Serviços, verifique a configuração do Farm Guardian, conforme mostrado abaixo. Um tempo limite de 60 segundos seria suficiente para garantir o comportamento correto de um back-end.
Verificação de integridade TFTP
Se o check_tftp a verificação avançada ainda não existe no dispositivo Zevenet, podemos criar um script de verificação de saúde fácil conforme descrito abaixo para nossos serviços TFTP.
Em primeiro lugar, crie um arquivo fictício no diretório de backends do TFTP, por exemplo tftp_zevenet_check.txte adicione algum conteúdo, por exemplo “OK”.
Em seguida, no seu dispositivo Zevenet, instale o cliente tftp executando o seguinte comando:
apt-get install tftp
E, em seguida, crie um novo arquivo de script no diretório padrão de verificações de integridade do Zevenet, por exemplo /usr/local/zenloadbalancer/app/libexec/check_mytftp.sh com o seguinte código de script:
#!/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
Em seguida, atribua permissões de execução com o comando:
root@zevenet:/# chmod 755 /usr/local/zenloadbalancer/app/libexec/check_mytftp.sh
Se tentarmos executar o script, obteremos uma mensagem de sucesso quando o back-end estiver ativo e bem configurado:
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
ou um erro quando o back-end está inoperante:
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.
Por fim, configure a verificação de integridade no farm TFTP, incluindo no comando o token HOST.
check_mytftp.sh HOST
Na guia Serviços, verifique a configuração do Farm Guardian, conforme mostrado abaixo. Um tempo limite de 60 segundos seria suficiente para garantir o comportamento correto de um back-end.
Verificação de saúde do SFTP
Como já está disponível o exame de saúde check_sshpodemos usá-lo diretamente. Portanto, o comando Farm Guardian para configurar no farm SFTP seria o seguinte:
check_ssh HOST
Então, a configuração seria mostrada como é mostrado na imagem a seguir.
Aproveite a sua alta transferência de arquivos disponível e escalável!