In my past two columns I've talked about why implementing IPv6 on your network is a good idea, and delved deep into the IPv6 header. I'll now conclude this series with a detailed look at IPv6 addressing conventions.
IPv4 addresses, which use dotted decimal notation, are fairly easy to remember. With a maximum of four octets -- IPv4 has a 32-byte address field -- and decimal representation of the numbers, IPv4 addresses resemble a telephone number. 18.104.22.168 -- that's fairly easy to read and remember.
IPv6 addresses, on the other hand, use hexadecimal notation. Version 6's implementers chose this over the easier-to-read decimal notation to save space. Hexadecimal notation allows 8 bits of data to be represented by two characters.
If you've forgotten what hexadecimal notation is, here's a quick refresher. Hexadecimal, or base 16, notation uses the digits 0-9 and the letters A-F to represent the digits 0-15. Thus, 12 = 0Ch, and 5x7 = 23h. It's not a difficult conversion, but a calculator that performs decimal-to-hex conversion makes it even easier. If you don't have one, I suggest you pick one up. I use the Texas Instruments TI-86.
A fully-expanded 128-bit IPv6 address would be written like this -- 3FFE:1CDD:10:30:0000:0000:0000:1212. Quite a handful, isn't it?
Fortunately, IPv6's designers allowed for a shorthand notation. As in IPv4, all zeroes to the left of any 16-bit field may be removed. Thus, 3FFE:1CDD:10:30:0000:0000:0000:1212 becomes 3FFE:1CDD:10:30::1212. This saves space, but only one double colon is allowed in an address.
Shortened or not, IPv6 addresses don't lend themselves to easy memorization. Don't fret, though; you can use the same naming conventions for IPv6 as you did for IPv4. BIND (Berkeley Internet Name Domain), the application that provides IP address-to-name translation, has been modified to work with IPv6.
Now that I've covered IPv6 address notation, it's time to discuss how the addresses are divided among different-level aggregators.
IPv6 provides four levels of aggregation:
- The Top Level Aggregator (TLA) is used to identify the Top Level Aggregator to which the address block belongs. Typically, a TLA would be a big kahuna among network providers -- Sprint, for example. TLAs delegate portions of their address block down to Next Level Aggregators (NLAs).
- A Next Level Aggregator is an organization too small to qualify as a TLA, but with an extensive regional backbone and a number of small customers. NLAs break up their portion of the address blocks and delegate down to Site Level Aggregators (SLAs).
- A Site Level Aggregator is an entity with no customers that delegate address space. A good example of an SLA would be an educational institution or small ISP that doesn't delegate.
- The first three levels of aggregation take up the first half (64 bits) of the IPv6 address. The second half is allocated to the interface ID. Like the host ID in IPv4, each interface ID must be unique.
That concludes our look at IPv6. In my next column I'll showcase the brave new world of Cisco's Discovery Protocol -- what it is, why you should enable it, and how to configure it.