Re: [dns-operations] DNSSec validation issue for .se (missing denial of existence for *.se)

2022-01-11 Thread Mark Andrews
NSEC prove there are no names with records between the two names. Note the 
qualifier “with records”.   Clarifying this was one of the early corrections to 
the DNSSEC specification. 

-- 
Mark Andrews

> On 12 Jan 2022, at 03:31, Shreyas Zare  wrote:
> 
> 
> Hi,
> 
> I was implementing DNSSEC just last month and came across this same issue and 
> didn't find any specific documentation on it.
> 
> However, I came to the conclusion that since the NSEC record that was 
> returned has the next domain name "acem.a.se" which is a sub domain for the 
> qname "a.se", its sufficient proof that the "a.se" name is NODATA and so no 
> wildcard proof is required here.
> 
> Regards,
> Shreyas Zare
> Technitium
> 
>> On Tue, Jan 11, 2022, 21:26 Hannes Mehnert  wrote:
>> Hi DNS operators,
>> 
>> since this is my first mail here, I first would like to thank you all 
>> for the constructive discussions and technical expertise. I'm developing 
>> a DNS suite in OCaml, a statically typed functional programming language 
>> [see https://github.com/mirage/ocaml-dns // https://mirageos.org if 
>> interested], and have learned a lot from lurking on this list. My 
>> current work item is a recursive resolver.
>> 
>> When I just implemented the denial of existence for DNSSec (with NSEC), 
>> I stumbled upon the TLD .se that uses NSEC. I mailed earlier to 
>> registry-default at nic dot se (the hostmaster in the SOA of .se), but 
>> didn't get a reply.
>> 
>> Of course, I may be wrong with my analysis, if this is the case please 
>> help me to understand how this should work.
>> 
>> I'm wondering how other validators (public resolvers) deal with the 
>> following issue, which is a missing denial of existence for *.se: So, a 
>> request for resource record type A, domain name a.se results in the 
>> following:
>> 
>> $ dig +dnssec a.se
>> 
>> se. 5363IN  SOA catcher-in-the-rye.nic.se. 
>> registry-default.nic.se. 2022010921 1800 1800 864000 7200
>> se. 5363IN  RRSIG   SOA 8 1 172800 
>> 20220122054639 20220109191050 30015 se.  [...]
>> _nicname._tcp.se.   6694IN  NSECacem.a.se. SRV RRSIG NSEC
>> _nicname._tcp.se.   6694IN  RRSIG   NSEC 8 3 7200 
>> 20220121191006 20220108001053 30015 se. [...]
>> 
>> Which provides a non-existence proof for everything between 
>> _nicname._tcp.se and acem.a.se, but nothing for *.se (which according to 
>> the order of canonical domain names, is before _nicname._tcp.se -- even 
>> before 0.se that seems to be the first registered domain name).
>> 
>> The NSEC record missing from the reply above is the following NSEC and 
>> RRSIG ($ dig +dnssec ns \!.se).
>> 
>> se. 4353IN  NSEC0.se. NS SOA TXT RRSIG 
>> NSEC DNSKEY
>> se. 4353IN  RRSIG   NSEC 8 1 7200 
>> 20220121132017 20220108061050 30015 se. 
>> jzWI5l5Sxyb2sOLzCWNX06nwmCtZuFdS3PvmivnyOPVZ3cw+blBXNYwN 
>> cFCYFdMC7R31W0ABBuT587mAm7Ae5NJX2GnXGcNgaVcD9VhKWAjJHpqf 
>> +NJcLOF9771m/BKPC7dKTwt/zVdKJSwFjaYTr0streS9OMCnJXbiWaQc 
>> CMDmzko2WiWdBNDAbZ8H/OfKymYjgJz1hZynMdl5LyWcGgxlOksuLKSv 
>> 4xg4Ey07r4ZCy5XTQwfHG74qWa+61BVjfP3KEEEB42B0rZX8lT15B9MS 
>> Cg9RmBObNC5FYjXGkbeik6iXrdOGzUUURHay+th9SJ4BGIFIV8fyyDTd oxOc5w==
>> 
>> 
>> Thank you for reading,
>> 
>> Hannes Mehnert
>> ___
>> dns-operations mailing list
>> dns-operations@lists.dns-oarc.net
>> https://lists.dns-oarc.net/mailman/listinfo/dns-operations
> ___
> dns-operations mailing list
> dns-operations@lists.dns-oarc.net
> https://lists.dns-oarc.net/mailman/listinfo/dns-operations
___
dns-operations mailing list
dns-operations@lists.dns-oarc.net
https://lists.dns-oarc.net/mailman/listinfo/dns-operations


