Configurando um servidor TFTP para recuperação/instalação TFTP
O que é a recuperação TFTP pela Ethernet?
Na maioria dos dispositivos, o carregador de inicialização fornecido pelo fornecedor é uma partição separada do firmware real. No caso de um processo flash com falha ou de uma configuração incorreta, o carregador de inicialização do dispositivo geralmente ainda está intocado e totalmente funcionando. O gerenciador de inicialização possui um “modo de recuperação TFTP” embutido, permite recuperar o controle de um dispositivo com uma partição de firmware quebrada, permitindo um processo de recuperação em flash (que também redefinirá sua configuração para os padrões do dispositivo).
Para muitos roteadores, a recuperação funciona iniciando um servidor TFTP no seu computador. Em seguida, o dispositivo com o firmware quebrado deve ser iniciado no modo de recuperação TFTP. Alguns dispositivos puxam o arquivo de firmware fornecido pela rede pelo protocolo de rede TFTP para o OpenWrt e esperam se recuperar com um processo de flash de emergência bem-sucedido.
Alguns dispositivos não possuem a função pull automática e precisam de comandos manuais de cópia TFTP no modo de recuperação para obter o firmware da instalação do TFTP e do firmware.
NOTA: Alguns outros roteadores, por exemplo, muitos roteadores Netgear, possuem servidor TFTP em si mesmos, e o PC precisa atuar como cliente TFTP. O “modo de recuperação TFTP” também pode significar isso; verifique cuidadosamente as informações sobre o seu roteador para descobrir qual método o seu roteador possivelmente suporta.
O artigo abaixo aconselha principalmente sobre a recuperação “Cliente TFTP no roteador”.
A recuperação TFTP pela Ethernet é suportada pelo meu dispositivo?
A recuperação TFTP pela Ethernet não é suportada por todos os modelos de roteadores. A recuperação TFTP é baseada em um carregador de inicialização específico do dispositivo e do fornecedor que pode ou não estar presente no seu dispositivo. Verifique na página do dispositivo OpenWrt o seu modelo preciso para descobrir se o seu dispositivo possui um carregador de inicialização compatível com a recuperação TFTP. Se o seu dispositivo suportar, essa função de recuperação ainda estará presente no carregador de inicialização do dispositivo, depois que o firmware do OpenWrt tiver sido atualizado no dispositivo.
Nota:
- Como alternativa, o carregador de inicialização do dispositivo pode ter implementado a recuperação TFTP por cabo serial, que não é coberto nesta página.
- O seu dispositivo também pode ter outros meios de recuperação.
Configurando a recuperação/instalação TFTP
O procedimento a seguir descreve apenas como configurar um servidor TFTP pela Ethernet para o processo de preparação de recuperação/instalação de TFTP, mas não descreve o processo de recuperação/instalação de flash específico do dispositivo. Para o processo de flash real, você deve consultar a documentação fornecida pelo fornecedor, a Internet, o Fórum OpenWrt ou as páginas do dispositivo OpenWrt.
- Faça o download da imagem do firmware OpenWrt (ou padrão) desejada para o diretório TFTP instalado no seu computador.
- Defina o endereço IP da interface Ethernet do seu computador, conforme descrito na página do dispositivo do seu modelo.
- Inicie o servidor TFTP no seu computador.
- Ligue o roteador e pressione um botão específico do dispositivo para iniciar a recuperação do firmware por TFTP,
- ou acesse as opções de recuperação do carregador de inicialização e instale o firmware de recuperação por TFTP.
Configurando o servidor TFTP
No Mac OSX
O macOS fornece um servidor tftpd nativo que executa a linha de comando. Também existem aplicativos GUI disponíveis para aqueles que os preferem.
Linha de comando nativa tftpd
Para versões recentes do macOS, o tftpd
fornecido pelo sistema é gerenciado com launchctl
. Os usuários devem se sentir confortáveis com o uso da linha de comando e com o sudo
para adotar essa abordagem. Conforme confirmado no macOS Sierra 10.12.6 e no macOS Mojave 10.14.2, as etapas gerais envolvidas são
- Configure sua interface de rede para o endereço de servidor apropriado para o seu dispositivo. Usar Preferências do Sistema> Rede é talvez o mais fácil.
- Conecte seu dispositivo à interface de rede
- Inicie
tftpd
$ sudo cp path/to/file/to/serve.bin /private/tftpboot/the_name_the_device_is_looking_for.bin $ sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
- Confirme se o
tfptd
está sendo executado, ouvindo o UDP na porta 69, pelo comando abaixo
$ netstat -an | fgrep \*.69 udp4 0 0 *.69 *.*
- Ative o modo de recuperação/TFTP do seu dispositivo
- Quando terminar com
tftpd
, desligue-o com
$ sudo launchctl unload -F /System/Library/LaunchDaemons/tftp.plist
TFTPServer.app
Como exemplo de um servidor tftp controlado por GUI, o TFTPServer.app de http://ww2.unime.it/flr/tftpserver/ fornece um wrapper de GUI agradável em torno do comando nativo que torna o processo menos propenso a erros. Este procedimento foi testado com o TftpServer.app v 3.4.1 no OSX 10.10.5 em dezembro de 2016.
- Baixe e instale o TftpServer.app a partir do URL acima.
- Mova o aplicativo para um diretório conveniente.
- No mesmo diretório, crie outra pasta chamada 'tftpfiles'. Este é o 'diretório TFTP designado'. TftpServer.app e tftpfiles estarão no mesmo diretório.
- Defina o endereço IP do OSX conforme especificado na seção Recuperação de TFTP da página do dispositivo.
- Clique em “Iniciar TFTP” (canto superior esquerdo). Você deve ver o “Status do servidor:” mudar para “Em execução”.
- Inicie o seu roteador e pressione o botão O arquivo será transferido.
- Nota: TftpServer.app pode emitir avisos sobre permissões de arquivo. Use os botões “Corrigir” na parte inferior da janela para definir as permissões corretamente.
- Clique em “Stop TFTP” ou saia do aplicativo para parar o servidor TFTP.
No Windows
Embora exista um recurso de servidor/cliente TFTP de linha de comando no Windows, é mais fácil usar um software de terceiro que possua uma interface gráfica adequada.
Um aplicativo TFTP simples e gratuito é o Tftpd32, disponível aqui (Tftpd64 é a versão de 64 bits e será usada neste exemplo).
Baixe a versão portátil e descompacte-a em uma pasta. Você deve ver o manual, uma licença em um arquivo PDF, um arquivo de configuração e o próprio aplicativo executável.
Coloque o arquivo que você deseja enviar (normalmente o arquivo de firmware) na mesma pasta em que encontra o arquivo de programa Tftpd64. A pasta exposta através do TFTP pode ser alterada clicando no botão Procurar, mas na maioria das situações você não precisa fazer isso.
Configure sua porta Ethernet de acordo com o método de recuperação do seu dispositivo, conforme detalhado em Recuperação de falha na atualização de firmware, note que, na maioria dos casos, você não pode usar essa porta para conectar-se à Internet até que você a reconfigure como antes.
Clique duas vezes no arquivo de programa Tftpd64 e você deverá receber um pop-up do Firewall do Windows solicitando a concessão de acesso. Marque as duas opções para permitir que o Tftpd64 se comunique em redes domésticas/comerciais e públicas. Isso é muito importante, se o Firewall do Windows bloquear o servidor TFTP, você não poderá acessá-lo pelo dispositivo que deseja recuperar.
Clique no menu suspenso chamado Interfaces do servidor e selecione a porta Ethernet do seu PC.
Agora, o servidor tftp está online e pronto, e os arquivos nele podem ser acessados normalmente.
No Linux
Instale o atftpd do repositório no Debian/Ubuntu/Mint
# apt install atftpd
Instale o atftpd do repositório no RedHat/Fedora/Centos
# yum install atftpd
Crie um diretório onde você deseja colocar o arquivo de imagem
# mkdir /srv/tftp
Coloque o arquivo de imagem em seu diretório - o nome real variará
# cp ~/tp_recovery.bin /srv/tftp
Alterar a propriedade da pasta e o arquivo nela, com superusuário
# sudo chown nobody:nogroup -R /srv/tftp
Execute o servidor TFTP
# atftpd --daemon /srv/tftp
Verifique se o servidor TFTP está escutando
# netstat -lunp|grep 69
Se não estiver definido, tente executar o servidor TFTP como superusuário.
Verifique se você pode realmente extrair o arquivo do seu servidor tftp. De preferência em outro computador, chame o IP do servidor tftp: (ou, se não for possível, na mesma chamada do servidor IP 0.0.0.0)
# tftp 192.168.0.66 tftp> get tp_recovery.bin Received 8152633 bytes in 0.8 seconds tftp> quit
Se você recebeu o arquivo, parabéns, está pronto.
Solução de problemas
A transferência de arquivos TFTP não funciona no computador local
- Verifique se o servidor TFTP está em execução e escutando
- Verifique se a pasta TFTP está configurada corretamente (local, direitos de acesso)
- Verifique se o arquivo de firmware está configurado corretamente (local, direitos de acesso)
A transferência de arquivos TFTP funciona no computador local, mas não em outro computador:
- Verifique se o cabo de rede está conectado corretamente
- Verifique se o IP do servidor está definido corretamente
A transferência de arquivos TFTP funciona em outro computador, mas não no roteador:
- Verifique se o IP do servidor está definido corretamente (o mesmo que o roteador está procurando)
- Tente usar cabo alternativo, cabo cruzado ou interruptor alternativos / velocidade
- Tente conectar-se a uma porta alternativa no roteador / roteador
- Preste atenção a qualquer saída ou verbosidade do console do roteador, se disponível
- Verifique se o cache do arp em qualquer host... do lado do servidor é mais fácil...
- Use arp -s para adicionar um mapeamento estático ou arp -d para excluir entradas obsoletas...
- Use um terceiro host para simplesmente executar ping no roteador, ambos com endereços estáticos, se possível
- Experimente um software de servidor alternativo, software cliente ou modo de transferência tftp
- Se você tiver alguma atividade, o tempo geralmente gera resultados, liga e desliga o roteador e inicia a transferência mais cedo ou mais tarde...