Intro to IPv6

From ITCwiki
Revision as of 04:23, 27 July 2010 by ABorgert (talk | contribs)
Jump to navigation Jump to search

This tutorial is aimed at developing a basic understanding of IPv6 for the new user. The reason IPv6 was created was because of an explosive increase in the number of devices requiring an IP address to communicate on a network and the depleting resources of IPv4 address space. Current estimates suggest that by 2011, all of the left over addresses will be used up; meaning anyone not already connected to the Internet risks being left behind. Born out of necessity IPv6 is a solution to this problem, made up of a suite of protocols and standards that where developed by the Internet Engineering Task Force (IETF). Not only does IPv6 increase address space but it also solves problems discovered with IPv4 that became evident over the years. Deploying IPv6 on a global scale is vital to the Internet industry.


General IPv6

The main difference between IPv4 and IPv6 is where IPv4 addresses consist of 32 bits, IPv6 addresses consist of eight blocks of 4 hexadecimal digits each. Four hexadecimal digits are equal to 16 bits, so an IPv6 address has 8*16 = 128 bits.

  • An example of an IPv6 address looks like this: 2001:4CEA:8D8C:0000:0000:0000:00D2:7A4B

From this example it is apparent to anyone that IPv6 addresses are more complex to remember than IPv4 addresses. Therefore two rules have been developed to shorten addresses to something more manageable.


Address Structure Rules

1. Any leading digit of Zero can be dropped from any group

  • The example above will look like this with this rule: 2001:4CEA:8D8C:0:0:0:D2:7A4B

2. Two or more groups of zeros can be replaced by two colons, (But only once per address).

  • Then it looks like this: 2001:4CEA:8D8C::D2:7A4B

This is much simpler :)


Types of IPv6 addresses

There are three main types of IPv4 addresses (APIPA, Private, and Public)? The same is true for IPv6, only they have different names:

  • Global Address (GA): this is the equivalent of IPv4’s (public address). These addresses start with a first block in the 2000-3FFF range.
  • Link-Local Address (LLA): this is the equivalent of the IPv4 (APIPA address). These addresses always start with "fe80".
  • Unique Local Address (ULA): also known as a Site-Local address this is the equivalent of IPv4’s (private address). Where IPv4 private addresses fall within three ranges, ULA’s always start with "fd"

There are two more that have more specific uses:

  • Multicast address: Allows communication between one host and many receivers. These packets are sent out to all the interfaces that are identified by that address. Multicast addresses always begin with "ff"
  • Special addresses: There are two special addresses. One is called the Loopback address and it looks like this 0:0:0:0:0:0:0:1 (or ::1). It is the same as the IPv4 address 127.0.0.1 and used for the same purpose; to identify a loopback interface. The other special address is called the Unspecified address and it looks like this 0:0:0:0:0:0:0:0 (or simply written ::). It is equivalent to the IPv4 address 0.0.0.0 and is also used for the same purpose; it is commonly used as the source address that packets use to confirm if a tentative address is unique.


Some features that are available only in IPv6

  • Stateless address autoconfiguration - lets hosts configure themselves automatically.
  • Multicast - allows single packets to be sent to multiple destinations.
  • Mandatory network layer security - integrated Internet Protocol Security (IPsec).
  • Simpler router processing - Routing in IPv6 is almost identical to IPv4 routing under CIDR except that the addresses are 128- bit IPv6 addresses instead of 32-bit IPv4 addresses. With very straightforward extensions, IPv4's routing algorithms (OSPF, RIP, IDRP, ISIS, etc.) can be used to route IPv6.
  • Mobility – This means that a mobile device is not constrained by location and has an “always on” IP connectivity to its home agent via a bidirectional tunnel. In other words, if there is a network that the mobile device can connect. Then it can communicate on its own home network with its own IP address, as if it was directly connected.
  • Extension Header Mechanism - The extension header mechanism makes it easy to 'extend' the packet header to support future services for QoS, IPsec, Mobile IP, etc. without a redesign of the basic protocol. Extension headers do this by carrying options that are used for special packet treatment along its route or at its destination, routing, fragmenting, and for security using the IPsec framework.
  • Jumbo Payload Option header – Also known as a Jumbogram allows an IPv6 packet to carry a payload larger than the standard mode size of one byte less than 64 Kilobytes or 65,535 (2*16 - 1) octets of payload. A jumbo payload can be almost 4GB or 4,294,967,295 (2*32 - 1) octets of payload.


IPv6 Packet Format

The IPv6 packet has three main parts:

  • Fixed Header: The first 40 octets (320 bits) of an IPv6 data packet makes up the fixed header. The format of the fixed header is presented in the table above.
  • Extension Headers (Optional): The extension headers encode the optional Internet-layer information between the fixed header and the upper-layer protocol header in a packet. The headers form a chain, using the Next Header fields.
  • Payload (Optional): The payload can have a size of up to 64 KB in standard mode, or with the Hop-By-Hop Options extension header it can carry the larger "jumbo payload" option.

The fixed and optional IPv6 extension headers are followed with the upper-layer payload and the data provided by the transport layer. The Next Header field of the last IPv6 header is what indicates the type of payload that is in this packet.


Header.jpg













  • Version (4 bits): This Indicates the IP version.
  • Traffic Class (8 bits): The traffic class field defines the priority of the packet. There are two values held by the bits of this field. The 6 most-significant bits are used to classify packets. The two bits left are used for congestion control.
  • Flow Label (20 bits): The flow label identifies all packets belonging to a specific Class of Service or “flow”. These packets can be Identified by routers and handle them all according to their class of service.
  • Payload Length (16 bits): The payload length field shows the size of the payload. The payload length includes the size of any extension headers. The field length is set to zero whenever an extension header carries a Jumbo Payload option.
  • Next Header (8 bits): The next header field shows the Transport Layer Protocol that is used by the payload. When there is extension headers in the packet, this field shows which extension header will follow.
  • Hop Limit (8 bits): The hop limit shows the maximum number of hops allowed. This value is decreased by one at every hop in the packets route. The packet is discarded when the counter reaches 0.
  • Source Address (128 bits): This identifies the IPv6 address of the source sending the packet. The source is also known as the “The Sending Node”.
  • Destination Address (128 bits): This identifies IPv6 address of the destination receiving the packet or “The Destination Node”.