Validating Network High Availability With Batfish
summary
Uses Batfish snapshot forking and differential reachability against a containerized Batfish model of a three‑tier, multi‑vendor network (Arista, Cisco, Juniper) built from device configs plus a layer‑one topology JSON. Python (pybatfish) iterates: fork snapshot, deactivate one node/interface or channel member, compare base vs failure snapshots for reachability to three server IPs across all ports. Finds a single TCP/80 flow failing due to an ACL while OSPF ECMP routes remain present; outputs results with Rich.
AI-written summary · about
chapters (12)
- 0:00Introduction to talk
- 1:05Why validate network HA
- 3:13Flow vs config verification
- 3:35Batfish overview
- 5:19Topology and setup
- 7:06Layer one topology file
- 10:05Snapshot forking explained
- 11:33Differential reachability
- 15:05Code walkthrough
- 23:17Running the demo
- 28:10Community and resources
- 29:34Conclusion and Q&A
related talks
17mDifferential Network Analysis
29mNetwork Fault Finding System: Packet Loss Triangulation
18mBayWatch: Practical Internet-Scale Topology Monitoring with Dynamic Bayesian Estimation
26mF10: A Fault-Tolerant Engineered Network
19mStarfish: A Topology-Routing Co-Design for Small-Scale Data Centers
32mActive Fault Finding in Networks
23mNetBouncer: Active Device and Link Failure Localization in Data Center Networks
23mBalancing on the Edge: Transport Affinity without Network State
