Large image for: NPDEV v4.0 - Developing with Cisco Network Programmability

NPDEV v4.0 - Developing with Cisco Network Programmability

Networking/Server/Operating Systems
Schedules
Optional
  LearnITAnytime Online Subscription (1 Year Subscription - $195.00)
  IT Online Library (1 Year Subscription - $1595.00)
  Private Mentoring 3 Hours ($225)
Quantity
If quantity is more than 1, Please add all Attendees' Names /Voucher #/ Learning Credit below separated with a comma. If not specified, we will contact you prior to the class start date. Special Instructions

Description

Developing with Cisco Network Programmability v4.0 (NPDEV) is a 5-day course for software developers looking to automate network infrastructure and utilize APIs and toolkits to interface with SDN controllers and individual devices. This course is aligned with the topics covered by the 300-560 NPDEV exam, leading to the Cisco Network Programmability Developer Specialist Certification.

To participate in the hands-on labs in this class, you need to bring a laptop computer with the following:

  • We recommend using at least a Pentium 4 or better and 1 GB of RAM or more.
  • We recommend running Windows XP Professional SP3 or greater (Vista & Windows 7/8).
    Mac & Linux machines are also supported.
  • Browser Requirements: Internet Explorer 10 or greater or Mozilla Firefox. (Safari and Mozilla Firefox for Mac OSX)
  • All students are required to have administrator rights to their PCs and cannot be logged in to a domain using any Group Policies that will limit their machine's capabilities.
  • If you do not have administrator rights to your PC, you at least need permissions to download, install, and run Cisco Any Connect Client.
  • If you are participating in a WebEx event, it is highly recommended to take this class at a location that has bandwidth speeds at a minimum of 1 Mbps bandwidth speeds.

Note: Students registering for this course will be receiving their course kit in a digital format. To be able to view your digital kit, it is recommended that you bring a laptop PC and/or a compatible tablet to be able to view the course materials and labs on separate screens. The recommended system requirements and instructions to access the course kit content can be found at the following link: Digital Course Kit Requirements and Instructions.

Please also be aware that this digital version is designed for online use, not for printing. You can print up to 10 pages only in each guide within a course. Please note that every time you click the Print button in the book, this counts as one page printed, whether or not you click OK in the Print dialog.

If you have any questions or issues with meeting the requirements listed above, please contact us at rlt@skyline-ats.com and provide the class name to which you are attending and we will be more than happy to help.

Objectives

Upon completing this course, the learner will be able to meet these overall objectives:

  • Learn the basics of networking, IPv4 and IPv6 addressing and subnetting, functions of infrastructure components in a network, and the need for network programmability.
  • Review data handling and formats.
  • Learn about Cisco ACI, APIC-EM and Open SDN Controller technologies and conceptual frameworks, as well as how to make REST and Python requests.
  • Learn about Cisco NSO framework and how to make REST, YANG, and Python requests.
  • Interpret and produce code to deploy configurations to multiple devices using RESTConf and NETConf.
  • Identify available network programmability developer tools and Cisco virtual platforms.

Prerequisites

The knowledge, skills, and attitudes that a learner is expected to have before attending this course are as follows:

  • Recommended: CCNP or equivalent experience
    • CCNP, CCIE, CCDP or CCDE required to obtain the NP Design & Implementation Specialist Certification
  • Recommended: Complete the Programming for Network Engineers (PRNE) ELT or equivalent Python programming experience

Who Should Attend

The primary audience for this course is as follows:

  • Network Designer
  • Network Administrator
  • Network Engineer
  • Systems Engineer
  • Consulting Systems Engineer
  • Technical Solutions Architect
  • Cisco Integrators/Partners

The secondary audience for this course is as follows:

  • Server Administrator
  • Network Manager

The tertiary audience for this course is as follows:

  • Storage Administrator
  • Program Manager
  • Project Manager

Outline

Module 1: Networking Fundamentals

Lesson 1: Describing the Components and Concepts of Network Programmability

  • Understand the Need for Network Programming
    • Costs
    • Brief History of the CLI
    • Honorable Mention for SNMP
  • Classic and Hybrid SDN
    • What Is Classic SDN?
    • Hybrid SDN: The Whole Stack
  • Controller Functionality
  • OpenFlow Switch and Control Plane Model
  • Describe OpFlex
    • OpFlex Policy Framework
  • Describe NETCONF, YANG, and RESTCONF
    • NETCONF and YANG Architecture
    • RESTCONF
  • Describe Cisco Open NX-OS and NX-API
  • Describe Cisco NSO
  • Understand Cisco ACI
  • Common Policy Concept from Branch to Data Center
    • Evolution to Policy Automation
  • Cisco SDN and Network Programmability Technologies
    • Technologies, Places in Networks, and Use Cases
    • Cisco REST APIs
  • References
  • Challenge

