[bind10-dev] datasource list vs zone list
Shane Kerr
shane at isc.org
Wed Jan 13 09:28:21 UTC 2010
Michael,
On Tue, 2010-01-12 at 15:38 -0600, Michael Graff wrote:
> On the datasource call, a topic came up that is sort of interesting.
> Namely, how do we do the mapping from zone name to datasource? Also,
> can multiple DSs take a stab at an answer and say they do not handle
> that zone, try the next one?
>
> What I see happening is that data sources are configured to serve zones
> in one of three ways:
>
> (1) Explicitly told to serve zone example.com and where to find the
> data. In this model, there is a zone -> datasource mapping that is
> direct and administrator provided.
>
> (2) The data magically appears in some way, no explicit notification.
> This is going to be a big win: all you need to do to start serving a
> zone is to populate a SQL database, file on a filesystem, etc. This is
> magic, and dynamic, and ideally requires nothing special done to BIND.
>
> (3) A combination of both: shared database (SQL tables include zone
> info, for instance) and to make that zone served, you need to configure
> as well.
>
> I like (1) and (2). I dislike (3) as it seems cumbersome.
As a data point, I believe PowerDNS tries all data sources, effectively
doing (2).
We have to support some data sources in the style of (2).
We *could* maintain a table like you presented listing explicit zones.
But... simply going through all the data sources in a configured order
is the most straightforward solution. I think we should implement that
first, and then we can look at improvements later if they seem like they
will be beneficial.
What I propose in PseudoPython:
lookup_result = NotAuth # maybe Refused is better, but I like NotAuth
for source in dataSources:
lookup_result = source.lookup(query)
if lookup_result != NotAuth
break
We may encourage people to have 2 data sources (one in-memory) if they
have a set of high-volume zones (assuming our caching doesn't make that
unnecessary). And of course there will always be people in special
circumstances who need N sources (testing, migration, general
weirdness).
In practice the vast majority of people will have 1 data source. If we
*do* decide to have some sort of domain lookup table, we should probably
only use it if we have more than 1 data source.
--
Shane
More information about the bind10-dev
mailing list