Field Notes

Blog

Written guides, debug walkthroughs, and field notes from production networks. Indexed by Google — your shortcut to the right answer.

BGP

Why BGP Gets Stuck in Active State — And How to Fix It

July 2026 · 8 min read

BGP stuck in Active is one of the most common issues in enterprise networks. The Active state means BGP is trying to establish a TCP connection to its neighbor but hasn't succeeded. Here's the systematic approach to diagnose it — with real debug commands and output.

R1# show bgp summary
Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.0.0.2        4 65002       0       0        0    0    0 00:02:13 Active

The fix starts with confirming TCP reachability, then checking source interface, then MD5 authentication mismatches. The video below walks through all three scenarios with live debug output.

Watch the full video ↗
IPSec

IKEv2 Phase 1 Fails Silently: A Debug Walkthrough

June 2026 · 12 min read

IKEv2 failures are notoriously hard to diagnose because error messages are vague. This walkthrough covers the most common Phase 1 failure causes — encryption mismatch, DH group incompatibility, and pre-shared key errors — with the exact debug commands and what to look for.

R1# debug crypto ikev2
IKEv2:(SESSION ID = 1,SA ID = 1):Sending packet to 203.0.113.2
IKEv2:(SESSION ID = 1,SA ID = 1):Failed to find a matching policy
IKEv2:(SESSION ID = 1,SA ID = 1):Abort exchange
Watch the full video ↗
Automation

Netmiko vs Paramiko: Which One Should You Use?

June 2026 · 6 min read

Both libraries let Python talk to network devices over SSH, but they solve different problems. Paramiko is a raw SSH library — flexible but verbose. Netmiko is built on top of Paramiko specifically for network devices, handling prompt detection, enable mode, and pagination automatically.

netmiko_example.py
from netmiko import ConnectHandler
device = {'device_type': 'cisco_ios', 'host': '10.0.0.1',
          'username': 'admin', 'password': 'cisco'}
conn = ConnectHandler(**device)
output = conn.send_command('show bgp summary')
print(output)
Watch the full video ↗