Я пытаюсь отладить свой собственный 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 ведет себя иначе.