生成TFTP内容?

我知道这不是TFTP的目的,但我正在一个环境中,很多不同types的设备从TFTP服务器提取configuration信息。 我正在开发的是一个跟踪和维护设备configuration的configuration系统,我希望能够随时生成所请求的文件,就像您可以使用任何Web应用程序一样。

是的,其中一些设备可以支持HTTP进行configuration,但不是所有设备都可以,我们希望事物保持一致。

有没有可以提供类似于CGI的东西的TFTP守护进程?

快速search显示这个在Sourceforge上的tftpd-cgi项目 – 可能值得一试。

我也只是写了一个简单的tftpd服务器,可以在Github上提供CGI服务,所以绝对有可能。 我还没有使用任何PXE客户端进行testing,但是它可以与我的操作系统的tftp客户端一起工作。

我的testing用法:

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

我的简单的CGI脚本输出:

 Hello from CGI land! 127.0.0.1:61796 

这是在这里解决。 可悲的是,考虑到TFTP协议的限制,这似乎是困难的或不可能的。

>嗨。
>
>有没有任何考虑让tftp服务器
>提供dynamic内容?
>

是。 该协议使其变得困难。

你几乎必须保证内容是在几秒钟内生成的,否则你的客户端很可能会泛滥你的服务器。

问题是,为了能够回答一个tsize查询,你必须知道输出的全部大小。 但是,由于TFTP不能保证区分RRQ重新发送和新的请求(pxelinux将作出区分,但TFTP服务器很难使用它),所以您必须在第一个请求之前有回复。

我有一个TFTP“暂停”选项和操作码的提议,但我将不得不(a)实现它,(b)把它写成RFC,(c)弄清楚如何通过IETF来获取它,假装TFTP不存在。

更好的devise是生成所有configuration文件并将它们caching在tftpboot目录中,而不是试图在运行中生成它们。 理想情况下,您的设备请求的文件名将是唯一的或可识别的,您可以基于此预先生成文件。