Pxe-Boot

不同的 TFTP(臨時?)UDP 埠

  • July 13, 2021

我有一塊硬體,我正在嘗試 PXE 引導。目前,它通過 PXE 啟動,DHCP 將 TCP/IP 數據租給端點,然後通過一些 iPXE 韌體將其轉到“下一個伺服器”到 TFTP。

它會在埠 69 上建立 TFTP 連接並開始嘗試傳輸韌體。這是我遇到問題的地方,因為它嘗試的“返回”埠被我們的公司防火牆阻止。

這是netstat在 TFTP 伺服器上的那個時刻拍攝的:

# 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作業系統上的客戶端)。

任何人可以提供的理解將不勝感激。

TFTP 在RFC 1350中定義。與 FTP 類似,只是第一次聯繫和命令交換使用伺服器端的 UDP 埠 69。所有進一步的傳輸都使用臨時埠(可能會有很大差異,具體取決於平台)。這些可能會針對已知的 PXE 客戶端進行預測,但通常沒有規則…

因此,除非您能夠在防火牆上允許相關的 UDP“連接”,否則您可能需要允許所有進出 PXE 伺服器的 UDP 傳輸。真的,如果你允許你需要的東西,然後拒絕其他所有東西,防火牆會更好地工作。

引用自:https://serverfault.com/questions/1052174