Re: [dns-operations] Trouble resolving .by TLD due to circular dependency?

2022-01-11 Thread John Levine
It appears that Sascha E. Pollok via dns-operations  said:
>-=-=-=-=-=-
>
>Hello nice people,
>
>for a few days I have worked on an issue we see with our Bind resolvers of 
>different 
>versions regarding resolving addresses under .by. I assume it is not Bind's 
>fault at all 
>but the result of a circular dependency in .by after a change of the Auth NS 
>beginning of 
>January but let me explain what I see. ...

You are correct, they have a NS dependency loop that will cause all sorts of 
problems.  As
you note the results can be very inconsistent depending on the TTL of the glue 
records and
how different DNS software handles the expiring glue.

>by. 130511  IN  NS  dns1.tld.becloudby.com.

>becloudby.com.  172800  IN  NS  u1.hoster.by.
>becloudby.com.  172800  IN  NS  u2.hoster.by.

>Does this analysis seem correct and are there maybe any .BY ccTLD people on 
>this list to 
>take a look at this? I have worked on this together with Anand Buddhdev so I 
>want to thank 
>him for working with me. Always a pleasure.

The solution, of course, is "don't do that."  A simple fix would be to move the 
NS
for becloudby.com to a name under .com.

R's,
John
___
dns-operations mailing list
dns-operations@lists.dns-oarc.net
https://lists.dns-oarc.net/mailman/listinfo/dns-operations


Re: [dns-operations] DNSSec validation issue for .se (missing denial of existence for *.se)

2022-01-11 Thread Shreyas Zare
Hi,

I was implementing DNSSEC just last month and came across this same issue
and didn't find any specific documentation on it.

However, I came to the conclusion that since the NSEC record that was
returned has the next domain name "acem.a.se" which is a sub domain for the
qname "a.se", its sufficient proof that the "a.se" name is NODATA and so no
wildcard proof is required here.

Regards,
Shreyas Zare
Technitium

On Tue, Jan 11, 2022, 21:26 Hannes Mehnert  wrote:

> Hi DNS operators,
>
> since this is my first mail here, I first would like to thank you all
> for the constructive discussions and technical expertise. I'm developing
> a DNS suite in OCaml, a statically typed functional programming language
> [see https://github.com/mirage/ocaml-dns // https://mirageos.org if
> interested], and have learned a lot from lurking on this list. My
> current work item is a recursive resolver.
>
> When I just implemented the denial of existence for DNSSec (with NSEC),
> I stumbled upon the TLD .se that uses NSEC. I mailed earlier to
> registry-default at nic dot se (the hostmaster in the SOA of .se), but
> didn't get a reply.
>
> Of course, I may be wrong with my analysis, if this is the case please
> help me to understand how this should work.
>
> I'm wondering how other validators (public resolvers) deal with the
> following issue, which is a missing denial of existence for *.se: So, a
> request for resource record type A, domain name a.se results in the
> following:
>
> $ dig +dnssec a.se
>
> se. 5363IN  SOA catcher-in-the-rye.nic.se.
> registry-default.nic.se. 2022010921 1800 1800 864000 7200
> se. 5363IN  RRSIG   SOA 8 1 172800
> 20220122054639 20220109191050 30015 se.  [...]
> _nicname._tcp.se.   6694IN  NSECacem.a.se. SRV RRSIG NSEC
> _nicname._tcp.se.   6694IN  RRSIG   NSEC 8 3 7200
> 20220121191006 20220108001053 30015 se. [...]
>
> Which provides a non-existence proof for everything between
> _nicname._tcp.se and acem.a.se, but nothing for *.se (which according to
> the order of canonical domain names, is before _nicname._tcp.se -- even
> before 0.se that seems to be the first registered domain name).
>
> The NSEC record missing from the reply above is the following NSEC and
> RRSIG ($ dig +dnssec ns \!.se).
>
> se. 4353IN  NSEC0.se. NS SOA TXT RRSIG
> NSEC DNSKEY
> se. 4353IN  RRSIG   NSEC 8 1 7200
> 20220121132017 20220108061050 30015 se.
> jzWI5l5Sxyb2sOLzCWNX06nwmCtZuFdS3PvmivnyOPVZ3cw+blBXNYwN
> cFCYFdMC7R31W0ABBuT587mAm7Ae5NJX2GnXGcNgaVcD9VhKWAjJHpqf
> +NJcLOF9771m/BKPC7dKTwt/zVdKJSwFjaYTr0streS9OMCnJXbiWaQc
> CMDmzko2WiWdBNDAbZ8H/OfKymYjgJz1hZynMdl5LyWcGgxlOksuLKSv
> 4xg4Ey07r4ZCy5XTQwfHG74qWa+61BVjfP3KEEEB42B0rZX8lT15B9MS
> Cg9RmBObNC5FYjXGkbeik6iXrdOGzUUURHay+th9SJ4BGIFIV8fyyDTd oxOc5w==
>
>
> Thank you for reading,
>
> Hannes Mehnert
> ___
> dns-operations mailing list
> dns-operations@lists.dns-oarc.net
> https://lists.dns-oarc.net/mailman/listinfo/dns-operations
>
___
dns-operations mailing list
dns-operations@lists.dns-oarc.net
https://lists.dns-oarc.net/mailman/listinfo/dns-operations


