Version 4.1 - 1.1 Network Addressing Basics Part 2
And now the fun begins. Network addressing with IPv6. I'm going to start by going through my notes. I get packs of Composition books during the "back to school" sales. For each exam, I keep a notebook to help me remember the salient points of my study. While I watch a video, I take notes. While I read a book, I take notes. And then I review the notes to reinforce the material.
So let's start with the public IPv6 address I have in my notebook as an example.
I have color coded the parts just to make it more obvious. The address uses 8 groups of 4 characters separated by colons. It is a 128 bit address. To add to the difficulty, it is in hex. But don't panic. We already know hex - from our familiarity with MAC addresses.
A = 10 | B = 11 | C = 12 | D = 13 | E = 14 | F = 15 > This way you can represent 10 through 15 as a single character. Hex uses base 16. We already know Binary (base 2). And just like in binary where there is no "2" (only 0 and 1), there is no G or 16. Binary --> 0, 1, 10 (decimal 0, 1, 2). So 10 in hex (0x10 is the correct format) is equivalent to 16 in decimal. Not so easy to deal with unless you grow some extra fingers.
The IPv6 section of the Cisco Documentation can be found here. It's quite extensive. I'm starting out with the things I wanted to remember. I can already see this is going to take multiple posts.
Unfortunately, the bits of IPv6 are not as familiar to some of us as the IPv4 /23, /30 or /32. So that takes some getting used to. And it's a bit awkward to subnet IPv6, but not impossible. The trick is to remember that each character is 4 bits. The Global Routing Prefix above uses 12 characters -- 48 bits. A /48 is the recommended size of block that every ISP customer end site should receive. So realistically, any subnet question for IPv6 would only deal with 16 bits (the four red characters in the middle). The Interface ID is 64 bits (16 characters x 4 bits), and that represents a host. So the only thing you have to concern yourself with is 16 bits - 4 characters in hex.
Now look at this:
Do you see what I did there? Yes, I converted hex to binary. But I also took something that was unfamiliar and made it into something we know. Once it's in binary, it's just like the IPv4 addresses that we have worked with for years. And the IPv6 addresses use the slash notation. So you don't have to convert any subnet mask to binary. Just the 16 subnet bits. Then count. The subnet has to be between /48 and /64. Relating it to something familiar makes it much less daunting.
So let's move on to the IPv6 special addresses. At this point, I'm sure you already know that :: represents a bunch of contiguous zeros. And you can only use that once in an address. And an interface can have multiple (related) addresses depending on its use. So using the example address above:
Note the way I color the characters in each address. This is how I write it in my notebook (using colored pencils). That and the spacing helps the eye to detect the differences and similarities at a glance. You will see this type of address if you do an "ipconfig /all" in the command prompt on your computer.
Here are some more special addresses:
2000::/3 Aggregatable Global Unicast
FE80::/10 Link Local Unicast (as above)
FC00::/8 { Unique Local Unicast - Per RFC 4193 it is actually FC00::/7
FD00::/8 { So the 8th bit can be 0 or 1 - giving you both of these
FF00::/8 Multicast - should be easy to remember since all 8 bits are 1
::/128 Unspecified address (same as 0.0.0.0)
::/0 Default Route
::1/128 Loopback aka localhost (same as 127.0.0.1)
FF01::1 All nodes interface-local
FF01::2 All routers interface-local
FF02::1 All nodes link-local
FF02::2 All routers link-local
FF02::5 OSPFv3
FF02::6 OSPFv3 DR
FF02::9 RIPng
FF02::A EIGRP
Think about the FF02::X addresses above - they are similar to 224.0.0.X for these protocols in IPv4.
FF05::2 All routers site-local
I'm going to add one more thing before I move to the next post. Look at all those colons! So think about how you would put that in a browser address bar. In IPv4 you could go to http://74.125.224.72:82 to access that IP address on a non-standard port. The computer could distinguish between the dots in the address and the colon for the port. And with the double colon representing contiguous zeros to fill out the address, how could you tell the difference between 2001::xxxx:xxxx:82 (on port 82) and the host address 2001::xxxx:xxxx:0082? Well, the way that you express this in IPv6 uses square brackets.
http://[2001:BA98::7654:3210]:70 <-- This is called a "literal" IPv6 address. Now you can easily distinguish between the address and the port. (Of course this is a made up address, but it makes the point of the brackets.)
There are still some more things to discuss in IPv6 addressing. So there will be a Part 3 to this topic. Think about that. The Cisco Pocket Guide barely touched this topic. And many people probably looked at it on the blueprint and checked it off as "done." INE's Advanced Technologies course (over 69 hours of video) doesn't even cover IPv6 as a topic. To be fair, they don't have a specific course for the Written Exam (their focus is on the lab exam). And they do offer quite a few courses on all aspects of IPv6 - from soup to nuts. Overlooking this part of the blueprint could be a $400 USD mistake.