Hi Vernon

On Fri, Dec 30, 2016 at 11:45:23AM +0000, Vernon Schryver wrote:
> > From: Mukund Sivaraman <m...@isc.org>
> 
> > > In 4.1.1 (IP address encoding in triggers), I suggest adding:
> > >
> > > - The encoded address prefix MUST NOT not have any extra trailing 1s
> > >   (longer address prefix than the prefix length) or the rule will be
> > >   rejected. E.g., the following trigger will be rejected:
> > >
> > >   8.1.0.0.10.rpz-client-ip
> 
> The draft tries to address that issue with these final words of 4.1.1 in
> https://tools.ietf.org/html/draft-vixie-dns-rpz-04
> 
> ]  In the case of an address block, either IPv4 or IPv6, the address
> ]  part MUST NOT contain any non-zero bits after the section indicated
> ]  by the prefix length.  For example, "8.2.0.0.10.rpz-client-ip" is not
> ]  a valid trigger, because in the address "10.0.0.2" expressed in
> ]  binary notation, a one occurs outside the first 8 bits or prefix of
> ]  the address block.
> 
> Please suggest improvements.
> 
> 
> > > Some minor nits:
> > >
> > > - Include an IPv4 example in 4.1.1 (IP address encoding in triggers)
> 
> I don't understand how that would differ from the second paragraph of 4.1.1
> which is
> 
> ]  For example, the address block 192.0.2.0/24 is encoded as
> ]  "24.0.2.0.192".
> 
> Could you suggest some more or better text?
> 
> 
> > > - Maybe include that "zz" label in v6 encoding can also appear on
> > > - either side of the address bits label sequence
> 
> I don't understand.  Describing how zz/:: works seemed difficult (as
> demonstrated by the tech.note), so the draft tries to punt to RFC 5952.
> As always, please suggest better words than are now in the draft.

It seems that I was again reading an older revision of the draft! It
appears Paul did make the changes. I'm sorry for the confusion.

> > 2. BIND makes the assumption that a trigger is exclusive within a zone.
> > So for example, if a zone transfer of an RPZ zone has taken place, and
> > currently the RPZ summary datastructures are being updated, the
> > datastructures can contain policy rules partially from an older version
> > of the zone and partially from a newer version of the zone (from the
> > transfer). As long as the change to an entire RR of a policy rule is
> > applied atomically, to BIND this is a consistent set of policy rules
> > (some of rules from previous version of zone, remaining from newer
> > version). This behavior is consistent with the RPZ rules so far, but it
> > would be wise to make a note of it.
> >
> > (Note that this behavior is different from the old BIND RPZ
> > implementation and so you may not be familiar with it.)
> 
> Are you saying that the rdataset held st->r.r_rdataset or st->r.ns_rdataset
> could be bogus in old versions of BIND?  Or that st->r.ns_rdataset and
> st->r.r_rdataset might be from differing versions of red/black trees?
> If so, that sounds like a good bug fix that might be documented in
> BIND release notes or elsewhere, but not like something that should
> be mentioned in description of the protocol.
> 
> Or do you mean that there should be words somewhere to the effect that
> RPZ results must be sane despite concurrent AXFR/IXFR activity of
> individual policy zones?  If so, please suggest some words.  Then there
> is what should happen if a transfer of a policy zone happens between
> the time QNAME rules are checked and the generally later time when
> NSIP and NSDNAME rules are checked.  The draft tries to pretend that
> all of the rules in all of the policy zones are checked instantaneously,
> and never mind real code or the delays forced by recursion.  Words
> about these issues are not BIND specific would probably be good, so
> please suggest some.

What I mean is is effectively this: an update to an RPZ zone on the
resolver may not be atomic, i.e., the resolver may not match policy
rules against a consistent before- or after- copy of the RPZ zone during
its zone transfer.

It may have a copy of RPZ policy rules in a datastructure that is
partially from a previous revision of the zone, and partially from the
incoming next revision.

Let A be the pre-transfer revision of the zone. B be the post-transfer
revision of the zone:

1. If trigger X doesn't exist in zone A and doesn't exist in zone B, the
resolver will not match against X during the transfer. This is
consistent with the case when the zone update is done atomically.

2. If trigger X exists in zone A and doesn't exist in zone B, the
resolver may or may not match against X during the transfer. This is
consistent with the case when the zone update is done atomically.

3. If trigger X doesn't exist in zone A and exists in zone B, the
resolver may or may not match against X during the transfer. This is
consistent with the case when the zone update is done atomically.

4. If trigger X exists in zone A and exists in zone B, the resolver will
match against trigger X from zone A or zone B during the transfer. This
is consistent with the case when the zone update is done atomically.

What I mean to say is that a zone transfer of policy zone is not atomic.
The resolver may match against triggers in A or B depending on the
progress of update. Only 1 trigger may match within a zone, so this can
be assumed with current RPZ syntax. But this behavior of RPZ zone
transfers not being treated atomically should be documented.

                Mukund

Attachment: signature.asc
Description: PGP signature

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

Reply via email to