BSCI: IP Version 6
Posted by Aragoen Celtdra on 1st February 2009
- Internet Protocol version 6 (or IPv6) is designed to succeed the currently dominant Internet Protocol version 4 (IPv4).
- It is defined in RFC 2460: Internet Protocol, Version 6 (IPv6) Specification.
- The changes from IPv4 to IPv6 fall primarily into the following categories:
- Expanded Addressing Capabilites
- The IPv4 IP address size is 32 bits. Compared to that, IPv6 address size is 128 bits.
- The large address space provided by IPv6 allows for several benefits such as:
- Improved global reachability and flexibility
- Aggregation of prefixes that are announced in the routing table
- Easier multihoming ability with multiple ISPs
- Simpler auto-configuration of addresses
- End-to-end communication without the need for NAT
- Easier address renumbering and modification
- Simplified IP Header
- Some IPv4 fields are dropped and made optional.
- Better routing efficiency and performance.
- Simpler header mechanisms.
- Flow Labeling Capability
- Flow labels for per-flow processing with no need to examine the transport layer information to identify various traffic flows.
- A new capability to enable the labeling of packets belonging to particular traffic “flows” for which the sender requests special handling, such as non-default quality of service or “real-time” service.
- Authentication and Privacy Capabilities
- IPSec is mandatory in IPv6.
- IPSec is enabled and available for use on every IPv6 node, which provides more secure Internet experience.
- IPSec also requires keys for each device, which implies global key deployment and distribution.
- Support for Mobility
- Mobile IP enables mobile devices to move without breaks in established network connections.
- Mobility is built in, which means that any IPv6 node can use it when necessary.
- The routing headers of IPv6 makes mobile IPv6 much more efficient for end nodes than mobile IPv4 does.
- Expanded Addressing Capabilites
IPv6 Address Space
- IPcv6 increases the number of address bits by a factor of 4 – from 32 bits to 128 bits.
- With 32 bits, IPv4 allows for 4,294,967,296 addresses – about 2 billion are usable.
- With 128 bits, IPv6 allows for approximately 3.4 x 1038.
- Note, however, that increasing the number of bits for the address also increased the IPv6 header size.
- The header fields that contain the IPv6 address is 256 bits (source and destination bits combined) in size. Compare that to 64 bits in IPv4 (32bit-source address + 32bit-destination address).
IPv6 Packet Header
- The IPv6 headers has 40 octets, compared to the 20 octets in IPv4 header.
- IPv6 has fewer fields, and the header is 64-bit aligned to enable fast, efficient, hardware-based processing.
- The IPv6 address fields are four times larger than in IPv4.
- The following illustration compares the IPv4 and IPv6 headers:
- Note that the IPv6 (main) header displayed above is an illustration of the basic structure of the header, differentiated from “IPv6 extension headers” to be described shortly.
- Notice that although IPv6 has increased its address size (source & destination fields) by 4 times, the main header is designed for a more simplified format.
- One of the important changes is the absence of familiar fields from the previous IP version such as:
- Internet Header Length (IHL)
- Service Type
- Identification
- Flags
- Fragment Offset
- Header Checksum
- Options and Padding
- The following describes the various fields in the new IPv6 header:
- [4-bit] Version
- Bit size the same as IPv4.
- The value of this field is 6, to describe version 6.
- [8-bit] Traffic Class
- Similar to Type of Service (ToS) in IPv4. Functionality is the same between the two versions.
- This field used to represent the priority (read QoS) by which packets are delivered.
- [20-bit] Flow Label
- New for IPv6.
- Used by the source of the packet to tag the packet as being part of a specific flow. For example, a packet’s sender can specify a series of packets, say VoIP packets, as a flow. It can then request particular service for this flow.
- This mechanism allows multilayer switches and routers to hand traffic on a per-flow basis rather than per-packet, for faster packet-switching perfomance.
- Can also be used for QoS.
- [16-bit] Payload length
- Replaces the Total Length field present in the IPv4 header.
- As opposed to the IPv4 where it measures the total length of the whole packet, in IPv6 it only measures the number of bytes of payload. In other words, it measures the whole packet minus the 40 bytes of the main header.
- [8-bit] Next Header
- Similar to the protocol field in the IPv4 header.
- It can be a trasnport-layer packet, such as TCP or UDP, or it can be an extension header.
- It has two uses:
- If the datagram has extension headers, this field specifies the identity of the first extension header (which is the next header in the diagram).
- If it’s just the main header and no extension headers, it serves the same purpose as the old IPv4 protocol and has the same values.
- [8-bit] Hop Limit
- This is similar to the TTL field in the IPv4 header - a more appropriate name since the TTL is really more about the number of hops than a measure of time.
- Each router decreases this field by one, just like in IPv4.
- Because there is no checksum in the IPv6 header, an IPv6 router can decrease the field without recomputing the checksum. Recomputation costs processing time.
- If this field ever reaches 0, a message is sent back to the source of the packet and the packet is discarded.
- [128-bit] Source Address
- The originator of the packet.
- [128-bit] Destination Address
- The intended recipient of the packet.
- The basic IPv6 header consists of 320 bits, or 40 bytes, or 40 octets.
- Extension Headers
- These are optional information that are placed between the IPv6 header and the upper layer header in a packet. They are discussed below.
- [4-bit] Version
- The most significant deletion in IPv6 is the IPv4 header checksum field. Because link-layer technologies perform checksum and error control and are considered relatively reliable, an IP header checksum is considered redundant.
- Without the IP header checksum, upper-layer checksums, such as UDP, are mandatory with IPv6.
IPv6 Extension Headers
- IPv6 extension headers follow the main header and preced the protocol header and the payload fields in IPv6 packets.
- The Next Header field indentifies the type of header following the main IPv6 header.
- These fields are used for special purposes to provide flexibility. They are only added when they are needed.
- By having these fields, they are only attached when there is a need for it, and they are not used when not needed. This allows the main header to remain small when the extension headers are not required for any special purposes.
- Generally, extension headers are not examined or processed by any node other than the node to which packet is destined.
- The one exception is the hop-by-hop options header, which must be examined and processed by every node along a packet’s delivery path, including the source and destination nodes
- The following is a list (in order) and description of the functions of each extension headers, following the main IPv6 header:
- Hop-by-hop Options Header
- When used, this header is processed by every node it passess.
- Identified by a Next Header value of 0 in the IP6 header.
- Example uses are for a Router Alert, including for Resource Reservation Protocol (RSVP) and Multicast Listener Discovery (MLD) messages.
- Destination Options Header
- Used to carry information that need to be examined only by the node where packet is destined.
- Or each destination specified by a routing header.
- Identified by a Next Header value of 60 in the IPv6 header.
- They follow any hop-by-hop option headers.
- Alternatively, it can follow any Encapsulating Security Payload (ESP) header, in which case the destination options header is processed only at the final destination.
- An example where this can be used is Mobile IPV6.
- Used to carry information that need to be examined only by the node where packet is destined.
- Routing Header
- Used by an IPv6 source to list one or more intermediate nodes to be “visited” on the way to a packet’s destination.
- Identified by a Next Header value of 43.
- Fragment Header
- Used by an IPv6 source to fragment a packet that is larger the maximum transmission unit (MTU) for the path between itself and a destination device.
- Unlike IPv4, fragmentation in IPv6 is performed only by source nodes, not by routers along the packet’s path.
- To send a packet that is too large to fit in the MTU of the path to its destination, a source node may divide the packet into fragments and send each fragment as a separate packet. The receiver re-assembles the packet.
- The fragment header is used in each fragmented packet.
- Identified by a Next Header value of 44.
- Used by an IPv6 source to fragment a packet that is larger the maximum transmission unit (MTU) for the path between itself and a destination device.
- Authentication Header and Encapsulating Payload Header
- Next Header values:
- AH = 51
- ESP = 50
- Used within IPSec to provide authentication, integrity, and confidentiality of a packet.
- Identical for both IPv4 and IPv6.
- Next Header values:
- Upper Layer header
- Typical headers used inside a packet to transport data.
- Two main protocols (with Next Header values) are:
- TCP = 6
- UDP = 17
- Hop-by-hop Options Header
MTU Discovery
- In IPv6, upper layers are encouraged to avoid sending messages that require fragmentation.
- IPv6 routers no longer perform fragmentation. Only the source can now do fragmentation; nor routers.
- Since routers cannot fragment datagrams, a feedback process has been defined using ICMPv6 that lets routers tell source devices that they are using datagrams that are too large for the route.
- In this process, source IPv6 devices attempt to send packet at the size specified by upper IP layers, such as transport and application layers.
- If the device receives an ICMPv6 “packet too big” message, it retransmits the MTU discover packet with a smaller MTU. This process is repeated until the device receives a response that the discover packet arrived intact. The device then sets the MTU for the session.
- IPv6 has a minimum size of 1280 bytes. In IPv4, routers and physical links were required to handle a minimum MTU size of 576 bytes.
Resources:
- RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
- TCP/IP Guide.com – Internet Protocol version 6
- RFC 1981: Path MTU Discovery for IP version 6
- RFC 4302: IP Authentication Header
- RFC 4303: IP Encapsulating Security Payload (ESP)
- IPv6 Headers at a Glance – Cisco Technology Whitepapers
This entry is not an authoritative guide. These are merely notes and rehash of the primary text materials and resources that I use. For a thorough guide of the BSCI course, consider purchasing Building Scalable Cisco Internetworks (BSCI) (Authorized Self-Study Guide) (3rd Edition) by Diane Teare and Catherine Paquet; as well as following the links on the resources section of this entry.
Posted in BSCI Exam Prep, CCNP, IPv6 | No Comments » |


