Sunday, October 25, 2026 4,350 lists 78,100 records on file
List your app or device

  1. Home
  2. Network Security Policy Management Software
  3. Batfish

Batfish

What it is

Batfish is a free, open-source tool for analyzing network-device configurations and checking policy and behavior before or after deployment. It works from configuration files, so core analysis does not require direct access to network devices. Batfish can validate planned changes, inspect deployed configurations, compare current and proposed reachability, and assess functional equivalence between configurations from different vendors. Checks include undefined references, MTU and AAA settings, template compliance, ACL or firewall changes, expected traffic paths, and access to sensitive services from specified subnets or devices. Reliability analysis tests whether end-to-end reachability survives a single-link or single-device failure and whether services such as DNS remain globally reachable. Pybatfish provides a Python 3 SDK, with example Jupyter notebooks and an all-in-one Docker container. Batfish runs on operating systems supporting Docker. Documented device support includes Arista, AWS, Azure, Cisco, Juniper, Palo Alto Networks, SONiC, and others; Aruba, Dell Force10, and Foundry have limited support.

For and against

For

  • Open-source and free
  • Validates changes before deployment
  • Analyzes configurations without device access
  • Provides Python 3 SDK and notebooks
  • Checks single-link and single-device failures

Against

  • Limited support for Aruba, Dell Force10, and Foundry
  • Requires configuration files for core analysis
  • Docker support is required to run it
  • Community support is through Slack or GitHub

The verdict

Batfish offers broad configuration, reachability, security, and change analysis without requiring live device access. Its open-source model and vendor coverage are balanced by limited support for some platforms and a Docker-based setup.

Who it suits

Batfish suits network engineers who need configuration validation, security checks, and failure analysis before deployment. It is also useful to teams working with multiple network vendors and Docker-capable environments.

On the record

Change analysis
Batfish can compare current and planned reachability, assess ACL or firewall changes, and test functional equivalence between configurations from different vendors.github.com · read 5 Oct 2026
Change comparisons
Batfish can compare reachability across current and planned configurations and assess functional equivalence between configurations from different vendors.github.com · read 5 Oct 2026
Change validation
Batfish can validate planned configuration changes before deployment and deployed configurations as well.github.com · read 5 Oct 2026
Community support
The project directs users with questions or feature requests to its Slack community or GitHub.batfish.org · read 5 Oct 2026
Configuration checks
Checks include undefined references, settings such as MTU and AAA, and whether devices meet specified configuration templates.github.com · read 5 Oct 2026
Deployment
The project provides an all-in-one Docker container that includes Batfish and example Jupyter notebooks.github.com · read 5 Oct 2026
Device access
Core analysis requires network device configurations and does not require direct access to network devices.github.com · read 5 Oct 2026
Failure analysis
Batfish can check whether end-to-end reachability is preserved after any single-link or single-device failure.github.com · read 5 Oct 2026
Integrations
The maker documents Ansible modules for extracting and validating configuration facts and asserting network behavior in playbooks.batfish.org · read 5 Oct 2026
License
Batfish is released under the Apache Software License, Version 2.0.github.com · read 5 Oct 2026
Operating systems
Batfish can run on any operating system that supports Docker; its containers are actively tested on Mac OS X and Ubuntu 16.04 LTS.github.com · read 5 Oct 2026
Pre-deployment checks
Batfish can validate configuration changes before deployment to help ensure only correct changes are deployed.github.com · read 5 Oct 2026
Purpose
Batfish analyzes network device configurations to find policy violations and validate network behavior.github.com · read 5 Oct 2026
Python client
Pybatfish is a Python SDK for interacting with the Batfish service.github.com · read 5 Oct 2026
Reliability analysis
Batfish can check reachability after single-link or single-device failures and whether services such as DNS are globally reachable.github.com · read 5 Oct 2026
Security analysis
Checks can verify that sensitive services are reachable only from specified subnets or devices and that traffic follows expected paths.github.com · read 5 Oct 2026
Security checks
Supported checks include verifying that sensitive services are reachable only from specified subnets or devices.github.com · read 5 Oct 2026
Support
The maker directs users with questions or feature requests to its Slack community or GitHub repository.batfish.org · read 5 Oct 2026

Alternatives to Batfish

Every alternative, ranked