Pages

Friday, 23 June 2023

Cisco DNA Center Assurance

Introduction and Overview

Cisco DNA Center (DNAC) is the orchestration platform for designing, provisioning, and implementing policies on the network. It provides visibility into the network and an understanding of the user experience with network services. It collects telemetry from existing multiple devices, applications and users, applies advanced algorithms to uncover correlated insights and suggest remediation. This helps in minimizing troubleshooting time by identifying the root cause of issues on the network. DNAC generates health scores for client, network and applications in use; these are compiled from different metrics.

With Cisco DNA:

  • One gains full visibility of the network
  • It is possible to predict network performance and issues
  • Rapidly troubleshoot issues.

The DNA Center Assurance landing page provides summaries of network and client health. The network health displays health summaries (in percentages) of switches, routers, wireless LAN controllers, and access points. The client health displays summaries of wireless and wired clients.

Cisco DNA includes guided remediation which provides suggestions for correcting a detected issue.

A demo version of Cisco DNA Center can be found at the URL https://dcloud-dna-center-inst-rtp.cisco.com/dna/home. Login access uses the following credentials: username: demo password: demo1234!

SD-Access and DNA Setup

The following discussion on Cisco DNA Center is based on version 2.2.2.8 released on 17/June/2022. Other Cisco DNA Center releases can be found here.

The DNA Center version in use can be determined by clicking the "About" icon at the top right.

SD-Access fabric, in a campus network enables the maintenance of network policies to a roaming user regardless of their location. SD-Access uses IS-IS as the underlay protocol and LIST-VXLAN+TrustSec in the overlay protocol to allow users with their devices to be onboarded onto the network and maintain their same network configuration anywhere on the network.

The SD-fabric is created by DNA center. A guided workflow is used to setup the entire SD-fabric. DNA Center is made up of four main modules. The following is a simplified sitemap of the DNA modules:

  1. Design: design of the physical layout of the network is developed including the addresses of the buildings, and geographical locations. Features that can be configured under Design include:
    • Network Hierarchy: create organizational hierarchies. Import and export of hierarchies is supported. The two export options are sites or maps.
    • Network Settings: consists of the following:
      • Network: Configure AAA, NTP and Image Distribution (SFTP) servers. Once devices are discovered, DNAC will deploy using these settings. Other settings are DNS server, message of the day (MoTD) with the option to not override the device MoTD; default is to override the device MoTD. These settings can be applied to a site or to all sites (global).
      • Device Credentials: credentials for CLI, SNMP (v2c and v3 - read and write), HTTP(S) - read and write.
      • IP Address pools: Address pools consist of the IP CIDR, gateway, DHCP and DNS servers for the various subnets of the organization. IPv4 and IPv6 address pools are supported.
      • SP Profiles: QoS settings.
      • Wireless: Wireless networks configured with the settings for:
        • SSID
        • Level of security (Enterprise or personal, WPA 2 or WPA 3)
        • Type of network: voice and data or data only.
        • Wireless option: dual band operation, dual band operation with band select, 2,4GHz only, 5GHz only.
        • AAA authentication
        • Fast transition(802.11r) configuration
      • Telemetry: Configure Syslog, traps, and NetFlow properties for devices. DNAC will deploy these settings after the devices have been assigned to a site or provisioned.
    • Image Repository: contains images for devices (physical and virtual) on the network.
    • Network Profiles: profiles supported are for Firewall, NFVIS, Wireless, Switching, Routing, Telemetry Appliance
    • Authentication Template
  2. Policy: identify the end-users and end-points and access authorizations.
    • AI Endpoint Analytics
    • Group-Based Access Control
    • Application
    • Traffic Copy
    • Virtual Network
  3. Provision: discover the network devices and onboard them. Additionally, provision module enables the creation of the network access fabric.
    • Network Devices:
      • Inventory: list of managed network devices and their sites of allocation
      • Plug and Play: detected network devices (through device discovery), can be assigned to a site and become managed devices
      • Inventory Insights
    • Fabric
    • Services
      • Service Catalog
      • Cisco User Defined Network
      • Application Visibility
      • Stealthwatch Security Analytics
      • App Hosting for Switches
      • Umbrella
      • Site to Site VPN
    • Cloud
  4. Assurance: monitor and troubleshoot the network.
    • Dashboards
      • Health
      • Issues
      • Sensors
      • Wi-Fi 6
      • Rogue and aWIPS
      • PoE
      • Dashboard Library
    • AI Network Analytics
      • Network Insights
      • Network Healthmap
      • Peer Comparison
      • Network Comparison
      • Baselines
    • Manage
      • Issue Settings
      • Health Score Settings
      • Sensors
      • Intelligent Capture Settings

To be able to gain insights into the performance of the network, DNA should be setup and devices enrolled. The procedure to setup DNAC is as follows:

  1. Install DNAC
  2. Create a site hierarchy: where the locations, building, floors are defined.
  3. Run discovery: using IP range, CDP or LLDP
  4. Inventory collection: DNA detects the devices
  5. Device manageability: DNA auto-pushes configuration to the device to enable it send telemetry to DNA
  6. Provision Devices: Assign devices to site/building/floor previously defined.
  7. Devices ready for assurance

Network devices such as APs, switches, routers, firewalls are enrolled into DNAC. These devices typically run on IOS-XE such as catalyst 9000 series switches, ISR-4400 series routers. DNA center communicates with these devices using programmability protocols NETCONF/RESTCONF. When DNA Center communicates with devices using NETCONF/RESTCONF, it creates a telemetry subscription through which the devices can stream data such as CPU, memory utilization, interface counters, ACL counters; basically all output from show commands are streamed to the DNA Center. DNA Center stores this information and logs it into a database with the timestamp of occurrence. This enables understanding these parameters across a time range. The information collected is from network devices as well as client information. DNA Center applies machine learning to this collected telemetry information to provide insights into the network performance and lists any detected issues degrading the network.

Design Network Hierarchy Structure

The DNA container hierarchy is divided into groups:

  • Areas high-level logical subdivisions. All areas are children of the Global area. Areas can contain other areas or buildings.
  • Buildings: actual physical locations. Buildings have a geo-location. Buildings can contain floors/floor plans.
  • Floors: physical sub-divided space in or out of a building.

Network Discovery

For devices to be managed, they must first be discovered. The discovery feature:

  • Scans the network for network devices
  • Inventories discovered devices
  • Can configure required network settings (if not already present).
Before discovery of devices, the device credentials need to be configured where:
  • The SNMP credential is for DNAC discovery
  • For SSH access, credentials should have the privilege level 15 for DNAC to be able to configure devices with appropriate commands when applying policies or resolving detected issues.

Discovery supports the following types of device discovery:

  • CDP: connect to a seed device and learn the next hop devices of the seed device. This process is repeated on the neighboring devices to the seed device to discover other devices.
  • IP address or range: scans the designated IP address range with ICMP to identify responding devices.
  • LLDP: operates similarly to CDP.

In DNA Center, to access the device discovery feature, Tools → Discovery

To create a new discovery, select Add Discovery. The following page is opened.

At least one CLI credential and one SNMP credential is required. NETCONF is required for 9800 series switches.

Add Device

A new device can be added manually through the Inventory tab under the Provisioning module. This is done by selecting the "Add Device" button. The following parameters are required when adding a new device:

  • Device type: options available include: network device, compute device, Meraki dashboard, Firepower Management Center.
  • Credentials: preconfigured credentials are selected for;
    • CLI
    • SNMP credential, version, retries and timeout values.
    • HTTP(S) credential and port number
  • NETCONF port
  • Authentication protocol: SSH or Telnet