Re: [dns-operations] DNSSec validation issue for .se (missing denial of existence for *.se)

2022-01-11 Thread Shumon Huque
Hannes,

This is a NODATA response for an empty non-terminal, so no wildcard
non-existence
proof is needed.

The following NSEC record demonstrates that "a.se" is an empty non-terminal:

_nicname._tcp.se.   6694IN  NSECacem.a.se. SRV RRSIG NSEC

Shumon.

On Tue, Jan 11, 2022 at 10:58 AM Hannes Mehnert  wrote:

> Hi DNS operators,
>
> since this is my first mail here, I first would like to thank you all
> for the constructive discussions and technical expertise. I'm developing
> a DNS suite in OCaml, a statically typed functional programming language
> [see https://github.com/mirage/ocaml-dns // https://mirageos.org if
> interested], and have learned a lot from lurking on this list. My
> current work item is a recursive resolver.
>
> When I just implemented the denial of existence for DNSSec (with NSEC),
> I stumbled upon the TLD .se that uses NSEC. I mailed earlier to
> registry-default at nic dot se (the hostmaster in the SOA of .se), but
> didn't get a reply.
>
> Of course, I may be wrong with my analysis, if this is the case please
> help me to understand how this should work.
>
> I'm wondering how other validators (public resolvers) deal with the
> following issue, which is a missing denial of existence for *.se: So, a
> request for resource record type A, domain name a.se results in the
> following:
>
> $ dig +dnssec a.se
>
> se. 5363IN  SOA catcher-in-the-rye.nic.se.
> registry-default.nic.se. 2022010921 1800 1800 864000 7200
> se. 5363IN  RRSIG   SOA 8 1 172800
> 20220122054639 20220109191050 30015 se.  [...]
> _nicname._tcp.se.   6694IN  NSECacem.a.se. SRV RRSIG NSEC
> _nicname._tcp.se.   6694IN  RRSIG   NSEC 8 3 7200
> 20220121191006 20220108001053 30015 se. [...]
>
> Which provides a non-existence proof for everything between
> _nicname._tcp.se and acem.a.se, but nothing for *.se (which according to
> the order of canonical domain names, is before _nicname._tcp.se -- even
> before 0.se that seems to be the first registered domain name).
>
> The NSEC record missing from the reply above is the following NSEC and
> RRSIG ($ dig +dnssec ns \!.se).
>
> se. 4353IN  NSEC0.se. NS SOA TXT RRSIG
> NSEC DNSKEY
> se. 4353IN  RRSIG   NSEC 8 1 7200
> 20220121132017 20220108061050 30015 se.
> jzWI5l5Sxyb2sOLzCWNX06nwmCtZuFdS3PvmivnyOPVZ3cw+blBXNYwN
> cFCYFdMC7R31W0ABBuT587mAm7Ae5NJX2GnXGcNgaVcD9VhKWAjJHpqf
> +NJcLOF9771m/BKPC7dKTwt/zVdKJSwFjaYTr0streS9OMCnJXbiWaQc
> CMDmzko2WiWdBNDAbZ8H/OfKymYjgJz1hZynMdl5LyWcGgxlOksuLKSv
> 4xg4Ey07r4ZCy5XTQwfHG74qWa+61BVjfP3KEEEB42B0rZX8lT15B9MS
> Cg9RmBObNC5FYjXGkbeik6iXrdOGzUUURHay+th9SJ4BGIFIV8fyyDTd oxOc5w==
>
>
> Thank you for reading,
>
> Hannes Mehnert
> ___
> dns-operations mailing list
> dns-operations@lists.dns-oarc.net
> https://lists.dns-oarc.net/mailman/listinfo/dns-operations
>
___
dns-operations mailing list
dns-operations@lists.dns-oarc.net
https://lists.dns-oarc.net/mailman/listinfo/dns-operations


