[bind10-dev] flaws in reversed name-based approach for getting the "previous name"
Mark Andrews
marka at isc.org
Wed Oct 5 01:22:40 UTC 2011
In message <m239f8tysq.wl%jinmei at isc.org>, JINMEI Tatuya / =?ISO-2022-JP?B?GyRC
P0BMQEMjOkgbKEI=?= writes:
> At Mon, 26 Sep 2011 12:32:17 -0700,
> JINMEI Tatuya <jinmei at isc.org> wrote:
>
> > In our current sqlite3 schema and manipulation interfaces, we used
> > "reversed" names to identify the "previous name" in the DNSSEC order
> > of a given name. [...]
>
> > This is a clever way and should work in most cases in practice, but
> > I've realized it doesn't work in some less common cases.
> [...]
> > What should we do with these cases? I can think of two possibilities
> > (there may be more):
> >
> > 1. ignore the problem as a minor case (or say "use in memory data
> > source if your zone contains this problem")
> > 2. use some normalized form that ensures the sorting result as a
> > string is identical to the DNSSEC order. For example, if we
> > represent all characters in the "\DDD" form, that would work (note
> > that '.' < '\' coincidentally, so there won't be a problem like '.'
> > vs '-')
>
> According to today's biweekly call, the consensus seems we should
> address this issue. In that case I personally think Shane's proposal
> is simple and effective enough. Stephen mentioned some possible
> alternatives in the call, but I didn't fully understand them at that
> time, much less whether they are better than Shane's. If think they
> are better, could you explain your ideas again here? > Stephen
>
> Some other related notes:
> - The consensus on the slightly related issue of whether to allow
> non-captive mode seemed that we should allow it, at least for some
> backends. But as I said in my other message in this thread, I
> personally don't think that affects the solution to this problem (if
> someone disagrees please speak up)
>
> - In the call Joao mentioned that name label characters must be 7 bit
> (so there cannot be a domain name like "\255.example.com.") Even if
> that's true we still have the problem due to '-' vs '.', '\.', etc,
> so it shouldn't affect the main point of this discussion. But (if I
> understand Joao correctly) I didn't think we had such a restriction
> in label characters. RFC2181 even seems to explicitly emphasize
> that we don't have such a restriction:
>
> [...] any binary string whatever can be used as the label of any
> resource record.
> (In Section 11, 'Name syntax')
At the DNS level there is no such restrictions. LDH etc. are all upper
level restrictions.
> - From a quick look, PowerDNS 3.0 seems to use a similar approach as
> ours (actually I cannot think of any way that is essentially
> different from this if we want to achieve the goal via a
> general-purpose database), but it converts '.' as the label
> separator to ' ' (a white space), e.g., "a.example.com." -> "com example a"
>
> It will solve the problem of '.' vs '-', but I suspect it will still
> have a problem with other escaped characters such as \. (in fact, I
> suspect PowerDNS generally doesn't work well if the qname has an
> escaped character even without DNSSEC).
>
> ---
> JINMEI, Tatuya
> _______________________________________________
> bind10-dev mailing list
> bind10-dev at lists.isc.org
> https://lists.isc.org/mailman/listinfo/bind10-dev
--
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742 INTERNET: marka at isc.org
More information about the bind10-dev
mailing list