Internet Protocol version 6
Jump to navigation
Jump to search
Internet Protocol version 6 (or as it is more commonly known "IPv6") is a method of addressing hosts or nodes on a computer network, using 128 bit addresses. IPv6 was conceived as a "next generation" upgrade from the older Internet addressing scheme IPv4, which relied on a 32-bit address space and is quickly being exhausted by the continued growth of the Internet. For more information on the "IPv4 address exhaustion" issue, please reference Geoff Huston's IPv4 Address Report.
IPv6, "The Big Picture"
A quick note or two on the design intent(s) of IPv6, aspects that are recurring ideas that will be seen throughout the underlying protocol operation, and aren't bad things to keep in mind when trying to understand what IPv6 does, how it accomplished those things and why those things are done. # More addresses - obviously IPv6 gives us more addresses, 128bits vs 32bits. # Flexibility - The ability to readily add "stuff" (capabilities, functions, etc.) to the protocol without needing to rewrite the base protocol or necessarily re-architect our environments. # Scalability - Reduce overhead, distribute workload, smoother/easier processing. One common topic of conversation is: Should IPv6 be viewed as an evolutionary next-stop from IPv4? or Should IPv6 be viewed as a disruptive technology, a revolutionary change? The answer is: It Depends. In many regards IPv6 is, in fact, just a few tweaks different. This is the "96 More Bits, No Magic" view. From a purely technological perspective, this is (largely) true. However, moving forward, the more bits may just enable radical changes. Changes in how we use our networks, what we expect (require) them to do, etc. From this "bigger picture" view we could be on the precipice of major change. ''(I did say "could" ... )'' As the old saying goes, "May you live in interesting times".
IPv6 address types
IPv6 uses some familiar address types - Unicast, Multicast and Anycast. # Unicast - traditional one-to-one communication analogy - a standard phone call # Multicast - one-to-many communication (used for efficient delivery of content) analogy - teacher in a class says something one time, everyone who is interested receives it # Anycast - one-to-one-of-many communication, where the one-of-many is the nearest instance analogy - a bit more complicated than Uni- or Multi-cast ... (more later) Note that IPv6 does not support "broadcast" addresses. Everything IPv4 accomplished with broadcast, IPv6 has a form of multicast for. This includes a very much broadcast-like multicast. (AKA - The "All Nodes" multicast address, FF02::1). <post> ===IPv6 addresses=== <pre> # A sample (unicast) address: 2001:0db8:0001:1001:0000:0000:0000:0001 -- Note the use of Hexadecimal (hex; each character == 4 bits) ---- 4 character (16 bits) per "chunk", 8 chunks, colon separated We can compress this to make our lives easier: -- "Drop leading zeroes" (within each chunk) ---- 2001:db8:1:1001:0:0:0:1 -- "Double-colon" (Replace any number of SEQUENTIAL, ALL ZERO chunks ... one time per address) ---- 2001:db8:1:1001::1 (This double-colon technique is also frequently used when representing a Prefix. For example the above address is taken from the 2001:db8::/32 space - the 2001:0db8 piece (the first 32 bits) is fixed ... the rest (all zeroes) is subject to change) ) Note that something like this is valid as well: 2001:0db8:0000:0000:0000:0000:0000:0001 --> 2001:db8::1 (This IS about making your life easier!) # special IPv6 unicast addresses / ranges / address formats :: Unspecified_Address ::1 Loopback localhost ipv6-localhost ipv6-loopback ::<v4 address> IPv4-Compatible Addresses (DEPRECATED) ::ffff:<v4 address> IPv4-Mapped Addresses 2000::/3 (Currently active) Global Unicast Addresses 2001:0000::/32 Teredo service prefix 2002::/16 6to4 service prefix fc00::/7 Unique-Local Addresses fe80::/10 Link-Local Unicast fec0::/10 Site-Local Unicast (DEPRECATED) # special IPv6 multicast addresses / address formats ff00::/8 ipv6-mcastprefix ff02::1 ipv6-allnodes ff02::2 ipv6-allrouters ff02::1:ffXX:XXXX Solicited-Node-Multicast