Pxe-Boot
不同的 TFTP(臨時?)UDP 埠
我有一塊硬體,我正在嘗試 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 傳輸。真的,如果你允許你需要的東西,然後拒絕其他所有東西,防火牆會更好地工作。