[dns-operations] DNSSec validation issue for .se (missing denial of existence for *.se)

2022-01-11 Thread Hannes Mehnert

Hi DNS operators,

since this is my first mail here, I first would like to thank you all 
for the constructive discussions and technical expertise. I'm developing 
a DNS suite in OCaml, a statically typed functional programming language 
[see https://github.com/mirage/ocaml-dns // https://mirageos.org if 
interested], and have learned a lot from lurking on this list. My 
current work item is a recursive resolver.


When I just implemented the denial of existence for DNSSec (with NSEC), 
I stumbled upon the TLD .se that uses NSEC. I mailed earlier to 
registry-default at nic dot se (the hostmaster in the SOA of .se), but 
didn't get a reply.


Of course, I may be wrong with my analysis, if this is the case please 
help me to understand how this should work.


I'm wondering how other validators (public resolvers) deal with the 
following issue, which is a missing denial of existence for *.se: So, a 
request for resource record type A, domain name a.se results in the 
following:


$ dig +dnssec a.se

se. 5363IN  SOA catcher-in-the-rye.nic.se. 
registry-default.nic.se. 2022010921 1800 1800 864000 7200
se. 5363IN  RRSIG   SOA 8 1 172800 
20220122054639 20220109191050 30015 se.  [...]

_nicname._tcp.se.   6694IN  NSECacem.a.se. SRV RRSIG NSEC
_nicname._tcp.se.   6694IN  RRSIG   NSEC 8 3 7200 
20220121191006 20220108001053 30015 se. [...]


Which provides a non-existence proof for everything between 
_nicname._tcp.se and acem.a.se, but nothing for *.se (which according to 
the order of canonical domain names, is before _nicname._tcp.se -- even 
before 0.se that seems to be the first registered domain name).


The NSEC record missing from the reply above is the following NSEC and 
RRSIG ($ dig +dnssec ns \!.se).


se. 4353IN  NSEC0.se. NS SOA TXT RRSIG 
NSEC DNSKEY
se. 4353IN  RRSIG   NSEC 8 1 7200 
20220121132017 20220108061050 30015 se. 
jzWI5l5Sxyb2sOLzCWNX06nwmCtZuFdS3PvmivnyOPVZ3cw+blBXNYwN 
cFCYFdMC7R31W0ABBuT587mAm7Ae5NJX2GnXGcNgaVcD9VhKWAjJHpqf 
+NJcLOF9771m/BKPC7dKTwt/zVdKJSwFjaYTr0streS9OMCnJXbiWaQc 
CMDmzko2WiWdBNDAbZ8H/OfKymYjgJz1hZynMdl5LyWcGgxlOksuLKSv 
4xg4Ey07r4ZCy5XTQwfHG74qWa+61BVjfP3KEEEB42B0rZX8lT15B9MS 
Cg9RmBObNC5FYjXGkbeik6iXrdOGzUUURHay+th9SJ4BGIFIV8fyyDTd oxOc5w==



Thank you for reading,

Hannes Mehnert


