Fujiwara-san, the count of word "unstable" in your reply is exactly the reason why I was so strongly opposed to your original proposal at DNS-OARC as I think the Internet Standards should make things more stable than unstable.
I quickly drafted several paragraphs during my PRG-AMS flight and sending them over my short layover, so I won't be able to send any updates in next 10+ hours. Take it or leave it, and I would be also happy to provide more text or co-author the draft if the result would end up in more stable DNS including backwards compatibility and not introduce even more mess into DNS. Here it comes, feel free to incorporate it at various places, or just wait, I'll try to merge it into your draft on my way to Seoul. ~~~~~~~~~~~ Recent authoritative DNS server implementations try to minimize the size of the DNS answers given to the clients. One such technique to minimize the amount of data sent back to client is removing all unnecessary records from the answer such as content of AUTHORITATIVE and ADDITIONAL section unless it's needed by DNS client to validate the answer. The side effect of such answer minimization is that the recursive DNS server might not see the child zone apex NS records unless some client of such resolver explicitly ask for NS records. Therefore the recursive DNS server behavior related to the delegation path is not deterministic. ~~~ While it might be tempting to remove NS records in the child zone apex as those NS records might never be used, there are several problems we have identified: a) when the child and parent zone are served from the same authoritative DNS server instance, the child apex NS records would override any delegation NS records at the parent zone, thus any invalid or missing child zone apex NS records might cause denial of service for such a zone, especially when QNAME minimization is used by the recursive DNS server; b) behavior of strict recursive DNS implementation that doesn't yet implement delegation NS selection specified in this draft might get erratic or broken causing denial of service for the end user; (TODO: Test all the common DNS server implementation.) The recursive DNS servers MUST use delegation NS records in the parent zone to follow delegation chain. The recursive DNS servers SHOULD NOT update the delegation chain with child zone apex NS records, but the authoritative DNS operators MUST act as if the recursive DNS servers might use the child zone apex NS records. Therefore the delegation NS records in the parent zone and the NS records in the child zone apex MUST follow the old semantics and MUST be kept in sync to allow uninterrupted service for recursive DNS servers that do not implement the delegation NS selection specified in this draft. ~~~ The implementation of this draft will also affect the time to live (TTL) for the delegation records as the TTL of the parent zone delegation NS records will always be used. It will not be possible to update the delegation NS records TTL by changing the TTL in the child zone. Therefore the zone operators(?) are advised to plan the changes in the NS records as if the maximum of child and parent TTLs was in effect. The parent zone operators are advised to allow child zone operators to modify TTL value for parent delegation NS records. The parent zone operators might limit the minimum and maximum TTL values to mitigate adverse effects on the parent zone operations. ~~~ The recursive DNS server implementations SHOULD implement different caches for parent zone delegation NS records and child zone apex NS records. The recursive DNS server MIGHT implement the delegation cache snooping by answering the IN NS query with child zone apex NS records in the ANSWER section and the parent zone delegation NS records in the AUTHORITATIVE section. ~~~~~~~~~ Cheers, -- Ondřej Surý -- Technical Fellow -------------------------------------------- CZ.NIC, z.s.p.o. -- Laboratoře CZ.NIC Milesovska 5, 130 00 Praha 3, Czech Republic mailto:ondrej.s...@nic.cz https://nic.cz/ -------------------------------------------- ----- Original Message ----- > From: "fujiwara" <fujiw...@jprs.co.jp> > To: "Ondřej Surý" <ondrej.s...@nic.cz> > Cc: "dnsop" <dnsop@ietf.org> > Sent: Thursday, 10 November, 2016 18:27:14 > Subject: Re: [DNSOP] draft-fujiwara-dnsop-resolver-update-00 > Ondrej.Sury-san, > >> From: Ondřej Surý <ondrej.s...@nic.cz> >> Fujiwara-san, >> >> I was strongly opposed to the idea after your DNS-OARC presentation >> and I am glad you are continuing the effort :). >> >> I had some private conversation with Ralf Weber from Nominum and >> we have conducted few experiments (and I plan to do more). >> >> My biggest concern is that your draft is missing the impact on the >> authoritative side: >> >> 1) what should happen when there's wrong NS at the child? > > Resolvers with "overwrite" will become unstable. > Resolvers with proposed algorithm don't use the child NS. > Queries to parent authoritative servers do not increase. > >> 2) what should happen when there's no NS at the child? > > Resolvers with "overwrite" becomes unstable > if stub resolvers send child NS queries. > Resolvers with proposed algorithm don't use the child NS. > Queries to parent authoritative servers do not increase. > >> 3) what should happen in 1) and 2) when they are at the same server >> (generally >> the child NS is served)? > > Referrals from the grandparent is used. > Queries to the parent zone and the child zone is sent to the shared > authoritative server and it answers authoritative data of the child zone. > > Resolvers with "overwrite" will become unstable > if stub resolvers send child NS queries. > Resolvers with proposed algorithm don't use the child NS. > Queries to authoritative servers do not increase. > >> The most practical thing would be to require that child and parent NS MUST >> match, but we would >> be saying at the same time that it won't be used at all. >> >> The second concern is about TTL. You dismiss it very quickly in 5.4, but >> implementation wise - it would be probably best to split "delegation" and RR >> caches as you generally the query for: >> >> "example.com." IN NS >> >> should return child records with child TTL, but the delegation at parent >> could >> have different values with different TTL. Also I can imagine this will be >> very >> confusing to end-users - when I query my resolver for "IN NS" I generally >> want >> to know when the changes in the delegations will be reflected. > > True. > >> One possible way might be to return child NS in ANSWER and parent NS in >> AUTHORITY section in such case - but this needs to be addressed in the draft. > > It's good idea. Thanks. > >> This will also have an impact on registries - usually the TTL at the parent >> is >> picked by the registry, but when the TTL at the parent could have such strong >> impact on the resolver behavior, the registries would have to modify their >> systems to allow TTL specification per delegated domain. This applies >> especially in the cases when the registry picks some large (but still >> reasonable) number for TTL. > > However, the overwrite does not happen always. > > -- > Kazunori Fujiwara, JPRS <fujiw...@jprs.co.jp> _______________________________________________ DNSOP mailing list DNSOP@ietf.org https://www.ietf.org/mailman/listinfo/dnsop