Select "View Inventory" to view the newly added devices. To add the device to a site: Select "Actions", then Provision, then "Assign Device to Site". The serial number and device type are displayed to confirm the device and as well as the list of all sites. Discovered devices are added to the inventory by DNA. After initial discovery, DNAC maintains the inventory by polling the devices in inventory, by default, every 25 minutes to determine reachability. This can be modified to up to 24 hours. By default, only devices that have been active for less than a day are displayed.

Device Credentials

DNAC requires a set of global credentials to use when enrolling the devices into DNAC. These settings are the same as Discovery credential sets:

  • CLI credentials: username, password and enable password. This local user should have a privilege level of 15.
  • SNMPv2 / SNMPv3: SNMPv2 read/write community string (SNMPv3 is optional).
  • HTTPS (Optional): read/write string, username, password and port.

Credential sets define common global credentials, specified in global container, and instance specific credential sets, specified per container, for network devices in a discovery. Credentials in higher-level containers are inherited by lower level containers. DNAC allows multiple credentials to be specified for a defined credential type. Support for exceptions (non-common) credentials can be included in discovery.

In DNAC, these credentials can be added from the Design → Network Settings → Device Credentials.

The credentials can be set for the Global site or lower site in the organizational hierarchy. Credentials configured at the global level will be inherited by the sites under the Global location.

If a list of credentials is available for a given site, select the appropriate credential that will be used by clicking the radio button of that corresponding credential.

DNAC automation can add missing credential sets to devices upon discovery for example if the CLI credentials are available but SNMP configuration is not working, DNA is able to access the device using the CLI credentials and enable SNMP with the configuration that was not previously functional but entered into DNA during the device enrolment. If multiple credentials are configured, DNA will start with the first credential, then the second, third ... up to the credential that works. DNA will remember the credential that worked for a given device.

Different device types are managed through different credential types:

  • SSH: standard Cisco devices.
  • CLI: standard Cisco devices.
  • SNMP: standard Cisco devices.
  • HTTP(S): NFVIS devices
  • NETCONF: all supported devices such as Cisco XE devices

For discovery to work, the required ports include:

  • Ping: ICMP echo and reply.
  • SSH: TCP port 22
  • SNMP Poll: UDP port 161
  • SNMP Trap: UDP port 162
  • Syslog: UDP port 514
  • NetFlow: UDP port 6007 or TCP 443

At a minimum, CLI and SNMP details are required for DNAC to discover devices. For SNMPv2c community read-only string is required. For SSH/Telnet device access, the user account should have a privilege level of 15.

The protocol order of the credentials can be specified. The options include SSH and Telnet. If Telnet is enabled, a warning message gets displayed about the insecure nature of Telnet.

Device Controllability

Device controllability is a feature that is enabled, by default, when adding a device to inventory from the Inventory page or through discovery. Device Controllability operates as follows:

  • If DNAC could not connect to the device using any of the SNMP credentials provided, but could connect using the CLI credentials, then DNAC will configure the first SNMP credential available in the request.
  • If available, the first SNMPv3 credential will be configured instead of SNMPv2c.
  • If NETCONF support exists in the device and DNAC could not connect to the device using NETCONF but could connect to the CLI credentials, then DNAC will configure NETCONF on the first port provided in the request.
  • NETCONF is supported on Polaris images version 16.5 or higher.

Configuration Changes on Wireless LAN Controllers (WLC)

During the network discovery process, there are several changes that DNAC automatically makes to WLCs:

  • Installs a certificate for streaming telemetry: this certificate secures all communications between DNAC and the device. This certificate is installed for all devices i.e., routers, switches, WLCs etc.
  • Configure streaming telemetry service (WSA)

DNAC becomes the network assurance service for that WLC from the start.

Configuration Changes on Switches

There are several changes that DNAC automatically makes to switches during discovery:

  • PKI
  • IPDT
  • HTTP server source interface is configured
  • SNMP RO & RW communities (if not configured).

  crypto pki trustpoint DNAC-CA
    enrollment mode ra
    enrollment terminal
    usage ssl-client
    revocation-check crl
  crypto pki certificate chain DNAC-CA
    <snip>
    quit
    
  device-tracking tracking
  !
  device-tracking policy IPDT_MAX_10
    limit address-count 10
    no protocol udp
    tracking enable
    !
  interface <ACCESS-INTERFACES>
    device-tracking attach-policy IPDT_MAX_10
    
  ip http client source-interface Loopback0
  
  snmp-server community <RO-COMMUNITY> ro
  snmp-server community <RW-COMMUNITY> rw

If an ACL is configured for SNMP community string, DNAC may remove the ACL during discovery. Remember to add the ACL after the DNAC discovery is complete.

Device Controllability in Host Tracking

When device discovery is performed with "Device Controllability" enabled, DNAC will enable IP device tracking(IPDT) on discovered devices. IPDT is activated on switch ports operating in the switchport access mode. IP Device Tracking keeps track of connected hosts on a switch. IPDT sends an ARP probe on that access interface to check that the device is alive. This ARP is not propagated out any other port. This helps in tracking where clients are connected in the network. By default, switches use MAC-address tracking for monitoring connected hosts. If a device is connected to the network but is silent (not accessing network services) MAC addresses timeout in the MAC address cache on the switch. This will assume that the device is off the network. With IPDT, the MAC address of a connected device is not allowed to timeout. When the MAC address timer is close to expiry, an ARP probe is sent out that particular access port that the device is connected to and when the device responds, the MAC address timer is reset.

Configuration Changes on Routers

There are several changes that DNAC automatically makes to routers during discovery:

  • PKI: certificate to ensure confidentiality between DNAC and the router.
  • HTTP server source interface is configured.
  • SNMP RO & RW communities are enabled if not already configured.

  crypto pki trustpoint DNAC-CA
    enrollment mode ra
    enrollment terminal
    usage ssl-client
    revocation-check crl
  crypto pki certificate chain DNAC-CA
    <snip>
    quit
    
  ip http client source-interface Loopback0
  
  snmp-server community <RO-COMMUNITY> ro
  snmp-server community <RW-COMMUNITY> rw

Telemetry

Device Provisioning

When device discovery is completed, a newly added device is placed under the Global site and categorized under "unassigned devices". Unassigned devices not not have a site allocation. Assurance requires devices to be assigned to a site in order to push telemetry. It is important to assign a device to a site. This is because network telemetry may not be received for the device if it is not assigned to a site. Assigning a device to a site does not push configuration to the device.

Telemetry

Syslog, SNMP and NetFlow properties can be configured for DNA Center managed devices. DNA Center will apply these configurations to the devices when they are assigned to a site or provisioned. DNA Center can be configured to be the SNMP trap server, syslog server or NetFlow collector server. Optionally, external servers can be configured in DNA Center for export of the telemetry data. By default, DNA Center is the SNMP server for managed devices.

Device Telemetry Profiles

Telemetry profiles can be configured to send Syslog, and NetFlow configs to supported devices. Telemetry profiles include two predefined profiles that send telemetry to DNA Center and one profile that does not send telemetry. Custom telemetry profiles can be added. The three default telemetry profiles for use in provisioning assurance configurations include: maximal, optimal and disable.

Profile Name Syslog level NetFlow version
Maximal Informational IPFIX
Optimal Informational
Disable

Profiles can be assigned at site or device level. The default telemetry profile is Disable. The recommendation is to apply Maximal to routers and Optimal to switches.

Custom telemetry profiles can also be created in exceptional use-cases where the best practice telemetry profile settings need to be altered. If custom telemetry profiles are configured and the device does not support the telemetry profile configurations e.g. NetFlow, then DNA will produce a notification message. The supported telemetry configuration will be pushed to DNA and the unsupported telemetry will not be pushed.

