# IPv6 Overview

Internet Protocol version 6 (IPv6) is designed to eventually supersede IP version 4 (IPv4). The intent of this design change is not to take a radical step away from IPv4, but to enhance IP addressing and maintain other IPv4 functions that work well.

The differences between IPv4 and IPv6 include the following:

- Expanded addressing capabilities

  IPv6 increases the size of the IP address from 32 bits to 128 bits. This increased size provides a larger address space and a much larger number of addressable nodes.

- Simplified header format

  Reducing some common processing costs associated with packet handling and streamlining the bandwidth cost of the larger IPv6 header, some IPv4-specific header fields either no longer exist or are now optional in the IPv6 header.

- Traffic flow labelling capabilities

  The ability to label packets for specific traffic flows exists in the IPv6 packet. These labels allow for nondefault quality of service (QoS) or the possibility of “real-time” services.

- Authentication capabilities

  Authentication provides the ability to use extensions for some authentication and data integrity applications.

IPv6 continues to provide the basic packet delivery service for all TCP/IP networks. As a connectionless protocol, IPv6 does not exchange control information to establish an end-to-end connection before transmitting data. Instead, just like its IPv4 predecessor, IPv6 continues to rely on protocols in other layers to establish the connection if connection-oriented services are required and to provide error detection and error recovery.

In addition to supporting a revised header structure and an expanded addressing format, the E Series router supports the following IPv6 features:

- Static routes
- ICMPv6
- Ping
- Traceroute
- Routing policy (See JunosE IP Services Configuration Guide for details.)
- IPv6 B-RAS (See the JunosE Broadband Access Configuration Guide for details.)
- IPv6 tunnel routing tables

## IPv6 Packet Headers

An IPv6 packet is a block of data that contains a header and a payload. The header is the information necessary to deliver the packet to a destination address; the payload is the data that you want to deliver. IPv6 packets can use a standard or an extended format.

### IPv4 and IPv6 Header Differences

The main difference between IPv4 and IPv6 resides in their headers. Figure 13 provides a comparison between the two protocol versions.

Figure 13: IPv4 and IPv6 Header Comparison

### Standard IPv6 Headers

IPv6 packet headers contain many of the fields found in IPv4 packet headers; some of these fields differ from IPv4. (See Figure 13.)

The 40-byte IPv6 header consists of the following eight fields:

- Version—Indicates the version of the Internet Protocol.
- Traffic class—Previously the type-of-service (ToS) field in IPv4, the traffic class field defines the class-of-service (CoS) priority of the packet. However, the semantics for this field (for example, DiffServ code points) are identical to IPv4.
- Flow label—The flow label identifies all packets belonging to a specific flow (that is, packet flows requiring a specific class of service [CoS]); routers can identify these packets and handle them in a similar fashion.
- Payload length—Previously the total length field in IPv4, the payload length field specifies the length of the IPv6 payload.
- Next header—Previously the protocol field in IPv4, the Next Header field indicates the next extension header to examine.
- Hop limit—Previously the time-to-live (TTL) field in IPv4, the hop limit indicates the maximum number of hops allowed.
- Source address—Identifies the address of the source node sending the packet.
- Destination address—Identifies the final destination node address for the packet.

### Extension Headers

In IPv6, extension headers are used to encode optional Internet-layer information. Extension headers are placed between the IPv6 header and the upper-layer header in a packet.

IPv6 enables you to chain extension headers together by using the next header field. The next header field, located in the IPv6 header, indicates to the router which extension header to expect next. If there are no more extension headers, the next header field indicates the upper-layer header (TCP header, UDP header, ICMPv6 header, an encapsulated IP packet, or other items).

## IPv6 Addressing

IPv6 increases the size of the IP address from the 32 bits found in IPv4 to 128 bits. This increased size provides for a broader range of addressing hierarchies and a much larger number of addressable nodes.

In addition to the increased size, IPv6 addresses can be of different scopes that categorize what types of applications are suitable for the address. IPv6 does not support broadcast addresses, but uses multicast addresses to serve this role. In addition, IPv6 also defines a new type of address called anycast.

### Address Representation

IPv6 addresses consist of eight hexadecimal groups. Each hexadecimal group, separated by a colon (:), consists of a 16-bit hexadecimal value. The following is an example of the IPv6 format:

xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx

A group of xxxx represents the 16-bit hexadecimal value. Each individual x represents a 4-bit hexadecimal value. The following is an example of a possible IPv6 address:

4FDE:0000:0000:0002:0022:F376:FF3B:AB3F

| Note: Hexadecimal letters in IPv6 addresses are not case sensitive.

#### IPv6 Address Compression

IPv6 addresses often contain consecutive hexadecimal fields of zeros. To simplify address entry, you can use two colons (::) to represent the consecutive fields of zeros when typing the IPv6 address. Table 8 provides compressed IPv6 address format examples.

Table 8: Compressed IPv6 Formats

IPv6 Address Type | Full Format | Compressed Format
--- | --- | ---
Unicast | 10FB:0:0:0:C:ABC:1F0C:44DA | 10FB::C:ABC:1F0C:44DA
Multicast | FD01:0:0:0:0:0:0:1F | FD01::1F
Loopback | 0:0:0:0:0:0:0:1 | ::1
Unspecified | 0:0:0:0:0:0:0:0 | ::

| Note: You can use two colons (::) only once in an IPv6 address to represent hexadecimal fields of consecutive zeros.

#### IPv6 Address Prefix

