<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>I've encountered this issue as well, I ended up working around it
by creating bridges that have those vlans as their bridge port.
This way the bridge stays up to dnsmasq even when I take one of
these vlans down.<br>
</p>
<div class="moz-cite-prefix">On 8/4/23 09:24, shashikumar Shashi
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAK-w1hAXcg_0Fo9LLY2gAFq68Tzr4GdvaQyEts15UQ+sU2aNzg@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">Hi,
<div><br>
</div>
<div>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">Observing
that dnsmasq (version 2.80) is offering DHCP IP to the
client from a vlan pool
which is in DOWN state.</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">E.g. If
there are 3 dhcp pools</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">vlan9
(State UP) : Range: 192.168.9.1-192.168.9.254</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">vlan19
(State UP): Range: 192.168.19.1-192.168.19.254</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">vlan99
(State DOWN): Range: 192.168.99.1-192.168.99.254</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN"> </span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">1) Client
on vlan9 gets IP from vlan9 pool</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">2) Client
moves to vlan19, releases IP</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">3) Client
on vlan19 requests IP --> dnsmasq offers IP
192.168.99.xx from vlan99 pool
(incorrect pool), instead of vlan19 pool.</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN"> </span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">If the
vlan99 is in UP state, then dnsmasq offers the IP from the
vlan19 pool (the
correct pool).</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN"> </span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">If dnsmasq
is rebuilt by commenting out the following code block from
dhcp_reply function,
then in the above case, dnsmasq offers IP from the vlan19
pool (the correct
pool) even if vlan99 is DOWN.</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">code block
--></span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">/* guess
the netmask for relayed networks */</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">
if (!(context_tmp->flags &
CONTEXT_NETMASK) && context_tmp->netmask.s_addr
== 0)</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">
{</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">
if
(IN_CLASSA(ntohl(context_tmp->start.s_addr))
&& IN_CLASSA(ntohl(context_tmp->end.s_addr)))</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">
netmask.s_addr =
htonl(0xff000000);</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">
else if
(IN_CLASSB(ntohl(context_tmp->start.s_addr)) &&
IN_CLASSB(ntohl(context_tmp->end.s_addr)))</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">
netmask.s_addr =
htonl(0xffff0000);</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">
else if
(IN_CLASSC(ntohl(context_tmp->start.s_addr)) &&
IN_CLASSC(ntohl(context_tmp->end.s_addr)))</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">
netmask.s_addr =
htonl(0xffffff00); </span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">
}</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN"> </span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">Has anyone
come across such an issue?</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN"><br>
</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN"><br>
</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">Thanks,</span></p>
<p class="MsoNormal"
style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
lang="EN-IN">Shashi</span></p>
</div>
</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
Dnsmasq-discuss mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Dnsmasq-discuss@lists.thekelleys.org.uk">Dnsmasq-discuss@lists.thekelleys.org.uk</a>
<a class="moz-txt-link-freetext" href="https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss">https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss</a>
</pre>
</blockquote>
</body>
</html>