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 work with a pre-built Postman collection, 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:

  • 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.
  • Next you will experiment with NDFC's northbound REST API using the API documentation that comes installed on NDFC. This documentation provides a birds eye view of the various API's and allows you to test them directly from your browser.
  • After you familiarize yourself with the API docs you will use the popular Postman tool used for building and testing APIs. You will learn how to import a pre-built NDFC collection that can be used to connect, authenticate and start to interact with NDFC.
  • Next you will learn how to interact with NDFC by building your own ND connector client in python.
  • 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 collection contains a suite of modules that allows you to build an entire VXLAN EVPN Fabric using a realatively small set of modules and establish a solid foundation for building CI/CD pipeline where you can start to manage your Network as Code (NaC).
  • 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.

This lab will focus on invoking NDFC's northbound REST API to build out a VXLAN EVPN Fabric.






The lab from a high level has the following sections:

  • Introduction
  • Development Environment
  • NDFC
  • ND/NDFC REST API
  • NDFC Postman
  • NDFC Python
  • NDFC Ansible
  • NDFC CI/CD

Please continue to setup your development environment!