Iptables
用於 NAT 後的 libvirt 主機的 TFTP
這花了我一整天的時間來鍛煉,所以我想我會在這裡記錄下來!
我有一個帶有 NAT 的 LibVirt 主機,而不是為託管的虛擬機橋接,安裝時使用 LibVirt 建構的預設 IPTables 規則。我可以使用虛擬 CD 安裝作業系統,然後獲得完整的 Internet 連接,但由於用於 PXE 啟動的 TFTP *更複雜的性質,偽裝似乎沒有將 TFTP 回复傳遞回 VM。
我可以從各種 tcpdump 實例中看到以下數據包序列:
- VM udp/ephemeral 到 LibVirt 主機 udp/69 請求文件
- LibVirt 主機 udp/ephemeral 到 TFTP 伺服器 udp/69 請求文件
- TFTP 伺服器 udp/ephemeral2 到 LibVirt 主機 udp/ephemeral
在這一點上,沒有進一步的事情發生,VM tftp 客戶端超時。
我嘗試使用核心模組 ip_conntrack_tftp/nf_conntrack_tftp 和 ip_nat_tftp/nf_nat_tftp,但這沒有幫助。
*雖然從客戶端到伺服器的初始請求是在 udp/69 上,但從伺服器到客戶端的回复源自一個偽隨機臨時埠。
最後找到一篇關於VMWare的文章也有類似的問題,嘗試將LibVirt中的網路介面類型從virtio切換為e1000。瞬間成功!
我和你有完全相同的問題,最後找到了你的文章。
在我這邊,載入
nf_nat_tftp
Libvirt 主機就足以讓它工作。感謝您的提示!