DNAC Stuff

Table of Contents

Download ISO

DNAC 1.1 ISOs
DNAC 1.2 ISOs

Mirror
Alternatively you can download the 1.2.10 ISO at ftp://home.zartmann.dk/DNAC-SW-1.2.10.iso

Supported Devices List

DNAC 1.2 Supported Devices List
DNAC 1.3 Supported Devices List

Cisco Docs

SDA Design Guide
SDA Deployment Guide
SDA Wireless Design and Configuration Guide
SD-Access 1.2.x Hardware and Software Compatibility Matrix

Password Recovery

Below can be used to do a password recovery on DNAC.

For CLI maglev  recovery, you can use a normal Linux password recovery process 
such as here:  
https://askubuntu.com/questions/24006/how-do-i-reset-a-lost-administrative-password
Once you get access(after passwd recovery and boot back into DNAC), try 
resetting "admin" UI user password with this:
$ magctl user password update admin TNT0

Inventory

$ cat /sys/devices/virtual/dmi/id/product_name
DN1-HW-APL

$ sudo cat /sys/devices/virtual/dmi/id/chassis_serial
[sudo] password for maglev:
FCH2131V1ZJ

Docker

You can remove docker containers that have a status of “exited”.

docker ps -f status=exited
docker rm -v $(docker ps -q -f status=exited)
sudo systemctl restart docker

Proxy

cat /etc/systemd/system/docker.service.d/https-proxy.conf
curl -x http://proxy-host:8080 --proxy-user proxy-user:proxy-password -L -k https://cdn.ciscoconnectdna.com

Update Config

$ sudo maglev-config update

Redundancy

Say we have uplinks failing in the following SDA topology:

SDA_Topology_Uplinks_Down

DNAC provisions:

  • Uplinks as trunk interfaces
  • SVIs for eBGP peerings

Since DNAC DOES NOT configure a trunk allow list on the uplinks, the SVIs are artificially held up/up and traffic is blackholed, as we attract traffic due to Loopback0 of the border still being reachable in the underlay.

The solution is to add enhanced object tracking of the uplinks and use them in an EEM applet for the cause of shutting down Loopback0 when we loose connectivity out of the border. An example of this could be:

track 19 interface FortyGigabitEthernet1/0/19 line-protocol
track 20 interface FortyGigabitEthernet1/0/20 line-protocol
track 21 interface FortyGigabitEthernet1/0/21 ip routing
!
track 1 list boolean or
 object 19
 object 20
 object 21
!
track 2 list boolean or
 object 19
 object 20
 object 21
 delay up 120
!
event manager applet UPLINKS_DOWN authorization bypass trap
 event syslog pattern "TRACK-6-STATE: 1 list boolean or Up -> Down"
 action 1.0 cli command "en"
 action 2.0 cli command "conf t"
 action 3.0 cli command "inter lo0"
 action 4.0 cli command "shut"
 action 5.0 cli command "end"
 action 6.0 syslog msg LISP_RLOC_SHUTDOWN_COMPLETE
!
event manager applet UPLINKS_UP authorization bypass trap
 event syslog pattern "TRACK-6-STATE: 2 list boolean or Down -> Up"
 action 1.0 cli command "en"
 action 2.0 cli command "conf t"
 action 3.0 cli command "inter lo0"
 action 4.0 cli command "no shut"
 action 5.0 cli command "end"
 action 6.0 syslog msg LISP_RLOC_NO_SHUTDOWN_COMPLETE

A boolean or in the track list above works by keeping the list up when at least one of the tracked objects are up, meaning that all uplinks must go down for list 1 to go down and we initiate a shutdown of the Loopback0 interface. Likewise just one of the uplinks has to come back up for list 2 to be up and we’ll initiate a no shutdown of Loopback0.

If you for some reason have a default route in GRT (Global Routing Table), LISP in Edge nodes will actually use this and keep sending traffic towards the border that is unable to forward the traffic. To mitigate this and change the behavior of LISP, we can tell it to exclude the default route lookups on the RLOC address, like this:

router lisp
 ipv4 locator reachability exclude-default

Alternatively there is a hidden command that ensure only /32s can be used:

router lisp
 ipv4 locator reach minimum-mask-length 32

Note these two commands are mutual exclusive which makes sense.

If you reload a border node and the IGP comes up before BGP does, you’ll also end up blackholing traffic. To mitigate this, we need more EEM!