Telemetry profile push is used to assign profiles to specific devices and validate configuration push. If the predefined telemetry profiles are used, telemetry information gets pushed to DNAC immediately after being applied.

Verify assurance dashboards are being populated with expected telemetry data. DNAC sets itself up as a syslog server to be able to collect data from that device.

NetFlow

NetFlow data is required for Application Health data. DNA provisioning of NetFlow is only supported on routers running IOS v16 or newer. The current behaviour is for NetFlow to be enabled on all interfaces of routers.

DNA Center Dashboards

The landing page of DNA Center is the DNA Dashboard. The information displayed in the dashboard is aggregated over the last 24 hours.

DNA Center Assurance Issue Dashboard

The DNAC Assurance issue dashboard is a centralized view of network issues allowing one to quicky identify and diagnose network problems. It provides insights into problems and provides recommendations on how to resolve the problems. By default, issue data is saved for up to 30 days.

The issue table contains a list of issues categorized by priority. Additionally, some issues are flagged as being identified by AI.

Issue Status

Issues have three types of status: open, resolved, and ignored. When the issue is ignored, it is ignored for a specific time period. An issue can be resolved in two ways:

  1. Manually changing the status
  2. Auto-resolution mechanism; support for autoresolution is available for some issues; others are continually being added.

Issues are classified according to priority. The options are:

  • P1: A critical issue that needs immediate attention which can result in wider impact on network operations.
  • P2: A major issue that can potentially impact multiple devices or clients.
  • P3: A minor issue that has a localized or minimal impact.
  • P4: A warning issue that may not be an immediate problem but addressing it can optimize the network performance.

The issues dashboard can be filtered to display issues detected for a specific site

By default, the dashboard displays issues detected over the last 24 hours. However, this can be filtered for a time range of 3 hours, 24 hours or 7 days. Additionally, filtering can be done for a specified date range:

The following images show how to resolve a detected issue:

DNA Center Assurance Health

The DNA Center Assurance health section displays the health status of the network, clients and applications. The health dashboard also displays the Top 10 Issues detected which are categorized by priority.

The Network Health page can be accessed via the Assurance → Health. This view provides an aggregated score of the health of monitored devices for the defined time range.

Network Health

The Network Health section of the DNA Assurance center displays the health status of network equipment such as routers, switches, wireless LAN controllers (WLC), and access points (AP). It gives a snapshot of the device health over the past 15 minutes and 24 hours. A score is provided for the current state of health of the network. Network devices are categorized based on their role or type i.e., wireless, core, access, distribution switch, router.

Selecting a particular device with detected issues opens up Device 360 where the details of detected issues are displayed with the option to resolve the issues detected.

Device 360

Device 360 gives a full view of the device displaying the most detailed raw telemetry data received from the device. You can monitor and preview the health parameters of the network. Device 360 displays the following parameters:

  • The current health score of the device: DNA monitors various parameters of a network device. These parameters include:
    • Memory utilization
    • CPU utilization
    • Data-plane parameters:
      • Noise and air-quality for wireless
      • Uplink availability
      • Link errors
    If the various parameters of the device have a score of 10/10 and only one parameter has a score of 2/10, the overall score of the device is 2/10.
  • The device details such as IP address, Product ID, and software version.
  • The device health score on a 24-hour timeline by default. Other timeline options include 7 days.
  • List of issues that occurred in the past 24-hours.

In the case of APs, the additional information collected includes:

  • Number of clients connected
  • Noise, air quality, interference

Device 360 provides a list of issues experienced by the network device. The timeline of the issues can be viewed by selecting the appropriate date/time. Suggested actions are provided on how to resolve any identified issues.

Device 360 includes a physical neighbor topology of the device. For a switch, it displays the clients connected and any uplink devices. This helps in determining the end-points that are affected when the switch or uplink device experiences a problem. The health score of the neighbors can also be determined by clicking on the neighboring devices in the physical topology.

Device 360 supports a pathtrace which enables performing a connectivity test between the device and a specified destination. It uses information learned from the network topology. It queries devices to, among other things, determine the availabilty of equal-cost multipaths. If intermediate devices are not managed e.g. MPLS, a cloud symbol is used to symbolize the unknown intermediate unmanaged devices.

Client Health

The client health page displays the health status of detected network clients. The following information is displayed about the clients:

  • Client devices are listed and segregated between wired clients and wireless clients.
  • Onboarding: A broken-down view of every step of the onboarding process is displayed making it possible to determine if the network infrastructure is causing the fault or the network service such as AAA. Clients that failed the onboarding process are displayed.
  • For wireless networks, the following information is displayed:
    • Client count per SSID
    • Client roaming times
    • Connectivity RSSI
    • Connectivity SNR

Client health status

Client network experience

List of clients

Client 360

From the list of clients displayed under the page Health → Client, selecting a client opens up the Client 360 page for the client and it displays the following information:

Application Health

Application health dashboard processes application data and gives an insight into application performance. Application Health page displays information about how your applications are performing across the entire network. Applications are classified as business-relevant (such as Office 365 apps), business-irrelevant (such as Netflix), and default. Cisco application visibility is used to classify the applications. This classification is done based on the NBAR (Network-based application recognition). Application Health enables the monitoring of application statistics and application response. Application experience is based on NetFlow records exported by the routers. It correlates KPIs sources of the network to identify the problem domain faster and make issue resolution recommendations. Application health includes vital information such as business-class, traffic class, packet-loss percentage and latency. Application health can be accessed under DNA Assurance → Health → Application.

To receive application telemetry, ensure that:

  1. DNA discovers the required network devices
  2. Provision the device and assign it to a site
  3. Enable NetFlow telemetry collection for the devices

By default, the application health dashboard displays application packet loss, average throughput, network latency for business relevant applications.

Application 360

Selecting a specific application from the application health page displays the Application 360 page. The Application 360 page displays the details of the network experience of an application; these include:

  • Issues experienced by the application such as network latency including the total number of occurences.
  • Network devices exporting the application telemetry including:
    • Usage in bytes
    • Throughput in Kbps
    • Packet loss
    • Jitter
    • Network latency
    • Client network latency and server network latency
    • Application server latency
  • Application endpoints i.e. client devices using the application. Selecting a client device opens up the Client 360 page for the client.

SNMP Collector

DNA can also be used to collect SNMP traps and informs. DNA is the default SNMP collector. It pools network devices to gather telemetry data. By default, the following information is collected by SNMP:

  • Device health: includes CPU utilization, memory, environment temperature, and device availability metrics. This information is gained through polling every 10 minutes by default.
  • Interface health: includes interface availability and metrics.
  • TCAM: polled
These SNMP configuration is accessible via: Systems Settings → Data Platform → Collectors. Select Collector-SNMP. The defaults are ok. If utilizing SD-WAN, then can make appropriate modifications suitable for SD-WAN. TODO: Add screenshot of SNMP.

Software Image Management (SWIM)

Software management allows the installation, upgrade, and patching the embedded operating system running in managed devices such as switches, routers, APs, etc. DNAC stores and categorizes software images. It makes recommendations on latest software images based on vulnerabilities. It allows the standardization of software images for devices on the network.

Software Maintenance Update (SMU)

An SMU is a package that provides point fixes and rolls security resolutions to software images that have already been published. DNAC supports SMUs for IOS-XE versions 16.x onwards.

SMUs can be helpful:

  • Due slower upgrade releases especially as software images require bug analysis, extensive testing, certification before official release.
  • Due to faster availability of newer (improved) code to improve device performance or reporting
  • When the time taken to copy images over slower VPN tunnels is significant.
  • If business downtime during image upgrades is not within acceptable time-frames

