Iptables

用於 NAT 後的 libvirt 主機的 TFTP

  • February 27, 2016

這花了我一整天的時間來鍛煉,所以我想我會在這裡記錄下來!

我有一個帶有 NAT 的 LibVirt 主機,而不是為託管的虛擬機橋接,安裝時使用 LibVirt 建構的預設 IPTables 規則。我可以使用虛擬 CD 安裝作業系統,然後獲得完整的 Internet 連接,但由於用於 PXE 啟動的 TFTP *更複雜的性質,偽裝似乎沒有將 TFTP 回复傳遞回 VM。

我可以從各種 tcpdump 實例中看到以下數據包序列:

  1. VM udp/ephemeral 到 LibVirt 主機 udp/69 請求文件
  2. LibVirt 主機 udp/ephemeral 到 TFTP 伺服器 udp/69 請求文件
  3. 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_tftpLibvirt 主機就足以讓它工作。感謝您的提示!

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