Lesson 2: Describing Networking Concepts and the OSI and TCP/IP Models

  • Networking Concepts
    • Physical Components of a Network
    • Physical vs. Logical Topologies
    • Interpreting a Network Diagram
    • Impact of User Applications on the Network
  • Describe the OSI Reference Model
    • OSI Reference Model
    • Layer 7: Application Layer
    • Layer 6: Presentation Layer
    • Layer 5: Session Layer
    • Layer 4: Transport Layer
    • Layer 3: Network Layer
    • Layer 2: Data Link Layer
    • Layer 1: Physical Layer
  • TCP/IP Model
    • Peer-to-Peer Communications
    • Encapsulation
    • De-Encapsulation
  • TCP/IP Stack vs. the OSI Model
  • Challenge

Lesson 3: Describing the Functions of Infrastructure Components in a Network

  • Describe Switches
    • Why Are Switches Needed?
  • Describe Routers
    • Role of a Router
    • Router Function
  • Describe Firewalls
    • Firewall Functionality
    • IPS Overview
    • IPS Functionality
  • Describe Load Balancers
    • Layer 4 Switching
    • Layer 7 Switching
  • Challenge

Lesson 4: Switching Concepts

  • MAC Addresses and Unicast, Broadcast, and Multicast Domains
    • Layer 2 Addressing
    • What Are MAC Addresses?
    • Unicast, Broadcast, and Multicast Domains
  • Describe ARP and Ethernet Packet Format
    • Mapping Layer 2 Addressing to Layer 3 Addressing
    • ARP Table
  • Define VLAN
    • Grouping Business Functions into VLANs
  • Describe VXLAN
    • What Is VXLAN?
    • VXLAN Benefits
  • Challenge

Lesson 5: Describing IPv4 and IPv6 Addressing and Subnetting

  • Describe TCP/IP Protocol
    • Reliable vs. Best-Effort Connections
    • UDP Characteristics
    • TCP Characteristics
    • Mapping Layer 3 to Layer 4
    • Mapping Layer 4 to Applications
    • Establishing a Connection with a Peer System
  • Describe IPv4 Addressing and Subnetting
    • IP Addressing
    • Network ID
    • IP Address Classes
    • Private IP Addresses
    • Public IP Addresses
    • Subnets
    • Subnet Masks
    • Benefits of VLSM and Implementing VLSM
  • Describe IPv6 Addressing and Subnetting
    • Format of IPv6 Addresses
    • Types of IPv6 Unicast Addresses
    • Global Addresses
  • References
  • Challenge

Lesson 6: Routing Concepts

  • Describe Routes
    • What Is a Routing Table?
    • Describe Host Routes
  • Describe Gateways
    • Function of the Default Gateway
  • Describe Routing Protocols
    • Path Determination
    • Route Selection
  • Describe DNS and DHCP Services
    • Domain Name System
    • DHCP
  • Discovery 1: Explore and Configure Device using CLI
    • Task 1: Explore a Device CLI
    • Task 2: Explore the CLI of a Device
    • Task 3: Run show Commands
    • Task 4: Explore and Search the Router Running Configuration
    • Task 5: Configure the Date and Time
    • Task 6: Assign an IP Address to an Interface
    • Task 7: Confirm Connectivity to the Device
  • Challenge

Module 2: Device Programmability

Lesson 1: Describing NETCONF, YANG, and RESTCONF

  • NETCONF and YANG
    • NETCONF and YANG Side by Side
    • NETCONF Protocol Operations
    • NETCONF Configuration Datastores
  • Sample YANG Module Structure
    • YANG Data Nodes Generically Mapped to XML
    • Example: YANG Leaf Statement with XML
    • Example: YANG List Statement with XML
    • Example: YANG Container Structure with Augmentation
    • Example: XML Corresponding to YANG Container Structure with Augmentation
    • NETCONF and YANG Example: Retrieve an Interface Configuration
    • NETCONF and YANG Example: Respond with an Interface Configuration
    • NETCONF and YANG Example: Edit an Interface Configuration
    • NETCONF and YANG Example: RPC
    • NETCONF and YANG Example: Notifications
  • Discovery 2: Explore YANG Models
    • Task 1: Open the IETF NETCONF YANG Model and Examine the Contents
  • YANG Tools
  • Discovery 3: Use YANG Tools
    • Task 1: Use the YANG Validator to Validate and View Models
    • Task 2: Use pyang to Validate and View Models
  • RESTCONF Protocol
    • RESTCONF Methods
    • RESTCONF Example: Get Interface
    • RESTCONF Example: Get Interface Description
    • RESTCONF Example: Get YANG Library Version
    • RESTCONF Example: Invoke RPC
  • References
  • Challenge

