Re: [DNSOP] I-D Action: draft-ietf-dnsop-avoid-fragmentation-01.txt

2020-08-06 Thread fujiwara
> From: Tony Finch 
> I've had a look through and I have a few comments.

Thanks.

> Regarding smallest MTUs, I understand from Geoff Huston that it's common
> for IPv6 breakage to start at 1281 bytes.

Then, without path MTU discovery, IPv6 default path MTU value should
equal to the IPv6 minimum link MTU size 1280.

How about IPv4 ?

> I would find it easier to understand the recommendations if the
> requirements for responder and requester were separated. In particular I
> don't know how a responder can do MTU discovery (though a simplified
> version might be possible).

Then, separate real recommendations to "3.1 Recommendations for UDP
requestors" and "3.2 Recommendations for UDP responders".

> Here's my understanding of your recommendations:
> 
> Requester:
> 
> * should have a default EDNS buffer size no more than 1500 bytes (smaller
>   than the 4096 that is currently typical, but bigger than the flag day
>   recommendation)
> 
> * should probe to discover the real MTU per destination, which can be less
>   than the default, and use the discovered MTU for the EDNS buffer size in
>   queries (resolvers already do this)

In my opinion, if path MTU discovery to works, then use the value
(minus header sizes) as Requestor's Payload Size in EDNS0.
Otherwise, use "good" default EDNS buffer size (for example, 1232).

> * at the moment UDP timeouts don't cause fallback to TCP, but this should
>   be added to the list of recovery tactics
>
> * requesters are supposed to guess (how?) the size of response before
>   sending a query, so that they can skip UDP and go straight to TCP

If requestors set good EDNS Requestor's Payload size,
responders can set TC bit if response size exceeds the EDNS0 size.
(Otherwise, fragmented responses may lose.)

> * should set the DONTFRAG option, though it's unlikely they are sending
>   a query big enough for this to matter. (UPDATE clients need to care,
>   though.)
> 
> Responder:
> 
> * should have a default UDP response size limit of no more than 1500 bytes
>   (smaller than the 4096 that is currently typical, but bigger than the
>   flag day recommendation)

To avoid packet loss caused by IP_DONTFRAG, if responders know real
path MTU value, responders compose packets fit in the path MTU.

Otherwise, at least, IP_DONTFRAG works well.

I think that most of DNS servers are located at 1500-octets MTU area.

> * should limit response sizes by based on the minimum of the request's
>   EDNS buffer size and the server's limit (servers already do this)

If operators of DNS servers know that the network does not support
1500-octet MTU, operators should consider good UDP response size
limit.

> * should use minimal responses
> 
> * should set the DONTFRAG option on responses

And responders should set TC=1 (and re-compose smaller response)
if sendto returned EMSGSIZE.

> * should listen for ICMP frag needed packets, and react by re-sending the
>   response (which is embedded in the ICMP packet) with a TC bit set

It is a part of path MTU discovery.

> Network:
> 
> * should send rate-limited ICMP frag needed messages to DNS servers when
>   appropriate

I don't know.

--
Kazunori Fujiwara, JPRS 

___
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop


Re: [DNSOP] Alias mode processing in auths for draft-ietf-dnsop-svcb-https-01

2020-08-06 Thread Pieter Lexis
On 8/5/20 11:13 PM, Mark Andrews wrote:
>> On 6 Aug 2020, at 04:51, Pieter Lexis  wrote:
>> On 8/5/20 8:03 PM, Brian Dickson wrote:
>>> (I am not sure of the question/issue of including the SOA, or where that
>>> would go, but I'll defer to anyone who knows or has an opinion. My gut
>>> says, do whatever gets done for CNAME.)
>>
>> The SOA MUST go in the packet. As a compliant resolver talking to an
>> auth that does not implement SVCB will follow the chain and the auth
>> will respond with NODATA (and thus the SOA).
>
> You make a SVCB query you will get a CNAME if it exists at the QNAME, SVCB
> if it exists at the QNAME or you will get NODATA if neither exists.
If you
> find a CNAME you repeat at the target of the CNAME.
>
> If the server is SVCB aware it will then process the SVCB RRset and
add those
> records to the additional section, if any of those trigger additional
section
> processing those records too get added to the additional section.  This is
> consistent with STD 13 that says words to the effect of “add anything
useful” (I’m
> not going to look up the exact words).  The additional section rules
for SVCB say
> to add CNAME, SVCB, A and  to the additional section.

The semantic rules for the Alias form lead me to believe that an SVCB at
the targetname *is* an answer to the question (no other SVCB at that
ownername, at the very least no Service mode SVCB at that name).

The end-clients (browsers, other programs actually querying for
SVCB/HTTPS)

