Data Center Device-Centric Networking¶
Overview¶
This section of the exam topics focuses on the programmability features of the Cisco Nexus series of switches, when the switches run the Cisco Open NX-OS operating system. We found this particular exam topic section has the most technical variety of its counterparts and, thus, required us to build and practice a pretty diverse set of skills in the course of our DCAUTO exam prep. We spent a good amount of time learning to pay close attention to discreet differences between the many types of Open NX-OS programmatic interfaces plus how Open NX-OS models its configuration and state data using its Data Management Engine (DME) and YANG model options (both Native and OpenConfig).
Section 3.0 Topic Details
- 3.1 Describe Day 0 provisioning with NX-OS
- 3.1.a Cisco POAP
- 3.1.b NX-OS iPXE
- 3.2 Implement On-Box Programmability and Automation with NX-OS
- 3.2.a Bash
- 3.2.b Linux containers (LXC and Docker using provided container)
- 3.2.c NX-OS guest shell
- 3.2.d Embedded Event Manager (EEM)
- 3.2.e On-box Python Scripting
- 3.3 Compare model-driven telemetry such as YANG Push and gRPC to traditional network monitoring strategies such as SMNP, Netflow, and SYSLOG
- 3.4 Construct Python script that consumes model-driven telemetry data with NX-OS
- 3.5 Implement Off-Box Programmability and Automation with NX-OS
- 3.5.a Nexus NX-API (NX-API REST and NX-API CLI)
- 3.5.b Nexus NETCONF using native and OpenConfig
- 3.5.c Network configuration tools with NX-OS (Ansible)
Resources¶
Cisco DevNet¶
Learning Labs
- NX-OS Programmability
- Introduction to NX-OS Programmability Module - All Labs
- NETCONF/YANG on Nexus - All Labs
Files and Scripts
Videos on Demand¶
Cisco Live¶
On-Demand Library
Hands-On Learning¶
DevNet Sandbox Labs
Development Environment Resources
Attention
- The links below require that the local JupyterLab server is active and listening on http://localhost:8888
- The Visual Studio Code Development Environment automatically activates the JupyterLab server.
New to JupyterLab? Click Here for an Overview
Tip
- You may also use Visual Studio Code to explore the same code samples and hands-on exercises. The resources folder within the Development Environment Container contains all of the source files.
WWT On-Demand Labs
- Cisco Ansible Automation Lab
- We did not follow the provided lab guide, although you may certainly do so if you are new to Ansible or want some Ansible practice.
- We used this lab primarily because it contains an NX-OS switch that we could configure to suit our study needs.
Documentation¶
Day 0 Provisioning
On-Box Programmability and Automation
Model-Driven Programmability & Telemetry
- Infrastructure Overview - NX-OS Programmability Guide
- Managing Components - NX-OS Programmability Guide
- OpenConfig YANG - NX-OS Programmability Guide
- NETCONF Agent - NX-OS Programmability Guide
- XMLIN Tool - NX-OS Programmability Guide
- gRPC Agent - NX-OS Programmability Guide
- gNMI Interface - NX-OS Programmability Guide
- Model-Driven Telemetry - NX-OS Programmability Guide
Consuming Model-Driven Telemetry with Python
Ansible with NX-OS
General NX-OS Programmability References
Insights¶
-
Cisco documentation was our predominant resource for this exam topic section. We absolutely did NOT arbitrarily insert every link from the NX-OS Programmability Guide into this page, just to fill space. There were only a few DevNet Learning Labs available which address the NX-OS exam topics, so we had to rely heavily on tediously walking through commands and configuration examples in official Cisco documentation. We highly recommend that you invest a lot of hands-on time with the examples in Cisco NX-OS documentation.
-
Effective NX-OS hands-on lab resources were hard for us to find. The lone DevNet NX-OS Sandbox was helpful, although it had some limitations that kept us from practicing certain things, like deploying Docker Containers on NX-OS and configuring POAP. The WWT Ansible Automation Lab was a good resource for studying and testing Ansible and Docker with NX-OS. DevNet provides a Vagrant configuration that we did not use, although it is another NX-OS hands-on resource option.
-
We did not find documentation that explicitly showed us how to construct Python scripts that consume model-driven telemetry. Instead, we pieced together many different resources (referenced in the Documentation section) and conducted a lot of trial-and-error testing in order to meet our interpretation of the exam topic intent successfully. For some really good practice, we recommend that you work through the gNMI Jupyter Walk-Through and sample Python code we put together and then write your own code to consume telemetry from different XPaths.
-
Something we found very beneficial to our comfort level with NETCONF and YANG models was to go through the DevNet Learning Labs on those topics and, instead of copying and pasting commands (into an NX-OS hands-on environment) or even typing out the NETCONF XML payload examples in the lab guides, we forced ourselves to look at the XPath examples and then try to manually type out/construct the XML payloads. This practice helped us become much more comfortable with YANG models, XML, and NETCONF, in general. The NETCONF Jupyter Notebook we put together was an excellent resource for us to get that practice because the interactivity of Jupyter makes it fast and easy to try something, see it not work, make a change, and try again.
On to Section 4.0¶
You finished going through all of the Open NX-OS resources! One more section to go, click this link to check out Section 4.0 exam topics and resources.