OpenPGP_signature
Description: OpenPGP digital signature
___
dns-operations mailing list
dns-operations@lists.dns-oarc.net
https://lists.dns-oarc.net/mailman/listinfo/dns-operations


[dns-operations] Trouble resolving .by TLD due to circular dependency?

2022-01-11 Thread Sascha E. Pollok via dns-operations
--- Begin Message ---

Hello nice people,

for a few days I have worked on an issue we see with our Bind resolvers of different 
versions regarding resolving addresses under .by. I assume it is not Bind's fault at all 
but the result of a circular dependency in .by after a change of the Auth NS beginning of 
January but let me explain what I see.


If I start on an empty cache I query the Root NS for .by and get back these Auth NS with 
originally 2d TTL:


by. 130511  IN  NS  dns1.tld.becloudby.com.
by. 130511  IN  NS  dns3.tld.becloudby.com.
by. 130511  IN  NS  dns2.tld.becloudby.com.
by. 130511  IN  NS  dns5.tld.becloudby.com.
by. 130511  IN  NS  dns4.tld.becloudby.com.

They come with Glue A records:

dns5.tld.becloudby.com. 172800  IN  A   54.180.35.203
dns4.tld.becloudby.com. 172800  IN  A   184.72.17.94
dns2.tld.becloudby.com. 172800  IN  A   93.125.25.73
dns1.tld.becloudby.com. 172800  IN  A   93.125.25.72
dns3.tld.becloudby.com. 172800  IN  A   185.98.83.4

The becloudby.com is maintained by two nameservers:

;; QUESTION SECTION:
;dns1.tld.becloudby.com.IN  A

;; AUTHORITY SECTION:
becloudby.com.  172800  IN  NS  u1.hoster.by.
becloudby.com.  172800  IN  NS  u2.hoster.by.

These machines u1+u2.hoster.by have these IP addresses:

;; QUESTION SECTION:
;u1.hoster.by.  IN  A

;; AUTHORITY SECTION:
hoster.by.  3600IN  NS  dns2.hoster.by.
hoster.by.  3600IN  NS  dns1.hoster.by.

Asking one of them for the IP of u1.hoster.by:

;; QUESTION SECTION:
;u1.hoster.by.  IN  A

;; ANSWER SECTION:
u1.hoster.by.   3600IN  A   93.125.30.201

These nameservers are again under the .by TLD. If we query them for the IP of the .by TLD 
servers, we get a TTL of 600 and an IP:


~$ dig +norec dns1.tld.becloudby.com a @93.125.30.201   # Asking u1.hoster.by for 
dns1.tld.becloudy.com


;; ANSWER SECTION:
dns1.tld.becloudby.com. 600 IN  A   93.125.25.72

Which now has a TTL of 600 as opposed to the TTL that the Root NS gave us (2 
days).
This entry overwrites the previously received Glue A record for dns1.tld.becloudby.com 
which TTL is now 600.


If this cache entry expires, the following steps happen:

- We need to ask again u1.hoster.by for this IP address. This works as its TTL is longer 
(3600s) and we still know that IP.
- Once the cache entry of u1.hoster.by expires also, we need to go back to dns1.hoster.by 
and ask for the IP of u1.hoster.by. This entry is also 3600s and would expire now or later.
- Once dns1.hoster.by is expired, we still had the 2 days TTL entry for .by in our cache 
but without the Glues as the 2d glues have been overwritten by the 600s responses for 
dns1.tld.becloudby.com (reminder: the Auth NS for .BY).


So what we have left in cache are NS entries for the .BY nameservers but without IP 
addresses which causes a SERVFAIL in Bind. Seems to me like there is a circular dependency 
between those servers which is not obvious to a lot of users if e.g. their resolvers use 
the glues parent-centric like Google's 8.8.8.8 NS).


Does this analysis seem correct and are there maybe any .BY ccTLD people on this list to 
take a look at this? I have worked on this together with Anand Buddhdev so I want to thank 
him for working with me. Always a pleasure.


Thank you!

Cheers
Sascha
--- End Message ---
___
dns-operations mailing list
dns-operations@lists.dns-oarc.net
https://lists.dns-oarc.net/mailman/listinfo/dns-operations