用于NAT后面的libvirt主机的TFTP

这花了我整天的工作,所以我想我会得到这个logging在这里!

我有一个使用NAT的LibVirt主机,而不是为托pipe的虚拟机桥接,使用安装时由LibVirt构build的默认IPTables规则。 我可以使用虚拟CD安装操作系统,然后获得完整的Internet连接,但是由于TFTP *在PXE启动方面更为复杂,伪装似乎不会将TFTP回复传递给虚拟机。

我可以看到来自tcpdump的各种实例的以下数据包序列:

  1. VM udp / ephemeral到LibVirt主机udp / 69请求文件
  2. LibVirt主机udp /短暂到TFTP服务器udp / 69请求文件
  3. TFTP服务器udp / ephemeral2到LibVirt主机udp /短暂的

在这一点上没有进一步的传递和虚拟机tftp客户端超时。

我尝试使用内核模块ip_conntrack_tftp / nf_conntrack_tftp和ip_nat_tftp / nf_nat_tftp,但这并没有帮助。

*虽然客户端到服务器的初始请求在udp / 69上,但是从服务器到客户端的回复来自一个伪随机临时端口。

最后,我find一篇关于VMWare的文章 ,有类似的问题,并尝试将LibVirt中的networking接口的types从virtio切换到e1000。 即时成功!

我有和你一样的问题,最终find你的post。

在我这边,在Libvirt主机上加载nf_nat_tftp足以使其工作。 感谢这个提示!