IPv6 Client Address Learning

Information About IPv6 Client Address Learning

Client Address Learning is configured on embedded wireless controller to learn the IPv4 and IPv6 address of wireless client, and the client's transition state maintained by the embedded wireless controller on association and timeout.

There are three ways for an IPv6 client to acquire IPv6 addresses:

  • Stateless Address Auto-Configuration (SLAAC)

  • Stateful DHCPv6

  • Static Configuration

In all of these methods, the IPv6 client always sends a neighbor solicitation Duplicate Address Detection (DAD) request to ensure that there is no duplicate IP address on the network. The embedded wireless controller snoops on the Neighbor Discovery Protocol (NDP) and DHCPv6 packets of the client to learn about its client IP addresses.

Address Assignment Using SLAAC

The most common method for IPv6 client address assignment is SLAAC, which provides simple plug-and-play connectivity, where clients self-assign an address based on the IPv6 prefix.

SLAAC is configured as follows:

  • A host sends a Router Solicitation message.

  • The host waits for a Router Advertisement message.

  • The host take the first 64 bits of the IPv6 prefix from the Router Advertisement message and combines it with the 64 bit EUI-64 address (in the case of Ethernet, this is created from the MAC address) to create a global unicast message. The host also uses the source IP address, in the IP header, of the Router Advertisement message, as its default gateway.

  • Duplicate Address Detection is performed by the IPv6 clients to ensure that random addresses that are picked do not collide with other clients.


Note


The choice of algorithm is up to the client and is often configurable.

The last 64 bits of the IPv6 address can be learned by using one of the following algorithms:

  • EUI-64, which is based on the MAC address of the interface

  • Private addresses that are randomly generated


Figure 1. Address Assignment Using SLAAC


The following Cisco IOS configuration commands from a Cisco-capable IPv6 router are used to enable SLAAC addressing and router advertisements:

ipv6 unicast-routing
interface Vlan20
description IPv6-SLAAC
ip address 192.168.20.1 255.255.255.0
ipv6 address FE80:DB8:0:20::1 linklocal
ipv6 address 2001:DB8:0:20::1/64
ipv6 enable
end

Stateful DHCPv6 Address Assignment

The use of DHCPv6 is not required for IPv6 client connectivity if SLAAC is already deployed. There are two modes of operation for DHCPv6, that is, Stateless and Stateful.

The DHCPv6 Stateless mode is used to provide clients with additional network information that is not available in the router advertisement, but not an IPv6 address, becuase this is already provided by SLAAC. This information includes the DNS domain name, DNS servers, and other DHCP vendor-specific options.

Figure 2. Stateful DHCPv6 Address Assignment

The following interface configuration is for a Cisco IOS IPv6 router implementing stateless DHCPv6 with SLAAC enabled:

ipv6 unicast-routing
ipv6 dhcp pool IPV6_DHCPPOOL
address prefix 2001:db8:5:10::/64
domain-name cisco.com
dns-server 2001:db8:6:6::1
interface Vlan20
description IPv6-DHCP-Stateless
ip address 192.168.20.1 255.255.255.0
ipv6 nd other-config-flag
ipv6 dhcp server IPV6_DHCPPOOL
ipv6 address 2001:DB8:0:20::1/64
end

Static IP Address Assignment

Statically configured address on a client.

Router Solicitation

A Router Solicitation message is issued by a host controller to facilitate local routers to transmit a Router Advertisement from which the controller can obtain information about local routing, or perform stateless auto configuration. Router Advertisements are transmitted periodically and the host prompts with an immediate Router Advertisement using a Router Solicitation such as - when it boots or following a restart operation.

Router Advertisement

A Router Advertisement message is issued periodically by a router or in response to a Router Solicitation message from a host. The information contained in these messages is used by a host to perform stateless auto configuration and to modify its routing table.

Neighbor Discovery

IPv6 Neighbor Discovery is a set of messages and processes that determine relationships between neighboring nodes. Neighbor Discovery replaces the Address Resolution Protocol (ARP), Internet Control Message Protocol (ICMP) Router Discovery, and ICMP Redirect used in IPv4.

IPv6 Neighbor Discovery inspection analyzes neighbor discovery messages in order to build a trusted binding table database, and IPv6 Neighbor Discovery packets that do not comply, are dropped. The neighbor binding table in the tracks each IPv6 address and its associated MAC address. Clients are removed from the table according to neighbor-binding timers.

Neighbor Discovery Suppression

The IPv6 addresses of wireless clients are cached by a device. When the device receives an NS multicast looking for an IPv6 address, and if the target address is known to the device and belongs to one of its clients, the device will reply with an NA message on behalf of the client. At the end of this process, the equivalent of the ARP table of IPv4 is generated, but is more efficient because it uses fewer messages.


