<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:"MS Gothic";
panose-1:2 11 6 9 7 2 5 8 2 4;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:"\@MS Gothic";
panose-1:2 11 6 9 7 2 5 8 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{mso-style-priority:99;
mso-style-link:"Plain Text Char";
margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
span.PlainTextChar
{mso-style-name:"Plain Text Char";
mso-style-priority:99;
mso-style-link:"Plain Text";
font-family:"Calibri",sans-serif;}
span.EmailStyle20
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoPlainText">Hi,<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Indeed this was due to "pxe-prompt" which I was using that was causing this issue for UEFI. This worked fine for BIOS clients.<o:p></o:p></p>
<p class="MsoPlainText">After removing pxe-prompt, dnsmasq ver. 2.76 worked successfully for PXE booting of UEFI hosts.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">On the left is DHCP-ACK packet send from server without "pxe-prompt" and on the right the same packet when "pxe-prompt" is specified.<o:p></o:p></p>
<p class="MsoPlainText">Specifying pxe-prompt made dnsmasq send dhcp options 60, 97 and 43.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><img width="1100" height="498" style="width:11.4583in;height:5.1875in" id="Picture_x0020_1" src="cid:image002.png@01D6CD87.586E9710"><o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Thank you for your help.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">-swanand<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">-----Original Message-----<br>
From: Wang Shanker <shankerwangmiao@gmail.com> <br>
Sent: Monday, December 7, 2020 8:50 PM<br>
To: Swanand Vaidya <Swanand.Vaidya@veritas.com><br>
Cc: Geert Stappers <stappers@stappers.nl>; dnsmasq-discuss@lists.thekelleys.org.uk<br>
Subject: Re: [Dnsmasq-discuss] [EXTERNAL] Re: UEFI PXE Boot Issue: dhcp-option 60</p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Hi,<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">In theory, `dhcp-pxe-vendor` cannot prevent the special handling of dhcp-option 60 when replying to pxe clients.
<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">However, dnsmasq identifies a pxe client by matching "PXEClient"<o:p></o:p></p>
<p class="MsoPlainText">string sent in the requests. By using this setting, you can specify a dummy string for this like DUMMY6789, and normal pxe clients won't be seen as pxe clients anymore by dnsmasq and thus the special handling of dhcp-option 60 is disabled.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">As I wrote in my previous mail. I strongly suspect the `pxe-prompt` option is the cause of the problem.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Cheers,<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Miao Wang<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">> 2020<span style="font-family:"MS Gothic"">年</span>12<span style="font-family:"MS Gothic"">月</span>07<span style="font-family:"MS Gothic"">日</span> 22:04<span style="font-family:"MS Gothic"">,</span>Swanand Vaidya <<a href="mailto:Swanand.Vaidya@veritas.com"><span style="color:windowtext;text-decoration:none">Swanand.Vaidya@veritas.com</span></a>>
<span style="font-family:"MS Gothic"">写道:</span><o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> Hi Geert,<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> Yes, the source I had taken included this commit. But as I understand it allow you to send specific value for vendor class in dhcp-option 60.<o:p></o:p></p>
<p class="MsoPlainText">> I want to totally stop dhcp-option 60 from being sent as different clients may have different requirements.<o:p></o:p></p>
<p class="MsoPlainText">> Does the new setting 'dhcp-pxe-vendor' allow you to stop dhcp-option 60 from being sent?<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> Thanks,<o:p></o:p></p>
<p class="MsoPlainText">> -swanand<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> -----Original Message-----<o:p></o:p></p>
<p class="MsoPlainText">> From: Geert Stappers <<a href="mailto:stappers@stappers.nl"><span style="color:windowtext;text-decoration:none">stappers@stappers.nl</span></a>><o:p></o:p></p>
<p class="MsoPlainText">> Sent: Monday, December 7, 2020 7:19 PM<o:p></o:p></p>
<p class="MsoPlainText">> To: Swanand Vaidya <<a href="mailto:Swanand.Vaidya@veritas.com"><span style="color:windowtext;text-decoration:none">Swanand.Vaidya@veritas.com</span></a>>;
<o:p></o:p></p>
<p class="MsoPlainText">> <a href="mailto:dnsmasq-discuss@lists.thekelleys.org.uk">
<span style="color:windowtext;text-decoration:none">dnsmasq-discuss@lists.thekelleys.org.uk</span></a><o:p></o:p></p>
<p class="MsoPlainText">> Subject: [EXTERNAL] Re: [Dnsmasq-discuss] UEFI PXE Boot Issue:
<o:p></o:p></p>
<p class="MsoPlainText">> dhcp-option 60<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> On Mon, Dec 07, 2020 at 01:11:18PM +0000, Swanand Vaidya wrote:<o:p></o:p></p>
<p class="MsoPlainText">>> Hi,<o:p></o:p></p>
<p class="MsoPlainText">>> <o:p></o:p></p>
<p class="MsoPlainText">>> I am trying to PXE boot a UEFI enabled Dell machine with dnsmasq
<o:p></o:p></p>
<p class="MsoPlainText">>> acting as both the DHCP and TFTP server.<o:p></o:p></p>
<p class="MsoPlainText">>> The client and server perform the DHCP steps: DHCP Discover, DHCP
<o:p></o:p></p>
<p class="MsoPlainText">>> Offer, DHCP Request and DHCP Ack as expected.<o:p></o:p></p>
<p class="MsoPlainText">>> <o:p></o:p></p>
<p class="MsoPlainText">>> But, thereafter, the client simply aborts the protocol (it does not
<o:p></o:p></p>
<p class="MsoPlainText">>> do TFTP to download the NBP file syslinux.efi and others) and I can
<o:p></o:p></p>
<p class="MsoPlainText">>> see<o:p></o:p></p>
<p class="MsoPlainText">>> error:<o:p></o:p></p>
<p class="MsoPlainText">>> "PXE-E21: Remote boot canceled" on the client console.<o:p></o:p></p>
<p class="MsoPlainText">>> <o:p></o:p></p>
<p class="MsoPlainText">>> The same dnsmasq configuration works for booting a BIOS based machine.<o:p></o:p></p>
<p class="MsoPlainText">>> <o:p></o:p></p>
<p class="MsoPlainText">>> I found that dnsmasq is sending dhcp-option 60 with value as "PXEClient"<o:p></o:p></p>
<p class="MsoPlainText">>> which is causing this issue.<o:p></o:p></p>
<p class="MsoPlainText">>> <o:p></o:p></p>
<p class="MsoPlainText">>> I could not find any way to disable this from being sent to the client.<o:p></o:p></p>
<p class="MsoPlainText">>> <o:p></o:p></p>
<p class="MsoPlainText">>> Finally, I modified the source code in rfc2131.c by adding "return"<o:p></o:p></p>
<p class="MsoPlainText">>> statement at the top of the function pxe_misc(). The dnsmasq binary
<o:p></o:p></p>
<p class="MsoPlainText">>> so built now works fine for booting the UEFI machine.<o:p></o:p></p>
<p class="MsoPlainText">>> <o:p></o:p></p>
<p class="MsoPlainText">>> I would like to know:<o:p></o:p></p>
<p class="MsoPlainText">>> <o:p></o:p></p>
<p class="MsoPlainText">>> 1. If this is a known issue? I tried latest 2.82 version of dnsmasq<o:p></o:p></p>
<p class="MsoPlainText">>> as well as building from the latest source snapshot from HEAD.<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> Did that include <a href="http://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commit;h=4ded96209e8346711f9d0b9e13a835d42835853d">
<span style="color:windowtext;text-decoration:none">http://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commit;h=4ded96209e8346711f9d0b9e13a835d42835853d</span></a> ?<o:p></o:p></p>
<p class="MsoPlainText">> Yes, that is a very very fresh commit. And it is 'PXEClient' related ...<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">>> 2. Is there any way to disable dhcp-option 60 from being sent over<o:p></o:p></p>
<p class="MsoPlainText">>> to the client by setting some configuration param in<o:p></o:p></p>
<p class="MsoPlainText">>> dnsmasq.conf? We can force certain option to be sent using<o:p></o:p></p>
<p class="MsoPlainText">>> dhcp-option-force directive, but there is nothing for the opposite<o:p></o:p></p>
<p class="MsoPlainText">>> direction to "force disable" a specific DHCP option. (Setting<o:p></o:p></p>
<p class="MsoPlainText">>> dhcp-option = <option_number> without a value only works for<o:p></o:p></p>
<p class="MsoPlainText">>> certain dhcp options).<o:p></o:p></p>
<p class="MsoPlainText">>> <o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">>> Thanks,<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> You are welcome.<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">>> -swanand<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> Regards<o:p></o:p></p>
<p class="MsoPlainText">> Geert Stappers<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> P.S.<o:p></o:p></p>
<p class="MsoPlainText">> I usually don't do "Reply to All", but I do take insults.<o:p></o:p></p>
<p class="MsoPlainText">> --<o:p></o:p></p>
<p class="MsoPlainText">> Silence is hard to parse<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> _______________________________________________<o:p></o:p></p>
<p class="MsoPlainText">> Dnsmasq-discuss mailing list<o:p></o:p></p>
<p class="MsoPlainText">> <a href="mailto:Dnsmasq-discuss@lists.thekelleys.org.uk">
<span style="color:windowtext;text-decoration:none">Dnsmasq-discuss@lists.thekelleys.org.uk</span></a><o:p></o:p></p>
<p class="MsoPlainText">> <a href="http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss">
<span style="color:windowtext;text-decoration:none">http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss</span></a><o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
</div>
</body>
</html>