<div dir="ltr">Hi Remy, thanks a lot!<div>As always, fast and efficient.</div><div><br></div><div>Yes you're right, I forgot to mention that qdcount is 0 also.</div><div><br></div><div>I'll open a request and by  now will try to manage it using iptables.</div><div><br></div><div>Saludos!</div><div>nico</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Nov 16, 2023 at 9:10 AM Remi Gacogne via dnsdist <<a href="mailto:dnsdist@mailman.powerdns.com">dnsdist@mailman.powerdns.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
On 16/11/2023 04:37, Nicolas Baumgarten via dnsdist wrote:<br>
> Queries with opcode 1 (DNSOpcode.IQuery) are being ignored (droped?) on 1.4<br>
> But 1.6.1 answers NOT implemented.<br>
<br>
My guess is that these queries have a query records count (qdcount) of 0 <br>
and you are seeing the effect of [1], implemented in 1.6.0-alpha1, <br>
because it was needed to conform to rfc8906's tests.<br>
<br>
> We don't know which is the reason for this queries, but in the not <br>
> implemented scenario these queries are retried for a couple of minutes, <br>
> hundreds or thousands per second by some devices.<br>
<br>
That's awful, and of course the device should be fixed, but <br>
unfortunately not unheard of.<br>
<br>
> Trying  to stop this, we created a rule to drop them but it's not working:<br>
>   addAction(OpcodeRule(DNSOpcode.IQuery),DropAction())<br>
> the same with opcode Query works.<br>
> <br>
> #   Name                             Matches Rule                       <br>
>                                Action<br>
> 0                                          0 opcode==1                   <br>
>                               no op<br>
> 1                                     191722 opcode==0                   <br>
>                               no op<br>
> <br>
> There is some preprocessing before the rules which answers not implemented?<br>
<br>
Correct, this check occurs very early, if only because several rules <br>
assume that all queries have a qname which is not true when qdcount == 0.<br>
> There is any option to solve this? If not, we will try with iptables.<br>
<br>
Not at the moment, no. We could make the qdcount==0 behaviour <br>
configurable, to allow dropping or sending a custom response code <br>
(Refused? No Error?) instead of Not Implemented. Opening a feature <br>
request would go a long way to make it happen :)<br>
<br>
[1]: <a href="https://github.com/PowerDNS/pdns/pull/9991" rel="noreferrer" target="_blank">https://github.com/PowerDNS/pdns/pull/9991</a><br>
<br>
Best regards,<br>
-- <br>
Remi Gacogne<br>
PowerDNS.COM BV - <a href="https://www.powerdns.com/" rel="noreferrer" target="_blank">https://www.powerdns.com/</a><br>
<br>
_______________________________________________<br>
dnsdist mailing list<br>
<a href="mailto:dnsdist@mailman.powerdns.com" target="_blank">dnsdist@mailman.powerdns.com</a><br>
<a href="https://mailman.powerdns.com/mailman/listinfo/dnsdist" rel="noreferrer" target="_blank">https://mailman.powerdns.com/mailman/listinfo/dnsdist</a><br>
</blockquote></div>