Note


The device acts as a proxy and responds with NA, only when the ipv6 nd suppress command is configured.

If the device does not have the IPv6 address of a wireless client, the device does not respond with NA; instead, it forwards the NS packet to the wireless side. To resolve this, an NS Multicast Forwarding knob is provided. If this knob is enabled, the device gets the NS packet for the IPv6 address that it does not have (cache miss) and forwards it to the wireless side. This packet reaches the intended wireless client, and the client replies with NA.

Note that this cache miss scenario occurs rarely, and only very few clients who do not implement complete IPv6 stack may not advertise their IPv6 address during NDP.

Router Advertisement Guard

  • Port on which the frame is received

  • IPv6 source address

  • Prefix list

  • Trusted or Untrusted ports for receiving the router advertisement guard messages

  • Trusted/Untrusted IPv6 source addresses of the router advertisement sender

  • Trusted/Untrusted Prefix list and Prefix ranges

  • Router preference

Router Advertisement Throttling

RA throttling allows the controller to enforce limits to the RA packets headed toward the wireless network. By enabling RA throttling, routers that send multiple RA packets can be trimmed to a minimum frequency that will still maintain an IPv6 client connectivity. If a client sends an RS packet, an RA is sent back to the client. This RA is allowed through the controller and unicast to the client. This process ensures that the new clients or roaming clients are not affected by the RA throttling.

Prerequisites for IPv6 Client Address Learning

Before configuring IPv6 client address learning, configure the embedded wireless controller clients to support IPv6.

Configuring IPv6 on Embedded Wireless Controller Interface

Follow the procedure given below to configure IPv6 on an interface:

Before you begin

Enable IPv6 on the client and IPv6 support on the wired infrastructure.

Procedure

  Command or Action Purpose

Step 1

enable

Example:


Device> enable 

Enables privileged EXEC mode.

Enter your password, if prompted.

Step 2

configure terminal

Example:


Device# configure terminal

Enters global configuration mode.

Step 3

interface GigabitEthernet 0

Example:

Device(config)# interface GigabitEthernet0

Creates the GigabitEthernet interface and enters interface configuration mode.

Step 4

ip address fe80::1 link-local

Example:

Device(config-if)# ip address 198.51.100.1 255.255.255.0
   Device(config-if)# ipv6 address fe80::1 link-local
   Device(config-if)# ipv6 address 2001:DB8:0:1:FFFF:1234::5/64 
   Device(config-if)# ipv6 address 2001:DB8:0:0:E000::F/64

Configures IPv6 address on the GigabitEthernet interface using the link-local option.

Step 5

ipv6 enable

Example:

Device(config)# ipv6 enable

(Optional) Enables IPv6 on the GigabitEthernet interface.

Step 6

end

Example:

Device(config)# end

Exits interface mode.

Native IPv6

Information About IPv6

IPv6 is a packet-based protocol used to exchange data, voice, and video traffic over digital networks. IPv6 is based on IP, but with a much larger address space, and improvements such as a simplified main header and extension headers. The architecture of IPv6 has been designed to allow existing IPv4 users to transition easily to IPv6 while continuing to use services such as end-to-end security, quality of service (QoS), and globally unique addresses. The larger IPv6 address space allows networks to scale and provide global reachability.


Note


The features and functions that work on IPv4 networks with IPv4 addresses also work on IPv6 networks with IPv6 addresses.


General Guidelines

  • You must configure the ipv6 unicast-routing command on the embedded wireless controller for the IPv6 feature to work.

  • The Wireless Management interface should have only one static IPv6 address.

  • Router advertisement should be suppressed on the wireless management interface and client VLANs (if IPv6 is configured on the client VLAN).

  • Preferred mode is part of an AP join profile. When you configure the preferred mode as IPv6, an AP attempts to join over IPv6 first. If it fails, the AP falls back to IPv4.

  • You should use MAC addresses for RA tracing of APs and clients.

Unsupported Features

  • UDP Lite is not supported.

  • AP sniffer over IPv6 is not supported.

  • IPv6 is not supported for the HA port interface.

  • Auto RF grouping over IPv6 is not supported. Only static RF grouping is supported.

Configuring IPv6 Addressing

Follow the procedure given below to configure IPv6 addressing:


Note


All the features and functions that work on IPv4 networks with IPv4 addresses will work on IPv6 networks with IPv6 addresses too.


Procedure

  Command or Action Purpose

Step 1

configure terminal

Example:

Device# configure terminal

Enters global configuration mode.

Step 2

ipv6 unicast-routing

Example:

Device(config)# ipv6 unicast-routing 

Configures IPv6 for unicasting.

Step 3

interface GigabitEthernet 0

Example:

