New Course! - Network Configuration with Scrapli
Scroll Down
Local vs Directed Broadcasts
VMware NSX-V - Replication Modes
VMware Standard, Distributed and Logical vSwitches Explained
Network-Centric vs Host-Centric Overlay's
VMware NSX - The Controller Cluster
Nuage Networks - Useful Commands
Nuage - VRS VPLS Backhaul Traffic Behaviour
A 1000ft View into Nuage VSP (Virtualized Services Platform)
Nuage Networks: What is VCS (Virtualized Cloud Services)?
The OSPF Adjacency Process
How to Configure EIGRP Named Mode
Equal and Unequal Cost Traffic Distribution in EIGRP
Cisco IOS: First Hop Redundancy Protocols (Part 1) - HSRP
Cisco IOS: First Hop Redundancy Protocols (Part 2) - VRRP
Cisco IOS: First Hop Redundancy Protocols (Part 3) - GLBP
Recommended Interface for Cisco vPC Keep-Alive Link
A Beginners Guide to MPLS
What is ETSI MANO?
What is Oasis TOSCA?
NFV: System Optimization (NUMA, CPU Pinning and Huge Pages)
What is Segment Routing?
NFV and The Native Linux Datapath
What is SR-IOV?
What is DPDK?
What is BFD?
How to Build an OpenStack Lab using Kolla-Ansible
What is PIM (Protocol Independent Multicast)?
Building a Basic Neutron Network via the OpenStack CLI
The History of Spine and Leaf Architectures
What is a BGP Path Attribute?
Cisco IOS - A Look into BGP Peer Groups
ETSI Magazine - Issue #1 Just Released
A Look into the BGP MED Attribute
A Look into BGP's LOCAL_PREF Attribute
OCP and its Networking Initatives - OCNP and ONIE
NSX vSphere 6.4.1+ Licensing Updates
How to Build an OpenStack Lab using RDO Packstack
How to Build a Virtualized Nuage SDN Lab (Part 1 - Install VSD)
How to Build a Virtualized Nuage SDN Lab (Part 2 - Install VSC)
How to Build a Virtualized Nuage SDN Lab (Part 3 - Install VRS)
vSAN Network Design - Key Points
What is a FlexibleLOM?
A Brief Introduction to HPE's Virtual Connect
MTU, Jumbo Frames and MSS Explained
What is an Autonomous System Number (ASN)?
iSCSI - SAN Protocols Explained
How to Build a Virtualized NSX-V SDN Lab (Part 1 - vSphere Infra)
VMware NSX and Micro-Segmentation
Fibre Channel - SAN Protocols Explained
How to Build a Virtualized NSX-V SDN Lab (Part 2 - NSX Manager)
FCoE - SAN Protocols Explained
How to Build a Virtualized NSX-V SDN Lab (Part 3 - Controller Cluster)
How to Build a Virtualized NSX-V SDN Lab (Part 4 - VXLAN Dataplane)
Routing Protocols Compared - Distance Vector, Path Vector, Link State and Hybrid
How do CDNs work with Anycast based DNS servers?
What Are the Key Differences Between Cisco IOS and IOS-XE?
How to Build a Spine and Leaf Fabric with Ansible
Nuage Networks Integration Models: OpenStack vs VSD-Managed
How to Build an NXOS-9000v Based EVPN VXLAN Fabric
OSPF Area’s Explained
TL;DR - What is NSX-T?
A Beginners Guide to Mobile Communication Infrastructure
FREE OpenSource Networking, SDN/NFV Training Videos
Open Infrastructure Days UK 2019 (1st-2nd April)
Open Infrastructure Days UK 2019 - Takeaway's
Top 3 Recommended Networking Podcasts
Python - Creational Design Patterns
How to View the Network Namespaces in Kubernetes
Kubernetes - Network Policies
Python - Inheritance vs Polymorphism
Netbox - How to Limit LDAP Authentication to Certain Users
Python - Inheritance vs Composition
ARP, RARP, Proxy ARP and GARP Explained
Python - A Look into Generators
Python - Threading vs Multiprocessing
A Beginners Guide to Subnetting
OpenStack Neutron - Port Security Explained
Cisco IOS - BGP Summarization
Cisco IOS - How to Configure VRF-Lite
Python - What does property() do ?
A Hands-on Guide to Network Source of Truth (NSoT)
NetDevOps CI/CD with Ansible, Jenkins and Cisco VIRL (Part 1 - What is NetDevOps?)
NetDevOps CI/CD with Ansible, Jenkins and Cisco VIRL (Part 2 - Components & Tools)
NetDevOps CI/CD with Ansible, Jenkins and Cisco VIRL (Part 3 - Configuration & Walkthrough)
Python - What are Static and Class Methods?
IT Blog Awards 2019 Finalist
Python's Walrus Operator
A Hands-on Guide to Multi-Tiered Firewall Changes with Ansible and Batfish (Part 1)
A Hands-on Guide to Multi-Tiered Firewall Changes with Ansible and Batfish (Part 2)
A Hands-on Guide to Multi-Tiered Firewall Changes with Ansible and Batfish (Part 3)
What is Cisco vPC (Virtual Port Channel)?
My Top 5 Ansible Tips and Tricks
What is NetDevOps?
What Is the Difference between QEMU and KVM?
Network Automation 101 - The What and the Why?
What is Idempotency?
Network Automation 101 - Tooling Landscape
Network Automation 101 - Hands-on with Python, Jinja and YAML
Network Automation 101 - Skills and Technologies
A Beginners Guide to Docker and VS Code (Part 1)
A Beginners Guide to Docker and VS Code (Part 2)
Network Automation 101
My Top 3 Recommended VS Code Extensions
Top 5 Up and Coming Network Automation Tools
My Top 3 Recommended Docker Tools
An Introduction to Batfish
Python - Data Classes
Virtual Networking Devices - TUN, TAP and VETH Pairs Explained
PacketFlow Newsletter #001 - Nov2020
A Hands-on Guide to Multi-Tiered Firewall Changes with Ansible and Batfish
Fundamentals
Configuration Analysis
Control Plane Analysis
Routing Table Analysis
Forwarding Analysis
PacketFlow Newsletter #002 - Dec2020
Style your Python Code like a Pro
ACL Analysis
The Power of Linting
Packetflow Member Updates #000
3 VSCode Shortcuts to Save you Time
What is a BGP Route Reflector?
OSPF - The DR and BDR Roles
PacketFlow Newsletter #003 - Jan2021
How to Security Lint your Code
TTP Parsing
The Unicorn of Python Libraries
What is Netmiko?
Hands-on Labs/Environment
Connecting to the Device
Sending Commands
Device Configuration
Delay Factor Tuning
Multithreading
Logging
Genie Parsing
TextFSM Parsing
Compliance Reporting with NAPALM
PacketFlow Newsletter #004 - Feb2021
VScode’s Latest Extension - Git Graph
Packetflow Member Updates #001
NetDevOps CI/CD with Ansible, Jenkins and Cisco VIRL
A Beginners Guide to Docker and VS Code
The King of the Network Automation Toolbox
PacketFlow Newsletter #005 - March2021
Forgotten to Commit? Here's a Small Trick!
Simplify Parsing with Cisco's Genie Dq
🎉 Announcing PacketFlow Nebula
Centralized Route Analysis with Batfish
PacketFlow Newsletter #006 - April2021
Announcing the New PacketFlow Monthly Meetup
Quickly Spot Container Vulnerabilities with Docker Scan
How to Build a Custom Parser
The Key to Automation Success
PacketFlow Newsletter #007 - May2021
An Introduction to pyATS
Installing pyATS
[Exciting News] PacketFlow Announcement!
Genie Parse
Genie Learn
Network Testing with Cisco pyATS
Genie Diff
Genie Conf
Testbeds
Hands-on Environment/Lab
Interaction - CLI vs Python
Dq
Parallel Call
Test Cases with Python (AETest and Easypy)
Network Analysis with Batfish
Network Configuration with Netmiko
Network Automation Courses
Announcing - Packet Coders!
Packet Coders - June Meetup
Reduce ACL Clutter with Batfish
Packet Coders Newsletter #008 - June2021
Packet Coders Meetup Reminder
Diff`ing the Network (difflib) - Part 1
Introduction to Scrapli
Basics
Transports
Scrapli AsyncIO
Sending Commands
Sending Configuration
Scrapli Parsing Support
TTP Parsing
Genie Parsing
Netmiko vs Scrapli
Installing Scrapli
Hands-on Environment/Lab
Scrapli Netconf
Network Configuration with Scrapli
TextFSM Parsing
Scrapli Cfg
Nornir Scrapli
New Course! - Network Configuration with Scrapli
Packet Coders July Meetup
Announcing Our New YouTube Channel
Packet Coders Newsletter #009 - July2021
Diff`ing the Network (jsondiff) - Part 2
Community Updates - August
Packet Coders Newsletter #010 - August2021
Trick! How to Split Pip Requirements
Network Observability with Suzieq
Introduction to Suzieq
Architecture and Components
Installing Suzieq
CLI
Python Library
Namespaces, Services and Tables
Assertions
Time-Based Analysis
REST API
GUI
New Course! - Network Observability with Suzieq
Member Updates - August 2021
Webinar Recording - Batfish 101 (Nail Your Network Analysis)
Network Analysis with Batfish - 2 Day Bootcamp
Member Updates - Sept 2021
Packet Coders Newsletter #011 - Sept2021
Batfish 101 Webinar Replay
Member Updates (Sept - Pt2)
Batfish Bootcamp - 1 Week to Go
Batfish Bootcamp - Registration Closes Today
Panda DataFrames - iterrows vs itertuples
Member Updates - Oct 2021
Packet Coders Newsletter #012 - Oct2021
What Else?
Summary
SuzieQ`s Network Config Time-Machine
We Need Your Help ...
Save Time When Writing Python Classes
Packet Coders Newsletter #013 - Nov2021
3 Supercool Pytest Commands
Black Friday Offer - 30% Off Annual Membership
Network Testing with Pytest
Introduction to Pytest
Installing Pytest
Hands-on Environment
Pytest vs Unittest
Command-Line Options
Creating and Running Your First Test
Introduction to Fixtures
Yield Fixtures
Sharing Fixtures
Fixture Scopes
CLI Fixture Data
Introduction to Parametrization
Test Parametrization
Fixture Parametrization
Customizing Parameter IDs
Introduction to Integrations
Pytest Plugins
Integrating Pytest with Nornir and NAPALM
Integrating Pytest with Batfish
Integrating Pytest with Suzieq
Improve Your Code Quality with AutoFlake
TL;DR - Scrapli vs Netmiko
Summary
Member Updates (#013) ... New Pytest Course, Python OOP Live ...
When Modeling Your Management Network /w Batfish, Did You Know ... ?
How to Build a Network Automation Stack with Nornir, NAPALM and NetBox
Packet Coders Newsletter #015 - Jan2022
3 Tips When Beginning Network Automation
Automating Python Code Quality
Introduction to Python Code Quality
Environment Setup
Introduction to Formatters
Black
isort
yamllint
Summary
GitHub Actions (CI)
autoflake
Introduction to Linters
bandit
flake8
pydocstyle
Introduction to Type Checking
mypy
Introduction to Methods of Execution
make
pre-commit
Python Type Checking 101
Batfish Behaviour TL;DR - Impact Analysis and Named References
Network Observability with SuzieQ
Packet Coders Newsletter #016 - Feb2022
Python's super() Useful Feature
What's the Difference? Pytest vs pyATS
Packet Coders Newsletter #017 - March2022
Top 3 Features in SuzieQ 0.16.0
Nornir Components
Nornir Configuration via Python
Network Automation with Nornir
Nornir Failures
Nornir Processor Events/Methods
Adding Nornir Progress Bars /w Rich
Summary
Task Changes
NAPALM Plugin
Scrapli Plugin
Jinja2 Plugin
Introduction to Nornir Processors
Print Result Function
Print Title Function
Introduction to Nornir Plugins
Nornir Utils Plugin
Netmiko Plugin
Introduction to Nornir Functions
Result Structure
Result Inspection
Basic Filtering
Create a Task
Grouping Tasks
Accessing Inventory from Tasks
Introduction to Nornir Results
Inspecting the Inventory
Injecting Credentials
Advanced Filtering (F Object)
Introduction to Nornir Tasks
Running a Task
Introduction to the Nornir Inventory
Static Inventory
Dynamic Inventory (Netbox)
Introduction to Nornir Configuration
Nornir Configuration via YAML
Inspecting the Nornir Configuration
Intro to Nornir
Installing Nornir
Hands-on Environment
Running Your 1st Nornir Task
Packet Coders Newsletter #018 - April2022
Nornir 101
How to Speed Up Pytest
Improve Your Python Code With This Quick Else-if Tip
Ansible vs Nornir
Grafana and Prometheus 101
Network Automation Tech Sessions
Batfish Deep Dive
Schema Validation /w Cerberus
ContainerLab 101
GitOps 101
pyATS Mock Devices
Python Poetry 101
Python OOP (Part1)
Python OOP (Part2)
RegEx 101
Packet Coders Newsletter #019 - May 2022
Using Code as a Source of Truth
Member Updates (#025) - Go Tech Session, PyScript, UI updates + More
Network Automation with Go
IPFabric 101
Packet Coders Newsletter #020 - June 2022
How to Inject Credentials into Your Python Scripts
NAPALM 101
Packet Coders Newsletter #021 - July 2022
Intro to PyScript
Intro to REST API's
Python Tip - How to Dynamically Assign Attributes
Automating ACL's /w Capirca
Packet Coders Newsletter #022 - August 2022
How to Use Jinja Custom Filters within Nornir
Packet Coders Newsletter #023 - September 2022
CI/CD with GitHub Actions
An Introduction to Nornir Inspect
Packet Coders Newsletter #024 - October 2022
JSON Parsing with JSONata
Member Updates (#032) - JSON Parsing with JSONata, upcoming tech sessions
Network Automation with Python - Bootcamp
Network Testing 101 /w Cisco pyATS (Recording + Code)
The Linux Return Code
Packet Coders Newsletter #025 - November 2022
Member Updates (#033) - Tech Session Updates
An Intro to Graph Databases
An Intro into Ansible's Built-In Debugger
Packet Coders Newsletter #026 - December 2022
TL;DR - How to Write Good Git Commit Messages
Building CLI's /w Python Typer
Our Top Recommended Network Automation Projects of 2022
Packet Coders Newsletter #027 - January 2023
An Intro to Python Poetry
5-Day Network Automation Bootcamp
Network Automation /w OpenAI
Automating Firewall ACL's with Aerleon
Packet Coders Newsletter #028 - February 2023
Network Automation with Python - Fundamentals
Automating Config Management with Nornir, NAPALM & Jinja
Python's Quest for Simplicity
REST API's with Django Ninja
Dynamically Generating Tests with Pytest Parametrization
Automating Network Diagrams with N2G
Improve Your Python Code with These Best Practices!
Network Analysis with Pandas
Introduction to Pandas
Pandas Workflow
Installing Pandas
Data Structures
Panda Data Types
Basic Data Attributes
Basic Methods
Panda Options
Demo: Data Import from NX-API
Importing from JSON
Importing from Excel
Importing from CSV
Importing from Dicts and Lists
Introduction to Importing Data
JSON Normalization
Introduction to Data Manipulation
Concatenating Data Frames
Adding New Columns
Applying Custom Functions
Demo: Manipulate Data from NX-API
Demo: Comparing Routes
Merging DataFrames
Introduction to Data Exploration
Demo: Exploring NXOS Data
Chaining
Closing Thoughts
Introduction to Data Cleaning
Detecting Missing Values
Dropping Columns/Rows
Filling Missing Data
Renaming Columns
Replacing Data
Changing Data Types
Demo: Cleaning Data from NX-API
Accessing Data by Location
Sorting Values
Iterating over DataFrames
Filtering Data
Grouping and Aggregating Data
Introduction to Exporting Data
Exporting to a Dictionary
Exporting to JSON
Exporting to CSV
Exporting to Markdown
Interpolate
Exporting to HTML
Demo: NXOS Interface HTML Report
Environment Set-up
Text UI's for Networking with Textual
3 Python Libraries to Simplify Your UI Development
Network Automation Newsletter #031 - May 2023
Automating UI's with PyVibe
I`m pleased to announce the release of our new course - Network Configuration with Scrapli. The course comes with:
- Over 1000 lines of code examples and scripts.
- 24x7 multi-vendor labs to hone your Scrapli skills.
- 16 x Lessons of Scrapli deep-dive training.
What is Scrapli?, and Why Should I Care?
Scrapli is the latest open-source tool to hit the industry, for configuring your network devices. It's fast, lightweight, and extremely flexible! In other words - Netmiko on steroids! Here are some of Scrapli`s key features:
- Ability to choose your underlying transport.
- AsyncIO support.
- Telnet, SSH and NETCONF support.
- Diff, merge and replace device configurations.
- TTP, Genie, TextFSM parsing support.
Want to learn more? Check out the link below:
Network Configuration with Scrapli
Learn how to configure, parse, and automate your network with the latest open-source tool - Scrapli.