Images Supported in SWIM

  • Base images: all Cisco IOS, IOS-XE, AireOS, NX-OS images for supported devices
  • Patches: patches (or SMU) are only supported on IOS-XE
  • ROMMON: ROMMON is a firmware image on Cisco devices
  • AP Device Pack (APDP): APDP allows quick support for newer AP outside DNAC release using the patching framework.
  • AP Service Pack (APSP): allows quick support for point patches outside of DNAC release using the patching framework.
  • Sub-package: allows deployment of sub-technologies on devices.

Image Repository

DNAC stores software images and software maintenance updates for the network devices. The image repository provides the following functions:

  • Software images can be pushed to the devices.
  • Stores software images of the devices on the network.
  • Allows the designation of software images as golden. A golden image or SMU is a validated image that meets the compliance requirements of a particular device type. Designating a software image/SMU as golden saves time by eliminating the need to make repetitive configuration changes and ensures consistency across devices.

DNAC manages software and VNF (virtualization network functions) images. It also supports the management of third-party images. DNAC image management feature is accessible as a page under the Design module.

The DNA "Image Repository" page displays all images available. The "Delete" icon under "Action" indicates that an image has been downloaded to DNAC.

CCO credentials are the Cisco credentials for downloading firmware. These credentials can be used by DNA to access firmware repository. These credentials are configured in the DNAC "System Settings" page:

The following page displays image details with and without CCO configured:

With CCO configured, additional information about the image is provided compared to images without CCO information. If the CCO credentials are provided, DNAC provides guidance on the latest firmware updates and recommended images for a device.

When downloading image updates, the "Show Tasks" button shows download progress for firmware:

Distribution

DNAC uses the following protocols in their order of preference during the distribution of software images:

  1. HTTPS
  2. SCP
  3. SFTP

SWIM Times

Latency Should be less than 200ms between DNAC and the network devices
Distribution server DNAC internal storage or remote file server particularly for geo-dispersed sites.
Protocol HTTPS over SCP and SFTP
Software Version The software image to be upgraded may impact the upgrade process. The duration in the process for IOS-XE 17.3 is as follows:
  • Distribution for a single device: ~5 mins
  • Activation for single device: ~8 mins
  • Distribution and activation for stack: ~50 mins

SWIM Recommendations

  • Distribute the software images first well ahead of the activation window.
  • Leverage remote distribution support from Cisco DNA center for large geo-dispersed sites.
  • If upgrading software images on a large number of devices, upgrade up to 500 devices at once. DNAC does the upgrade in a rolling batch of 100 each. Devices are upgraded as rolling list of 40 concurrent threads.

Image Upgrade

The image upgrade process in DNAC is a granular one. It supports image distribution and activation at once on demand. It allows the scheduling of these activities on individual time-frames to go hand-in-hand with the organization's maintenance windows. DNAC regularly monitors the network for compliance with the standardized images and raises notifications for devices with images that deviate from the set standards. DNAC makes pre and post installation/upgrade checks to ensure that integrity of the network is intact.

Most of these steps happen automatically

  1. Import Image/SMU: DNAC can be pointed to the Cisco firmware download page. This will require the integration of image repository management with Cisco where you provide DNAC with the required credentials to download the firmware. Image management integration with Cisco involves accepting the EULA agreement to unlock further image details:
    • Get access to field notices and release notes.
    • Get Cisco recommended image information.
    • Get Cisco latest image information.
  2. Assign Image to a device family: so that the image is available to that device family.
  3. Define Golden image by device family: label a specific image as the golden image for that device family.
  4. System identifies devices not in compliance: DNAC checks the inventory for all devices that match that device family to establish the devices that are running that image and the ones that are not. DNAC then lets you know which devices are out-of-date.
  5. Precheck validation for disk and memory: checks for hardware requirements for the image upgrade. If any devices do not meet these minimum hardware requirements, the check fails and DNAC generates notification messages and the upgrade will not proceed. These checks are performed by custom Python precheck scripts. If the devices pass the minimum hardware requirements, the device is labelled as outdated and is ready for upgrade. The upgrade can then proceed for the device. The upgrade can be planned to be implemented immediately or at a scheduled time. The image can be pushed to flash memory

Devices requiring image upgrades can be viewed under Provisioning → Inventory → Focus →Software Images. The list of devices in inventory displays devices that require software image updates.

An image update readiness check is performed before the software image image upgrade takes place.

When upgrading software images for wireless infrastructure such as access points, and wireless LAN controllers, the protocol used for transfer of the images is SFTP. Additional support during wireless infrastructure image updates includes:

  • Custom pre/post installation checks
  • Sub-package support
  • Rolling AP upgrade
  • AP pre-download
  • Upgrade of Aire OS/IOS-XE based controllers
  • EWC upgrade workflow
  • APDP updates
  • APSP updates

For wired infrastructure such as switches, routers, firewalls, the following support is provided by DNAC during image upgrade:

  • Protocols used are HTTPS, SCP and SFTP. The default protocol is HTTPS.
  • Sub-package support
  • ROMMON support
  • Patches (SMU) support
  • Custom pre/post checks
  • Distributed SWIM
  • Redundancies: stacks, VSS, SVL
  • ISSU

When an image update has been activated for a device, DNA pushes the image to the device storage and starts the installation of the image. After a device completes an image update, DNA creates a wait period during which it expects the device to reboot and load the updated image. During this wait period, DNA may not update the status of the image on the device until after the wait period expires. DNA then carries out post-installation checks before updating the status in the DNA interface.

Troubleshooting using Cisco DNA Center

DNAC Assurance is the module of DNA that provides support with monitoring and troubleshooting of the network infrastrucure, client devices, and application performance. Most of the discussed features of DNAC assurance are used for troubleshooting purposes.

  • Overall Health: The overall health page is a great starting point for troubleshooting network issues. This displays information learned about the network in the last 3 hours, 24 hours, or 7 days. This data is usually aggregated for the various geographical locations. The scope can be refined for locations, buildings and even floors.
  • Network Health: Get an overview of the health of the network and network devices. Information is displayed in 5-minute intervals over the past 24 hours. Network devices section lists all the devices with the following scores:
    • Critical (1-3): displayed in red.
    • Warning(4-7): displayed in amber/orange
    • No errors(8-10): displayed in green
    • No data(0): displayed in gray
    Clicking each device opens up the device's Device 360 page.
  • Client Health: Client 360 can be used to view all raw telemetry information of the device.
  • Pathtrace: Pathtrace enables graphically seeing the path that applications and services take to reach the destination. Pathtrace is accessible Client 360 and Device 360.
  • Network Time Travel: Can view the past history of device and client network data.
  • Global Issues: Access all issues: open, resolved or ignored. Issues are categorized as:
    • Onboarding: Used to identify issues related to wireless and wired client onboarding.
    • Connectivity: Used to identify issues related to network connectivity, including routing protocols (OSPF [Open Shortest Path First], BGP [Border Gateway Protocol]), and tunnels.
    • Connected: Used to identify issues related to clients.
    • Device: Used to identify issues related to the device, such as CPU, memory, fans, and so on.
    • Availability: Used to identify any availability issues related to access points, wireless LAN controllers, and more.
    • Utilization: Used to identify issues related to utilization of access points, wireless LAN controllers, radios, and more.
    • Application: Used to identify issues related to application experience.
    • Sensor Test: Used to identify any global sensor issues.

Saturday, 13 May 2023

IPv6 Prefix Assignment

Introduction and Overview

