Blog Posts in October 2026
Nexus OS Fails to Send Syslog Records to a Silent Host
Here’s another you can’t make this up SNAFU observation I made when running integration tests for netlab Syslog functionality: Cisco Nexus OS cannot send Syslog messages to a directly connected silent host.
The setup is as trivial as it can get: a Cisco Nexus OS VM (running version 10.6(2)) connected to a dnsmasq container running rsyslogd.
Public Videos: Data Center Fabric Architectures
All the videos in the Data Center Fabric Architectures webinar are now available without a valid ipSpace.net account.
The webinar hasn’t been updated in years, so the vendor-specific information is mostly obsolete. However, I’m sure you’ll still find the requirements, architectures, designs, and technology overviews sections relevant.
To watch more free ipSpace.net videos, browse them here, or click the Access Free Content button in any webinar roadmap.
Using External Tools in BGP Labs
After Kazuya Takahashi released his wonderful network-xray tool and added it as an external tool to the open-source BGP configuration labs, I wrote a short document explaining how to start external tools in your BGP labs without changing the lab topology, and how it works in GitHub Codespaces (hint: wonderfully).
I also modified all lab instructions to include a pointer to the optional tool-setup step.
Happy labbing ;)
Crappy Configuration Errors: Cisco Nexus OS Edition
TL&DR: Programmers writing Cisco Nexus OS code should have known better. They didn’t (care?).
One can understand that an operating system written in the late 1980s generates crappy suboptimal error messages, even though it was known even in those days how to do things right.
Is it too much to hope that the programmers writing newer operating systems (like Cisco Nexus OS) would be better? Obviously, it is 🤦♂️
Testing OpenEIGRP with netlab
When Donnie Savage announced the open beta of OpenEIGRP, I quickly asked him whether it would be possible to get an easy-to-use container with OpenEIGRP integrated with other FRR daemons (and its CLI).
Donnie delivered ;) – you can download a ready-to-use container and try its EIGRP features. Let’s see how you can make that process even simpler with netlab:
Worth Reading: Labs as Code (Part 1)
After his excellent Git for Networking Engineers series, Tony Mattke decided to take netlab for a spin (thank you!), starting with Install netlab, Build a Lab in Five Minutes
Nerd Fun: The DNS Museum
The DNS Museum documents tons of crazy uses of DNS, the world’s most distributed database (OK, a key-value store), including a “DNS for configuration management” podcast episode with Corey Quinn.
Have fun!
Netmiko vs Ansible: Executing Scripts
My initial “configuring Arista cEOS with Netmiko or Ansible” test was a bit biased. netlab generates the final configuration snippets in both cases (due to Ansible FUBARs we had to deal with), but then Netmiko just sends the configuration commands to the switch (after entering configuration mode), while the Ansible eos_config module executes show running, identifies the difference, and sends only the changes to the device.
While that use case is highly relevant (after all, we’re configuring network devices ;) I really should have done an apples-to-apples comparison, and FRRouting virtual machines are the ideal playground.
Configuring SRv6 Layer-3 Services on Junos
Now that we know what we need to make layer-3 services (BGP-free core transporting IPv4 and IPv6 traffic) work with SRv6, let’s go through the steps needed to configure them on Junos, continuing from the baseline SRv6 with IS-IS configuration (and again relying on the excellent SRv6 Micro-SID (uSID) Basics article by Krzysztof Szarkowicz).
In the BGP-Free Network Core with SRv6, we identified the components we need (assuming IBGP+IGP design):
Crazy Delay: IOS XR OSPFv2 Default Route Origination
I decided to make Netmiko the default configuration deployment method netlab uses for Cisco IOS XR. It works great, and I don’t have to worry about whether the user runs IOS XRd control-plane (in which case scripts work) or vRouter (in which case there’s a VM inside the container, so no luck).
After fixing the initial glitches (more on that another time), all integration tests passed except the OSPFv2 default origination test. It turns out the default waiting time (30 seconds) is way too low; Cisco IOS XR needs almost 90 seconds (after its reboot completes) to originate the OSPFv2 default route.
Sample netlab SRv6 Lab Topologies
With the growing number of SRv6 implementations that netlab supports, it made sense to create a set of topologies to help you get started exploring the SRv6 world. The sample topologies include:
- SRv6 with IS-IS including LLA-only core links
- Multivendor SRv6
- IPv4 Islands over SRv6-Enabled IPv6 Core
- IPv6 BGP-Free Core with SRv6
- IPv4 L3VPN over SRv6-Enabled IPv6 Core
Read the getting started document and have fun exploring the scenarios 😎
Netmiko vs Ansible: Does It Matter?
We launched device configuration with Netmiko in the September 2026 netlab release and made it easier to use in the October 2026 release. It will become the default configuration method for several popular platforms (Arista EOS, Cisco IOS, Cisco Nexus OS, Cisco IOS XR, FRRouting virtual machines) in a few months, but before doing that, I wanted to check whether the change matters.
TL&DR: Yes, it does.
Please Respond: State of Network Automation Survey
The Network Automation Forum is running the annual State of Network Automation Survey (here are the 2025 results).
If you’re involved in network automation in any way (I hope you are), please take a few minutes and complete it. Thank you!
BGP-Free Network Core with SRv6
The concept of a BGP-free core is decades old:
- The network core routers (P routers in MPLS terminology) do not carry BGP routes; BGP routes are exchanged solely between network edge routers.
- The core routers thus cannot use the customer IP addresses in the packet forwarding process.
- The edge routers (PE routers in MPLS terminology) know how to reach BGP next hops using an encapsulation mechanism that makes IP packets opaque to the network core.
The Crappy Cisco IOS CLI Error Reporting
TL&DR: It’s really hard to figure out when a Cisco IOS box configured via its CLI reports a configuration error.
One of the drawbacks of using Netmiko to configure network devices is its inherent lack of error detection – while it can switch into configuration mode and exit it (including a commit operation if needed), it doesn’t detect configuration errors.
No big deal (I thought); the configuration error messages generated by Cisco IOS always start with a percent sign (%), so I’d just use that as the error_pattern parameter of the send_config_from_file command. A few integration test failures later, that turned out to be a bad idea; Cisco IOS starts errors and warnings with the percentage sign, and there’s absolutely no reliable way to differentiate between the two.
netlab 26.10: SRv6, More Netmiko
netlab release 26.10 adds new SRv6 implementations and features:
- Full SRv6 support (IS-IS, layer-3 services, L3VPN) on Junos
- SRv6 with IS-IS and SRv6 layer-3 services on Nokia SR Linux
- IPv4 layer-3 services with SRv6 locators exchanged over EBGP on FRRouting and Cisco IOS XR
Other new features include:
- Generic prefix sets for static routes
- containerlab nodes can start in batches or wait for other nodes to start.
- netlab install netmiko installs the Netmiko and Paramiko packages needed for Netmiko-based device configuration and helps you change the device configuration mode for supported devices.
Worth Reading: Don't Fight the Users' Desire Paths
Chris Siebenmann publishes articles written from an interesting perspective: he’s a Unix herder at a university (based on my ancient, similar experience, that’s usually worse than herding cats).
In one of his recent articles, he applied the desire paths ideas to IT: don’t fight how people are doing things; either kindly nudge them in the right direction, or help them get stuff done the way they like to get it done, but in the least harmful way. I could definitely use some of his wisdom decades ago 🤷🏻♂️.
