
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.
Discover practical Udemy interface tips to optimize your learning—adjust playback speed, captions and quality, view transcripts, access resources and offline viewing, take notes, and leverage Q&A and announcements.
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 how to install the Gns3 VM in VMware Workstation Pro, match versions, enable nested virtualization, and configure resources to run network topologies on the Gns3 VM.
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.
Remove hard-coded credentials and prompt for credentials during telnet sessions, while learning to run, edit, make executable, and back up Python scripts for VLAN automation.
Learn to automate switch VLAN creation with Python loops over ranges, using Telnet, converting numbers to strings, and applying config across multiple switches for scalable VLAN provisioning.
Automate multi-switch vlan configuration using python and telnet, demonstrating network programmability and safe testing in a lab environment.
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.
Import and run the Jupyter appliance in S3, using Python 2.7 and 3 notebooks to configure Cisco routers with Telnet, OSPF, and loopbacks in a GNS3 VM.
Show how to configure Cisco devices with Python over SSH using Paramiko and the peramivir SSA client, including lab setup, key management, and automated VLAN and loopback configurations.
Learn to use Netmiko, a Python library, to connect via SSH to Cisco IOS devices, run show commands, and push config to create loopback and VLANs with code examples.
Learn to automate multi-switch vlan provisioning with Netmiko in Python, driving three switches in GNS3 via SSH, using loops to create multiple vlans and validate connectivity.
Learn to configure a Gns3 Cisco IOS topology with Netmiko using a Python script and a config file, applying VLANs, trunk and access ports, SSH, and in-band management considerations.
Learn to use Netmiko to configure a Gns3 topology with separate access and core switch configurations, applying per-device settings and refining spanning-tree with point-to-point ports.
Learn to configure Cisco campus wired networks with netmiko using Python, applying dhcp snooping, arp inspection, port security, and quality of service for IP phones per design guides.
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.
Napalm offers a multi-vendor network automation abstraction layer with a unified Python API to configure devices and retrieve data such as BGP neighbors, ARP tables, and interface details.
Install napalm on Ubuntu by updating apt references, installing Python and pip, upgrading pip, and installing cryptography for iOS devices; then use pip to install napalm and start scripting.
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.
Retrieve mac address table and arp cache from a switch using napalm in python, verify with show commands, and test reachability by pinging Google.
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.
Extend a napalm-based script to gather BGP neighbor information from multiple routers using a Python list and a for loop, then format results as json.
Learn how Napalm in Python pushes configuration to network devices, merging an ACL 100 from a file and committing via SSH, showcasing Ansible-driven device management.
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.
Automate network device configuration using NAPALM to apply multiple config files for access lists and OSPF, verify with show commands, fix misconfigurations, and scale across several devices.
Napalm allows looping through a device list to apply ACL and OSPF configurations by loading files, checking for changes, and committing or discarding updates, with optional audit logging.
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.
Back up a switch running config using telnet and Python, save the output to a file, and store scripts on GitHub for multi-device backups.
Back up a switch configuration with five lines of code using pyntc in Python, saving the running config to a local file and enabling multi-device looping.
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.
Use netmiko to open a commands file with with open, split lines into commands, and send them to a switch via SSH, iterating over devices for automated configuration.
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.
Iterate device type scripts with Netmiko to apply the right configuration to iOS routers, iOS switches, and a physical router, with error handling and file-driven commands.
Encrypt a csv of device credentials in Python using the simple crypt library. Encrypt to a json-formatted output, then decrypt to verify, with default file names and a password prompt.
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 to use netmiko for sequential ssh to devices listed with credentials, determine device type (juniper, cisco ios, cisco xr), fetch and save running configurations.
Learn how to speed up retrieving device configurations by using multithreading with Netmiko, connecting to multiple devices in parallel, and writing results locally.
Use a thread pool to safely scale connections to many devices with Netmiko, limiting concurrent threads to improve performance when pulling running configurations.
Treat Python as learning a new language for networking, and stay persistent as you practice commands, modes, and indentation to understand running configs and interfaces.
Set up a GNS3 project with two Ubuntu devices and a switch, configure DHCP to assign IP addresses, compare Python 2.7 and Python 3, and note there is no 2.8.
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."