O TFTP expira ao conectar-se ao servidor do Docker

2

Estou tentando instalar o FOG no Docker (via boot2docker para Windows) no meu local de trabalho como um exercício de aprendizado. O FOG tem um pequeno e prático script que instala tudo para você e funciona muito bem em um servidor Ubuntu, mas estou tendo problemas para executá-lo no Docker

Eu peguei o Ubuntu 12.04, porque essa é a versão recomendada para o FOG. Tudo parece estar funcionando muito bem, e eu posso usar tftp localhost no contêiner para get arquivos, e eu posso usar tftp no meu host do Windows 8.1 para get arquivos do contêiner (por exemplo, tftp 127.0.0.1 GET boot.txt ), mas quando eu tente e faça o mesmo em outra máquina, apenas expira.

Eu tentei as seguintes coisas:

  • Abra a porta UDP 69 em boot2docker (via VirtualBox > boot2docker-vm > Configurações > Rede > Port Forwarding > Adicione a porta UDP 69 (e até tente com vários endereços IP locais e convidados, como 0,0. 0.0, 127.0.0.1 e 10.13.0.14, que é o endereço IP da máquina)
    • Eu também adicionei um monte de portas UDP, incluindo 58162, 43595 e 59037, que vi nos dados TFTP quando fiz o check in no Wireshark. Além disso, tentei isso com privilégios elevados e não elevados no Windows 8.1
  • Desative completamente o firewall no Windows 8.1 nas duas extremidades.
  • Defina o tipo de rede no VirtualBox para o modo em ponte (está de volta no NAt, como era antes)
  • Usou o tcpdump dentro do Docker para confirmar que os pacotes estão chegando da máquina remota (eles estão e o servidor está enviando uma resposta, mas os pacotes não estão escapando do contêiner)
  • Usando o Wireshark no Windows 8.1 para procurar tráfego. Eu posso ver os dados do TFTP vindo da minha máquina remota, mas sem respostas voltando para a minha máquina remota
  • Verificado por um firewall no Ubuntu (não há nenhum, é uma versão bastante simplificada para o Docker)
  • Tentei visitar a interface web do FOG a partir de uma máquina diferente (que funciona muito bem, posso adicionar novas imagens ao FOG e assim por diante)
  • Tentei instalar um servidor TFTP em uma instalação em branco do Ubuntu no Docker (por exemplo, não executando o script de instalação do FOG). Ainda não é bom
  • Ran minha imagem com -p 69:69/udp para permitir explicitamente a porta através de
  • iptables instalados para permitir explicitamente a saída da porta UDP 69
  • Verifiquei o firewall da minha rede de trabalho e alternei para ver se a porta 69 estava bloqueada - não era (como o tráfego TFTP estava atingindo o host do docker)
  • Do meu host, corri tftp <ip address of another machine on the network running Wireshark> GET boot.txt . Vi o tráfego TFTP chegando (mas, como ele não estava executando um servidor TFTP, ele retornou um erro)
  • No passado, tínhamos o FOG sendo executado em um servidor, mas ele foi desatribuído para fornecer mais recursos a coisas como o servidor de e-mail e tal.
  • Eu tentei a imagem do docker no meu laptop Ubuntu 14.04 (então, usando o 14.04 como o host e meu contêiner docker como convidado) e funcionou, então o problema parece estar no Windows, embora não tenha certeza de onde vá daqui

O problema parece ser que os pacotes TFTP não estão escapando do Windows (mas o tráfego HTTP está escapando).

Alguma sugestão?

    
por Grayda 17.07.2015 / 08:26

1 resposta

1

No final, acabei mudando minha imagem do Docker para um laptop Ubuntu que eu tinha sentado por aí. Agora meu servidor TFTP funciona perfeitamente com a modificação zero, então o problema quase certamente tem a ver com o Virtualbox, o Windows ou o boot2docker (embora eu não tenha certeza sobre o último).

Vou postar minha pergunta em um stackexchange mais relevante (agora que sei que não é um problema do docker) e, se obtiver uma resposta, atualizarei esse para que outros possam se beneficiar

    
por 21.07.2015 / 07:05