Batfish Bootcamp

Batfish is an open-source network analysis tool that models your network so that you can validate your network changes before pushing them into your live network. With Batfish, you can validate configuration, simulate network failure, test ACL behaviour and a TON more!

By the end of this bootcamp, you will be able to automate the validation and analysis of your network in terms of configuration, routing, forwarding and ACL behaviour through both Python-based scripts and CI integration.


In this bootcamp, you will learn,

Batfish Fundamentals

  • Batfish Basics
    • What is Batfish?
    • Supported devices
    • Batfish clients
    • Batfish workflow
  • How to setup Batfish
    • Installing the Batfish client
    • Installing the Batfish service
    • Session creation
    • Importing snapshots
  • Snapshots
    • What is a snapshot?
    • Snapshot validation
    • Importing snapshots
  • Questions
    • What are questions?
    • Examples, documentation walk-through
  • Panda DataFrame Basics
    • What is a Pandas DataFrame
    • Integer-location based indexing
    • Boolean based results
    • Converting data to HTML, Markdown and CSV
Network Analysis
  • Key layers to Batfish network analysis
  • Configuration analysis.
    • Node based cnfiguration
    • Interface based configuration
    • Finding unused configuration
    • Finding duplicate IPs
    • Exploring questions through code and Rich
  • Control-plane Analysis
    • OSPF session analysis
    • BGP session analysis
  • Route Analysis.
    • Centralized route table analysis
    • Centralized RIB analysis
  • L3 Forwarding Analysis
    • L3 edges
    • L3 edge caveats
    • Management network modelling
    • Analysing reachability
    • The header space and its constraints
    • Path contraints
  • L2 Forwarding Analysis
    • Layer 1 topology
    • L1 edges
    • L2 analysis caveats
  • ACL Analysis
    • Testing single flows
    • Testing flow blocks
    • Testing for matching filter lines
    • Testing for ACL shadowing
Advanced Topics
  • Differential comparison.
    • Snapshot comparisons
    • Comparing filters
    • Comparing flows between snapshots
  • Snapshot Forking (/impact Analysis)
    • What is snapshot forking?
    • Snapshot forking caveats
    • Choas monkey testing
  • Assertions
    • What are assertions?
    • Code walkthrough
Integrations
  • Ansible Batfish
    • Whats Ansible?
    • Validating snapshots
    • Validating configuration
    • Validating flows
  • Integrating Batfish with Pytest.
    • Introduction to Pytest
    • Creating a basic test
    • Pytest execution
    • Pytest fixtures
    • Creating HTML reports using Pytest plugins
    • Integrating Pytest with Batfish
  • Integrating Batfish into CI
    • Git/Github fundamentals
    • What is CI/CD
    • Batfish integration with CI/CD and GitHub Actions

Further details:

  • Prerequisites: Basic Python and networking knowledge.
  • Price: £900/$1,250
  • Duration: 2 days
  • Dates/Times:
  • TBC (Register Interest)
  • Delivery:
    • Remote instructor-led classes.
    • Each student will have their own pre-built lab environment.
    • Over 35 hands-on student excercises are provided during the 2 days.