> On 4 Oct 2023, at 06:31, Petr Menšík <pemen...@redhat.com> wrote:
> 
> Hi Mark,
> 
> I have seen this error before and I admit it is quite annoying. Especially 
> when the owners of failing implementations refuse to fix their bugs. Is there 
> any possibility to tune this only for set of broken servers?
> 
> server prefix {} block can set different features for selected server(s), 
> disabling even EDNS0 extension. But qname-minimization cannot be changed 
> selectively. Be it per address or (sub)domain, it would be useful until all 
> implementations fix their behaviour.

Disabling EDNS is about constructing individual queries.  QNAME minimisation is 
about changing the series of queries made while iterating.  Very different 
things.

> Would it make sense to allow disabling qname minimization in server blocks 
> also? Is there specific reason, why this can be changed only per view or 
> globally? Is there other workaround possible? May stub zones help with this?

Stub zones don’t disable QNAME minimisations below them.  The just short 
circuit the iteration process above them.

Really I don’t want to be writing code to just deal with SpamHaus’s 
mis-implementation.  They should fix their broken servers.

> Cheers,
> Petr
> 
> On 19. 09. 23 1:53, Mark Andrews wrote:
>> 
>>> On 19 Sep 2023, at 02:14, Alex <mysqlstud...@gmail.com> wrote:
>>> 
>>> 
>>> 
>>> On Thu, Sep 7, 2023 at 4:06 PM Mark Andrews <ma...@isc.org> wrote:
>>> Spamhaus’s servers are sending back responses that do not answer the 
>>> question. Named is doing QNAME minimisation using NS queries and rather 
>>> than the servers sending back a NODATA response for the empty non-terminal 
>>> names they are sending back the NS records for the top of the zone.
>>> 
>>> I suggest that you ask them to fix their DNS servers to correctly answer NS 
>>> queries.  They appear to need to look at the query name as well as the 
>>> query type.
>>> 
>>> This is what often happens when you write custom DNS servers.  You fail to 
>>> handle some query you weren’t planning for.
>>> 
>>> They have just recommended disabling qname-minimization altogether. Is that 
>>> the right solution?
>> No.  The correct solution is for them to fix their broken servers.  Their 
>> servers give correct
>> answers for DS, A, TXT, SOA, AAAAA and others but not for NS (a referral 
>> back to the same
>> servers) and TYPE1000 (they return NOTIMP instead of NOERROR NODATA as they 
>> do for DS, A, TXT,
>> SOA, AAAAA and others).  This is behaviour that is specified in RFC 1034 
>> that is wrong.  QNAME
>> minimisation (RFC 7816) is a security fix designed to prevent leaking of 
>> query names and types
>> to servers closer to the root that don’t need this information and it works 
>> with all servers
>> that are DNS protocol compliant.  They are recommending that you turn off a 
>> security fix.
>> 
>> 
>> RFC 1034, 4.3.2. Algorithm
>> 
>>    ...
>> 
>>    2. Search the available zones for the zone which is the nearest
>>       ancestor to QNAME. If such a zone is found, go to step 3,
>>       otherwise step 4.
>> 
>>    3. Start matching down, label by label, in the zone. The
>>       matching process can terminate several ways:
>> 
>>          a. If the whole of QNAME is matched, we have found the
>>          node.
>> 
>>          If the data at the node is a CNAME, and QTYPE doesn’t
>>          match CNAME, copy the CNAME RR into the answer section
>>          of the response, change QNAME to the canonical name in
>>          the CNAME RR, and go back to step 1.
>> 
>>          Otherwise, copy all RRs which match QTYPE into the
>>          answer section and go to step 6.
>> 
>>     ...
>>          6. Using local data only, attempt to add other RRs which may be
>>        useful to the additional section of the query. Exit.
>> 
>> Step 2 gives zrd.dq.spamhaus.net.  Step 3a matches 
>> pc5eqyfskhlh55qut433gdq2gq.zrd.dq.spamhaus.net
>> and as there isn’t NS records at that name the answer section should be 
>> empty.  Adding referral
>> records is done in step 3b which is skipped.
>> 
>>           b. If a match would take us out of the authoritative data,
>>           we have a referral. This happens when we encounter a
>>           node with NS RRs marking cuts along the bottom of a
>>           zone.
>> 
>>           Copy the NS RRs for the subzone into the authority
>>           section of the reply. Put whatever addresses are
>>           available into the additional section, using glue RRs
>>           if the addresses are not available from authoritative
>>           data or the cache. Go to step 4.
>> 
>> % dig 'pc5eqyfskhlh55qut433gdq2gq.zrd.dq.spamhaus.net' ds @a.gns.spamhaus.net
>> 
>> ; <<>> DiG 9.19.17-dev <<>> pc5eqyfskhlh55qut433gdq2gq.zrd.dq.spamhaus.net 
>> ds @a.gns.spamhaus.net
>> ;; global options: +cmd
>> ;; Got answer:
>> ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26823
>> ;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
>> ;; WARNING: recursion requested but not available
>> 
>> ;; OPT PSEUDOSECTION:
>> ; EDNS: version: 0, flags:; udp: 2048
>> ;; QUESTION SECTION:
>> ;pc5eqyfskhlh55qut433gdq2gq.zrd.dq.spamhaus.net. IN DS
>> 
>> ;; AUTHORITY SECTION:
>> zrd.dq.spamhaus.net. 1 IN SOA need.to.know.only. hostmaster.spamhaus.org. 
>> 2309182309 3600 600 432000 1
>> 
>> ;; Query time: 194 msec
>> ;; SERVER: 149.28.9.86#53(a.gns.spamhaus.net) (UDP)
>> ;; WHEN: Tue Sep 19 09:11:44 AEST 2023
>> ;; MSG SIZE  rcvd: 151
>> 
>> % dig 'pc5eqyfskhlh55qut433gdq2gq.zrd.dq.spamhaus.net' txt 
>> @a.gns.spamhaus.net
>> 
>> ; <<>> DiG 9.19.17-dev <<>> pc5eqyfskhlh55qut433gdq2gq.zrd.dq.spamhaus.net 
>> txt @a.gns.spamhaus.net
>> ;; global options: +cmd
>> ;; Got answer:
>> ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65222
>> ;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
>> ;; WARNING: recursion requested but not available
>> 
>> ;; OPT PSEUDOSECTION:
>> ; EDNS: version: 0, flags:; udp: 2048
>> ;; QUESTION SECTION:
>> ;pc5eqyfskhlh55qut433gdq2gq.zrd.dq.spamhaus.net. IN TXT
>> 
>> ;; AUTHORITY SECTION:
>> zrd.dq.spamhaus.net. 1 IN SOA need.to.know.only. hostmaster.spamhaus.org. 
>> 2309182309 3600 600 432000 1
>> 
>> ;; Query time: 188 msec
>> ;; SERVER: 149.28.9.86#53(a.gns.spamhaus.net) (UDP)
>> ;; WHEN: Tue Sep 19 09:12:05 AEST 2023
>> ;; MSG SIZE  rcvd: 151
>> 
>> % dig 'pc5eqyfskhlh55qut433gdq2gq.zrd.dq.spamhaus.net' soa 
>> @a.gns.spamhaus.net
>> 
>> ; <<>> DiG 9.19.17-dev <<>> pc5eqyfskhlh55qut433gdq2gq.zrd.dq.spamhaus.net 
>> soa @a.gns.spamhaus.net
>> ;; global options: +cmd
>> ;; Got answer:
>> ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29540
>> ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
>> ;; WARNING: recursion requested but not available
>> 
>> ;; OPT PSEUDOSECTION:
>> ; EDNS: version: 0, flags:; udp: 2048
>> ;; QUESTION SECTION:
>> ;pc5eqyfskhlh55qut433gdq2gq.zrd.dq.spamhaus.net. IN SOA
>> 
>> ;; ANSWER SECTION:
>> zrd.dq.spamhaus.net. 900 IN SOA need.to.know.only. hostmaster.spamhaus.org. 
>> 2309182311 3600 600 432000 1
>> 
>> ;; Query time: 188 msec
>> ;; SERVER: 149.28.9.86#53(a.gns.spamhaus.net) (UDP)
>> ;; WHEN: Tue Sep 19 09:12:18 AEST 2023
>> ;; MSG SIZE  rcvd: 151
>> 
>> % dig 'pc5eqyfskhlh55qut433gdq2gq.zrd.dq.spamhaus.net' ns @a.gns.spamhaus.net
>> 
>> ; <<>> DiG 9.19.17-dev <<>> pc5eqyfskhlh55qut433gdq2gq.zrd.dq.spamhaus.net 
>> ns @a.gns.spamhaus.net
>> ;; global options: +cmd
>> ;; Got answer:
>> ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30418
>> ;; flags: qr aa rd; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1
>> ;; WARNING: recursion requested but not available
>> 
>> ;; OPT PSEUDOSECTION:
>> ; EDNS: version: 0, flags:; udp: 2048
>> ;; QUESTION SECTION:
>> ;pc5eqyfskhlh55qut433gdq2gq.zrd.dq.spamhaus.net. IN NS
>> 
>> ;; ANSWER SECTION:
>> zrd.dq.spamhaus.net. 3600 IN NS a.gns.spamhaus.net.
>> zrd.dq.spamhaus.net. 3600 IN NS b.gns.spamhaus.net.
>> zrd.dq.spamhaus.net. 3600 IN NS c.gns.spamhaus.net.
>> zrd.dq.spamhaus.net. 3600 IN NS d.gns.spamhaus.net.
>> zrd.dq.spamhaus.net. 3600 IN NS e.gns.spamhaus.net.
>> 
>> ;; Query time: 187 msec
>> ;; SERVER: 149.28.9.86#53(a.gns.spamhaus.net) (UDP)
>> ;; WHEN: Tue Sep 19 09:12:23 AEST 2023
>> ;; MSG SIZE  rcvd: 159
>> 
>> % dig 'pc5eqyfskhlh55qut433gdq2gq.zrd.dq.spamhaus.net' type1000 
>> @a.gns.spamhaus.net
>> 
>> ; <<>> DiG 9.19.17-dev <<>> pc5eqyfskhlh55qut433gdq2gq.zrd.dq.spamhaus.net 
>> type1000 @a.gns.spamhaus.net
>> ;; global options: +cmd
>> ;; Got answer:
>> ;; ->>HEADER<<- opcode: QUERY, status: NOTIMP, id: 3121
>> ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
>> ;; WARNING: recursion requested but not available
>> 
>> ;; OPT PSEUDOSECTION:
>> ; EDNS: version: 0, flags:; udp: 2048
>> ;; QUESTION SECTION:
>> ;pc5eqyfskhlh55qut433gdq2gq.zrd.dq.spamhaus.net. IN TYPE1000
>> 
>> ;; Query time: 201 msec
>> ;; SERVER: 149.28.9.86#53(a.gns.spamhaus.net) (UDP)
>> ;; WHEN: Tue Sep 19 09:12:42 AEST 2023
>> ;; MSG SIZE  rcvd: 75
>> 
>> %
>> 
>>> It doesn't seem to be complete for me. It prints hundreds of these 
>>> (presumably one for each DNS request necessary to process the email?):
>>> 
>>> 18-Sep-2023 12:07:25.561 lame-servers: FORMERR resolving 
>>> 'pc5eqyfskhlh55qut433gdq2gq.zrd.dq.spamhaus.net/NS/IN': 209.222.201.139#53
>>> 18-Sep-2023 12:07:25.584 resolver: DNS format error from 50.31.133.59#53 
>>> resolving mykey.zrd.dq.spamhaus.net/NS for <unknown>: reply has no answer
>>> 
>>> ... then a strange line like this:
>>> 
>>> 18-Sep-2023 12:13:31.606 lame-servers: success resolving 
>>> 'um27qfow2knpuwx56o4otvovib2zbomydtlkuo4sktbo34cmjqvq._file.mykey.hbl.dq.spamhaus.net/A'
>>>  after disabling qname minimization due to 'failure'
>>> 
>>> btw, their support really sucks.
>>> 
>>> Thanks,
>>> Alex
>>> 
>>> 
> -- 
> Petr Menšík
> Software Engineer, RHEL
> Red Hat, http://www.redhat.com/
> PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB
> 
> -- 
> Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
> this list
> 
> ISC funds the development of this software with paid support subscriptions. 
> Contact us at https://www.isc.org/contact/ for more information.
> 
> 
> bind-users mailing list
> bind-users@lists.isc.org
> https://lists.isc.org/mailman/listinfo/bind-users

-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742              INTERNET: ma...@isc.org

-- 
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users

Reply via email to