TLD nameservers that also cache?
Brad Knowles
blk at skynet.be
Thu Jul 6 14:57:27 UTC 2000
Folks,
We've run into a problem recently that has lead me to
re-re-re-read Cricket's book (especially chapter 2.6), and to
ruminate on the nature of the behaviour of resolvers and caching
nameservers.
What got this started is that we have discovered that
ns.belnet.be (a.k.a., vivaldi.belnet.be [193.190.198.2] &
holem.belnet.be [193.190.198.10]) are not only secondary nameservers
for the ".be" ccTLD, but are also caching nameservers.
Of course, when we make changes on our own local network (e.g.,
to move www.skynet.be to a different IP address), we restart our own
caching nameservers, so that our customers can see these changes as
quickly as possible. However, when the caching nameservers come back
up, it is fairly likely that they will have their cache polluted by
the old information that has been cached on one of these two machines.
Well, what kind of solutions are possible?
We have tried approaching the administrator for these machines,
and quite simply he doesn't care. There has been no amount of
complaining or pressure we've been able to apply so far that seems to
have any affect -- and our Director of Operations is on the Board of
Directors for DNS.BE, the registrar for the ccTLD.
We can turn down our TTLs on specific names that we know are
going to be moving soon, but we can't afford to turn down the TTL to
900 seconds across all the thousands of domains we host. Even if we
did, this wouldn't really solve the cache pollution problem -- it
would just make it last for a shorter period of time, although it
would cause a lot of other problems as well.
We could designate ns.belnet.be as a bogusns, and simply not pay
attention to any answers we get from it at all. However, this would
be extremely dangerous, as there is only one other nameserver
advertised for belnet.be, and Belnet runs the biggest Exchange in the
country, one that we make very heavy use of. They also provide
connectivity for all of the educational institutions in the country,
making them a non-profit ISP that is as large (or larger) than we
are, and they've got a lot more support from government and other
educational institutions.
We could make our caching-only nameservers hidden secondaries for
all our domains, but this re-introduces all the problems that we were
trying to fix by splitting the authoritative and caching parts onto
different servers. In particular, this would give our customers a
different view of the world than is had by people outside our
network, and render us unable to certify that everything really is
working to people outside of our network, without ourselves having
access to accounts on other services.
The only other solution I can think of is to change the behaviour
of caching/recursive nameservers. Instead of having it go all the
way to the root nameservers and ask the question
"www.skynet.be/IN/A", and following the referral, it should assume
that the higher level nameservers are non-caching and reduce the
query appropriately. In this case, it should ask them "be/IN/NS",
follow the referrals to the nameservers for ".be", then ask
"skynet.be/IN/NS" to one or more of them, and then and only then
should it finally ask the question "www.skynet.be/IN/A".
Changing the behaviour in this way would reduce the benefit of
caching provided by higher level nameservers, but the root
nameservers and the nameservers for the various TLDs shouldn't be
doing caching anyway, so there's no real loss there.
Obviously, there would be added complexity in the
caching/recursive nameserver (you would want to be able to control
the depth to which you modify the queries so as to avoid attempting
to make use of caching at higher level nameservers).
There would also be increased load on caching/recursive
nameservers, as they would now have to do more work to construct
proper queries of higher-level nameservers based on the information
that they are trying to answer, as opposed to simply parroting the
question they've been asked.
But it seems to me that this solution would be more resistant to
cache pollution problems, and I wonder if it wouldn't also address
some of the issues that Dan Bernstein has raised in the past.
Can anyone else think of any other solutions to this problem that
we're having? Well, other than knee-capping Marc Roger, that is? ;-)
Also, is there something fundamentally flawed in the way I'm
thinking that perhaps caching/recursive nameservers should be
working? Are there other chapters I should go re-re-re-read again?
--
These are my opinions -- not to be taken as official Skynet policy
======================================================================
Brad Knowles, <blk at skynet.be> || Belgacom Skynet SA/NV
Systems Architect, Mail/News/FTP/Proxy Admin || Rue Colonel Bourg, 124
Phone/Fax: +32-2-706.13.11/12.49 || B-1140 Brussels
http://www.skynet.be || Belgium
More information about the bind-workers
mailing list