Lesson 2: Programming Cisco IOS XE and XR Software

  • Cisco IOS XE and IOS XR Systems Overview
  • Discovery 4: Use NETCONF Via SSH
    • Task 1: Connect to the NETCONF Server Using SSH
    • Task 2: Examine the NETCONF Capabilities
    • Task 3: Get the YANG Schema
  • Discovery 5: Use the pyang Tool for Sample XML
    • Task 1: Use pyang to View Schema Trees
    • Task 2: Use pyang to Create Sample XML Documents
  • Discovery 6: Use the ncclient Python Library
    • Task 1: Use the NETCONF get Operation with Subtree Filtering
    • Task 2: Use edit_config Operation to Configure Devices
  • Constructing RESTCONF URLs
    • Cisco CSR 1000v Example: Interface Loopback 1 Address
    • Cisco CSR 1000v Example: IP Route Table Entries
  • Debug NETCONF and RESTCONF
    • Debug ncclient
  • Discovery 7: Use YDK
    • Task 1: Examine and Execute the Sample Code
  • Discovery 8: Use RESTCONF with Cisco IOS XE Software
    • Task 1: Use GET to Access Resources With a Browser
    • Task 2: Use the Python Requests Library to Get Resources as XML and JSON
    • Task 3: Use the Python Requests Library with POST, PUT, and PATCH
  • References
    • Use the Cisco CSR 1000v and IOS XRv Software for Development
    • Configure NETCONF and RESTCONF
  • Challenge
    • FASTLab 1: Python, RESTCONF, and Routing
    • FASTLab 2: Python, NETCONF, and Interfaces

Lesson 3: Programming Cisco ASA Software

  • Cisco ASA Software Overview
  • Cisco ASA REST API
    • Cisco ASA Network Objects
    • Cisco ASA Network Objects Groups
    • Cisco ASA Access Lists
    • Cisco ASA REST Bulk API
  • Discovery 9: Use the Documentation Pages
    • Task 1: Test the Monitoring API and Generate and Execute Python Code
    • Task 2: Create and Retrieve a Network Object
  • Connect to Cisco ASA Appliance Using Python
    • Cisco ASA REST API Authentication and Authorization
  • References
    • Cisco ASA REST API Debugging
  • Challenge
    • FASTLab 3: Python, REST, and Network Objects

Lesson 4: Programming Cisco NX-OS Software

  • Cisco Open NX-OS Overview
  • Discovery 10: Run Native Python Scripts on Cisco NX-OS
    • Task 1: Create a show version Python Script
    • Task 2: Create a show interface Python Script
  • Discovery 11: Use Cisco NX-API on Cisco NX-OS
    • Task 1: Explore the Sandbox Request and Response Options
    • Task 2: Use the Sandbox Python Code
  • Discovery 12: Configure Cisco NX-OS Device Using NETCONF and CLI
    • Task 1: Explore NETCONF XML Tools
    • Task 2: Use ncclient Python APIs with NETCONF and the CLI
  • Cisco NX-API REST Managed Objects API
  • References
  • Challenge
    • FASTLab 4: Native Python
    • FASTLab 5: Cisco NX-API CLI with Python
    • FASTLab 6: NETCONF CLI with Python ncclient

Module 3: Cisco ACI

Lesson 1: Describing Cisco ACI

  • Cisco ACI Introduction
    • Application Centric View of Networks
  • Spine, Leaf, and Cisco APIC Data Center Architecture
  • Cisco APIC Overview
    • Cisco APIC API Inspector
    • Fabric Discovery with the Cisco APIC
  • Cisco ACI Object Model
  • Tenant Model Hierarchy
  • Discovery 13: Use Cisco APIC Web GUI
    • Task 1: Log in to the Cisco APIC and Access Information
    • Task 2: Initialize the Fabric
    • Task 3: Create Tenants, VRFs, Applications, and EPGs
    • Task 4: Use the Cisco APIC Object Store Browser
  • Cisco ACI Toolkit Overview
    • Cisco ACI Toolkit Applications
    • Cisco ACI Toolkit Application Topology Object Model
    • Cisco ACI Toolkit Interface Object Model
    • Cisco ACI Toolkit Physical Topology Object Model
  • Discovery 14: Explore the ACI Toolkit
    • Task 1: Start the Snapback Application, Configure It, and Take a Snapshot
    • Task 2: Use the tutorial.py Script to Create a Tenant
    • Task 3: Take Another Snapshot and View the Differences
    • Task 4: Roll Back to a Snapshot
  • References
  • Challenge

