不同的 TFTP(临时?)UDP 端口

不同的 TFTP(临时?)UDP 端口

我有一块硬件,我正尝试进行 PXE 启动。目前,它进行 PXE 启动,DHCP 将 TCP/IP 数据租借给端点,然后通过某些 iPXE 固件转到其“下一个服务器”进行 TFTP。

它通过端口 69 建立 TFTP 连接并开始尝试传输固件。这就是我遇到的问题,因为它尝试的“返回”端口被我们公司的防火墙阻止了。

以下是netstatTFTP 服务器上此时拍摄的照片:

# netstat -tunap | grep tftp
udp        0      0 10.254.52.26:45140      10.55.32.175:2073       ESTABLISHED 25115/in.tftpd
udp        0      0 10.254.52.26:53684      10.55.32.175:2072       ESTABLISHED 25108/in.tftpd

它似乎总是在端点上尝试端口 2073 或 2072。非常一致。

但是,如果我从同一端点上的磁盘加载操作系统并使用 TFTP 客户端进行连接(atftp在本例中),它会建立连接并下载,没有任何问题。以下是netstat

# netstat -tunap | grep tftp
udp        0      0 10.254.52.26:50986      10.55.32.175:44669      ESTABLISHED 26500/in.tftpd
udp        0      0 10.254.52.26:54390      10.55.32.175:44669      ESTABLISHED 26484/in.tftpd

在这种情况下,它使用的端口号一般在 40000 以上,这是我们的防火墙允许的。这也是非常一致的。

我可以请求打开一些额外的端口,但是我真的很想了解为什么会出现这种情况。这与客户端有关吗?这是此场景中唯一似乎发生变化的事情(PXE 客户端固件与atftp操作系统上的客户端)。

如果有人能提供任何理解,我将非常感激。

答案1

TFTP 定义在RFC 1350。与 FTP 类似,只有第一次联系和命令交换在服务器端使用 UDP 端口 69。所有进一步的传输都使用临时端口(根据平台的不同,可能会有很大差异)。对于已知的 PXE 客户端,这些可能是可以预测的,但一般来说没有规则……

因此,除非您能够在防火墙上允许相关的 UDP“连接”,否则您可能需要允许所有往返于 PXE 服务器的 UDP 传输。实际上,如果您允许所需的传输,然后拒绝其他所有传输,防火墙的效果会好得多。

答案2

RFC 1350 4. 初始连接协议

清楚地解释了客户端和服务器如何选择临时端口。

相关内容