这花了我一整天的时间来锻炼,所以我想我会在这里记录下来!
我有一个带有 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 上,但从服务器到客户端的回复源自一个伪随机临时端口。
我和你有完全相同的问题,最后找到了你的帖子。
在我这边,加载
nf_nat_tftp
Libvirt 主机就足以让它工作。感谢您的提示!最后找到一篇关于VMWare的文章也有类似的问题,尝试将LibVirt中的网络接口类型从virtio切换为e1000。瞬间成功!