Zeek Rogue DHCP and ARP Spoofing Detection: Why SPAN Matters
Built in my home lab: a 51-line Zeek script flags rogue DHCP and gateway ARP spoofing, but only after SPAN sends it the unicast attack frames.
Frames, MAC tables and switching behavior below the IP layer. Articles tagged Layer 2 cover forwarding decisions, trunking, loop prevention and the failure modes unique to switching.
Built in my home lab: a 51-line Zeek script flags rogue DHCP and gateway ARP spoofing, but only after SPAN sends it the unicast attack frames.
Built in my home lab: a Linux bridge sends BPDUs, BPDU Guard err-disables the Cisco access port, and shutdown/no shutdown restores it. Storm control stays untested.
Calculate root ports on six switches using cost, neighbor BID, and sender port ID. Check real outputs, then change one cost to move SW4’s root port.
Two MACs can answer for one IP while ping still works. Capture the duplicate, repair it, and test a Linux proxy that answers ARP but not DAD.
The six-state neighbor machine walked live on a real lab, the tunables behind it, and why arp -n cannot show you any of it.
%CDP-4-NATIVE_VLAN_MISMATCH hands you both interfaces and both native VLANs in one line. The real damage is underneath it: untagged frames get re-homed at the trunk boundary and two VLANs quietly become one. Captured live on IOS XE 17.18.2 in CML.
An err-disabled port stays down forever by default, because nothing auto-recovers until you arm it. The full cause list from IOS XE 17.18.2, how to identify which one fired in ten seconds, and the captured proof that auto-recovery is a retry loop rather than a fix.
Craft spoofed ARP and IP packets with Scapy against a Cisco IOS-XE lab, then watch Dynamic ARP Inspection drop every forgery and name the attacker's real MAC.