What's IPv6 and Why Is It Gaining Ground?
Joe St Sauver
joe@oregon.uoregon.edu
If you've been working on the Internet for a while, you've probably become accustomed
to using symbolic domain name system (DNS) names such as www.uoregon.edu
or www.yahoo.com
You may also know that all symbolic DNS entries eventually map to numeric network
addresses, most commonly addresses written in "dotted quad" format
(four positive integer numbers ranging from 0 to 255, separated by periods).
For example, www.uoregon.edu resolves to the dotted quad address 128.223.142.13
At the time most universities originally applied for address space, it was
common practice for them to be awarded a so-called "class B" address
block containing 65,536 IPv4 addresses (what we now refer to as a "/16").
For example, the University of Oregon was allocated 128.223.0.0/16--the range
of addresses going from 128.223.0.1 through 128.223.255.255.[1]
Unfortunately, the number of remaining (IPv4) network addresses still available for allocation is now quite limited, and today all new address allocations are much more tightly controlled than ever before.
While networks with articulable and documentable requirements can still get
IPv4 addresses under the guidelines established by RFC 2050 [2],
doing so can be an arduous process. Most newly connected companies simply get
addresses delegated to them by their upstream provider (most commonly, they
are assigned a minimal number of addresses at no cost, and additional addresses
are provided at some nominal cost per month).[3]
IPv4 addresses are a scarce resource, thus there are incentives to use fewer
of them.
Dealing With IPv4 Address Scarcity
To date, there have been two primary approaches to reducing the use of IPv4
addresses: either employing a network address translation box (NAT), or going
to IPv6.
NAT. Systems connected via a NAT box all share a single publicly visible
IPv4 address, with hosts sitting behind the NAT box using private (non-globally-routable)
network addresses following the practices outlined in RFC 1918 [4].
Unfortunately, using NAT breaks a desirable property of IP networks known as
"IP transparency" (see [5])
and hence is not a wholly satisfactory solution, although it's quite common.
(As a trivial example, if you have a DSL connection at home and connect multiple
hosts to your DSL connection via a hub and a Cisco 675 DSL router, the 675 typically
also performs network address translation for you.)
IPv6. The other approach to the scarcity of IPv4 addresses is to use
IPv6. IPv6 works by increasing the size of network addresses from 32 bits to
128 bits, thereby ensuring that sufficient IPv6 addresses should be available
for virtually any conceivable address allocation scenario.
You may or may not realize it, but 128 bit addresses allow for 2^128=340,282,366,920,938,463,463,374,607,431,768,211,456
total theoretically assignable addresses. To understand just how large that
number is, recognize that the surface area of the earth is usually considered
to be about 196,950,000 square miles.[6]
There are 5280*5280 square feet in a square mile, and 12*12 square inches in
a square foot. Multiplying 196,950,000*5280*5280*12*12, we find that the approximate
surface area of the earth is 790,653,726,720,000,000 square inches.
If you divide 340,282,366,920,938,463,463,374,607,431,768,211,456 (the upper
bound on the number of IPv6 addresses) by 790,653,726,720,000,000 (the approximate
surface area of the earth in square inches) that implies you can assign over
3.7x10**21 addresses per square inch of the earth's surface. That should be
enough addresses for most requirements, at least for the foreseeable future!
Numerical trivia aside, what you need to know is that while IPv6 has gotten
off to something of a slow start, it's now time to begin paying attention to
it.
Some IPv6 Basics
IPv6 addresses do not resemble IPv4 addresses. Instead of four positive integers
between 0 and 255 separated by dots, IPv6 addresses consist of a sequence of
values separated by colons, with each chunk comprising from one to four hexadecimal
digits (e.g., 3ffe:1500::fffe:0:0:32) Because of the length of IPv6 addresses,
it's common to compress the longest run of zeros in a v6 address at one (and
only one) place in the address by substituting two consecutive colons for the
zeros.
IPv6 symbolic addresses are currently mapped to host system addresses via DNS
"quad A" records, e.g.,
% nslookup
Default Server: phloem.uoregon.edu
Address: 128.223.32.35
> set q=aaaa
> marconi.uoregon.edu
Server: phloem.uoregon.edu
Address: 128.223.32.35
marconi.uoregon.edu IPv6 address = 3ffe:1500::fffe:0:0:32
Note that hosts may have one or more IPv6 addresses and an IPv4 address. For
example, marconi.uoregon.edu also has the IPv4 address 128.223.220.31
Until production IPv6 support is available on UO's routers, most UO folks interested
in working experimentally with IPv6 will need to arrange for an IPv6 tunnel
from Network Services. Because setting up tunnels is somewhat involved, and
because we expect to see native IPv6 support on at least some of the university's
routers relatively soon,[7] we
encourage you to postpone deploying IPv6 in volume for the time being.
Nonetheless, it behooves you to investigate the availability of IPv6 software
for your computer's operating system. In some cases, IPv6 support will be routinely
available, while in other cases you'll be hard-pressed to get it at this time.
Examples of operating systems now routinely supporting IPv6 include:
What about OpenVMS?
At the UO, we run Process.Com's Multinet software (http://www.process.com/tcpip/multinet.html)
on our OpenVMS hosts. Unfortunately, IPv6 support is not yet available in Multinet,
although Process.Com has confirmed plans to support it in a future release.
How about Windows PCs and Macs?
Microsoft appears be lagging in the IPv6 area vis `a vis Unix workstation vendors.
They do have a "technology preview" release (pre-beta release) for
Windows 2000 (see http://msdn.microsoft.com/downloads/sdks/platform/tpipv6.asp),
but that product is clearly flagged as being "not a released product"
and something which "should not be deployed in a production environment."
(See also http://www.research.microsoft.com/msripv6/versions.htm)
The situation with respect to Apple Macintosh is even murkier. IPv6 is clearly
still on Apple's radar (it's mentioned in the announcement of Apple's Worldwide
Developer's Conference (http://www.apple.com/pr/library/2000/march/21wwdc.html),
but we're unable to find any specific information about Apple and IPv6 on Apple's
websites.
When Will IPv6 Be Deployed on Our Large Unix Systems?
We will probably begin deploying IPv6 on our large Unix systems this summer,
in so-called "dual stack" mode, with both IPv4 and IPv6 enabled. This
should be a transparent change for users, except that suddenly remote IPv6-only
sites will become accessible from those hosts.
What About IPv6 Applications?
A variety of network applications have already been ported to IPv6. See http://www.ipv6.org/v6-apps.html
and http://www.bieringer.de/linux/IPv6/status/IPv6+Linux-status-distributions.html
What If I've Got a Network Application I Wrote Myself?
An excellent starting point for porting applications to IPv6 is Sun's "Porting
Network Applications to the IPv6 APIs" at http://www.sun.com/software/solaris/ipv6/porting_guide_ipv6.pdf
Is IPv6 "Real"--or Is It Still Far Off?
IPv6 is very real. The UO has a 24 Bit pTLA (see http://www.6bone.net/6bone_pTLA_list.html)
and has been one of a comparatively small number of 6Bone core nodes for some
time (see http://www.cs-ipv6.lancs.ac.uk/ftp-archive/6Bone/Maps/backbone.gif
or http://www.dbnet.ece.ntua.gr/6bone/).
As still more proof that IPv6 is "real," note that if you're working
from an IPv6-connected host, you can traceroute to IPv6-only servers from the
UO, e.g.,
traceroute www.ipv6.digital.com
traceroute to www.ipv6.digital.com (3ffe:1200:2001:1:8000::2): 1-30 hops, 24
byte packets
1 * uo-marconi (3ffe:1500::fffe:0:0:31) 2.929 ms *
2 uo-if.6r1.paloalto.ip6.pipex.net (3ffe:1100:0:cc05::1) 35.156 ms * 32.226
ms
3 3ffe:1280:1001:1::1 (3ffe:1280:1001:1::1) 34.179 ms * 34.179 ms
4 www.ipv6.digital.com (3ffe:1200:2001:1:8000::2) 43.944 ms 42.968 ms 42.968
ms
What About IPv6 and Internet2?
Internet2/Abilene is working on IPv6 deployment; see their IPv6 map at http://www.abilene.iu.edu/images/v6.pdf
(Please note that a number of 6Bone-connected Internet2 sites do not appear
on that map, since it only lists I2 sites that connect to the IPv6 world via
Abilene.) There is also an Internet2 IPv6 working group with a website at http://www.internet2.edu/ipv6
We believe IPv6 is the next advanced application that most Internet2 sites
will begin to tackle, once they have handled IP multicast (if you look at the
Abilene IP multicast deployment map at http://www.abilene.iu.edu/images/ab-mcast.pdf,
you can see that IP multicast has made great strides on Abilene).
Questions?
If you have questions about IPv6 at the UO, please contact
Joe St Sauver (joe@oregon.uoregon.edu)
Notes:
[1] Some institutions, such
as Stanford, actually got a rare class "A" address block (63.0.0.0/8)
when they initially applied for addresses. That class A netblock represented
16,777,214 addresses, and was only one of 126 theoretically available. Stanford
recently returned it, renumbering into a smaller allocation and making those
old addresses available for reassignment to others. You can read all about Stanford's
renumbering at http://www.stanford.edu/group/networking/NetConsult/ipchange/indexold.html
[2] "Internet Registry IP
Allocation Guidelines" (http://www.ietf.org/rfc/rfc2050.txt)
[3] For example, jump.net charges
$5/month for one additional static IP address and $200/month for an additional
255 static IP addresses (e.g., a full class C netblock). See http://www.jump.net/dslinfo/adsl_prices.html
[4]"Address Allocation for
Private Internets" (http://www.ietf.org/rfc/rfc1918.txt)
[5]"Transparency of the network
layer" by Brian Carpenter (http://www.hursley.ibm.com/~bc/transp/transp.htm)
[6] http://www.robinsonresearch.com/EARTH/at-a-glance.htm
[7] For information on Cisco's
IPv6 strategy, see http://www.cisco.com/warp/public/732/ipv6/index.html
Additional IPv6 References