Batfish
Batfish is an open-source network configuration analysis tool for checking policy and expected network behavior.
What Batfish is
Batfish is an open-source network configuration analysis tool for checking policy and expected network behavior. It works from device configurations, so core analysis does not require direct access to network devices. Teams can use it to validate deployed configurations and assess proposed changes before deployment. Checks include undefined references, MTU and AAA settings, and whether devices match specified templates. Security analysis can verify that sensitive services are reachable only from designated subnets or devices, and that traffic follows expected paths. Batfish can also check whether end-to-end reachability survives a single-link or single-device failure, compare reachability between current and planned configurations, assess ACL or firewall changes, and evaluate functional equivalence across vendors. Pybatfish provides a Python 3 SDK, and example Jupyter notebooks are available. An all-in-one Docker container includes Batfish and notebooks. It can run on operating systems that support Docker; its containers are actively tested on Mac OS X and Ubuntu 16.04 LTS. Supported configurations include platforms such as Arista, AWS, Azure, Cisco, Juniper, and Palo Alto Networks. Support is limited for Aruba, Dell Force10, and Foundry. Questions and feature requests can go to Slack or GitHub.
Good
- Open-source and free to use.
- Analyzes configurations without direct device access.
- Checks reachability after single-link or device failures.
- Includes a Python SDK and example notebooks.
Watch out
- Support is limited for Aruba, Dell Force10, and Foundry.
- Requires an operating system that supports Docker.
- Containers are actively tested on Mac OS X and Ubuntu 16.04 LTS.
Who it suits
Batfish suits network engineers who want to analyze configurations and validate changes using configuration files rather than direct device access. It may also suit teams that can use Docker and Python tooling.
Verdict
Batfish provides configuration-based checks for security, reliability, and planned network changes. Confirm that your network platforms are supported and that Docker fits your environment.
The facts
Each one read from Batfish's own pages, with the date it was checked.
What it does
- Change analysis
- Batfish can compare current and planned reachability, assess ACL or firewall changes, and test functional equivalence between configurations from different vendors.checked 5 Oct 2026
- Change comparisons
- Batfish can compare reachability across current and planned configurations and assess functional equivalence between configurations from different vendors.checked 5 Oct 2026
- Change validation
- Batfish can validate planned configuration changes before deployment and deployed configurations as well.checked 5 Oct 2026
- Community support
- The project directs users with questions or feature requests to its Slack community or GitHub.checked 5 Oct 2026
- Configuration checks
- Checks include undefined references, settings such as MTU and AAA, and whether devices meet specified configuration templates.checked 5 Oct 2026
- Deployment
- The project provides an all-in-one Docker container that includes Batfish and example Jupyter notebooks.checked 5 Oct 2026
- Failure analysis
- Batfish can check whether end-to-end reachability is preserved after any single-link or single-device failure.checked 5 Oct 2026
- Integrations
- The maker documents Ansible modules for extracting and validating configuration facts and asserting network behavior in playbooks.checked 5 Oct 2026
- License
- Batfish is released under the Apache Software License, Version 2.0.checked 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.checked 5 Oct 2026
- Pre-deployment checks
- Batfish can validate configuration changes before deployment to help ensure only correct changes are deployed.checked 5 Oct 2026
- Purpose
- Batfish analyzes network device configurations to find policy violations and validate network behavior.checked 5 Oct 2026
- Python client
- Pybatfish is a Python SDK for interacting with the Batfish service.checked 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.checked 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.checked 5 Oct 2026
- Security checks
- Supported checks include verifying that sensitive services are reachable only from specified subnets or devices.checked 5 Oct 2026
- Support
- The maker directs users with questions or feature requests to its Slack community or GitHub repository.checked 5 Oct 2026
- Supported configurations
- Documented support includes Arista, AWS, Azure, Cisco, Juniper, Palo Alto Networks, and other network platforms; Aruba, Dell Force10, and Foundry have limited support.checked 5 Oct 2026
- Supported environments
- Batfish can run on operating systems that support Docker; its containers are actively tested on Mac OS X and Ubuntu 16.04 LTS.checked 5 Oct 2026
- Support limitation
- Batfish has limited support for Aruba, Dell Force10, and Foundry platforms.checked 5 Oct 2026
Where it runs
- Device access
- Core analysis requires network device configurations and does not require direct access to network devices.checked 5 Oct 2026
- Supported devices
- Supported configurations include vendors and platforms such as Arista, AWS constructs, Cisco, Juniper, Palo Alto Networks, and SONiC.checked 5 Oct 2026
Alternatives to Batfish
- 1

ManageEngine Firewall Analyzer
AndroidiOSWebAPI7.3From $395 a year - 2

NetBrain
WebAPILinuxSelf-hosted6.8 - 3

FireMon
WebAPILinuxSelf-hosted6.5From $200 a month - 4
Nipper InfraSight
LinuxSelf-hostedWindows6.3From $1,995 a year - 5

Forward Enterprise
WebAPISelf-hosted5.9 - 6

IP Fabric
WebAPILinuxSelf-hosted5.9
