I've been trying to get my head around IPv6 addressing lately. This isn't a result of any projects I'm doing, more of a 'get ready for the future' thing. One of the problems I'm having to deal with is the scary-looking nature of IPv6 addresses. For those of us brought up in IPv4, IP addresses with hexadecimals in them are intimidating. In fact, this specific issue has been brought up in meetings when v6 has come up. As I've mentioned before, our telecom group isn't going v6 until they get pushed. Having a /16 address block to play with means regulatory or technical obsolecence will be the drivers to move to v6, not IP exhaustion.
Anyway, IPv6 addresses are not as intimidating as you might think. Yes, they do have 8, 4-digit numbers in them and there is no way on this earth that your average helpdesk technician (or sysadmin) is going to memorize more than a very few 32-digit hexadecimal numbers. Happily, thanks to how v6 works, there are built in short-cuts.
First and foremost, what constitutes the 'network' portion of the address. The entire IPv4 address space can be contained in two of the 4-digit numbers. We care about this, since this is what will drive IPv6 address-space exhaustion. You can look up which regional registrars have been assigned what v6 prefixes on this link:
http://www.iana.org/assignments/ipv6-unicast-address-assignments/ipv6-unicast-address-assignments.xhtml
2600:0000::/12 given to ARIN means that the network-number is "260"
Which means that it is entirely likely that when WWU gets its IPv6 allocation, it'll probably get something similar to:
2608:AA11::/32
Which gives us a nigh unimaginable amount of addresses. With 'nigh unimaginable' space to work with we can leverage the power of inefficiency in the pursuit of human understanding. It is entirely allowable for us to configure local addresses that look like this:
140.160.243.16 = 2608:AA11:243:0:0:0:0:16 = 2608:AA11:243::16
In essence, treat our hypothetical 2608:AA11 prefix the same way we're treating 140.160 right now. It's a bit different to remember, but at least once that prefix is memorized the rest just falls into place. Heck, you can even have up to 9999 hosts in a subnet without ever using a letter or an extra colon!
On the back-end turning 2608:AA11:243::16 into a hostname is uglier. The reverse lookup for that address would be found:
6.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.3.4.2.0.1.1.A.A.8.0.6.2.ip6.arpa
Only the DNS admin needs to worry about entering monstrosity into the named tables. Oh wait...
Once the transition to v6 is completed we can start doing funny things with our subnets, or adding colon block to addresses depending on what we need to do with them. And since v6 isn't limited to 256 in each block we can have a lot more subnets. However, we have to get there first.
Anyway, IPv6 addresses are not as intimidating as you might think. Yes, they do have 8, 4-digit numbers in them and there is no way on this earth that your average helpdesk technician (or sysadmin) is going to memorize more than a very few 32-digit hexadecimal numbers. Happily, thanks to how v6 works, there are built in short-cuts.
First and foremost, what constitutes the 'network' portion of the address. The entire IPv4 address space can be contained in two of the 4-digit numbers. We care about this, since this is what will drive IPv6 address-space exhaustion. You can look up which regional registrars have been assigned what v6 prefixes on this link:
http://www.iana.org/assignments/ipv6-unicast-address-assignments/ipv6-unicast-address-assignments.xhtml
2600:0000::/12 given to ARIN means that the network-number is "260"
Which means that it is entirely likely that when WWU gets its IPv6 allocation, it'll probably get something similar to:
2608:AA11::/32
Which gives us a nigh unimaginable amount of addresses. With 'nigh unimaginable' space to work with we can leverage the power of inefficiency in the pursuit of human understanding. It is entirely allowable for us to configure local addresses that look like this:
140.160.243.16 = 2608:AA11:243:0:0:0:0:16 = 2608:AA11:243::16
In essence, treat our hypothetical 2608:AA11 prefix the same way we're treating 140.160 right now. It's a bit different to remember, but at least once that prefix is memorized the rest just falls into place. Heck, you can even have up to 9999 hosts in a subnet without ever using a letter or an extra colon!
On the back-end turning 2608:AA11:243::16 into a hostname is uglier. The reverse lookup for that address would be found:
6.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.3.4.2.0.1.1.A.A.8.0.6.2.ip6.arpa
Only the DNS admin needs to worry about entering monstrosity into the named tables. Oh wait...
Once the transition to v6 is completed we can start doing funny things with our subnets, or adding colon block to addresses depending on what we need to do with them. And since v6 isn't limited to 256 in each block we can have a lot more subnets. However, we have to get there first.
I'll be honest, IPv6 addressing terrifies me. I'm far from a math-geek, so completely relearning something I use everyday in HEX as opposed to the nice, simple scheme we have now makes me queasy like I used to get on the morning of an algebra test that I hadn't studied for enough.
Got any good recommendations for IPv6 educational resources for old-timers like me?
One of the biggest problems my group has isn't convincing folks that they have a problem. It's convincing them to address the biggest one first and then deal with the other stuff. Nobody seems to want to do that. Everyone wants a reason or an excuse. They want to worry about the big bruise on their arm when there leg is cut off and they are bleeding out.
The addressing part of it is not that difficult once you dig into it. I was daunted too! But at its base it works just like the old skool IP we larned back in the day. Some tricks I figured out:
Each digit increments the subnet-mask by 4 bits. The first colon is at 16, the second at 32, the third at 48, fourth at 64. You'll almost never go past 64.Unlike v4 addresses where the number between the dots is the decimal representation of the octal, for v6 each digit is a hex-number, not the bits between the colons.An entire IPv4 address space can be contained in a single a 32-bit subnet, and v6 supplies 64-bits for the network number. That should look familiar. Unlike IPX, you can configure custom addresses.If you remember IPX (and I know you do) v6 clients can auto-configure their IP address by taking the network number and appending the MAC address of the interface (plus some bits for padding).There are some reserved prefixes out there for a variety of uses. You'll learn these pretty fast.You can use the "::" notation to indicate a large chunk of zeros, but can only do it once. That way addresses like 2608:AA11:37:0:0:0:0:1 can be notated 2608:AA11:37::1. Handy.
There are some other things I'm not clear on, such as exactly how v6 tunnels across v4 networks, and exactly what our router core needs to have in place before we can natively handle v6. But at least I can wrap my head around addressing.
Hmm, okay, maybe not quite as scary as I first thought!
Still, I'll need to pick up a book or three and start reading up on this pretty damn quick.
If anyone has suggestions on what books are better than others, I'd love to hear it. Otherwise, I'll end up with O'Rielly, as usual.
Encoding IPv4 addresses into IPv6 is a very bad idea from a long-term maintainability standpoint. 30 years from now, someone at your site will be stuck with the decisions you make now. Here are some pointers we are giving people on our campus: http://helpdesk.wisc.edu/ns/page.php?id=13734
Your description of how 6to4 Anycast works was one of the best I've seen. And thanks for the tip on v6 allocations! We're months away from having our switching infrastructure in a state to even start IPv6.