Correction, they incorrectly answer the SOA query.

> On 19 Sep 2023, at 09:53, Mark Andrews <ma...@isc.org> 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
>> 
>> 
> 
> -- 
> Mark Andrews, ISC
> 1 Seymour St., Dundas Valley, NSW 2117, Australia
> PHONE: +61 2 9871 4742              INTERNET: ma...@isc.org


-- 
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