![Использование хост-сервера DHCP с сетевым режимом пользователя QEMU (slirp)](https://rvso.com/image/726413/%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D1%85%D0%BE%D1%81%D1%82-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0%20DHCP%20%D1%81%20%D1%81%D0%B5%D1%82%D0%B5%D0%B2%D1%8B%D0%BC%20%D1%80%D0%B5%D0%B6%D0%B8%D0%BC%D0%BE%D0%BC%20%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F%20QEMU%20(slirp).png)
Я пытаюсь отладить свой собственный 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?
решение1
Поскольку ответов нет, я отвечаю себе. Невозможно использовать хост-сервер DHCP с сетевым режимом QEMU user mode, и вот почему. Моя версия QEMU — 2.11.1 на случай, если это будет исправлено в будущем.
DHCPDISCOVER
пакеты UDP
и QEMU user mode networking (SLiRP) — это NAT-сервер, который никуда не передает UDP-пакеты. Вместо этого он обрабатывает их внутри. Хотел бы я ошибаться, так что не стесняйтесь поправлять меня, если текущие QEMUudp.cведет себя по-другому.