The Dynamic Host Configuration Protocol for IPv6 (DHCPv6) enables DHCPv6 servers to pass configuration parameters such as IPv6 network addresses to IPv6 nodes. It offers the capability of automatic allocation of reusable network addresses and additional configuration flexibility. DHCPv6 is defined by RFC 3315(Dynamic Host Configuration Protocol for IPv6 (DHCPv6).

DHCPv6 Operating Modes

IOS devices can be configured to operate as:

  • Server: device that provides stateless or stateful DHCPv6 services.
  • Client: device that acquires IPv6 configuration from a DHCPv6 server.
  • Relay Agent: router provides DHCPv6 forwarding services when the client and the server are located on different networks.

Clients listen for DHCPv6 messages on UDP port 546. Servers and relay agents listen for DHCPv6 messages on UDP port 547.

Unique Identifiers

DHCPv6 servers, clients and relay agents have exactly one DHCPv6 Unique Identifier(DUID) that uniquely identifies the device.

An Identity Association(IA) is a collection of addresses assigned to a client. Each client has at least one IA assigned for each interface using DHCPv6. For each IA, the client assigns an an Identity Association Identifier(IAID) that uniquely identifies the IA. The IAID identifies a specific interface on the client. Each interface on the DHCPv6 client or server is identified using an IAID.

IPv6 Global Unicast Address Assignment

IPv6 global unique addresses(GUA) are assigned to host devices using one of three methods:

  1. Stateless Address Autoconfiguration(SLAAC)
  2. SLAAC with DHCPv6 (Stateless DHCPv6)
  3. Stateful DHCPv6

The method used to receive IPv6 network configuration parameters is dictated by the router advertisement(RA) messages sent by the local router. The RA messages contain flags that guide the host devices on how their IPv6 prefix, prefix-length, DNS servers, domain-name can be obtained.

Message Flags

How a client obtains an IPv6 GUA depends on the settings in the RA message. An ICMPv6 RA message includes the following three flags:

  1. A-flag (address autoconfiguration): notifies the device to use SLAAC to create an IPv6 GUA. The host uses the RA message for network configuration parameters such as prefix, prefix-length. This is the default method used by IOS devices to assign IPv6 prefixes to their interfaces.
  2. O-flag (Other configuration): notifies the host that it should create its IPv6 prefix using SLAAC. Additional network configuration parameters such as DNS server addresses, domain names are available from a stateless DHCPv6 server. The hosts use the RA and a DHCPv6 server to obtain complete IPv6 network configuration information. This is the implementation of stateless DHCP i.e., SLAAC and DHCPv6. The "A" flag is also set here.
  3. M-flag (Managed address configuration): notifies the host to use a stateful DHCPv6 server to obtain an IPv6 GUA and all other network configuration parameters. This implements stateful DHCPv6.

Using different combinations of the A, O, and M flags, RA messages inform the host about the dynamic options available. The following table summarizes the RA advertisement flag options for the different methods of dynamic IPv6 address assignment:

RA Address Allocation Method A (Address Autoconfiguration) O M
SLAAC (default) 1 0 0
SLAAC with Stateless DHCPv6 1 1 0
Stateful DHCPv6 0 0 (ignored if set to 1) 1

Stateful DHCPv6

With stateful DHCPv6, a DHCPv6 server is managing the assignment of IPv6 network configuration parameters. Router RA message M-flag informs hosts to contact a DHCPv6 server or DHCPv6-enabled router for all configuration information except the default gateway address. Hosts contact a DHCPv6 server to acquire all of their IPv6 configuration parameters except the default gateway which they receive through router RA messages. Although host operating systems follow the suggestion of the RA, the actual decision is ultimately up to the host. As the DHCPv6 server is stateful, it maintains a list of IPv6 address bndings.

Most environments that implement stateful DHCPv6 have an addressing need or policy where devices obtain their address only from the stateful DHCPv6 server. This makes it easier to manage and track IPv6 addresses on the network.

ICMPv6 RA messages are sent periodically by an IPv6 router(default is 200 seconds) or when the router receives a router solicitation message from the host device. When a host receives an RA message with the M-flag set, sends a DHCPv6 SOLICIT message seeking additional information from a stateful DHCPv6 server.

Stateful DHCPv6 does not require SLAAC while stateless DHCPv6 does. When an RA M-flag is set(to the value 1) indicating the use of stateful DHCPv6:

  • The host sends an RS message.
  • The router responds with an RA message.
  • The host sends a DHCPv6 SOLICIT message.
  • The DHCPv6 server responds with an ADVERTISE message.
  • The host responds to the DHCPv6 server with a REQUEST message.
  • The DHCPv6 server sends a REPLY message.
Note: Server to client DHCPv6 messages use UDP destination port 546 while client to server DHCPv6 messages use destination port UDP 547.

The RA message contains the following information:

  • IPv6 GUA network prefix and prefix length
  • A flag set to 0 informing the host to contact a DHCPv6 server.
  • O flag set to 0 informing the host to contact a DHCPv6 server.
  • M flag set to 1.

Stateful DHCPv6 RA Message

The RA message sent by a router running a stateful DHCPv6 server includes:

  • Destination IPv6 address: FF02::1(All IPv6 devices multicast)
  • Source IPv6 address: link-local address on interface
  • Prefix: prefix e.g., 2001:db8:cafe:2::
  • Prefix-length: /64
  • Managed-config-flag: 1
  • Autonomous address flag: 0

DHCPv6 GUA Assignment Sequence

The DHCPv6 address assignment process is similar to that of DHCP for IPv4 with that uses DORA to assign IPv4 network configuration parameters. With DHCPv6, the sequence consists of four stateges: SOLICIT, ADVERTISE, REQUEST, REPLY (SARR). When a client sends an RS message on the link, an RA message is sent in reply to the all devices IPv6 multicast address FF02::1:

  1. The client sends a SOLICIT message on the local link requesting for network configuration parameters.
  2. ADVERTISE: The server responds to the SOLICIT message with an ADVERTISE message containing IPv6 configuration information.
  3. REQUEST or INFORMATION REQUEST: REQUEST DHCPv6 message is sent by clients using stateful DHCPv6. INFORMATION REQUEST DHCPv6 message is sent by clients using stateless DHCPv6.
  4. REPLY: the DHCPv6 server confirms the IPv6 network configuration parameters issued to the client.

The client can request a renewal of IPv6 network configuration parameters by sending a RENEW DHCPv6 message to the server. The DHCPv6 server sends a REPLY message confirming the renewal of the IPv6 address and other network configuration parameters.

Rapid Commit

The rapid-commit option uses two DHCPv6 messages instead of four. The rapid-commit option sends the initial DHCPv6 SOLICIT message. However, this SOLICIT message has the rapid-commit option set. This informs the server that it wants to shorten the exchange from 4 messages to 2. The use of the rapid-commit option on the server can be enabled using the interface configuration command: ipv6 dhcp server <dhcpv6-pool> rapid-commit. This is enabled on the interface connecting to the clients.

Configuration of Stateful DHCPv6

Server

The stateful DHCPv6 server option requires that the IPv6 enabled router tells the host to contact a DHCPv6 server to obtain all necessary IPv6 network addressing information. There are five steps to configure and verify a router as a stateful DHCPv6 server:

  1. Enable IPv6 routing: using the ipv6 unicast-routing command.
  2. Define a DHCPv6 pool: using ipv6 dhcp pool <pool-name> command.
  3. Configure the DHCPv6 pool with options: common options include:
    • address prefix 2001:db8:acad:1::/64. This command is what causes this DHCPv6 GUA assignment to be stateful in nature.
    • domain-name EXAMPLE.COM
    • DNS server IP address
  4. Bind the interface to the pool: using ipv6 dhcp server <pool-name> interface config command.
    1. Manually change the M flag from 0 to 1 using the ipv6 nd managed-config-flag.
    2. Manually change the A flag from 1 to 0 using the ipv6 nd prefix default no-autoconfig interface command to inform the client to not use SLAAC to create GUA. The router will now respond to stateful DHCPv6 requests with the information contained in the pool.

    On the interface;
    ipv6 address fe80::1 link-local
    ipv6 address 2001:db8:acad:1::1/64
    ipv6 nd managed-config-flag
    ipv6 nd prefix default no-autoconfig|ipv6 nd default no-autoconfig|ipv6 nd <prefix/length> no-autoconfig
    ipv6 dhcp server IPV6-STATEFUL

    With the M-flag set, the O-flag is ignored.

  5. Verify that the hosts have received IPv6 addressing information: using ipconfig /all command.

Client

Most hosts have IPv6 autoconfiguration set. If the client is an IOS device, it needs to have ipv6 unicast-routing enabled and an IPv6 link-local address to send and receive IPv6 messages. There are five steps to configure and verify a router as a stateless DHCPv6 client:

  1. Enable IPv6 routing: using ipv6 unicast-routing.
  2. Configure the client router to create an LLA: An IPv6 link-local address is created on a router interface when a global unicast address is configured, or without a GUA using the ipv6 enable interface configuration command. Cisco IOS uses EUI-64 to create an interface ID.
  3. Configure the client router to use DHCPv6: using the ipv6 address dhcp interface config command.
  4. Verification:
    • Verify that the client is assigned a GUA: using the show ipv6 interface brief command.
    • Verify that the client router received other necessary DHCPv6 information: using the show ipv6 dhcp interface g0/0/1 command.

Stateless Assignment

Stateless address assignments involve assignment of prefixes and network configuration information using stateless address autoconfiguration (SLAAC) and stateless DHCPv6. Under stateless network configuration, no device is tracking the assignment of IPv6 prefixes.

Stateless Address Autoconfiguration (SLAAC)

When assigning prefixes using SLAAC, a router sends RA messages providing all IPv6 network configuration information i.e., network prefix, prefix-length and default gateway information. The domain name and DNS server list may be included if the router and host support RFC 6106 (IPv6 RA options for DNS configuration). Hosts use the RA information exclusively for all their addressing including creating their own GUA.

This ICMPv6 RA message has the following parameters:

  • Type: value is 134 indicating a Router Advertisement message.
  • Cur Hop Limit: value the router recommends for hosts on the link to use as their Hop Limit. A value of zero(0) indicates that hosts should determine the hop limit. The default value is 64.
  • Destination IPv6 address: FF02::1(all IPv6 devices multicast address)
  • Source IPv6 address: router's local interface's link-local address
  • Flags: A = 1, O = 0, M = 0, default router preference: default value is medium(0 0). Other values for default router preference are: high(0 1), low(1 1), and Reserved(1 0).
  • Next header: 0x3a(an ICMPv6 header, 58 in decimal).
  • Router lifetime: duration, in seconds, for which the router should be used as the dfault gateway. A value of zero indicates that the router is not a default router.
  • MTU: informs the hosts the maximum MTU for the network.
  • Prefix length: provides necessary information for on-link determination (when combined with the L-flag in the prefix information option).
  • Valid and Preferred lifetimes: length of time public address remains in the valid state(30days by default). Preferred lifetime is the length of time a valid address(public) is preferred(7 days by default).
  • Other parameters: DNS server address etc.

If the M flag is set and the O flag is set, the O flag is ignored. For stateful DHCP, the A flag should be turned off. For SLAAC, the A flag is set and the O flag and M flags are disabled.

Interface ID

The 64-bit interface ID is generated using EUI-64(Extended Unique Identifier-64) or randomly generated known as a privacy extension. If EUI-64 is used, the host uses its interface MAC address to generate the address.

EUI-64

The MAC address is a 48-bit address that consists of two sections the OUI(24-bits) and Device Identifier(24-bits). The OUI (Organization Unique Identifier) is a code unique to the manufacturer of an interface card. EUI-64 generates an interface ID through two states:

  1. Inserting FF:FE between the OUI and Device Identifier sections of the MAC address creating a new address. This increases the size of the MAC address from 48-bit to 64-bit.
  2. Flipping the 7th-bit i.e., 0 → 1 or 1 → 0. This results in the second hexadecimal digit changing.

Randomly Generated Number

The method used to create a randomly generated number to be used as the Interface ID depends on the operating system. Windows uses a randomly generated number by default.

Privacy Extensions

The use of EUI-64 for generation of Interface ID values is considered by some to be a security risk as the MAC address does not change. This results in the Interface ID being predicable across the different IPv6 networks that the device may connect to. This makes tracking this device easier.

RFC 4941 proposes the use of privacy extensions for SLAAC:

  • Generation of randomized Interface IDs: creating an interface ID that is not traceable to a physical device.
  • Generation of temporary addresses: these are addresses that have relatively short lifetimes. This address is used as a source address when originating connections.

The public address uses a randomized Interface ID instead of EUI-64. Temporary addresses are generated and use only a randomized Interface ID.

Configuration

Servers

To configure SLAAC:

  1. Enable IPv6 routing:

    R1(config)#ipv6 unicast-routing

  2. Configure a GUA on the interface: By default, the A-flag is set to 1. If it is disabled, enable it using the following command ipv6 address <prefix>/<prefix-length> :

    R1(config)#interface gigabitethernet0/0
    R1(config-if)#ipv6 address 2001:db8:cafe:1::1:1/64

Clients

  • IOS Devices

    If an IOS device is a DHCPv6 client, then the following configuration is required on the interface:

    R7(config-if)#ipv6 address autoconfig

  • Windows Hosts:
    • The temporary addresses are created using the following command:

      netsh interface ipv6 set privacy state=enabled store=active
      netsh interface ipv6 set privacy state=enabled store=persistent

    • Creation of temporary addresses can be disabled by using the disabled keyword.

      On Windows hosts, to enable the use of the randomized identifier:

      netsh interface ipv6 set global randomizeidentifiers=enabled store=active
      netsh interface ipv6 set global randomizeidentifiers=enabled store=persistent

    • To disable the use of the random interface ID i.e., enable EUI-64:

      netsh interface ipv6 set global randomizeidentifiers=disabled store=active
      netsh interface ipv6 set global randomizeidentifiers=disabled store=persistent

  • Linux and MacOS: The use of privacy extensions with Linux and MacOS varies with OS version. Generally, the most common command is:
    • Linux: sysctl net.ip6.conf.if.use_tempaddr=2
    • MacOS: sysctl net.inet6.ip6.use_tempaddr=1

  • SLAAC Address Lifecycle

    SLAAC addresses transition through various states: tentative, preferred, deprecated and invalid.

    • Tentative Address:
      • The uniqueness of the address is in the process of being verified.
      • Address is not considered to be assigned to an interface
      • An interface discards received packets addressed to a tentative address but accepts Neighbor Discovery packets related to Duplicate Address Detection for the tentative address.
    • Valid address:
      • The address is a preferred or deprecated address
      • Can be the source or destination address of a packet
      • The amount of time remains in the valid and preferred states is in the RA message.
      • The RA message valid lifetime, by default, is 2,592,000(30 days).
      • The valid address remains usable for the duration of the valid lifetime.
      • The valid lifetime must be greater than or equal to the preferred lifetime.
      • When the valid lifetime expires, the address becomes invalid.
    • Preferred address:
      • The interface address has been verified as unique.
      • Address can be considered as a state of the valid address.
      • The device can send and receive traffic using this address
      • New connections can be initiated using a preferred address as the source address.
      • The period of time that an address can remain in the preferred state is included in the RA message. By default, this is 604,800 seconds or 7 days.
      • The preferred lifetime is the length of time a valid address is preferred until it becomes deprecated.
      • When the preferred lifetime expires, the address becomes deprecated.
    • Deprecated address:
      • The address assigned to an interface is still valid, but implementation is discouraged (typically applies to temporary addresses not public addresses).
      • Any new connections are discouraged because an address is being assigned to this interface. This may partially explain why multiple temporary addresses may be present.

    Verification

    show ipv6 interface <inteface-id>

    R7#show ipv6 interface g0/0

    GigabitEthernet0/0 is up, line protocol is up
      IPv6 is enabled, link-local address is FE80::C807:6FF:FE8D:8
      No Virtual link-local address(es):
      Stateless address autoconfig enabled
      Global unicast address(es):
        2001:DB8:CAFE:1:C807:6FF:FE8D:8, subnet is 2001:DB8:CAFE:1::/64 [EUI/CAL/PRE]
          valid lifetime 2591941 preferred lifetime 604741
      Joined group address(es):
        FF02::1
        FF02::1:FF8D:8
      MTU is 1500 bytes
      ICMP error messages limited to one every 100 milliseconds
      ICMP redirects are enabled
      ICMP unreachables are sent
      ND DAD is enabled, number of DAD attempts: 1
      ND reachable time is 30000 milliseconds (using 30000)
      ND NS retransmit interval is 1000 milliseconds
      Default router is FE80::C801:5FF:FECA:8 on GigabitEthernet0/0

    On the router, the command show ipv6 interface g0/0 shows that:

    • RA advertisements are sent every 200 seconds
    • Joined multicast groups: ff02::1, ff02::2 etc
    • RA advertisements live for 1800 seconds.
      • The router RA lifetime is 1800 seconds(default).
      • Informs the host that the router should be used as the default gateway for this duration.
      • This is usually renewed/refreshed when the host receives the next RA.
      • The link local address of the router is used as the default gateway by the host.
      • If this value is zero(0), it indicates that the router is not a default gateway.
      • This duration only applies to the router's function as a default gateway and not to other network configuration information in the RA message such as prefix.
    • Advertised router preference:
      • multiple routers may be present on a link. The default router preference(DRP) is used to set the preference of the default router from the list of available routers.
      • The default value sent to medium. Valid values include high, medium, low.
      • Hosts can dynamically fill their default router list using the IPv6 addresses from the RA messages of the various routers on the link.
      • Client devices maintain a list of default routers. When a client receives an RA, id adds the link-local source address of the packet as one of the routers it can use as a default gateway. Each entry has a timer, Router Lifetime, extracted from the RA. This entry gets deleted when the Router Lifetime expires. The Router Lifetime value is refreshed every 200 seconds when the RA advertisements are received.

    • Hosts use stateless autoconfig for addresses:
      • indicates that the RA message sent on this interface is suggesting that hosts obtain their dynamic IPv6 using SLAAC as a result of the A flag being set to 1 and O and M flags being set to 0.

    RA messages can be viewed in realtime using the command debug ipv6 nd. In this output, included is the:

    • Link MTU: as IPv6 does not support fragmentation, the hosts will use this value to fragment packets before transmission.
    • Valid lifetime and preferred lifetime values are given. These values are in seconds.
    • LA (L-flag(On-link) and A-flag(address autoconfiguration flag)): both are set to 1.
      • When the L-flag is set to 1, the prefix sent in the RA is on this link or subnet.
      • A-flag indicates to devices that the prefix can be used to create an address with SLAAC.
      • Packets that are sent to addresses that are not on-link are sent to the default gateway.
      • The L-flag and A-flag are used by the client to determine if a destination network is on the link(on-link) or remote. On-link implies that a packet can be sent directly to the destination without being forwarded through a router.

        On Windows computers, this can be verified using the command netsh interface ipv6 show siteprefixes.

        The client adds this prefix to the prefix list which is a list of on-link prefixes. Any of the client's addresses that use this prefix will be considered on-link to this prefix on this subnet regardless of how the prefix was generated i.e., whether SLAAC, DHCPv6 generated or manually configured.

        A device is considered to be on-link if:

        • A neighbor discovery(ND) message is received from this device.
        • An RA includes a prefix with the L-flag set to 1
        • A local router sends a redirect message to the source of a packet. This redirect message triggered when a router forwards a packet out the same interface that the packet was received through. It notifies the source that the destination is on-link.

    SLAAC with DHCPv6 (Stateless DHCPv6)

    RA messages provide IPv6 configuration information to hosts such as prefix, prefix length but inform them to contact a stateless DHCPv6 server for additional configuration information. Hosts use their RA information to create their own unique GUA and get additional information from a DHCPv6 server. Note: The DHCPv6 server only provides configuration parameters for clients and does not maintain a list of IPv6 address bindings.

    Part of the network configuration parameters are received from the RA and the rest from the DHCPv6 server.

    SLAAC enables hosts to create their own unique IPv6 GUA without the services of a DHCPv6 server. SLAAC is a stateless service which means that there is no server that maintains network address information to know which IPv6 addresses are being used and which ones are available. SLAAC sends periodic ICMPv6 ND RA messages every 200 seconds providing addressing and other configuration information for hosts to autoconfigure their IPv6 address based on the information in the RA. The RA advertisements live for 1800 seconds.

    RA messages have the following flags set:

    • A=1: informs the client to use the IPv6 GUA prefix in the RA and dynamically create its own interface ID.
    • O=1 and M=0: informs the client to use the additional information in the RA message i.e., DNS server, interface MTU, and default gateway information.
    The default gateway address is the link-local address of the router interface.

    A router sends RA messages every 200ms or when it receives an RS message from a host. IPv6 enabled hosts wishing to obtain IPv6 addressing information send an RS message to the IPv6 all-routers multicast message of FF02::2.

    Stateless DHCPv6 RA Message

    The RA message sent by a router acting as a stateless DHCPv6 server contains the following information:

    • Destination IPv6 address: FF02::1 (All IPv6 devices multicast address)
    • Source IPv6 address: link-local address
    • Prefix: prefix
    • Prefix-length: /64
    • Address autoconfig flag: 1
    • Other config flag: 1

    Because the address autoconfig flag(A-flag) is set to 1, the device creates its own Interface ID using EUI-64 or randomly generated.

    Host Process to Generate Interface ID

    Using SLAAC, a host acquires its 64-bit IPv6 subnet information from the router RA and must generate the remainder 64-bit interface identifier using either:

      Randomly generated: the 64-bit interface identifier is randomly generated by the client operating system(usually used by Windows 10).
    • EUI-64: the host creates an interface ID using its 48-bit MAC address and inserts the hex value of FFFE in the middle of the address. Some operating systems default to randomly generated interface ID instead of the EUI-64 method due to privacy concerns. This is because the Ethernet MAC address of the host is used by EUI-64 to create the interface ID.
    Windows, Linux, and Mac OS allow for the user to modify the generation of the interface ID to be either randomly generated or to use EUI-64.

    Duplicate Address Detection(DAD)

    A SLAAC host may use the following DAD process to ensure that the IPv6 GUA is unique.

    • The host sends an ICMPv6 neighbor solicitation(NS) message with a specially constructed solicited-node multicast address containing the last 24-bits of IPv6 address of the host.
    • If no other devices respond with a Neighbor Advertisement(NA) message, then the address is virtually guaranteed to be unique and can be used by the host.
    • If an NA is received by the host, then the address is not unique, and the the host must generate a new interface ID to use.
    Note: DAD is not really required because a 64-bit interface ID provides infinite possibilites of an address. IETF recommends the use of DAD. Due to this, most host oerating systems perform DAD on all IPv6 unicast addresses, regardless of how the address is configured.

    Interface should join the all IPv6 multicast group: FF02::1. Verify with show ipv6 interface g0/1 | section Joined.

    The RA received by hosts contains the following message:

    • The IPv6 GUA network prefix and prefix length
    • A flag set to 1 informing the host to use SLAAC
    • O flag set to 1 informing the host to seek that additional configuration information from a DHCPv6 server.
    • M flag set to the default value of 0.
    PC sends a DHCPv6 SOLICIT message seeking additional information from a stateless DHCPv6 server.

    Configuration

    Server

    Stateless DHCPv6 server option requires that the router advertise the IPv6 network addressing information in RA messages. Stateless DHCPv6 is enabled using the ipv6 nd other-config-flag interface configuration command setting the O flag to 1.

    This configuration can be verified using the command show ipv6 interface xxx. The output confirms the RA will tell hosts to use stateless autoconfigure (A flag = 1) and contact DHCPv6 server to obtain another configuration information (O flag = 1). To disable the O flag, use the command no ipv6 nd other-config-flag.

    There are five steps to configure and verify a router as a stateless DHCPv6 server:

    1. Enable IPv6 routing: using ipv6 unicast-routing.
    2. Define a DHCPv6 pool name: using the ipv6 dhcp pool <pool-name> global config command.

      R1(config)#ipv6 dhcp pool POOL_2001:DB8:CAFE:2

    3. Configure the DHCPv6 pool with options: common options include DNS servers, domain name:

      R1(config-dhcpv6)#dns-server 2001:db8:cafe:a:1::1
      R1(config-dhcpv6)#domain-name emmanueltoko.blogspot.com

    4. Bind the interface to the pool: using the ipv6 dhcp server <pool-name> interface config command.

      R1(config)#interface g2/0
      R1(config-if)#ipv6 address 2001:db8:cafe:2::1/64
      R1(config-if)#ipv6 dhcp server POOL_2001:DB8:CAFE:2

      Manually change the O flag from 0 to 1 using the ipv6 nd other-config-flag interface command. RA messages sent to this interface indicate that

      R1(config-if)#ipv6 nd other-config-flag

    Client

    A router can also be a DHCPv6 client and receiev IPv6 network configuration parameters from a DHCPv6 server:

    1. Enable IPv6 routing: using ipv6 unicast-routing.
    2. Configure the client router to create a link-local address: an IPv6 link-local address is created on a router interface when a global unicast address is configured, or without a GUA using the IPv6 enable interface configuration command. Cisco IOS uses EUI-64 to create the interface ID.
    3. Configure the client router to use SLAAC: using ipv6 address autoconfig command.

      R5(config)#interface g0/0
      R5(config-if)#ipv6 address autoconfig

    4. Verify that the client is assigned a GUA: using show ipv6 interface <interface-id> command.

      R5#show ipv6 interface g0/0
      GigabitEthernet0/0 is up, line protocol is up
        IPv6 is enabled, link-local address is FE80::C805:6FF:FE6F:8
        No Virtual link-local address(es):
        Stateless address autoconfig enabled
        Global unicast address(es):
          2001:DB8:CAFE:2:C805:6FF:FE6F:8, subnet is 2001:DB8:CAFE:2::/64 [EUI/CAL/PRE]
            valid lifetime 2591984 preferred lifetime 604784
        Joined group address(es):
          FF02::1
          FF02::1:FF6F:8
        MTU is 1500 bytes
        ICMP error messages limited to one every 100 milliseconds
        ICMP redirects are enabled
        ICMP unreachables are sent
        ND DAD is enabled, number of DAD attempts: 1
        ND reachable time is 30000 milliseconds (using 30000)
        ND NS retransmit interval is 1000 milliseconds
        Default router is FE80::C801:5FF:FECA:38 on GigabitEthernet0/0

    5. Verify that the client router received other necessary DHCPv6 information: The show ipv6 dhcp interface g0/0 confirms DHCP option information, such as DNS server and domain name have been received by the client.

      R5#show ipv6 dhcp interface g0/0
      GigabitEthernet0/0 is in client mode
        Prefix State is IDLE (1)
        Information refresh timer expires in 23:44:04
        Address State is IDLE
        List of known servers:
          Reachable via address: FE80::C801:5FF:FECA:38
          DUID: 00030001CA0105CA0006
          Preference: 0
          Configuration parameters:
            DNS server: 2001:DB8:CAFE:A:1::1
            Domain name: emmanueltoko.blogspot.com
            Information refresh time: 0
        Prefix Rapid-Commit: disabled
        Address Rapid-Commit: disabled

    Address Allocation

    There are two modes of address allocation:

    • Two-message exchange: The DHCPv6 client requests for an address and other network configuration parameters from the server. The server allocates an address and other network configuration parameters to the client. This mode applies to a network with only one DHCPv6 server.
    • Four-message exchange: When there are multiple IPv6 DHCPv6 servers, all of them can allocate addresses and other configuration parameters to requesting clients. The client may waste address space. In this case the four-message exchange is used to allocate addresses.
      1. The DHCP client requests for an address and other network configuration parameters.
      2. The server notifies the client of the IPv6 address other network configuration parameters that can be allocated.
      3. If the client receives multiple messages from multiple servers, it selects messages from the server with the highest priority and sends multicast messages to all the servers.
      4. The server responds with a message that contains the allocated IPv6 address and network configuration parameters.

    DHCPv6 Relay Agent

    If the DHCPv6 server is located on a different network from the client, then the IPv6 router can be configured as a DHCPv6 relay agent. The realy agent creates a unicast RELAY-FORWARD message containing the original DHCPv6 message from the client and forwards the message to a server. The configuration of a DHCPv6 relay agent is similar to the configuration of an IPv4 router as a DHCPv4 relay. This command is configured on the interface facing the DHCPv6 clients and specifies the DHCPv6 server address and egress interface to reach the server. The egress interface is only required when the next-hop address is an LLA. ipv6 dhcp relay destination 2001:01010 <egress-interface>.

    The relay address can be unicast or multicast. With a multicast address, multiple DHCPv6 servers be be available. If a link-local unicast address is configured, then the egress interface must be specified.

    Verification

    Verify that the DHCPv6 relay agent is operational with the show ipv6 dhcp interface and show ipv6 dhcp binding.

    Prefix Delegation

    IPv6 Prefix Delegation(PD) mechanism allows a downstream device to request for an address prefix from an upstream device and allows the upstream device to allocate the appropriate prefix to the downstream device. The downstream device automatically divides the obtained address prefix into subnet segments with 64-bit prefixes and sends RA messages carrying the subnet segments on the link that IPv6 hosts directly connect to. This allows IPv6 hosts to automatically configure IPv6 addresses implementing hierarchical address deployment.

    Security

    DHCPv6 snooping. An intermediate device such as a switch maintains a DHCPv6 snooping binding table that records information between a DHCPv6 client and server. It intercepts DHCPv6 messages between the server and the client. This table contains user information such as MAC address, IPv6 address lease, VLAN ID, and interface information. Based on this table, the device analyzes and processes messages as well as filters out attack messages providing security services for DHCPv6

    Verification

    show ipv6 dhcp

    View the device's DHCPv6 unique identifier(DUID).

    show ipv6 dhcp pool

    Command verifies the name of the DHCPv6 pool and its parameters. The coomand also identifies the number of active clients.

    show ipv6 dhcp binding

    To display the IPv6 link-local address of the client and the global unicast address assigned by the server. This information is maintained by a stateful DHCPv6 server. A stateless DHCPv6 server would not maintain this information.

    show ipv6 dhcp interface <interface-ID>

    View settings such as state of rapid-commit.