Looking at section 5.4.1 ("Ranking Data") of RFC 2181, a non-SVCB
recursor might accept the data in the answer section:

  […]
  + Data from the answer section of a non-authoritative answer, and
non-authoritative data from the answer section of authoritative
answers,
  + Additional information from an authoritative answer,
Data from the authority section of a non-authoritative answer,
Additional information from non-authoritative answers.

On the other hand, a non-SVCB-aware resolver might even choose to drop
both the data in the ANSWER and ADDITIONAL section that do not match the
original QNAME. Thus only serving its client the SVCB alias record in
the ANSWER section, leading to the end-client re-querying for the
targetname SVCB record.

It would be good to know what most implementations do when they
encounter in-bailiwick data with a different owner name in both the
ANSWER and ADDITIONAL sections. Then the SCVB draft can pick the right
method:

 * Semantically correct (chained SVCB in ANSWER, using 'CNAME chasing')
 * Backwards compatible (All related data in ADDITIONAL)

Best regards,

Pieter

-- 
Pieter Lexis
PowerDNS.COM BV -- https://www.powerdns.com

___
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop


Re: [DNSOP] Starting a -bis document for RFC 8109: Initializing a DNS Resolver with Priming Queries

2020-08-06 Thread Andrew McConachie

Dear Peter, Matt and Paul,

What does it mean for a resolver to be primed, or for a resolver to not 
be primed? For example, is a resolver considered primed only if it has 
all root server names and IP addresses? 50%? At least 1?



   Priming is the act of finding the list of root servers from a
   configuration that lists some or all of the purported IP addresses 
of

   some or all of those root servers.  A recursive resolver starts with
   no information about the root servers, and ends up with a list of
   their names and their addresses.

If that were true it would be impossible for the resolver to find 
anything. It definitely starts with some information about the root 
servers. Maybe change "no information" to "this information".


Thanks,
Andrew

On 1 Jul 2020, at 1:39, Paul Hoffman wrote:

Greetings again. Since RFC 8109 has been published, there has been 
more discussion of what DNS priming means. This has caused the 
document authors to see a few places where RFC 8109 could be clarified 
and improved. Please see:

   https://datatracker.ietf.org/doc/draft-klh-dnsop-rfc8109bis/

Comments are welcome. If the WG wants to adopt this work, that would 
be grand as well.


--Paul Hoffman___
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop


___
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop


Re: [DNSOP] Alias mode processing in auths for draft-ietf-dnsop-svcb-https-01

2020-08-06 Thread Mark Andrews


> On 6 Aug 2020, at 20:28, Pieter Lexis  wrote:
> 
> On 8/5/20 11:13 PM, Mark Andrews wrote:
>>> On 6 Aug 2020, at 04:51, Pieter Lexis  wrote:
>>> On 8/5/20 8:03 PM, Brian Dickson wrote:
 (I am not sure of the question/issue of including the SOA, or where that
 would go, but I'll defer to anyone who knows or has an opinion. My gut
 says, do whatever gets done for CNAME.)
>>> 
>>> The SOA MUST go in the packet. As a compliant resolver talking to an
>>> auth that does not implement SVCB will follow the chain and the auth
>>> will respond with NODATA (and thus the SOA).
>> 
>> You make a SVCB query you will get a CNAME if it exists at the QNAME, SVCB
>> if it exists at the QNAME or you will get NODATA if neither exists.
> If you
>> find a CNAME you repeat at the target of the CNAME.
>> 
>> If the server is SVCB aware it will then process the SVCB RRset and
> add those
>> records to the additional section, if any of those trigger additional
> section
>> processing those records too get added to the additional section.  This is
>> consistent with STD 13 that says words to the effect of “add anything
> useful” (I’m
>> not going to look up the exact words).  The additional section rules
> for SVCB say
>> to add CNAME, SVCB, A and  to the additional section.
> 
> The semantic rules for the Alias form lead me to believe that an SVCB at
> the targetname *is* an answer to the question (no other SVCB at that
> ownername, at the very least no Service mode SVCB at that name).

SVCB is NOT A CNAME and despite it being called “ALIAS FORM” it does not 
produce the equivalent of CNAME processing in the ANSWER section.

I really don’t know how this thread got started with clear and unambiguous 
instructions to add all the records to the additional section.

"Cooperating DNS recursive resolvers will perform subsequent record resolution 
(for SVCB, A, and  records) and return them in the Additional Section of 
the response. Clients either use responses included in the additional section 
returned by the recursive resolver or perform necessary SVCB, A, and  
record resolutions. DNS authoritative servers can attach in-bailiwick SVCB, A, 
, and CNAME records in the Additional Section to responses for a SVCB 
query."

