I spent the better part of this morning reading a couple of chapters in Routing TCP/IP Volume I (Second Edition), and I have to say, I’m learning to hate IPv6. I know, I know, it’s the wave of the future and we’ll all be transitioning to it within the next ten years, or so. Still, I can’t stand some of the early nonsense they’re pushing. In one breath, it’s explained that IPv4 was once, with it’s 4.3 billion-count address space, considered practically infinate. In the next, we go through an explanation of why the “host” and “subnet” portions of an IPv6 address are fixed at 16 and 64 bits, respectively, because “the 340 trillion trillion trillion address space is so vast, and using fixed bit-lenghts makes the addresses easier to calculate, that it’s worth the wasted address-allocation”. Isn’t this exactly the same issue we began running into with IPv4 and, oh I don’t know, the 127.0.0.0 range? Isn’t this why VLSM was conceived in the first place? Sure, the IPv6 address pool seems infinite now, but let’s not forget that the true dream of IPv6 will be realized when every device on the planet has its own unique, global unicast address. Add to that the fact that you can assign multiple addresses to a single interface on a device, and one device can have multiple interfaces, we might just begin to run out of addresses all too soon.
It’s not that I inherently want to torpedo the efforts that the industry is making towards getting IPv6 out into the wild. There are plenty of cool features, like automatic address configuration, which happens on an interface without the aid of DHCP, ARP, or anything else. (Creeeeeeepy.) But going into a new standard and making all the same old mistakes of the past, using the exact same justifications we did back then, is downright foolish. I can’t justify saying, “oh, there are plenty of addresses now, we can go ahead and waste the allocations”, when this was the very same reason we’re running into issues with ISPs having to provide 6 and 7-tiered NAT implementations in countries like India and China.
I’ll be studying up much more on IPv6 as time goes on. As painful as some of these issues are for me, I also realize that as time goes on, it will become increasingly important not only to understand how IPv6 works, but also how it works in conjuction with IPv4. This, of course, also brings up the fact that there are still many aspects of the new implementation of the Internet Protocol that haven’t been figured out yet. One of these is the conversion from 32-bit addresses to the new 128-bit ones. Some proposed standards simply attached the decimal-dotted IPv4 addresses to the end of the IPv6 address, forming a weird little hybrid. Another, which seems much more reasonable, simply appends leading zeros to the 32-bit address, and converts the last four octets into hexidecimal equivalents of the original IPv4 address. (Yes, folks. It’s just that simple.)
192.168.10.101 = 0000:0000:0000:0000:0000:0000:C0A8:0A65
IPv6 Dot Notation:
192.168.10.101 = 0000:0000:0000:0000:0000:0000:192.168.10.101
There’s a long way to go before IPv6 becomes the de facto standard for the internet and private networks. There’s a lot to learn about it, and naturally, handling these addresses via DNS and dynamic routing protocols will be much easier than the shorthand, manual management of the things. Still. . . I hates it, my precioussss. . . we hatesssss it!!!
For those of you who don’t know how to do decimal-to-hex conversions in your head (gasp!), there is a very useful conversion tool available here.