An IPv6 address prefix is a combination of an IPv6 prefix (address) and a prefix length. The prefix takes the form ipv6-prefix/prefix-length and represents a block of address space (or a network). The ipv6-prefix variable follows general IPv6 addressing rules (see RFC 2373 for details). The /prefix-length variable is a decimal value that indicates the number of contiguous, higher-order bits of the address that make up the network portion of the address. For example, 10FA:6604:8136:6502::/64 is a possible IPv6 prefix.

### Address Types

IPv6 can use several types of addresses:

- Unicast—Used to identify a single interface, this release of the E Series router product supports the following unicast address types:
  - Global aggregatable—Provides for aggregation of routing prefixes to limit the number of global routing table entries
  - Link-local—Eliminates the need for a globally unique prefix. Local-link addresses allow communications between devices on a local link.
  - Site-local—Used as private addresses to restrict communication to a domain portion.

    | Note: IPv6 routers must not forward packets that have site-local source or destination addresses outside the site.

  - IPv4-compatible—Contains a standard IPv4 address in the lower-order 32 bits of the address and zeros in the higher-order 96 bits of the address. For example, the format of an IPv4-compatible IPv6 address is 0:0:0:0:0:0:A.B.C.D (or condensed as ::A.B.C.D). In other words, devices using IPv6 use the entire 128-bit IPv4-compatible IPv6 address, whereas IPv4 devices use the IPv4 address embedded within the lower-order 32-bits of the address. You would use IPv4-compatible IPv6 addresses for devices that must support both IPv4 and IPv6 protocols.
- Multicast—Used for sending packets to multiple destinations. A multicast transmission sends packets to all interfaces that are part of a multicast group. The group is represented by the IPv6 destination address of the packet.
- Anycast – Used for a set of interfaces on different nodes. An anycast transmission sends packets to only one of the interfaces associated with the address, not to all of the interfaces. This interface is typically the closest interface, as defined by the routing protocol.
- Loopback—Used by a node to send an IPv6 packet to itself. An IPv6 loopback address functions the same as an IPv4 loopback address.
- Unspecified—Indicates the absence of an IPv6 address. For example, newly initialized IPv6 nodes may use the unspecified address as the source address in their packets until they receive an IPv6 address.

  | Note: IPv6 does not use broadcast addresses; instead, IPv6 uses multicast addresses.

### Address Scope

Some unicast and multicast IPv6 addresses contain a value known as scope. This value identifies the application suitable for the address.

Unicast addresses support two types of scope—global and local. In addition, there are two types of local scope—link-local addresses and site-local addresses.

Link-local unicast addresses, identified by the first ten bits of the prefix, function within a single network link. You cannot use link-local addresses outside a network link.

Site-local unicast addresses function within a site or an intranet. A site consists of multiple network links, and site-local addresses identify nodes inside the intranet. You cannot use site-local addresses outside the site.

Multicast addresses support 16 different types of scope, including node, link, site, organization, and global scope. A four-bit field in the prefix identifies the scope.

### Address Structure

Unicast addresses identify a single interface. The address consists of n bits for the prefix and 128-n bits for the interface ID.

Multicast addresses identify a set of interfaces. The address is made up of the first 8 bits of all ones, a 4-bit flag field, a 4-bit scope field, and a 112-bit group ID.

11111111 | flgs | scop | group ID

The first octet of ones identifies the address as a multicast address. The flags field identifies whether the multicast address is a well-known address or whether it is a transient multicast address. The scope field identifies the scope of the multicast address. The 112-bit group ID identifies the multicast group.

Similar to multicast addresses, anycast addresses identify a set of interfaces. However, packets are sent to only one of the interfaces, not to all interfaces. Anycast addresses are allocated from the normal unicast address space and cannot be distinguished from a unicast address in format. Therefore, each member of an anycast group must be configured to recognize certain addresses as anycast addresses.

### ICMP Support

Internet Control Message Protocol (ICMP) provides a mechanism that enables a router or destination host to report an error in data traffic processing to the original source of the packet. For this release, the E Series router supports ICMP for use in the IPv6 ping and traceroute commands.

The ping and traceroute commands help you determine destination reachability within a network.

- Use the ping ipv6 command to send an ICMP echo request packet. In the following example, the request packet is sent to address 1::1 with a data size of 200 and a timeout value of 10 seconds:
  host1#ping ipv6 1::1 data-size 200 timeout 10
- Use the traceroute ipv6 command to discover routes that router packets follow when traveling to their destination. In the following example, the trace destination address is 1::1, the maximum number of hops of the trace is 20, and the timeout value is 10 seconds:
  host1#traceroute ipv6 1::1 hop-limit 20 timeout 10

## IPv6 Tunnel Routing Table

The IPv6 tunnel routing tables include IPv6 routes that point only to tunnels, such as MPLS tunnels. The tunnel routing table is not used for forwarding. Instead, protocols resolve next hops by looking up the routes that point to tunnels. The routes in the tunnel routing table cannot be redistributed. See JunosE BGP and MPLS Configuration Guide for more information.

## Indirect Next Hop Support

The router uses indirect next hops to promote faster network convergence (for example, in BGP networks) by decreasing the number of routing table changes required when a change in the network topology occurs.

Direct next-hops point routes in the routing table toward individual, direct next-hop connections. (See Figure 14.)

Figure 14: Direct Next Hops

Indirect next hops enable multiple routes in the routing table to point to a single next hop, thereby accelerating convergence. (See Figure 15.)

| Note: Indirect next hops are not limited to any number of levels. In other words, an indirect next hop can point to a direct next hop or another indirect next hop.

Figure 15: Indirect Next Hops

By using indirect next hops, if a topology change occurs in the network, only the indirect next hop is modified in the routing table, decreasing the number of state changes required to achieve convergence.