Yes this means you need may need to change additional section process to chase 
other records.  Named was already doing this for one type and with HTTPS and 
SVCB needing we made the processing general.  Yes, it also means that one has 
to add CNAMEs to the additional section when processing HTTPS or SVBC.

> The end-clients (browsers, other programs actually querying for
> SVCB/HTTPS)
> 
> Looking at section 5.4.1 ("Ranking Data") of RFC 2181, a non-SVCB
> recursor might accept the data in the answer section:
> 
>  […]
>  + Data from the answer section of a non-authoritative answer, and
>non-authoritative data from the answer section of authoritative
>answers,
>  + Additional information from an authoritative answer,
>Data from the authority section of a non-authoritative answer,
>Additional information from non-authoritative answers.
> 
> On the other hand, a non-SVCB-aware resolver might even choose to drop
> both the data in the ANSWER and ADDITIONAL section that do not match the
> original QNAME. Thus only serving its client the SVCB alias record in
> the ANSWER section, leading to the end-client re-querying for the
> targetname SVCB record.
> 
> It would be good to know what most implementations do when they
> encounter in-bailiwick data with a different owner name in both the
> ANSWER and ADDITIONAL sections. Then the SCVB draft can pick the right
> method:
> 
> * Semantically correct (chained SVCB in ANSWER, using 'CNAME chasing')
> * Backwards compatible (All related data in ADDITIONAL)

Named ignores anything it is not expecting.  That said adding DNAME to the 
answer section caused problems (answers being rejected because a DNAME was 
present).  Adding unexpected stuff to the ANSWER section is always fought with 
problems.  If a client falls over because stuff was added to the additional 
section then the client is broken.

> Best regards,
> 
> Pieter
> 
> -- 
> Pieter Lexis
> PowerDNS.COM BV -- https://www.powerdns.com

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

___
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop


Re: [DNSOP] [Ext] Starting a -bis document for RFC 8109: Initializing a DNS Resolver with Priming Queries

2020-08-06 Thread Paul Hoffman
On Aug 6, 2020, at 4:08 AM, Andrew McConachie  wrote:
> 
> What does it mean for a resolver to be primed, or for a resolver to not be 
> primed? For example, is a resolver considered primed only if it has all root 
> server names and IP addresses? 50%? At least 1?

Excellent questions, two that the WG can certainly consider. Note that it *is* 
two questions, the root server names and the associated addresses.

From the text you quote:

>   Priming is the act of finding the list of root servers from a
>   configuration that lists some or all of the purported IP addresses of
>   some or all of those root servers.  A recursive resolver starts with
>   no information about the root servers, and ends up with a list of
>   their names and their addresses.

RFC 8109 indicates that priming means knowing the full set of names and the 
full set of addresses.

> If that were true it would be impossible for the resolver to find anything. 
> It definitely starts with some information about the root servers. Maybe 
> change "no information" to "this information".

This distinction is important. A resolver starts with no actual information, 
but only meta-information: where to get the actual names and addresses for the 
root server. Is there a better way to say this in the -bis document?

--Paul Hoffman

smime.p7s
Description: S/MIME cryptographic signature
___
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop


Re: [DNSOP] Questions on draft-ietf-dnsop-delegation-only

2020-08-06 Thread Hugo Salgado
On 16:55 30/07, Patrick Mevzek wrote:
> 
> Only if you take the "hosts as objects" case (where any hosts to be used as
> to be provision like a domain but by just providing, in some cases, some IP
> addresses), which is only one of the two, the other being "hosts as
> attributes (of a domain object)"
> 

.CL uses "hosts as attributes".

> There are various solutions, all bad in some aspects:
> 
[...]
> - have the registry let the domain be deleted and then have domainB be
> broken (which it is already in a way since the delegations to those
> nameservers can be explicitly made broken; but the difference is between
> registrar A breaking registrar B stuff, or the registry breaking registrar B
> stuff).

And this approach. When DomainA is deleted/deactivated, its
nameservers are gone in the .cl zone, together with their
glues. Nameservers ns1.domainA.example and ns2.DomainA.example
are deleted from DomainB's NS set too, because there's no DomainA
anymore... and so we keep .cl consistency.

So we can say .CL is truly delegation-only. But we know there're
only a handful of registries using hosts-as-attributes.

Hugo



signature.asc
Description: PGP signature
___
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop


Re: [DNSOP] Alias mode processing in auths for draft-ietf-dnsop-svcb-https-01

2020-08-06 Thread Brian Dickson
On Thu, Aug 6, 2020 at 6:22 AM Mark Andrews  wrote:

>
>
> I really don’t know how this thread got started with clear and unambiguous
> instructions to add all the records to the additional section.
>

The possibility of changing what is specified in the draft, was what
started this thread.
Your responses all suppose that it is not possible to change what is
specified in the draft.
It would be helpful (IMHO) to the conversation to give consideration to the
contents of the thread, from the perspective that the specs in the draft
are not absolutely set in stone and immutable.

