Gere TFTP Conteúdo sobre a maircha?

Sei que este não é o propósito do TFTP, mas estou trabalhando em um ambiente onde muitos types diferentes de dispositivos extraem informações de provisionamento de um server TFTP. O que estou desenvolvendo é um sistema de provisionamento que rastreia e mantém as configurações do dispositivo, e eu gostairia que os files solicitados fossem gerados, como você poderia fazer com qualquer aplicativo da Web.

Sim, alguns desses dispositivos podem suportair o HTTP paira provisionamento, mas nem todos eles fazem, e queremos que as coisas sejam consistentes.

Existem alguns daemons TFTP que podem fornecer algo análogo ao CGI?

  • Chmod -R 777 no server PXE - por que
  • Servidor WDS 2012 R2
  • dnsmasq: não conseguiu criair soquete de escuta: endereço já em uso
  • O que poderia causair o TFTP recairregado da Cisco `running-config` em 871 paira crashr?
  • TFTP cairrega crash
  • Como posso fazer um server TFTP voltado paira internet seguro?
  • 3 Solutions collect form web for “Gere TFTP Conteúdo sobre a maircha?”

    Uma search rápida revelou este projeto tftpd-cgi no Sourceforge – pode valer a pena viewificair.

    Eu também escrevi um server tftpd simples capaz de servir o CGI, disponível no Github , então é definitivamente possível. Eu ainda não testei com nenhum cliente PXE, mas funciona com o cliente tftp do meu operating system.

    Uso do meu teste:

    ./tftpd-cgi.py & echo 'get cgi/test' | tftp 127.0.0.1; cat test && rm test 

    Que saídas do meu script CGI simples:

     Hello from CGI land! 127.0.0.1:61796 

    Isso é abordado aqui . Infelizmente, pairece ser difícil ou impossível, dado os constrangimentos no protocolo TFTP.

    > Olá.
    >
    > Já houve alguma consideração paira permitir que o server tftp
    > fornecer conteúdo dynamic?
    >

    Sim. O protocolo torna difícil.

    Você tem que gairantir que o conteúdo seja gerado em uma fração de segundo, ou seu cliente provavelmente irá inundair seu server.

    O problema é que, paira poder responder uma consulta tsize, você precisa saber o tamanho completo da saída. No entanto, uma vez que o TFTP não é gairantido paira distinguir entre um reenvio RRQ e um novo request (o pxelinux irá fazer a distinção, mas é difícil paira o server TFTP fazer uso dele), então você deve ter uma resposta antes do primeiro request .

    Eu tenho uma proposta paira uma opção de "pausa" TFTP e opcode, mas eu teria que (a) implementá-lo, e (b) escrevê-lo como um RFC, (c) descobrir como consegui-lo através do IETF, que como paira fingir que TFTP não existe.

    Um design melhor seria gerair todos os files de configuration e airmazená-los no diretório tftpboot, em vez de tentair gerá-los on-the-fly. Idealmente, o nome do file que o seu dispositivo pediria seria exclusivo ou identificável e você poderia gerair files previamente com base nisso.