IPv6

IPv6 is the most recent version of the Internet Protocol (IP). It was first described in RFC#2460, Internet Protocol, Version 6 (IPv6) Specification. IPv6 was proposed when it became clear that IPv4’s 32-bit addressing scheme was inadequate to meet the demands of Internet growth. It is based on the Internet Protocol, but with far more address space (from 32 bits to 128 bits).

Unnecessary fields have also been eliminated in order to simplify the header and thus reduce processing time. Although the address size is 128 bits, the IPv6 header size is only 40 bytes. All additional fields are organized in the extension headers.

IPv6 architecture can coexist with that of IPv4 users, thus easing migration to IPv6 while providing improvements to security, quality of service and globally unique IP addresses. IPv6 offers greater address space and allows networks to scale and provide global reachability. The flexibility of IPv6 addresses reduces the need for private addresses and the use of Network Address Translation (NAT). In addition, IPv6 enables new application protocols that do not require special processing by border routers sitting at the edge of the network.

Configuration

By default, IPv6 is enabled on OSDx devices and all interfaces function as router interfaces. This can be changed using the disable-forwarding command:

set interfaces <kind> <name> ipv6 disable-forwarding

That command forces the interface to behave as a host (it inhibits the routing of packets through this interface).

This can be globally changed by using the following command:

set system ipv6 disable-forwarding

All interfaces working in router mode automatically announce RAs (Router Advertisements). This can be disabled by using the following configuration command:

set interfaces <kind> <name> ipv6 router-advert disable

Note

That command can not be configured if disable-forwarding is enabled for that interface.

IPv6 addresses can be generated using three fundamental mechanisms:

  • Manual.

  • Stateless.

  • Stateful.

The stateful and stateless configurations provide autoconfiguration address mechanisms.

Manual address configuration

Manual configuration offers several possibilities. The most basic one is to assign an absolute address to the interface. This can be achieved by using the following configuration command:

set interfaces <kind> <name> address <ipv6 address>

Example:

set interfaces ethernet eth0 address '2001:db8:100:f101::1/64'

Addresses can also be configured by using the Extensible Unique Identifier-64 (EUI-64) method:

set interfaces <kind> <name> ipv6 address eui64 <ipv6 prefix>

Example:

set interfaces ethernet eth0 ipv6 address eui64 '2001:db8:100:f101::/64'

Warning

This method automatically generates an IP address using the interface’s MAC and it is now not recommended for privacy reasons.

Stateless address configuration

Stateless autoconfiguration is based on the SLAAC (Stateless Address Autoconfiguration) procedure, whose fundamental idea is to form an address from a 64-bit prefix (announced in an RA message) and a suffix generated in the host itself.

This can be enabled by using the following configuration command:

set interfaces <kind> <name> ipv6 address autoconf

Note

disable-forwarding needs to be configured in that interface for this command to work.

Stateful address configuration

Stateful autoconfiguration is achieved by means of the DHCPv6 protocol.

A DHCPv6 client can be started by using the following configuration command:

Note

According to RFC#8415, addresses obtained through DHCPv6 have a 128 bits prefix length.

Monitoring

Most common operational commands have built-in support for IPv6.

Examples:

Command monitor router-advertisement is specific for IPv6 and can be used for RA debugging purposes.

Examples

There is a plethora of examples with IPv6 described at the examples section.

Here, you can find some basic examples related to IPv6 address assignation.

This entry includes examples to configure and debug RA.