Internet Protocol version 6 Luke Cole http://cole.homedns.org 1st of September, 2006
1
IPv6 address text representation
IPv6 addresses have the following text representation [Hinden and Deering, 2006]: x:x:x:x:x:x:x:x
(1)
where, x is a 16-bit hexdecimal number. There are two special cases for simplying the IPv6 text representation when many zero’s exist within the address. The first special case uses the notation :: to represent one or more sets of 16-bit zero addresses. So an address of the form: 0 : 0 : 0 : 0 : 0 : 0 : 0 : 1 can be written as :: 1. The second speical case uses the notation: x : x : x : x : x : x : d.d.d.d
(2)
where, x is a 16-bit hexdecimal number and d is a 8-bit. This address representation having four 8-bit number is the standard IPv4 representation which allows IPv4 and IPv6 environments to exist together.
2
Multiple ::
The IPv6 address 1::234::5::6 is not legal because there is no way to determine the number of sets of zeros for each of the three ::. If we expand this address with the minimum number of zeros, i.e. 1 : 0 : 234 : 0 : 5 : 0 : 6, one can see the final 16-bit zero address could be located in three locations, which gives three posiable solutions, which is not legal.
1
3
IPv6 Address Space
The earth surface (including land and water) is 510065600km2 [Wikipedia, 2006a] and the address space of IPv6 is 128-bit. So through simple division their is approximately 6.5x1023 addresses per square metre of the Earth’s surface including land and water [asmithmd1 and PKFC, 2006; Dean, 2005; Robertson, 2003; Morton, 1997; Culpan, 2004; Microsoft, 2004; con, 2006].
4
TCP Transport Layer Changes for IPv6
“Most transport- and application-layer protocols need little or no change to work over IPv6; exceptions are applications protocols that embed networklayer addresses (such as FTP or NTPv3; NTPv4 supports IPv6).” [Wikipedia, 2006b].
5
Sockets Application Program Interface (API) Changes for IPv6
Those parts of the API that expose the addresses must be changed to accommodate the larger IPv6 address size. IPv6 also introduces new features, some of which must be made visible to applications via the API. Core socket functions - These functions need not change for IPv6, but a new IPv6-specific address data structure is needed. Address data structures - a new address data structure must be defined for IPv6. Name-to-address translation functions - gethostbyname() and gethostbyaddr(). These are left as is, and new functions are defined which support both IPv4 and IPv6. gethostbyname() uses getaddrinfo() now. Address conversion functions - IPv4 uses inet ntoa() and inet addr(). We have designed two analogous functions that convert both IPv4 and IPv6 addresses, and carry an address type parameter so that they can be extended to other protocol families as well. Extra - A new interface is needed to support the IPv6 hop limit header field. New socket options are needed to control the sending and receiving of IPv6 multicast packets. [Gilligan et al., 1999; 2003; ?; Stevens et al., 2003]
2
6
DNS and IPv6
For the Domain Name System (DNS) to support IPv6 names and addresses, it must be extened to support 128-bit addresses, since the DNS was originally designed to only return 32-bit addresses. Three extensions are required to support the 128-bit address space [Thomson and Huitema, 1995; Thomson et al., 2003]: The first is a new resource record type to map domain names to IPv6 addresses. The second is a new domain must be defined to support lookups based on addresses. Finally queries, originally for IPv4, must be redefined to handle IPv6 addresses, along with support for IPv4 addresses. The new resource record defined to support IPv6 is labelled AAAA, as opposed to A in IPv4. The AAAA type is used in the same way as the A type however 128-bit addresses are used instead of 32-bit addresses. This enables a DNS to perform IPv6 address lookups given a domain name. To perform domain name lookups given an IPv6 address a special domain is setup, which was originally rooted at IP6.INT, but has now been replaced with IP6.ARPA, following the depreciation of IP6.INT that is now truly obsolete as of the 1st June, 2006 [Sun, 2006; Bush, 2001; Thomson et al., 2003]. The IP6.ARPA represents IPv6 addresses by a sequence of single hexadecimal numbers separated by dots and with a suffix of .IP6.ARPA. The sequence of single hexadecimal numbers is the IPv6 in reverse order. So the IPv6 address 3133 : 7 : 0 : 9 : 9 : 42 : 666 : 77aa is represented as a.a.7.7.6.6.6.0.2.4.0.0.9.0.0.0.9.0.0.0.0.0.0.0.7.0.0.0.3.3.1.3.IP6.ARPA.
7
IPv6 through IPv4 networks
For IPv6 packets from IPv6 islands to reach other IPv6 islands through a IPv4 ocean a technique to perform the IPv6 transition over IPv4 networks is known as “IPv6 over IPv4 tunneling, which carries IPv6 packets within IPv4 packets” [King et al., 1999; IPNGBone, 2006]. IPv6 over IPv4 tunneling is performed without any change to the IPv4 infrastructure and its components. The router between the IPv4 ocean and the IPv6 island encapsulates the IPv6 packet within IPv4 packets and then sent as normal IPv4 through the IPv4 ocean. When the encapsulated IPv6 packet enters another IPv6 island, another router decapsulates the packet and the packet is then sent through the IPv6 network as a normal IPv6 packet. The router that performs the transition of packets between the IPv4 ocean and IPv6 island uses protocol number 41, however if this port is blocked other schemes such as AYIYA or GRE can be applied [Wikipedia, 2006b]. There is no effect to the MTU however the overhead almost doubles [Raicu and 3
Naveed, 2002]. On a side note, tunnelling across IPv4 links is useful however not a great approach because it’s difficult to do accounting of tunnelled traffic, and impossible to achieve QoS. -
8
IPv6 and Mobile Phones
keywords “exchange of 200 IP datagrams GPRS ipv6”
References [asmithmd1 and PKFC, 2006] asmithmd1 and PKFC. The impending ip crisis, 2006. http://slashdot.org/articles/03/07/22/1413248.shtml. [Bush, 2001] R. Bush. RFC 3152: Delegation of ip6.arpa, August 2001. http://tools.ietf.org/html/rfc3152.
[con, 2006] Emerging technologies, August 2006. http://www.connectedearth.com/Galleries/Ourworldoftelecommunications/Daysoffuturepast/Emergingtechnologies/i [Culpan, 2004] Tim Culpan. World: New address for wired world, August 2004. http://www.asiamedia.ucla.edu/article.asp?parentid=14254. [Dean, 2005] Tim Dean. Tomorrow’s internet, April 2005. http://www.atomicmpc.com.au/article.asp?SCID=24&CIID=21291. [Gilligan et al., 1999] R. Gilligan, S. Thomson, J. Bound, and W. Stevens. RFC 2553: Basic socket interface extensions for ipv6, March 1999. http://tools.ietf.org/html/rfc2553. [Gilligan et al., 2003] R. Gilligan, S. Thomson, J. Bound, J. McCann, and W. Stevens. RFC 3493: Basic socket interface extensions for ipv6, February 2003. http://tools.ietf.org/html/rfc3493. [Hinden and Deering, 2006] R. Hinden 4291: Ip version 6 addressing http://tools.ietf.org/html/rfc4291.
and S. Deering. architecture, February
RFC 2006.
[IPNGBone, 2006] IPNGBone. Ipv6: A protocol overview, August 2006. http://www.ipngbone.net/?id=docu 1.
4
[King et al., 1999] Steve King, Ruth Fax, Dimitry Haskin, Wenken Ling, Tom Meehan, Robert Fink, and Charles Perkins. The case for ipv6: draft-ietf-iab-case-for-ipv6-06.txt, December 1999. http://www.6bone.net/misc/case-for-ipv6.html.
[Microsoft, 2004] Microsoft. Tcp/ip fundamentals for microsoft windows - chapter 3 ip addressing, November 2004. http://207.46.19.60/technet/itsolutions/network/evaluate/technol/tcpipfund/tcpipfund ch03.m [Morton, 1997] David Morton. Understanding ipv6, http://www.pcsupportadvisor.com/nasample/c0655.pdf.
May
1997.
[Raicu and Naveed, 2002] Ioan Raicu and Ahmad Naveed. Tunneling: A transition mechanism to delay ipv6 networks, February 2002. http://people.cs.uchicago.edu/ iraicu/research/reports/WSU CSC8260 2001.pdf. [Robertson, 2003] Dale Robertson. Ipv6 largely implemented network-wide, September 2003. http://istresults.cordis.lu/index.cfm?section=news&tpl=article&ID=56940. [Stevens et al., 2003] W. Stevens, M. Thomas, E. Nordmark, and T. Jinmei. RFC 3542: Advanced sockets application program interface (api) for ipv6, May 2003. http://tools.ietf.org/html/rfc3542. [Sun, 2006] Sun. ip6.int is dead, long live ip6.arpa, http://blogs.sun.com/ace/entry/ip6 int is dead long.
May 2006.
[Thomson and Huitema, 1995] S. Thomson and C. Huitema. RFC 1886: Dns extensions to support ip version 6, December 1995. http://tools.ietf.org/html/rfc1886. [Thomson et al., 2003] S. Thomson, C. Huitema, V. Ksinant, and M. Souissi. RFC 3596: Dns extensions to support ip version 6, October 2003. http://tools.ietf.org/html/rfc3596. [Wikipedia, 2006a] Wikipedia. http://en.wikipedia.org/wiki/Earth.
Earth,
August
2006.
[Wikipedia, 2006b] Wikipedia. http://en.wikipedia.org/wiki/IPv6.
Ipv6,
August
2006.
5