Introduction
Cisco Programmable Fabric

About this Lab!

It has been some time now since the concept of Software Defined Networks (SDN) has entered the networking industry and marketplace. The fundamental principle of SDN is to interact with networks programmatically to deploy, control, change, and manage network devices using open interfaces. Over time, the tools for this programmatic interaction have evolved into controllers and DevOps tools that have introduced a mindset shift in the industry to representing network infrastructure as code. Two common terms for this are Infrastructure as Code (IaC) and Network as Code (NaC). The mindset change brings the managing and provisioning of infrastructure through software development practices and code instead of performing these tasks manually.




In this lab, you assume the role of a network automation engineer. You will explore various automation and programmability tools that can be used to build and deploy a VXLAN EVPN fabric. You will develop Python scripts, and Ansible playbooks to deploy and verify a VXLAN EVPN fabric using the Cisco Nexus Dashboard Fabric Controller (NDFC). Cisco NDFC is the comprehensive management and automation solution for all Cisco Nexus and Cisco Multilayer Distributed Switching (MDS) platforms powered by Cisco NX-OS. NDFC provides management, automation, control, monitoring, and integration for deployments spanning LAN, SAN, and IP Fabric for Media (IPFM) fabrics. NDFC facilitates seamless interconnectivity, automation, and management for hybrid-cloud environments.







Using Infrastructure as Code (IaC) principles you will be developing and testing against a staging fabric before deploying changes to your production (prod) fabric. This allows you to test in a safe environment before pushing the changes to production.












The lab environment makes use of the Nexus 9000v in Cisco Modeling Labs (CML) to provide each student with a staging fabric and prod fabric consisting of three-nodes; a Spine and two Leaf switches. CML and the N9Kv were developed to enable learning and testing various topologies and programmable interfaces. N9Kv can be deployed in VMWare, KVM, and Vagrant.


The lab will guide you through the following:

  • Dev Setup: You will start by setting up your development environment for future sections of the lab. You can take the concepts from this section and apply them in your own environment after Cisco Live.
  • REST API: Next you will experiment with NDFC's northbound REST API using the API documentation that is embedded. This documentation provides a bird's eye view of the various API's and allows you to test them directly from your browser.
  • Python: Next you will learn how to interact with NDFC by building your own ND connector client in Python to manage VRFs and Networks. This section will setup any Python dependencies and libraries you will need to build your own client.
  • Ansible: After learning about how you can interact with NDFC using Python scripts you will learn about how you can use our powerful and flexible Ansible NDFC collection. This section will setup Ansible and the NDFC collection in your development environment. You will learn how to use Ansible to build out a VXLAN EVPN fabric using the NDFC collection; specifically, a fabric, inventory, VRFs, and Networks.
  • VXLAN as Code: Using everything you have learned in the previous sections; you will now build out an VXLAN EVPN fabric using VXLAN as Code that brings together full IaC principles and a data model-driven abstraction layer as a simplified way at describing network configuration. This will introduce you to the VXLAN as Code Ansible collection that is built upon the NDFC collection from the previous section.
  • NetDevOps: Now you are ready to write test automation using Ansible. This configuration and test automation will be integrated into a NetDevOps Continuous Integration, Continuous Delivery (CI/CD) pipeline to perform a network change by testing it against your staging fabric you have been developing against, and pending that passes in the pipeline, will allow you to trigger the deployment and tests to your prod fabric.

The lab from a high level has the following sections:

  • Introduction
  • Dev Setup
  • NDFC
  • REST API
  • Python
  • Ansible
  • VXLAN as Code
  • NetDevOps
  • Bonus: Terraform
  • Bonus: Postman
  • Reference: More Ansible

Please continue to setup your development environment!