track 3 ip route 10.0.10.0 255.255.255.0 reachability
!
event manager applet POST_RELOAD_SHUT_LO0 authorization bypass
 event syslog pattern "SYS-5-RESTART"
 action 1.0 cli command "en"
 action 2.0 cli command "conf t"
 action 3.0 cli command "inter lo0"
 action 4.0 cli command "shut"
 action 5.0 cli command "end"
 action 6.0 syslog priority critical msg "POST_RELOAD_LISP_RLOC_SHUTDOWN_COMPLETE"
!
event manager applet POST_RELOAD_NO_SHUT_LO0 authorization bypass
 event syslog pattern "TRACK-6-STATE: 3 ip route 0.0.0.0/0 reachability Down -> Up"
 event timer countdown name DELAY_RLOC_BRINGUP time 60
 action 1.0 cli command "en"
 action 2.0 cli command "conf t"
 action 3.0 cli command "inter lo0"
 action 4.0 cli command "no shut"
 action 5.0 cli command "end"
 action 6.0 syslog priority critical msg "POST_RELOAD_LISP_RLOC_NO_SHUTDOWN_COMPLETE"

Here I track the route in GRT towards the WLC since we must have a specific (non-default) route towards the WLC anyways with SDA. But the first thing we do is to shutdown Loopback0 upon restart, meaning this is the frist thing we see in the log after a switch/router boots. Please note that for BGP to come up, we must use physical interfaces or some other loopback interface - not our Loopback0 ROC interface! After BGP converges (we receive the router via BGP to the WLC) we wait for a minute and then bring up Loopback0, because now we should be ready to forward traffic again.

Troubleshooting

Tips for troubleshooting DNAC.

Install Wizard

If the install wizard restarts at the “Start a Cisco DNA Center Cluster” after you’ve entered interface settings and the wizards verifies the settings, you might have entered static routes using CIDR notation instead of subnet mask. The static route list has to be space separated and in this format:

<network>/<netmask>/<gateway>

If you do <network>/<cidr>/<gateway> the wizard will take an aweful long time to verify the settings and eventually take you back to the Start a DNAC Cluster page.

ISE Integration

When doing an integration with ISE and you DO NOT see DNAC under pxGrid Services in ISE, the reason could be that the Internal CA of ISE is disabled. This has to be enabled to complete the integration.

Here is a picture of where you can enable the Internal CA: ISE_Internal_CA

To assist in further troubleshooting of why this integration might fail, you can do a TCP Dump on ISE where you specify ip host x.x.x.x - the IP address of the DNAC interface - not the VIP.

Here is a picture of where you can create a TCP Dump in ISE: ISE_TCP_Dump

Sometimes enabling the Internal CA isn’t enough. You’ll see this in a TCP Dump:

Alert (Level: Fatal, Description: Unknown CA)

ISE_TCP_Dump_Unknown_CA

Here the IP addresses are defined as:

  • ISE: 10.1.23.10
  • DNAC: 10.1.23.26

This message is followed by a TCP reset (RST) from ISE and the integration will never complete. Possibly you’ll see this under Administration -> System -> Certificates -> Certificate Authority -> Issued Certificates:

Certificate trust chain is incomplete

ISE_Internal_CA_Issued_Certificates

The Internal CA of ISE was originally intended for distributing certificates to endpoints. Primarily for customers who doesn’t have a PKI. If the Internal CA has already been configured, you could potentially break functionality of all endpoints by re-generating the CA certs as described below. Therefore proceed with caution and ensure the Internal CA isn’t used for other things. An alternative solution to restore the certificate chain could be to import the certificates. Below fix assumes that the Internal CA isn’t used for anything and we see this certificate chain issue.

The fix is to generate new Root CA certificates. This is done under Administration -> System -> Certificates -> Manage Certificates -> Certificate Signing Requests -> Generate Certificate Signing Request (CSR). Select ISE Root CA under the Usage, like this:

ISE_Create_CSR_ISE_Root_CA

Replace ISE Root CA Certificate chain. Now you should have a complete certificate chain:

ISE_Internal_CA_Complete_Certificate_chain

Retry the ISE integration, and you should be good to go!

Jacob Zartmann avatar
Jacob Zartmann
Passionate Network Engineer thriving for challenges and knowledge.