
Learn practical network automation with Python using GNS3 to configure devices via netmiko, napalm, pyntc, telnet, and ssh for OSPF, loopback interfaces, and VLANs.
Join our dedicated Discord server to get quicker, centralized support for this course and others, interact with fellow students, and ask questions beyond the Udemy Q&A.
Install Gns3 2.2 on Windows, set up the Windows GUI client and Gns3 VM, and choose a hypervisor (VirtualBox, VMware, ESXi, or Hyper-V) to build a basic topology.
Learn to obtain and import Cisco iOS images into GNS3, integrate the GNS3 VM and QEMU, and build a test topology with routers, switches, and Docker containers.
Discover how to download, install, and run Cisco VIRL 2.0 on Windows using VMware Workstation Player, import the ova and iso images, and set up a basic topology.
License Cisco VIRL 2.0 with a smart licensing token, set up a VIRL topology, configure routers and switches, and verify connectivity and basic OSPF adjacencies.
Learn how to download Cisco iOS images, prepare vmdk and qcow2 files, upload to eve-ng, convert formats, and build a Cisco topology with routers and a switch.
Access free Cisco modeling labs in the cloud via the Devnet sandbox, reserve a CML lab for up to four hours, and build your own topology with AnyConnect.
NOTE: If you have problems getting GNS3 to work, please have a look at the installation videos at the end of the course.
Learn to program network devices with Python and Telnet by configuring a Cisco switch, creating VLANs 2–6, and validating changes with show vlan commands.
Programmatically manage networks with Python and tools like Netmiko, NAPALM, and pyntc, handling in-band and out-of-band management and saving configurations with Telnet.
Learn the core of the pep8 style guide for Python code, focusing on readability and consistency within modules and functions, with practical rules on indentation, line length, and quotes.
Open a file of switch IPs and iterate over each line to configure multiple Cisco switches, showing how whitespace affects Python scripts and VLAN configurations.
Learn a quick start method to back up configurations from multiple switches using Python and Telnet, saving full running configs to local files for automated network management.
Automate Cisco campus network configurations with Netmiko and Python in Gns3 using a Cisco design guide. Apply access and core switch configurations consistently across multiple devices.
build a napalm script to manage a Cisco iOS switch via ssh, importing the napalm iOS driver, setting the ip address and credentials, and retrieving device facts with get_facts.
Format napalm outputs with json.dumps and indentation to present Cisco iOS facts—version, uptime, interfaces, vlan/svi, interface counters, hostname, domain—across multiple vendors.
Learn how Napalm retrieves get BGP neighbors from Cisco iOS devices using a simple Python script that formats output with JSON and connects to a network topology.
Use napalm with Python to connect to a Cisco IOS switch, enable BGP, configure neighbors, and verify routing updates via show ip bgp summary and advertised routes.
Learn to use napalm to query BGP neighbors and interpret results, including uptime status, remote autonomous system, local autonomous system, IPv4 address family, and no prefixes sent or received.
Learn how to use napalm to retrieve bgp neighbor information from multiple devices by looping over a device list, displaying show ip bgp summary across iOS and other platforms.
Connect to a Cisco IOSv router via napalm in a Ubuntu container, retrieve BGP neighbor information, and output it in Json for easy reading.
Learn to manage access lists with napalm by comparing candidate and running configurations, committing only when changes exist, and adding or restoring ACL entries on network devices.
Audit network device configurations with Python scripts to check for discrepancies, print the differences, and save them to a file for manual review without committing changes.
Explore pyntc, napalm, and netmiko to automate legacy network devices via SSH, focusing on config management, backups, and device upgrades across Cisco IOS and Nexus.
Install and configure pyntc and netmiko on an Ubuntu PC within a GNS3 topology, then fetch device facts from a Cisco IOS switch using a Python script and JSON output.
Demonstrate configuring a Cisco IOS device with pyntc via SSH, including setting hostname, enabling OSPF across interfaces, and validating changes with show commands in Gns3.
Use pyntc to pull a switch's running-config, print and store it in a Python 3 variable, then save the backup to a file, illustrating config retrieval and backup.
Iterate Netmiko scripts from a single device, running show ip interface brief, then scale with a commands file and devices file, with error handling and device-type specific commands.
Connect to a Cisco iOS switch using Netmiko, run show ip interface brief, and print the output to verify physical and virtual interfaces.
Extend Netmiko iteration by loading ip addresses from a devices file and looping to configure multiple devices with a commands file, enabling ospf and users.
Prompt for a username and password with getpass, remove hardcoded credentials, and run commands from a file across devices with Netmiko to restore OSPF neighbor relationships.
Implement exception handling in Netmiko scripts to gracefully manage authentication failures, timeouts, and SSH issues, and use try and except blocks to continue the script across devices.
Identify device types with Netmiko using show version, then run switch or router command sets, creating VLANs on switches and applying router commands to routers.
Read devices and encrypted credentials, build a device dictionary, and connect to each Cisco, Juniper device to pull running configs with type-specific commands, starting sequentially before threading.
Learn how to speed up retrieving device configurations by using multithreading with Netmiko, connecting to multiple devices in parallel, and writing results locally.
Experiment with the Python interactive interpreter to run commands instantly, learn when to use scripts in production, and compare Python 2.7 and 3 syntax, including print and strings.
Create and run a simple Python script, compare the interactive interpreter with executing a script, write script1.py with nano, and run python3 script1.py to print hello world.
Learn Network Programmability and Network Automation using GNS3 and Python.
Want to program networks using Python, but not sure where to start? Well, this course will show you how you can start programming Cisco networks within 20 minutes.
This course was created for network engineers. There are too many other Python courses out there that try to make network engineers software developers. Instead of teaching network automation, they teach you Python theory. This course is different.
This course is practical. I won't talk about programming in abstract terms and make you wait before you can start automating networks. I will show you how you can quickly and easily start network programming by using GNS3, Cisco IOS and Python.
You will see demonstrations of the configuration of both Cisco routers and switches in GNS3. For example, how to configure multiple VLANs on a multiple switches, or how to configure OSPF on a router and more.
This course shows you practical examples of using Python to programmatically configure Cisco network devices rather then just talking about it.
The days of configuring Cisco networks only with the command line interface (CLI) are drawing to a close. You need to add network programmability using Python and APIs to your skill set.
Learn how to automate networks using:
- Telnet
- SSH
- Paramiko
- Netmiko
- NAPALM
- pyntc
Tools such as NAPALM and pyntc make it easy to configure and interact with network devices using an API such as NETCONF or using SSH. Don't reinvent the wheel. Use the tools available to you to quickly and easily automate your networks.
Some comments about the course:
"Knowing the material from just the first video would have saved me hours of work and rework in the past."
"It's the easiest, most fun, and most valuable course I've completed yet on Python Programming for Networking. Love it! Thanks again David!!!"
"Excellent course on Network Programming using Python with lot's of practical network configuration examples."
"Great way of explanation.Nice video and inspiring words! Thank you so much David. You are genius."
"I've been doing network automation for a while, even so, I've learned new things through this course. The instructor start from a basic example, adding improvements in each step. It's a skill that's worth it."
"A must for all network engineers who want to learn python!!! I had very "very" basic programming skills, and couldn't just get the bridge between network and programming (mainly Python - since that's where the hype is now), this course was amazing, I have never been glued to a training course since I can remember. The couple of things I loved the most about this course: 1- David's clear voice. 2- Real world application, not only will David interduce different real-world practical modules that you can import and use, but he shows you how to apply them on ios devices."
"Excellent course on Network Programming using Python with lot's of practical network configuration examples. High quality content."