Writing

Feed Software, technology, sysadmin war stories, and more.

Wednesday, October 10, 2012

Fun and games with theoretical anycast addresses

I had a weird idea quite a few years back involving IP addresses, pseudo-anycasting, and non-routable networks like RFC 1918 space. It's probably half-baked at best, but here it is anyway.

Imagine if there was (yet another) block of well-known IP addresses which were explicitly set up for certain services. Maybe you'd make recursive DNS resolvers available on two of them, NTP services available on two more, and so on. Anything else which might benefit from being found in this fashion might get an assignment.

Then, on any given network, you could try to reach such a service by sending a request to the well-known address. If your provider happened to implement that service, you'd get a response. Otherwise, it might get as far as a border router where it would be thrown away as bogus and/or unroutable.

The "anycast" type connection here is that the same numerical address would actually map to a great number of possible hosts depending on exactly where you were, but you could only really see one of them at a time. Even though you're talking to the same apparent IP address, the services you got might vary from one ISP to the next, and possibly even within different metro areas within the same larger provider.

Of course, none of this is really necessary. DHCP options have been used to convey all sorts of random bits of information to clients which may or may not pay attention to them. The most obvious ones are the domain name and DNS servers, but there are others, too. Of course, as soon as you switch to a networking scheme in which you don't use DHCP, then you have to distribute (and update) those details some other way.

Once you have DNS, you can just rely on a bunch of well-known host names instead. Just look at all of the multicast "class D" magic hidden in *.mcast.net. Try running in-addr PTR lookups for chunks of that space and you can find all sorts of funky things.

All of this is probably why this is just another half-baked idea and not the way things actually run. The closest you'll find to this is stuff like Google's DNS at 8.8.4.4 and 8.8.8.8. It attempts to be all things to all people and does use anycast, but it's all still going to them and not some independent service at your local provider.

...

I have a random story about those IPs which is too short to make into its own story. A couple of months before that DNS service launched, I was acting as a DJ using my laptop and iTunes at a Saturday morning event. I still worked at That Place, and as a result knew a lot about what was going on inside. We had a bunch of visitors in the building that day for a LEGO robotics event.

As one of the few people who was effectively fixed in place (on stage) all day, I became a de facto contact point for people with questions. Some random person with a slightly unusual-looking iPhone came over and was asking for help with getting on the public/open wireless network. He had pulled up his network screen and saw the IPs were 8.8.8.8 and 8.8.4.4. He figured that must be some kind of bug, and showed me the screen.

I was a good little worker bee who wasn't about to be the one to announce an unreleased service, so I just looked at him and said... "no, that's actually right", and just smiled. I think he understood the universal Silly Valley lingo for "you just saw something that doesn't officially exist yet" and went with it. I guess he got things working shortly thereafter since he went away and didn't ask any further questions.