Device(config)# interface GigabitEthernet0

Creates the GigabitEthernet interface and enters interface configuration mode.

Step 4

ipv6 address ipv6-address

Example:

Device(config-if)# ipv6 address FD09:9:2:49::53/64   

Specifies a global IPv6 address.

Step 5

ipv6 enable

Example:

Device(config-if)# ipv6 enable  

Enables IPv6 on the interface.

Step 6

ipv6 nd ra suppress all

Example:

Device(config-if)# ipv6 nd ra suppress all 

Suppresses IPv6 router advertisement transmissions on the interface.

Step 7

exit

Example:

Device(config-if)# exit 

Returns to global configuration mode.

Step 8

wireless management interface gigabitEthernet gigabitEthernet-interface- vlan 64

Example:

Device(config)# wireless management interface gigabitEthernet vlan 64

Configures the ports that are connected to the supported APs with the wireless management interface.

Step 9

ipv6 route ipv6-address

Example:

Device(config)# ipv6 route ::/0 FD09:9:2:49::1

Specifies IPv6 static routes.

Creating an AP Join Profile (GUI)

Procedure


Step 1

Choose Configuration > Tags & Profiles > AP Join.

Step 2

On the AP Join Profile window, click the General tab and click Add.

Step 3

In the Name field enter, a name for the AP join profile.

Step 4

(Optional) Enter a description for the AP join profile.

Step 5

Choose CAPWAP > Advanced.

Step 6

Under the Advanced tab, from the Preferred Mode drop-down list, choose IPv6. This sets the preferred mode of APs as IPv6.

Step 7

Click Save & Apply to Device.


Creating an AP Join Profile (CLI)

Procedure

  Command or Action Purpose

Step 1

configure terminal

Example:

Device# configure terminal

Enters global configuration mode.

Step 2

ap profile ap-profile

Example:

Device(config)# ap profile xyz-ap-profile 

Configures an AP profile and enters AP profile configuration mode.

Step 3

description ap-profile-name

Example:

Device(config-ap-profile)# description "xyz ap profile" 

Adds a description for the AP profile.

Step 4

preferred-mode ipv6

Example:

Device(config-ap-profile)# preferred-mode ipv6  

Sets the preferred mode of APs as IPv6.

Configuring the Primary and Backup Embedded Wireless Controller (GUI)

Before you begin

Ensure that you have configured an AP join profile prior to configuring the primary and backup embedded wireless controllers.

Procedure


Step 1

Choose Configuration > Tags & Profiles > AP Join.

Step 2

On the AP Join Profile window, click the AP join profile name.

Step 3

In the Edit AP Join Profile window, click the CAPWAP tab.

Step 4

In the High Availability tab, under Backup Controller Configuration, check the Enable Fallback check box.

Step 5

Enter the primary and secondary controller names and IP addresses.

Step 6

Click Update & Apply to Device.


Configuring Primary and Backup Controller (CLI)

Follow the procedure given below to configure the primary and secondary controllers for a selected AP:

Procedure

  Command or Action Purpose

Step 1

configure terminal

Example:

Device# configure terminal

Enters global configuration mode.

Step 2

ap profile profile-name

Example:

Device(config)# ap profile yy-ap-profile 

Configures an AP profile and enters AP profile configuration mode.

Step 3

capwap backup primary primary-controller-name primary-controller-ip

Example:

Device(config)# capwap backup primary  WLAN-Controller-A 2001:DB8:1::1

Configures AP CAPWAP parameters with the primary backup controller's name.

Note

 

You need to enable fast heartbeat for capwap backup primary and capwap backup secondary to work.

AP disconnection may occur if the link between the controller and AP is not reliable and fast heartbeat is enabled.

Step 4

ap capwap backup secondary secondary-controller-name secondary-controller-ip

Example:

Device(config)# capwap backup secondary  WLAN-Controller-B 2001:DB8:1::1

Configures AP CAPWAP parameters with the secondary backup controller's name.

Step 5

syslog host ipaddress

Example:

Device(config)# syslog host 2001:DB8:1::1 

Configures the system logging settings for the APs.

Step 6

tftp-downgrade tftp-server-ip imagename

Example:

Device(config)# tftp-downgrade 2001:DB8:1::1 testimage  

Initiates AP image downgrade from a TFTP server for all the APs.

Verifying IPv6 Configuration

Use the following show command to verify the IPv6 configuration:

Device# show wireless interface summary

Interface Name   Interface Type VLAN ID IP Address   IP Netmask     NAT-IP Address   MAC Address
--------------------------------------------------------------------------------------------------
GigabitEthernet0 Management     0       0.0.0.0     255.255.255.0  0.0.0.0          d4c9.3ce6.b854
                                      fd09:9:2:49::54/64