# Configuring IPv6 Ethernet connections

This topic provides the following information about IPv6 Ethernet interfaces:

- IPv6 Ethernet interface keywords

- IPv6 addresses and routing

- IPv6 and neighbor discovery

- IP security and IPv6

- IPv6 path redundancy

- Example configuration

- IPv6 standards

## IPv6 Ethernet interface keywords

Use the following board keywords to configure the CG board Ethernet interfaces for IPv6:

Keyword | Description
--- | ---
IPv6.Link[x].Enable | Enables or disables IPv6 on the specified Ethernet interface.
IPv6.Link[x].EnablePing | Enables or disables IPv6 PING on the specified Ethernet interface.
IPv6.Link[x].HopLimit | Specifies the default IPv6 hop limit value (that is, the number of routers through which a datagram will travel) for the Ethernet interface.
IPv6.Link[x].ICMPRateLimit | Specifies the IPv6 ICMP rate limit (that is, the maximum amount of ICMP error messages per second that can be sent) for the Ethernet interface.
IPv6.Link[x].IPSec | Enables or disables IPSec for IPv6 on the specified Ethernet interface.
IPv6.Link[x].MTU | Specifies the IPv6 maximum transmission unit ( MTU) for the Ethernet interface.
IPv6.Link[x].NDAttempts | Specifies the neighbor discovery attempt (NDA) limit for the Ethernet interface.
IPv6.Link[x].NDReachabilityTimer | Specifies the neighbor discovery reachability timer duration for the Ethernet interface in milliseconds.
IPv6.Link[x].NDRetranTimer | Specifies the neighbor discovery re-transmission timer for the Ethernet interface in milliseconds.

## IPv6 addresses and routing

Use the IPv6.Link[x].Enable keyword to enable IPv6 on a particular Ethernet interface. Unlike IPv4, IPv6 addressing and routing information are not explicitly configured. The IPv6 addresses and routing information are automatically configured using the Stateless Address Autoconfiguration protocols and procedures as specified in RFC 2461, RFC 2462, and RFC 2464.

This address autoconfiguration procedure is initiated for each Ethernet interface independently. The default setting for IPv6.Link[x].Enable is NO, meaning IPv6 is disabled by default.

When enabled, the CG board IPv6 stack automatically configures itself with the following IPv6 addresses:

Address | Definition
Link-local unicast | FE80::EUI-64
Link local scope all nodes multicast address | FF02::1
Each unicast address | Solicited node multicast address
Loopback address | 1
Multiple site local or global unicast addresses | Added based on the contents of any router advertisements received. These addresses take the following form: prefix/64:EUI-64.

Refer to RFC 2373 and RFC 2464 for more information about EUI-64 addresses.

## IPv6 and neighbor discovery

The neighbor discovery protocol as defined in RFC 2461 manages the interactions between different nodes by exchanging messages that enable hosts to communicate with each other and implement autoconfiguration. Use the IPv6.Link[x].NDAttempts, IPv6.Link[x].NDRetranTimer, and IPv6.Link[x].NDReachabilityTimer keywords to configure the neighbor discovery protocol.

Neighbor discovery uses ICMPv6 as its base protocol and replaces ARP, ICMPv4 Router Discovery, and ICMPv4 Redirect. In addition, the neighbor discovery protocol explicitly defines mechanisms for determining neighbor reachability on an ongoing basis.

Neighbor discovery keywords configure the following settings:

Keyword | Description
IPv6.Link[x].NDAttempts | Configures the number of neighbor solicitations sent to a particular neighbor address prior to determining that the neighbor is unreachable.
IPv6.Link[x].NDRetranTimer | Configures the amount of time in milliseconds between re-transmission of neighbor solicitations when a corresponding neighbor advertisement has not been received.
IPv6.Link[x].NDReachabilityTimer | Configures the amount of time in milliseconds between reverifications that a particular neighbor is reachable.

## IP security and IPv6

Use the IPv6.Link[x].IPSec keyword to enable or disable IP Security ( IPSec) for IPv6 on a particular Ethernet interface. You can enable or disable IPSec independently for each Ethernet interface. The default setting is NO, so that IPSec is disabled by default. There is a minor performance impact on the system when IPSec is enabled.

For more information about implementing IPSec on CG boards, refer to cgsetkey - Configuring IPv6 security keys and policies.

## IPv6 path redundancy

The IPv6 neighbor discovery protocol provides a mechanism for discovering faults in the network between a source system and either another link local system or a router into the larger IPv6 network. The fault detection extends beyond the directly-connected Ethernet cable and includes all network components between the source and its exit point to the global IPv6 network. When using the CG board IPv6 stack, you can configure the board to implement this type of path redundancy to supplement the single link redundancy capabilities built into the board’s IPv4 stack.

The CG 6565E IPv4 stack can detect link failures between the board Ethernet port and its directly connected link partner (typically an Ethernet switch), but not component failures that occur elsewhere on the network (for example, link failures between the Ethernet switch and either another Ethernet switch or router). You can configure the CG board IPv6 stack to use the IPv6 neighbor discovery protocol to determine whether or not it can reach each link's local IPv6 destination. Regardless of where a component failure occurs, the board can notify the application of any link failures, and the application can take corrective actions based on this information.

### Path redundancy and Fusion

To implement path redundancy for CG board IPv6 Ethernet interfaces, you must enable the passage of Fusion route availability events. These events notify the application when the Ethernet interface associated with a particular endpoint experiences a change of status. Based on the information provided by the event, the application can then change the network path associated with the Ethernet interface. Applications enable this feature on an endpoint-by-endpoint basis when creating Fusion RTP and UDP endpoints. For more information about using Fusion route availability events, refer to the Fusion Developer's Manual.

## Example configuration

The following example shows IPv6.Link keywords that configure two CG board IPv6 Ethernet interfaces:

########################################
# Enables both Ethernet interfaces for IPv6
########################################
IPv6.Link[0].Enable = YES
IPv6.Link[0].IPSec = NO
IPv6.Link[0].MTU = 1500
IPv6.Link[0].HopLimit = 64
IPv6.Link[0].EnablePing = YES
IPv6.Link[0].ICMPRateLimit = 100
IPv6.Link[0].NDAttempts = 3
IPv6.Link[0].NDRetranTimer = 1000
IPv6.Link[0].NDReachabilityTImer = 30000
IPv6.Link[1].Enable = YES
IPv6.Link[1].IPSec = NO
IPv6.Link[1].MTU = 1500
IPv6.Link[1].HopLimit = 128
IPv6.Link[1].EnablePing = YES
IPv6.Link[1].ICMPRateLimit = 100
IPv6.Link[1].NDAttempts = 3
IPv6.Link[1].NDRetranTimer = 1000
IPv6.Link[1].NDReachabilityTImer = 30000

For more information about implementing IPv6 functionality on CG boards, refer to the Fusion documentation.

## IPv6 standards

The following table lists some of the standards from the IETF that are relevant to IPv6:

Document | Title
RFC 2460 | Internet Protocol, Version 6 (IPv6) Specification
RFC 2373 | IP Version 6 Addressing Architecture
RFC 2463 | Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6)
RFC 2401 | Security Architecture for the Internet Protocol
RFC 2461 | Neighbor Discovery for IP Version 6 (IPv6)
RFC 2462 | IPv6 Stateless Address Autoconfiguration
RFC 2464 | A Method for Transmission of IPv6 Packets over Ethernet Networks