自分のDHCPサーバー(PXE用)をデバッグしようとしていますが、QEMUにそこからネットブートさせたいです。そのためには、DHCPサーバーがリッスンしているホストネットワークに到達する必要があるDHCPDISCOVER
パケットを255.255.255.255
に送信する必要があります(0.0.0.0
でリッスンし、応答を返します。
現在、ホストDHCPサーバーはQEMUからパケットを取得していません。 QEMUは、標準ユーザーモードネットワーク(SLIRP)で開始されます。
qemu-system-x86_64
SLIRPネットワークはNATで、ポート転送が可能です。しかし、DNSパケットをホストに転送してそこに戻す方法がわかりません。SLIRPでそれを行うことは可能ですか?
答えがないので、自分で答えます。 QEMUユーザーモードネットワークでホストDHCPサーバーを使用することはできません。その理由は次のとおりです。私のQEMUバージョンは2.11.1で、将来修正される予定です。
DHCPDISCOVER
パケットはUDP
であり、QEMUユーザーモードネットワーキング(SLiRP)はNATサーバーでUDPパケットをどこにも渡さない。代わりに、内部で処理します。I私が間違っている可能性があるので、現在のQEMUの dp.c の動作が異なる場合は、遠慮なく修正してください。