
This video provides an overview of the entire course.
In this video, we will learn how network engineering is in a time of transition from vertical integration to a software-centric horizontal collaboration. Also, how traditional network engineering is still valid, but requires understanding of software engineering. We will use Python to integrate network engineering tasks that is hands-on, and project-based.
Describe why we need to learn software engineering
Understand how we need to solve real problems with hands-on solutions
Explore how project-based approach allows us to go deeper into the technologies at hand
This video aims at exploring the choices to be made on the technologies to be used at hand.
Describe the tools we will use in this class
Understand the lab setup
This video aims at explaining how the general purpose automation tool Ansible can fit into the network automation world.
Understand what Ansible is and how it can help
Learn different components of Ansible
This video aims at demonstrating how Ansible can be used with network devices running Cisco IOS.
Show lab setup
Illustrate host and playbook files
Demonstrate how the Ansible playbook can be run
In this video, we will learn how to direct device interaction using Paramiko when other tools are not available.
Explore what Paramiko is and how it can help
Learn different components of Paramiko
Demonstrate how Paramiko can be run
In this video, we will ingest structured data returned from network devices.
Understand why do we want to use API’s
Learn different libraries and API supports amongst network vendors
Demonstrate an example of API call toward Cisco NX-OS device
This video aims at explaining how network engineers need to automate the sequential steps or complex procedures.
Understand what is continuous integration and Jenkins
Learn Jenkins workflow overview
Demonstrate an example of Jenkins automation
In this video, we will learn how standalone tools can be helpful for one-off tasks, such as IP subnet calculator.
Learn how we need to help non-network engineers to calculate the appropriate subnet to request
Gather requirements for IP subnet calculation
Demonstrate how a script can work
In this video, we will look at ways to retrieve network information from devices via SNMP and API.
Learn network information via SNMP
Explore network telemetry via API calls
This video aims at explaining how logging is one of the most effective ways of receiving information from our network.
Use Python logging module to persist information
Learn real time monitoring of the log file
Explore log options, including ELK stack
In this video, we will look at how to integrate Python with existing network monitoring tools, such as Cacti.
Use Python as script to retrieve information and display on Cacti
This video aims at explaining how we can use Python to decode NetFlow and sFlow packets for troubleshooting and development.
Use Python to decode NetFlow v5 packets
Use Python to decode sFlow packets with sflowtool
In this video, we will learn how we can use Python client and modules to trigger alerts when needed.
Understand Slack Python client demonstration
Learn Python email alert script
This video aims at explaining how DHCP is widely used in the network, we will also use Python to test your setup.
Use Python as DHCP Client to decode DHCP packets
Construct IPv6 DHCP server with Python
In this video, we will learn testing IP reachability as a first test for diagnostic of network issues.
Demonstrate the use of OS module
Use sub process module to catch process outputs
In this video, we will learn how to think like a hacker to attempt identify which operating system is your target.
Use of active probe for OS fingerprinting
Explore passive listening of OS fingerprinting
This video aims at explaining how to craft your own packet with Scapy.
Use of Scapy to construct your own packet for attacks
In this video, we will test our network speed with Python.
Use modules to test network speed with external server
Use Python for transitional speed with internal server
This video will give you an overview about the course.
Section overview and explain the tools used in this course.
Explain Python version used
Code editor used in course
Lab hardware Used in course
Looking at the actual lab and interaction between Server and Lab.
We build a virtual 2-datacenter Lab in VIRL
We look at logical topology and configuration of Lab
We Looked at the management node setup
We will review the key networking concepts relevant to the course.
We will look at the OSI model
We will look at IP, TCP, and UDP headers
We will look at routing protocols
We will review the key Python concepts.
We will look at Python built-in types
We will look at Python operators and Control flows
We will look at Python functions
In this video, we will go over what we define as classic network devices.
Explore classic network devices expect a human engineer on the other end
Look at Python and object-oriented programming
Learn about model network devices as objects
In this video, we will use Python OOB to create network models.
Use Python to create a Car object
Use Python to create a network device Object
Add attributes and methods to the network device object
In this video, we will look at how Python Netmiko library can be used to interact with Cisco IOS devices.
Overview of Netmiko library
Netmiko connection test
Netmiko example
This video will help us use practical examples to create a network object.
Create network object from Lab and incorporate Netmiko
Show command and config backup example
Check config consistency example
We will use Sqlite as the database backend f or information persistence.
Benefits of using database
Sqlite example in interactive prompt
Sqlite example using Python script
Look at how Python interact with API-enabled devices in NX-OS, IOS-XR, Juniper, Arista, and Vyatta.
Example of Cisco NX-OS, IOS-XR
Example of Juniepr and Arista
Example of Vyatta
We will create a final integrated example.
Network object with API backend
Show command and config backup example with API
Configure VLAN example
In this video, we will take a brief overview of Ansible.
Explore the basics of Ansible
Install and configure Ansible
We will look at different Ansible elements and run our first playbook.
YAML and INI file formats
Ansible inventory and variables
Run our first playbook
We will explore Cisco Module Example 1: Backup Facts and Device Configuration.
How to piece together modules to achieve our goal
Example of network facts backup
Example of network configuration backup
We will have a look at Cisco Module Example 2: Security.
Ansible playbook for network security
Example of configuration using conditional
Example of configuration of access list with declaration
We will look at encrypt sensitive information with Ansible Vualt.
Explore the need Ansible Vault
Encrypt entire files
Encrypt just the variables
In this video, we will use Ansible Templates to generate network configuration files.
Explore the basics of Ansible template
Learn about Jinja2 format
Learn from the Template example
We will use Python to write our own Ansible Module.
Construct custom module and location
Explore Custom module content
Learn from the example of custom module
Course Conclusion.
Course conclusion
Connect with me
Good Luck
Computer Networks, large and small, has become ever increasingly software-driven in the last several years. A typical network engineer faces the challenge of learning a completely new discipline that normally takes years to master.
This course will use Python (one of the most popular programming languages. ), an easy-to-learn, popular first-time-programmer language as the foundation to bridge the gap for network engineers facing the automation challenge, this will help network engineers become experts in using Python for networking. This video uses a project-based approach to teach you how to leverage this easy-to-learn language for network automation tasks. The goal of the course is to master key Python concepts as they are applied in the network engineering context.
This comprehensive 2-in-1 course is a step-by-step tutorial which provides hands-on, interesting examples with clear and friendly explanations that you can follow along with, covers common mistakes, and provides useful tips and in-the-trenches advice. Hands-on TCP / IP protocol suite and Python language. Achieve Network Monitoring with Low-Level Network Device Interaction. Network Modelling through API. Improve network agility with Intent-based Networking.
Contents and Overview
This training program includes 2 complete courses, carefully chosen to give you the most comprehensive training possible.
The first course, Python Network Programming, covers Network Engineering Tasks with Python. This course will help you build some mesmerizing network tools with Python, including a Subnet calculator; configuring multiple network devices concurrently via SSH or Telnet; a DHCP client simulator for testing a DHCP server in the local network; network discovery via SNMP; OS fingerprinting; and network attacks via Scapy. This tutorial uses real-life scenarios and use cases to help you build network automation tools with the amazing Python language. By the end of this course, you will be able to take your Python programming skills to the next level for network automation.
The second course, Hands-on Network Programming with Python, covers creation and automation of your network with Python. This course will use Python, an easy-to-learn, popular first-time-programmer language as the foundation to bridge the gap for network engineers facing the automation challenge, this will help network engineers become experts in using Python for networking. Get familiar with the concepts and work with the Ansible framework in order to achieve your network goals. Monitor your network using Python. Explore ways to solve issues related to the security wheel that treats the network as one single entity instead of dispersing components.
By the end of the course, you’ll master key Python concepts in the network engineering context as well as skills required to accomplish advance network automation using Python.
About the Authors
Eric Chou is a seasoned technologist with over 17 years of experience. He has helped managed some of the largest networks in the industry while working at Amazon and Microsoft and is passionate about network automation and Python. He shares this deep interest in these fields through his teachings as a Python instructor, blogger, and active contributor to some of the popular Python open source projects. Currently, Eric holds two patents in IP Telephony and is a principal engineer at A10 Networks with a focus on product research and development in the field of security. He’s a successful author of the book Mastering Python Networking which has sold impressive number of copies.