[DNSfirewalls] Fwd: New Version Notification for draft-vixie-dns-rpz-01.txt

Anne Bennett anne at encs.concordia.ca
Mon Oct 24 22:20:54 UTC 2016


Vernon,

>> I don't think I'd copy the entire RFC 4034 text (it's rather
>> long), but since it's necessary to refer to that sort order,
>> then since RFC 4034 doesn't define "smaller", we might have
>> to resort to "the one that comes last" in that sort order.
> 
> So you prefer replacing "smaller" and "larger" with something about
> "earlier" and "later in the DNSSEC canonical order"?  And similarly
> for "smallest" and "largest"?

Yes, something like that.

> To me "early" sounds fuzzy and a little informal.  

If RFC 4034 section 6 used terms such as "smaller" and "larger" I'd
have no issue, but the only language I can find in that section is:

  - "example" sorts first, followed by names ending in "a.example"
  - the absence of an octet sorts before a zero octet

So we have first (last), and before (after).  The best match I can
think of to that language is earlier/later, but perhaps someone else
has an idea for something better.  I don't think that "smaller/larger"
is clear in this context, or at least, it wasn't to me.

>> That is, while a query or a client IP address is a single
>> entity, it can match multiple policies.  But for the other
>> three trigger types, we can have multiple responses, each of
>> which could in turn match multiple triggers.
> 
> That's the purpose of the precedence rules.  Given the set of of
> all rules that triggered by a DSN response, consistently pick one.

All rules triggered by a DNS *response*, okay.  I think that here:

> I agree that there should be text somewhare saying that the fundamental
> trigger lookup scheme is the familiar DNS matching scheme including
> the odd but unavoidable oddities of zone wildcards.  That is why
> rules are usually doubled, as in having both example.com and
> *.example.com to catch both example.com and any child of example.com.

... you're pointing out that during a lookup, the familiar DNS
matching scheme scheme applies, but when a lookup results in
multiple answers that themselves require further lookups, then
those answers are sorted in DNSSEC canonical order, and processing
continues on them (depth first?) until a match occurs.

I'm re-reading the entire draft to try to understand this idea of
precedence of matches versus "familiar scheme" lookups, and to see if
there's any text I could suggest to make it easier for the first-time
reader to understand it.  This re-reading is bringing up more comments
and questions, which I'll send separately.

Meanwhile, I want to keep track of your answer to my example; I'll
come back and work through it again once I've finished my re-reading.
The rest is just a quote of the example; you can stop reading here.

>> Say we had these policies (all in the same RPZ), which I show
>> in Canonical DNS Name Order):
>>
>>         *.dom.ain.rpz-nsdname   CNAME walled-garden-a.example.net.
>>   ns4.aaa.dom.ain.rpz-nsdname   CNAME walled-garden-b.example.net.
>>     *.bbb.dom.ain.rpz-nsdname   CNAME walled-garden-c.example.net.
>>   ns3.bbb.dom.ain.rpz-nsdname   CNAME walled-garden-d.example.net.
>>
>> and we queried for the A record for "bad.example.com", where
>> "example.com" had NS records "ns1.example.com", "ns2.dom.ain",
>> "ns3.bbb.dom.ain", and "ns4.aaa.dom.ain".  In this case,
>> three of the four NS records match policy rules, and at least
>> one of them matches two policy rules (possibly two of them,
>> *see below).  Here I show the actual NS records (responses)
>> in Canonical DNS Name Order, then each group of matches itself
>> in Canonical DNS Name Order:
>>
>>   ns4.aaa.dom.ain      matches *.dom.ain.rpz-nsdname (?)
>>   ns4.aaa.dom.ain  and matches ns4.aaa.dom.ain.rpz-nsdname
>>
>>   ns3.bbb.dom.ain      matches *.dom.ain.rpz-nsdname (?)
>>   ns3.bbb.dom.ain  and matches *.bbb.dom.ain.rpz-nsdname
>>   ns3.bbb.dom.ain  and matches ns3.bbb.dom.ain.rpz-nsdname
>>
>>       ns2.dom.ain      matches *.dom.ain.rpz-nsdname
>>
>>   ns1.example.com   no match
>>
>> So the last match among the responses is "ns2.dom.ain", but
>> the last match match among the triggers is "ns3.bbb.dom.ain";
>> which should take precedence?
> 
> In normal DNS matching, wildcards are ignored when there is a
> specific match, and so the first 3 wildcard triggers are implicitly
> excluded while ns4.aaa.dom.ain and ns3.bbb.dom.ain are being sought
> in the policy zone database.
> 
> The DNSSEC canonical order puts
>  ns4.aaa.dom.ain < ns3.bbb.dom.ain < ns2.dom.ain 
>  ain.dom.aaa.ns4 < ain.dom.bbb.ns3 < ain.dom.ns2 
>  ain.dom.aaa     < ain.dom.bbb     < ain.dom.ns2 
> and so the winning rule is trigger by ns4.aaa.dom.ain

Anne.
-- 
Ms. Anne Bennett, Senior Sysadmin, ENCS, Concordia University, Montreal H3G 1M8
anne at encs.concordia.ca                                    +1 514 848-2424 x2285


More information about the DNSfirewalls mailing list