Lesson 2: Using Cisco APIC REST API

  • Cisco APIC REST API for Operations on Objects and Classes
    • Operations on a Managed Object
    • Operations on an Object Class
    • It Is All in the Body
    • Authentication
    • API Inspector Is Invaluable
  • Scoping Filters
    • Scoping Filters: query-target
    • Scoping Filters: target-subtree
    • Scoping Filters: query-target-filter
    • Scoping Filters: rsp-subtree
    • Scoping Filters: rsp-subtree-include
    • Scoping Filters: rsp-prop-include
    • Logical Operators
    • GET Logical Operator Examples
    • Sorting and Paginating
  • Subscriptions
    • Subscription for Nodes in a Rack
  • Discovery 15: Use Postman for Cisco APIC Fabric Discovery
    • Task 1: Open Postman and Use the Requests in the APIC-DC Collection
  • Discovery 16: Use Python and Cisco APIC REST API
    • Task 1: Open the Sample Code, Review Structure, and Run it
  • References
  • Challenge
    • FASTLab 7: Cisco APIC REST API with Python

Lesson 3: Cobra SDK and Arya

  • Cobra SDK and Arya
    • Cisco ACI Developer Resources
  • Discovery 17: Use Cobra with Tenants and Related MOs
    • Task 1: Open the Sample Code, Review Structure, and Run It
  • Discovery 18: Use Arya to Generate Cobra Code
    • Task 1: Export Data Structures from Cisco APIC Web GUI
    • Task 2: Use Arya to Generate Code
  • References
  • Challenge

Module 4: Cisco APIC-EM Module

Lesson 1: Describing the Cisco APIC-EM Platform

  • Cisco APIC-EM Introduction
  • Discovery 19: Access the Cisco APIC-EM Web User Interface
    • Task 1: Explore Main Elements of the Web User Interface
  • Cisco APIC-EM Platform Architecture
  • References
  • Challenge

Lesson 2: Describing Cisco APIC-EM Services

  • Cisco APIC-EM Applications and Services
  • Discovery 20: Configure Network Device Discovery Job
    • Task 1: Create a New Discovery Job Using an IP Address Range
    • Task 2: Start the Test Discovery_Lab Discovery Job and Examine the Results
  • Discovery 21: Work with Device Inventory
    • Task 1: View Device Inventory and Device Details
    • Task 2: Delete and Rediscover Inventory
  • Discovery 22: Use Locations and Tags
    • Task 1: Use Tags with Devices
    • Task 2: Use Locations with Devices
  • Users and RBAC
  • Discovery 23: Create Cisco APIC-EM Internal Users and Examine User Roles
    • Task 1: Create a Cisco APIC-EM User
    • Task 2: Examine the Effect of User Roles
  • Backing Up and Restoring the Database
  • References
  • Challenge

Lesson 3: Describing the Cisco APIC-EM Advanced Applications

  • Advanced Applications Overview
  • Cisco Network Plug and Play: Automated Device Bootstrapping
    • Cisco Network Plug and Play Components
  • Cisco IWAN Application
    • Cisco IWAN Dashboard
  • Path Trace Application
  • Easy QoS Application
  • Reference
  • Challenge

Lesson 4: Exploring Cisco APIC-EM REST APIs

  • Swagger REST API Documentation
  • Discovery 24: Use Browser Developer Tools to Examine REST APIs
    • Task 1: Use Web Developer Tools in Firefox
    • Task 2: Use Web Developer Tools in Chrome
  • Discovery 25: Use the Swagger API Pages
    • Task 1: Get Network Devices
    • Task 2: Delete a Network Device
    • Task 3: Get Task Status
    • Task 4: Activate Discovery
    • Task 5: Examine Which Devices Were Discovered
  • Challenge

