<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=us-ascii">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<style><!--
/* Font Definitions */
@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;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
pre
{mso-style-priority:99;
mso-style-link:"Pr\00E9format\00E9 HTML Car";
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
span.PrformatHTMLCar
{mso-style-name:"Pr\00E9format\00E9 HTML Car";
mso-style-priority:99;
mso-style-link:"Pr\00E9format\00E9 HTML";
font-family:"Courier New";}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;}
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="FR" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hello,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US">I’ve done some more testing, and have questions related to some use cases (which I compared to how dhcpd behaves).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Note that the point of this mail is not to report defects ; I’m merely trying to understand what may be design choices.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">(Nothing here is, strictly speaking, against the RFC, but some “should” and “should not” are not enforced.)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Anyway, here goes.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">1) Use case 1:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">- Client C1 sends a Discover, is offered lease L1.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">- Client C1 sends a Request, with Requested IP Address = L1.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">- Client C1 gets an Ack, with yiaddr = requested address.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Nothing to say, this is the standard case, just for comparison purpose.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">2) Use case 2:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">- Client C1 (not previously known from the server) sends a Discover, with a specific Requested IP Address (which is valid and free).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">- Client C1 gets an Offer but with yiaddr = another lease than the one he asked for<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">The option Requested IP Address seems to be ignored. Is this on purpose ?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">(in the same use case, dhcpd will send back the Requested IP address)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">From RFC:<o:p></o:p></span></p>
<pre style="background:#BFBFBF"><span lang="EN-US" style="color:black">If an address is available, </span><b><span lang="EN-US" style="color:#7030A0">the new address SHOULD be chosen as follows</span></b><span lang="EN-US" style="color:black">:<o:p></o:p></span></pre>
<pre style="background:#BFBFBF"><span lang="EN-US" style="color:black"><o:p> </o:p></span></pre>
<pre style="background:#BFBFBF"><span lang="EN-US" style="color:black"> o The client's current address as recorded in the client's current<o:p></o:p></span></pre>
<pre style="background:#BFBFBF"><span lang="EN-US" style="color:black"> binding, ELSE<o:p></o:p></span></pre>
<pre style="background:#BFBFBF"><span lang="EN-US" style="color:black"><o:p> </o:p></span></pre>
<pre style="background:#BFBFBF"><span lang="EN-US" style="color:black"> o The client's previous address as recorded in the client's (now<o:p></o:p></span></pre>
<pre style="background:#BFBFBF"><span lang="EN-US" style="color:black"> expired or released) binding, if that address is in the server's<o:p></o:p></span></pre>
<pre style="background:#BFBFBF"><span lang="EN-US" style="color:black"> pool of available addresses and not already allocated, ELSE<o:p></o:p></span></pre>
<pre style="background:#BFBFBF"><span lang="EN-US" style="color:black"><o:p> </o:p></span></pre>
<pre style="background:#BFBFBF"><span lang="EN-US" style="color:black"> o </span><b><span lang="EN-US" style="color:#7030A0">The address requested in the 'Requested IP Address' option, if that<o:p></o:p></span></b></pre>
<pre style="background:#BFBFBF"><b><span lang="EN-US" style="color:#7030A0"> address is valid and not already allocated</span></b><span lang="EN-US" style="color:black">, ELSE<o:p></o:p></span></pre>
<pre style="background:#BFBFBF"><span lang="EN-US" style="color:black"><o:p> </o:p></span></pre>
<pre style="background:#BFBFBF"><span lang="EN-US" style="color:black"> o A new address allocated from the server's pool of available<o:p></o:p></span></pre>
<pre style="background:#BFBFBF"><span lang="EN-US" style="color:black"> </span><span style="color:black">addresses<o:p></o:p></span></pre>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">3) Use case3:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">- Client C1 (not previously known from the server) sends a Request, with a specific Requested IP Address (which is valid and free).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">- Client C1 gets an Ack but with yiaddr = another lease than the one he asked for<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">It seems that, if a lease has not been provided in an Offer response, then it cannot be specifically asked for in a Request.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Is this on purpose ?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">(in the same use case, dhcpd will send back the Requested IP address)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">4) Use case 4:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">- Client C1 sends a Request, with a specific Requested IP Address, which is invalid (not in a pool).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">- Client C1 gets an Ack (with a valid lease)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">From RFC:<o:p></o:p></span></p>
<pre style="background:#BFBFBF"><span lang="EN-US" style="color:black">If a server receives a DHCPREQUEST message with an invalid 'requested<o:p></o:p></span></pre>
<pre style="background:#BFBFBF"><span lang="EN-US" style="color:black"> IP address', </span><b><span lang="EN-US" style="color:#7030A0">the server SHOULD respond to the client with a DHCPNAK</span></b><span lang="EN-US" style="color:black"><o:p></o:p></span></pre>
<pre style="background:#BFBFBF"><span lang="EN-US" style="color:black"> message <o:p></o:p></span></pre>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Same question: is this behavior on purpose ?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">(in the same use case, dhcpd will send back an Nack)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">5) Use case 5:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Client C1 sends a Discover, is offered lease L1.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Client C2 sends a Request, with Requested IP Address = L1.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Client C2 gets an Ack, with yiaddr = requested address.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Client C1 then sends a Request, with Requested IP Address = L1.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Client C1 gets an Ack, but with yiaddr = a new IP address (L1 +1).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">It seems that as long as an IP address has been offered, anyone can “grab” it in a Request.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Is that the intended behavior ? shouldn’t be a lease reserved to the client to whom it was offered ?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Thanks for your time.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Nicolas.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
<span style="font-size: 9px; line-height: 10px;">This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.</span></body>
</html>