Here's the quote from Ben:

I think Section 4.1 is pretty clear that everything goes in the Additional
section.  (But this can be changed!)



>
> "Cooperating DNS recursive resolvers will perform subsequent record
> resolution (for SVCB, A, and  records) and return them in the
> Additional Section of the response. Clients either use responses included
> in the additional section returned by the recursive resolver or perform
> necessary SVCB, A, and  record resolutions. DNS authoritative servers
> can attach in-bailiwick SVCB, A, , and CNAME records in the Additional
> Section to responses for a SVCB query."
>
> Yes this means you need may need to change additional section process to
> chase other records.  Named was already doing this for one type and with
> HTTPS and SVCB needing we made the processing general.  Yes, it also means
> that one has to add CNAMEs to the additional section when processing HTTPS
> or SVBC.
>
>
We can all read, and we understand what the current draft says.
That's NOT what is being discussed (how to interpret those words).
What IS being discussed in this thread is whether it may be more sensible
to align the process of handling the "alias" form in a manner more
consistent with how CNAME processing happens.
It is a proposal to change the spec itself, rather than an alternate
interpretation of what the current draft of the spec says.

This is why I suggested that, while it is not CNAME per se, treating it as
"constrained alias applicable only to SVCB queries" isn't a huge leap, and
would simplify the code for handling alias form, on both the server and
client side of a lookup.

