我正在尝试调试我自己的 DHCP 服务器(用于 PXE),并且我希望 QEMU 从它进行网络启动。为此,它需要将DHCPDISCOVER
数据包发送到255.255.255.255
应该到达 DHCP 服务器正在侦听的主机网络(它侦听0.0.0.0
,并取回回复。
现在主机 DHCP 服务器没有从 QEMU 获得任何数据包。QEMU 以标准用户模式网络 (SLIRP) 启动。
qemu-system-x86_64
我读到 SLIRP 网络是允许端口转发的 NAT。但我看不到如何将 DNS 数据包转发到主机并返回那里。这完全可能与 SLIRP 有关吗?
因为没有答案,我自己回答。无法将主机 DHCP 服务器与 QEMU 用户模式网络一起使用,这就是原因。我的 QEMU 版本是 2.11.1,以防将来修复。
DHCPDISCOVER
数据包是UDP
,QEMU 用户模式网络 (SLiRP) 是 NAT 服务器,它不会在任何地方传递 UDP 数据包。相反,它在内部处理它们。我希望我可能是错的,所以如果当前 QEMU 的udp.c表现不同,请随时纠正我。