<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;"><DIV>I am trying to figure out the behaviour of the DHCP server when replying to <BR>unicast DHCP Requests from clients at remote subnets (RENEWING state). At <BR>that moment, no DHCP Relay is being used.<BR>I have looked for the subject in previous posts related to this topic and in <BR>the source code too, but I have not found it coherent.<BR> <BR>Let me copy a comment from the code at dhcprequest( ):<BR> <BR>    If ciaddr was specified and Requested Address was not, then<BR>    we really only know for sure what network a packet came from<BR>    if it came through a BOOTP gateway - if it came through an<BR>    IP router, we'll just have to assume that it's cool.<BR> <BR>The comment continues, but I understand that this paragraph is not <BR>contradicted.<BR> <BR>It is said that the
 ciaddr will be assumed to be ok if there is no giaddr (it <BR>comes from an IP router). However, after the comments it is required that  <BR>"packet -> shared_network"  is not null to answer with a DHCPACK. I am not <BR>using advanced options such as link-selection or subnet-selection, and giaddr <BR>is empty, so in locate_network( ) it is assigned (when possible): <BR> <BR>packet -> shared_network = packet -> interface -> shared_network<BR> <BR>The interface at which my server is receiving the DHCPREQUEST does not belong <BR>to any shared_network, so packet -> shared_network is null and the unicast<BR>packet is not being answered with the DHCPACK I am waiting. The client has to <BR>enter REBINDING state to extend its lease.<BR> <BR>Am I missing something?<BR> <BR>Regards,<BR>Paul<BR></DIV></td></tr></table>