If the standard says they belong in the Answer section (as I am
suggesting), I think the expected BIND client-side handling of SVCB records
(alias and non-alias, if in-bailiwick) and CNAME records if they are both
placed in the answer section by the server should be okay, in both
situations: when SVCB is "unknown" (it's a match to QTYPE), or when SVCB
handling logic is added.

Brian
___
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop


Re: [DNSOP] [Ext] Starting a -bis document for RFC 8109: Initializing a DNS Resolver with Priming Queries

2020-08-06 Thread George Michaelson
If I (insanely) ran a totally manual, out of band process to
periodically canvas the space and injected the knowns into the model
of "root" for my resolver, would I be able to say I am primed?

I am trying to get to the point that the "how" part is only exemplary,
explanatory. The requirement is that you have the information, now how
you get it or how it comes into your resolver.

The distinction between shipped states of the root.hints and the
actual live mappings of the domain labels inherent in it, to addresses
(if you like) I can bypass the hints file ,and use SQL to update my
root mapping.

I think the intent of "priming" is that you then populate the
information from 'inside' DNS. But, again, its only advisory, its not
standards enforced is it? I can populate my continuing knowledge of
the state of the DNS at the root, or anywhere else, in any mechanism I
like.

I could periodically FTP the zone files from places, and populate my
resolver cache state from these. I could basically "never" forward DNS
queries high in the tree, if I felt like making my server do that.

Am I "not primed" if I do this?

(this mechanism wouldn't support authenticated denial of arbitrary
labels, as an example)

-G

On Fri, Aug 7, 2020 at 12:42 AM Paul Hoffman  wrote:
>
> On Aug 6, 2020, at 4:08 AM, Andrew McConachie  wrote:
> >
> > What does it mean for a resolver to be primed, or for a resolver to not be 
> > primed? For example, is a resolver considered primed only if it has all 
> > root server names and IP addresses? 50%? At least 1?
>
> Excellent questions, two that the WG can certainly consider. Note that it 
> *is* two questions, the root server names and the associated addresses.
>
> From the text you quote:
>
> >   Priming is the act of finding the list of root servers from a
> >   configuration that lists some or all of the purported IP addresses of
> >   some or all of those root servers.  A recursive resolver starts with
> >   no information about the root servers, and ends up with a list of
> >   their names and their addresses.
>
> RFC 8109 indicates that priming means knowing the full set of names and the 
> full set of addresses.
>
> > If that were true it would be impossible for the resolver to find anything. 
> > It definitely starts with some information about the root servers. Maybe 
> > change "no information" to "this information".
>
> This distinction is important. A resolver starts with no actual information, 
> but only meta-information: where to get the actual names and addresses for 
> the root server. Is there a better way to say this in the -bis document?
>
> --Paul Hoffman___
> DNSOP mailing list
> DNSOP@ietf.org
> https://www.ietf.org/mailman/listinfo/dnsop

___
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop


Re: [DNSOP] Alias mode processing in auths for draft-ietf-dnsop-svcb-https-01

2020-08-06 Thread Mark Andrews


> On 7 Aug 2020, at 04:03, Brian Dickson  wrote:
> 
> 
> 
> On Thu, Aug 6, 2020 at 6:22 AM Mark Andrews  wrote:
> 
> 
> I really don’t know how this thread got started with clear and unambiguous 
> instructions to add all the records to the additional section.
> 
> The possibility of changing what is specified in the draft, was what started 
> this thread.
> Your responses all suppose that it is not possible to change what is 
> specified in the draft.
> It would be helpful (IMHO) to the conversation to give consideration to the 
> contents of the thread, from the perspective that the specs in the draft are 
> not absolutely set in stone and immutable.
> 
> Here's the quote from Ben:
> I think Section 4.1 is pretty clear that everything goes in the Additional 
> section.  (But this can be changed!) 
>  
> 
> "Cooperating DNS recursive resolvers will perform subsequent record 
> resolution (for SVCB, A, and  records) and return them in the Additional 
> Section of the response. Clients either use responses included in the 
> additional section returned by the recursive resolver or perform necessary 
> SVCB, A, and  record resolutions. DNS authoritative servers can attach 
> in-bailiwick SVCB, A, , and CNAME records in the Additional Section to 
> responses for a SVCB query."
> 
> Yes this means you need may need to change additional section process to 
> chase other records.  Named was already doing this for one type and with 
> HTTPS and SVCB needing we made the processing general.  Yes, it also means 
> that one has to add CNAMEs to the additional section when processing HTTPS or 
> SVBC.
> 
> 
> We can all read, and we understand what the current draft says.
> That's NOT what is being discussed (how to interpret those words).
> What IS being discussed in this thread is whether it may be more sensible to 
> align the process of handling the "alias" form in a manner more consistent 
> with how CNAME processing happens.
> It is a proposal to change the spec itself, rather than an alternate 
> interpretation of what the current draft of the spec says.
> 
> This is why I suggested that, while it is not CNAME per se, treating it as 
> "constrained alias applicable only to SVCB queries" isn't a huge leap, and 
> would simplify the code for handling alias form, on both the server and 
> client side of a lookup.
> 
> If the standard says they belong in the Answer section (as I am suggesting), 
> I think the expected BIND client-side handling of SVCB records (alias and 
> non-alias, if in-bailiwick) and CNAME records if they are both placed in the 
> answer section by the server should be okay, in both situations: when SVCB is 
> "unknown" (it's a match to QTYPE), or when SVCB handling logic is added.
> 
> Brian

What benefit is there in changing this now?  Moving the SVBC chain (graph 
actually) to the answer section.  I know I can follow a graph much easier in 
the additional section than I can in the answer section with simple depth 
limited recursion.  In the answer section I have to initiate multiple parallel 
recursions to complete the graph hitting different zones. What happens when one 
of those recursions fail? Do I return a partial answer? Do I SERVFAIL the 
entire query?  What if one returns NXDOMAN? With everything in the addition 
section those questions go away.  I return what I have.  I can initiate 
speculative queries for missing RRsets where I don’t have NODATA/NXDOMAIN 
cached so when the client comes back I have the response in cache.

The code point has been allocated.  Implementations have been written to the 
existing spec.  That’s what happens when you ask for a code point. You are 
saying:
* This is its wire form.
* This is its presentation form. 
* This is what the nameserver does. 
Now we can go play with the rest of the specification and tidy that up with 
nameservers that know about the code point. Working group chairs are supposed 
to believe the specification is in this state of readiness before asking for a 
early code point.

If you want to compare to CNAME and query for CNAME you get back exactly 1 
CNAME record even if there is a chain of CNAME records.  The target is not 
followed.  This is RFC 1034 behaviour.

What I would like is for SVCB alias form to ONLY require looking for SVCB 
records and SVCB service mode to only require looking up address records.  At 
the moment there is a scatter gun approach though I may have missed something.  
CNAME/DNAME records are found as a side effect of looking for other types.

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

___
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop


Re: [DNSOP] [Ext] Starting a -bis document for RFC 8109: Initializing a DNS Resolver with Priming Queries

2020-08-06 Thread Paul Hoffman
On Aug 6, 2020, at 3:32 PM, George Michaelson  wrote:
> 
> If I (insanely) ran a totally manual, out of band process to
> periodically canvas the space and injected the knowns into the model
> of "root" for my resolver, would I be able to say I am primed?

Not by the standard, no. RFC 8109 was passed by this WG as a standard.

> I am trying to get to the point that the "how" part is only exemplary,
> explanatory. The requirement is that you have the information, now how
> you get it or how it comes into your resolver.

That is not true for this standard. This standard gives the way to be primed 
following what has already been standardized before now. You can get the NS 
RRset for the root zone into your resolver in other ways, and the resolver 
would work fine, but that is not priming as standardized here.

If you're asking the trivial question of whether you could continue to operate 
without following the standard, the trivial answer is of course "yes".

> The distinction between shipped states of the root.hints and the
> actual live mappings of the domain labels inherent in it, to addresses
> (if you like) I can bypass the hints file ,and use SQL to update my
> root mapping.
> 
> I think the intent of "priming" is that you then populate the
> information from 'inside' DNS. But, again, its only advisory, its not
> standards enforced is it?

You could ask to remove that designation in this -bis document if you want. I, 
for one, would disagree with such a request.

> I can populate my continuing knowledge of
> the state of the DNS at the root, or anywhere else, in any mechanism I
> like.

Yep, and nothing in the current standard or this updating document says that 
you can't. They say that the standard for priming is done this way. 

> I could periodically FTP the zone files from places, and populate my
> resolver cache state from these. I could basically "never" forward DNS
> queries high in the tree, if I felt like making my server do that.
> 
> Am I "not primed" if I do this?

Not by the standard, no. You still would have a running system. If you want to 
call it "primed" (or "Fred"), that's up to you.

--Paul Hoffman

smime.p7s
Description: S/MIME cryptographic signature
___
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop


Re: [DNSOP] [Ext] Starting a -bis document for RFC 8109: Initializing a DNS Resolver with Priming Queries

2020-08-06 Thread George Michaelson
No. thats good and clear. Priming is not just the concept of being
correct, its specifically following a mandated in-band mechanism. It
is a standard, and the bis requirements are not just "arrive at the
state, don't care how" they are "arrive at the state by following this
specific procedure" -otherwise, you cannot say you are primed in the
RFC sense.

-G

___
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop


Re: [DNSOP] Alias mode processing in auths for draft-ietf-dnsop-svcb-https-01

2020-08-06 Thread Brian Dickson
On Thu, Aug 6, 2020 at 4:11 PM Mark Andrews  wrote:

>
>
> What benefit is there in changing this now?  Moving the SVBC chain (graph
> actually) to the answer section.  I know I can follow a graph much easier
> in the additional section than I can in the answer section with simple
> depth limited recursion.  In the answer section I have to initiate multiple
> parallel recursions to complete the graph hitting different zones. What
> happens when one of those recursions fail? Do I return a partial answer? Do
> I SERVFAIL the entire query?  What if one returns NXDOMAN? With everything
> in the addition section those questions go away.  I return what I have.  I
> can initiate speculative queries for missing RRsets where I don’t have
> NODATA/NXDOMAIN cached so when the client comes back I have the response in
> cache.


I don't think this actually changes the spec, only clarifies it or fixes
errors. It doesn't change wire format or presentation format, nor does
it change the logical resolution tree. It only proposes a change to where
the authoritative server should place RRs when QTYPE is found. It does so
to maintain consistency with the general processing rules from 1034. That
it happens to very closely align with parts of the CNAME rules, is a happy
coincidence.

But, this is the correct time to fix lingering issues that require
clarification or correction. The latest rev, which includes substantial
changes, is only a few weeks old (early June to early August).

Here's a run-down of how I see the more explicit summary of what an
authoritative server should do:

An authority server should (in response to an SVCB query) return, at most

   - a single sequence of zero or more CNAMEs (with a 1:1 linkage from
   RDATA to owner once the chain is normalized), which must be in the Answer
   section
   - followed optionally by an SVCB record set of only AliasForm records,
   - followed optionally by an SVCB record set of only ServiceForm records.

These would all necessarily be in the Answer section, as they all are (a)
in-bailiwick, and (b) match the QTYPE (or are CNAMEs and as per RFC 1034
required to be in the Answer section).
The above statement is ONLY in reference to recursive-to-authority
query/response packets.

Note: section 2.4.1 talks about AliasMode, but does not refer to Answer vs
Additional sections at all. It only specifies the logical relationship
between owner names and TargetNames and SVCB types.
Note: Section 4.1 (Authoritative Servers) is only one paragraph long. IMHO,
this is the part that is way under-specified. It also appears to be
conflating the Additional section placement with what the Client expects.
Clients should not be talking directly to Authoritative servers, so it
might be a legitimate error that needs to be fixed. The overall placement
of what should be an Answer, in the Additional section (i.e. when QTYPE ==
SVCB and RRTYPE returned == SVCB) is at odds with RFC 1034, IMNSHO.

NB: If (and only if) there are in-bailiwick A/ records which are also
resolved from the AliasForm records, those would need to be in the
Additional section; this is not something I dispute in any way.
Also NB: If TargetName names can be CNAME owner names (see below), it's not
entirely clear whether those should go in the Answer section or Additional
section. My initial opinion on this is, it's really Additional section
processing, as there was no rewriting of the QNAME itself involved, so put
it in the Additional section.
Also NB: If an authority server happened to be authoritative for multiple
zones, any SVCB records of either form from the non-in-bailiwick zone(s),
if included at all, ,should be in the Additional section. (The spec doesn't
mention authoritative servers that are authoritative for multiple zones, so
my assumption would be that adding these should be explicitly excluded by
the spec (but is not), or their treatment should be explicitly outlined by
the spec as belonging in the Additional section.)

So, to address your other questions:
How a recursive responds to a client is something else entirely; whether
and where SVCB records get returned might be an implicit signal for
understanding SVCB as something other than "unknown" record types. Putting
everything into the Additional section would be okay, but really only if
the recursive knew the client was an actual end system, and not another
resolver in "forwarder" mode. A more conservative approach would be to put
all the received Answer sections in the Answer section, and all the
Additional sections in the additional section.

I don't think the graph process depends on where the authoritative puts the
answers to a single query... you have to deal with the results either way.
Each of those is going to be an atomic result with a single RCODE.
This actually provides stronger support for AliasMode treatment being the
same as CNAME treatment.
If an authoritative server is adding in-bailiwick data, and gets to a
TargetName which is (a) in-bailiwick

Re: [DNSOP] Alias mode processing in auths for draft-ietf-dnsop-svcb-https-01

2020-08-06 Thread Brian Dickson
On Thu, Aug 6, 2020 at 7:13 PM Ben Schwartz  wrote:

> Brian,
>
> I think arguing about the strength of the analogies to CNAME (Answer) vs
> SRV (Additional) is going to be a slow path to consensus.  Apart from that
> analogy, I'm not sure I understand your motivating use case.  Could you
> write a small example zone where you think the "chain in Answer" behavior
> has a clear advantage over "chain in Additional"?
>

Sure. Here are two very similar examples, where the first one I think is
required to put the entire chain in the Answer for ${reasons}. (Take as
ready any underscore prefixing needed to make this make sense...)

whatever.example.com. CNAME example.com.
example.com. SVCB 0 my-common-thing.example.com.
my-common-thing.example.com. CNAME my-canonical-thing.example.com
my-canonical-thing.example.com. SVCB  

whatever.example.com. CNAME example.com.
example.com. SVCB 0 my-canonical-thing.example.com
my-canonical-thing.example.com. SVCB  

The motivation here is that the optimization of adding in-bailiwick records
should, to maximize the benefit to the resolver and to the authority
server, process the second CNAME of the first example.

However, if the placement of the in-bailiwick TargetName's records is in
the Additional section, this is somewhat more complex. Either the CNAME
processing has to happen before the TargetName and CNAME canonical name
records are collectively placed in the Additional section, or the
Additional section must now also process the CNAME. Not doing either of
those would leave a "dangling CNAME" in the Additional section, which would
then necessitate an additional query round-trip from the recursive to
authoritative.

Putting them all in the Answer section, means normal Answer section
handling would basically handle the second CNAME "for free".

This is all opportunistic behavior. It doesn't matter whether the extra
records are added or not, so their absence from either section does not
imply their non-existence, nor does it imply the authoritative server is
aware or unaware of SVCB.

I'm not sure I understand why having them be in the Answer section is any
different from having them be in the Additional section, when it comes to
their handling upon receipt by a recursive resolver.

If the rules were "Put any SVCB records into the Answer section along with
CNAME records found while obtaining them", then the only records that
should be in the Additional section would be A/ records and related
DNSSEC records (and possibly CNAMEs found when obtaining the A/
records?).
I think this actually simplifies the processing:
The ServiceForm SVCB record(s) might not be present (based on whether the
authoritative is SVCB-aware and whether it is doing the addition of those
records), but IF they are present, they are in the Answer section.
This ALSO means that the only reason for anything being in the Additional
section is if there are A or  records returned, which (hopefully)
implies the presence of a ServiceForm SVCB record.
The only other reason A/ records should be in the Additional section,
is if there is a delegation, in which case there should be stuff in the
Authority section too.

So basically, it becomes:
AliasForm only in Answer -> not in-bailiwick, or not SVCB-aware. Either
way, another query is needed.
AliasForm plus Service Form in Answer -> Check Additional for A/
records, or query for them if not found
(Both of the above possibly also include CNAMEs in the chain)
CNAME chain only in the Answer -> not in bailiwick, need another query.
No Data in the Answer, Authority has a delegation -> follow the delegation,
possibly use Additional section for glue.

I think this is pretty simple logic, and I don't see the problem... could
you point out the problem if there is one?

Brian

>
___
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop


Re: [DNSOP] Question regarding RFC 8499

2020-08-06 Thread Evan Hunt
On Wed, Aug 05, 2020 at 01:04:22AM +, Paul Vixie wrote:
> On Tuesday, 4 August 2020 23:11:34 UTC Michael De Roover wrote:
>
> i borrowed the initiator/responder terminology from iSCSI, and it seems 
> intuitive to me. this isn't a client/server situation, because a given host 
> might be both a client and a server, in a multi-level transfer graph. we need 
> terminology that describes the transaction, and not the host or hosts 
> participating in that transaction. we stopped using requester/responder when 
> the op codes stopped being limited to just QUERY and IQUERY and STATUS. (in 
> other words, UPDATE is technically a request, but not notionally so.)
> 
> what's your proposal?

As I said earlier, I think "primary" and "seconary" are well-enough
understood concepts now that we can describe roles in a particular
transaction with phrases like "acting as a primary" or "acting as a
secondary" and get the point across without much difficulty. But if
that's not acceptable, then maybe "transfer provider" and "transfer
recipient"?

-- 
Evan Hunt -- e...@isc.org
Internet Systems Consortium, Inc.

___
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop


Re: [DNSOP] Alias mode processing in auths for draft-ietf-dnsop-svcb-https-01

2020-08-06 Thread Mark Andrews


> On 7 Aug 2020, at 11:54, Brian Dickson  wrote:
> 
> 
> 
> On Thu, Aug 6, 2020 at 4:11 PM Mark Andrews  wrote:
> 
> 
> What benefit is there in changing this now?  Moving the SVBC chain (graph 
> actually) to the answer section.  I know I can follow a graph much easier in 
> the additional section than I can in the answer section with simple depth 
> limited recursion.  In the answer section I have to initiate multiple 
> parallel recursions to complete the graph hitting different zones. What 
> happens when one of those recursions fail? Do I return a partial answer? Do I 
> SERVFAIL the entire query?  What if one returns NXDOMAN? With everything in 
> the addition section those questions go away.  I return what I have.  I can 
> initiate speculative queries for missing RRsets where I don’t have 
> NODATA/NXDOMAIN cached so when the client comes back I have the response in 
> cache.
> 
> I don't think this actually changes the spec, only clarifies it or fixes 
> errors. It doesn't change wire format or presentation format, nor does it 
> change the logical resolution tree. It only proposes a change to where the 
> authoritative server should place RRs when QTYPE is found. It does so to 
> maintain consistency with the general processing rules from 1034. That it 
> happens to very closely align with parts of the CNAME rules, is a happy 
> coincidence.

No, it doesn’t maintain consistency with RFC 1034.

 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.

If you want to treat SVBC and HTTPS as CNAMES then lets do that.

 a. If the whole of QNAME is matched, we have found the
node.

If the data at the node is a SINGLE SVCB in AliasForm,
and QTYPE doesn’t match SVBC, copy the SVCB RR into the
answer section of the response, change QNAME to the target
name in the SVCB RR, and go back to step 1.

If the data at the node is SVBC and the 

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.

> But, this is the correct time to fix lingering issues that require 
> clarification or correction. The latest rev, which includes substantial 
> changes, is only a few weeks old (early June to early August).
> 
> Here's a run-down of how I see the more explicit summary of what an 
> authoritative server should do:
> 
> An authority server should (in response to an SVCB query) return, at most
>   • a single sequence of zero or more CNAMEs (with a 1:1 linkage from 
> RDATA to owner once the chain is normalized), which must be in the Answer 
> section
>   • followed optionally by an SVCB record set of only AliasForm records, 

Sorry you just broke DNSSEC if there are more than one AliasForm records.  More 
than one is permitted with the same name.

>   • followed optionally by an SVCB record set of only ServiceForm records.

Well this at the minimum would be a RRset and possibly multiple RRsets.

> These would all necessarily be in the Answer section, as they all are (a) 
> in-bailiwick, and (b) match the QTYPE (or are CNAMEs and as per RFC 1034 
> required to be in the Answer section). 
> The above statement is ONLY in reference to recursive-to-authority 
> query/response packets.
> 
> Note: section 2.4.1 talks about AliasMode, but does not refer to Answer vs 
> Additional sections at all.

When there was already clear instructions to add records to the Additional 
section why would it?

> It only specifies the logical relationship between owner names and 
> TargetNames and SVCB types.
> Note: Section 4.1 (Authoritative Servers) is only one paragraph long. IMHO, 
> this is the part that is way under-specified. It also appears to be 
> conflating the Additional section placement with what the Client expects.

The clients will expect what we tell them to expect.

> Clients should not be talking directly to Authoritative servers,

Garbage.

> so it might be a legitimate error that needs to be fixed. The overall 
> placement of what should be an Answer, in the Additional section (i.e. when 
> QTYPE == SVCB and RRTYPE returned == SVCB) is at odds with RFC 1034, IMNSHO.

The DNS says if there are records of the given type at this name return them 
(this applies to CNAMES as well).
If you happen to encounter a CNAME (and you are not asking for a CNAME)