Return to UOCC HomeComputing News Home
Header bar

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:

  1. Sun Solaris (http://www.sun.com/solaris/ipv6/)
  2. Compaq Tru64 UNIX
    (http://www.compaq.com/ipv6/Tru64UNIX.html)
  3. Some Linux distributions
    (http://www.bieringer.de/linux/IPv6/ particularly http://www.bieringer.de/linux/IPv6/status/IPv6+Linux-status-distributions.html) The recently announced USAGI project (see page 13, column 3) is also expected to greatly accelerate the pace of Linux IPv6 deployment
  4. FreeBSD (http://www.freebsd.org/), NetBSD (http://www.netbsd.org/), and OpenBSD (http://www.openbsd.org), largely as a result of the outstanding work of the KAME project (http://www.kame.net/)

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


Spring 2001 Computing News| Computing Center Home Page