(IPng 4127) An idea to bounce off people: storing routing info in the DNS instead of the routers.
I'm not looking at storing all the routing info in the DNS. Just a
carefully selected subset. (A large subset)
I'm also assuming that a DNS server has a secondary not on the same net.
Specifically, I'm assuming that the in-addr.arpa zone file for
a host (which would be the authority of last resort for which
provider it connects through) would be duplicated at the ISP, or
that the ISP's would be secondaried by the backbone.
Hmm, I just realized that I'm also assuming that the root info
is available. If all I know is the IP address of a root, and
there is nothing in anyone's cache, then the request can go
out to the backbone, but from there, are any of the 9 roots
a backbone site? (ISI, USC, a .gov or two, where are the others?)
Actually, even if they are backbone sites, the routing info
wouldn't be there (only the summary of how to reach the
Once you get that solved, the NS's for the in-addr.arpa can be
identified (the ISP) and their A's, and then you ask for ...
Ok, so bootstrapping this is not as straight forward as I thought.
Give me a moment...
Assume we can reach the root. (add 9 more routes to the routing table)
Ok, it can work if we require that one of the secondaries for the
in-addr.arpa zone be the same site listed as your IP forwarder.
Then, to look up a site, you query the root for the A, the
root returns an NS for the top level domain, and some A's;
you look up the IP forwarders for those A's (an in-addr.arpa
query), and then, since we are [now] requring that those be
secondaried upstream, that query will work.
Ok, so to make this faster (:-), just as you return additional
A records, you'd also have the DNS server return additional
IP forwarder records [IPF? IPX is already taken :-) ]
Note that there is one unexpected side affect of this:
If the "true roots" are blessed and in the global routing tables
for this to work, then no one else can start another root.
Unless they put their IP forwarder info in the cache.
Thats it. You don't need to put the root routing info in the
routing tables. You put it in the cache.
You require that anyone who has a forwarder entry have that forwarder
act as a secondary for the in-addr.arpa zone file.
You speed the system up by returning both A and forwarder entries
when you return an NS entry. And, you return the forwarder as
an additional when you return an A. Essentially, you return
the forwarder info any time you'd return the A.
That solves the routing/DNS circular loop, and allows for clean
[Remember: This does NOT put the backbone routing info, which
changes every second, in the DNS; it puts the networks off the
backbones, which might change once a month, in the DNS]