Lesson 5: Using Cisco APIC-EM Developer Resources for Postman and Python

  • Cisco APIC-EM Developer Resources
  • Request a Service Ticket with Postman
    • Request Variables in Postman
    • Service Ticket Not Recognized After Timeout
  • Discovery 26: Use Postman for Discovery
    • Task 1: Activate Discovery with Postman
  • Discovery 27: Use Python with Cisco APIC-EM
    • Task 1: Get a Service Ticket with Python
    • Task 2: Get Physical Topology with Python
    • Task 3: Device Discovery Error Handling with Python
    • Task 4: Create a Tag and Associate It with a Device
    • Task 5: Create a Location and Associate It with a Device
  • Cisco APIC-EM uniq Python Library
    • uniq Discovery API
    • uniq DiscoveryNIO Model
  • Discovery 28: Use the Python uniq Library with Cisco APIC-EM
    • Task 1: Look at the Sample Code add_discovery_job.py
    • Task 2: Look at the Sample Code get_network_devices.py
  • References
    • Set Up Postman
      • Importing Postman Collections and Environments
      • Edit the Postman Environment
      • Self-Signed Certificates: Could Not Get Any Response
      • Self-Signed Certificates: Export from Chrome and Import with CLI
    • Create a Discovery Request with Postman
      • Edit a Discovery Request with Postman
      • Edit the Body of a Discovery Request with Postman
    • Install uniq with the pip Tool
      • Clone uniq from GitHub
      • Install uniq from the Cloned Repository
  • Challenge
    • FASTLab 8: Python and REST

Module 5: OpenDaylight SDN Controller

Lesson 1: Introducing the OpenDaylight SDN Controller

  • OpenDaylight SDN Controller Introduction
    • ODL Governance
  • ODL Architecture
    • ODL Architecture and OSGi
    • Model-Driven Service Adaptation Layer
    • MD-SAL Components
    • MD-SAL Datastore
    • YANG Tools
  • ODL Features and Capabilities
  • Discovery 29: Install ODL Distribution and Use Karaf to Manage Features
    • Task 1: Install ODL Distribution and Explore the Contents
    • Task 2: Examine the etc/org.apache.karaf.features.cfg File
    • Task 3: Start Karaf and Explore Feature CLI
    • Task 4: Examine the Installed Files After Startup
  • Discovery 30: Examine the Feature Manager Application
    • Task 1: View the Feature Manager Application
  • ODL Application Programming Interfaces
  • Discovery 31: Examine the YANG UI Application
    • Task 1: View the YANG UI Application
  • Discovery 32: Experiment with OpenFlow
    • Task 1: Install OpenFlow Features
    • Task 2: Start a Mininet Network
    • Task 3: Use the DLUX Topology and Nodes Applications to View the OpenFlow Network
    • Task 4: Use the YANG UI Application to View the RESTCONF API
  • Discovery 33: Experiment with NETCONF
    • Task 1: Start Karaf and Install Features
    • Task 2: Use the YANG UI and YANG the Files Application to View the ODL Configuration Node Models
  • Discovery 34: Use ODL with Cisco IOS XR Software
    • Task 1: Start Karaf and Install Features
    • Task 2: Use the YANG UI, the Files Application, and the RESTCONF Documentation Pages to View the Cisco IOS XR Software YANG Models
    • Task 3: Use Python Code with ODL RESTCONF APIs
  • Constructing RESTCONF URLs
    • ODL Example: Nodes in Inventory
    • ODL Example: IOS XR Interface 0/0/CPU0 State
  • References
  • Challenge

Lesson 2: Working with the OpenDaylight Code

  • ODL Applications
  • Discovery 35: Explore Nodes DLUX User Interface Application
    • Task 1: Feature
    • Task 2: Bundle and Code
  • Discovery 36: Examine Toaster Service Sample Application
    • Task 1: The API Bundle
    • Task 2: Provider Implementation Bundle
    • Task 3: Deploying the Toaster
  • Discovery 37: Examine ODL Inventory Model
    • Task 1: YANG Model
    • Task 2: Java APIs
  • References
    • Start Your Own ODL Developer Environment
      • Create a Developer Account
      • Set Up an ODL Development Environment
      • ODL Development Environment Variables
      • Clone and Build Distribution
    • Discovery 38: Run Your Own ODL Distribution
      • Task 1: Change to the Build Target Directory, Run Karaf, and Install Features
      • Task 2: Start Mininet and View the Topology Application
  • Challenge

Module 6: Network Programming Tools and Techniques

Lesson 1: Describing Network Programming Tools and Techniques

  • Virtual Networks and Systems
    • Systems Process Flow with Physical Networks
    • Systems Process Flow with Virtual Networks
  • Virtual Internet Routing Laboratory
    • VIRL on OpenStack
    • VIRL Workflow
    • VIRL and Continuous Integration
    • VIRL and Cisco Modeling Labs
  • Configuration Management
    • Configuration Management for Controllers
  • Cisco DevOps Configuration Management for Networks
  • Security Considerations
    • Security Configuration for Controllers
  • Approaches to Common Use Cases
  • References
  • Challenge