As part of my ongoing #IPv6Mission, I felt that it would be
helpful to freshen-up on the IPv6 basics and learn all that I can about the
protocol and proper IPv6 network design before I jump right in and configure my
home network to connect to a tunnel-broker service.
First up, I’ll be reading “Deploying IPv6 Networks” (Cisco
Press, 2005). This content is now a few years old and there have been changes
in design and best practice recommendations since 2005, but it will serve as a
good refresher on the basics which haven’t changed.
Chapter 1 is an
introduction, reviewing the case for IPv6; why we need it. It’s pretty
straightforward to understand, so I won’t go into depth on this information.
From a high level, the reasons include:
- IPv4 address architecture and poor allocation (classful addressing)
- Public versus private addressing
- Exhaustion of public addressing (and private addressing by some ISPs)
- IP renumbering challenges
- Elimination of NAT
- QoS demands
- Increasing demand for multicast services
- Better IP Mobility (with MIPv6)
Some things are still required where IPv6 offers comparable
functionality with IPv4 (not necessarily better). These services include
routing protocol operation, VPN security services, generic network and
application security,
It’s worth noting that IPv6 poses some additional
challenges. Chief among those is perhaps the globally-unique addressing which
can be tied to a unique host interface when using SLAAC, and the privacy concerns
this raises. If a host interface always uses the same unique IPv6 address
across the public Internet, then data collection and analysis could reveal very
private information about the user.
Chapter 2 tackles
the topic of IPv6 addressing:
Performance Impact – A 64-bit CPU requires 4 passes to
process both the Source Address (SA) and Destination Address (DA) in a packet,
versus 1 pass with IPv4. This can impact routing processes through longer
lookups, significantly larger routing tables, and larger routing updates. Some
of these issues are reduced through the strict use of address hierarchy and
aggregation with IPv6 (which will be discussed in a subsequent post).
Format – 128 bits in length, represented as a string of 32
hexadecimal characters, segmented into 8 groups of 4 hex values each separated
by colons (:). The format alone of IPv6 addresses marks a departure from the
comparatively “easy” dotted-decimal representation used for IPv4.
The format can be optimized by using two address-shortening
rules:
- Eliminate leading 0’s – within each group of 4
hex values the leading 0’s can be eliminated. For example, :00C0: can be
shortened to :C0:
- Eliminate consecutive 0’s –multiple groups between colons that contain consecutive all-0 groups can be collapsed and notated with a double-colon (::). For example, 2001:0000:0000:A1:0000:0000:0000:1E2A could be shortened to 2001:0:0:A1::1E2A. This rule can only be applied once to an address to remove ambiguity as to how many groups are represented by a double-colon.
IPv6 Address Representation |
There are three types of IPv6 addresses:
- Unicast – traffic destined to a single node
- Multicast – traffic destined to an entire group of nodes
- Anycast – traffic destined to the nearest node of a group of nodes
Notice something missing? There is no concept of “broadcast”
addressing in IPv6. Since it was resource intensive and created some problems
on IPv4 networks, IPv6 abandoned broadcast addressing like a fair-weather
Dodger fan ditches the ballpark in the 5th inning! So IPv6 relies on
multicast addressing instead.
In the next post, I’ll continue the IPv6 refresher with a
review of IPv6 unicast addressing.
Cheers,
Andrew
P.S. – Please follow or get involved in the discussion on
IPv6 architecture, design, and implementation on Twitter with the #IPv6Mission
hashtag.
No comments:
Post a Comment