This documentation is primarily aimed at developers interested in understanding and improving Batfish. If you are interested in trying out Batfish on your network, check out our instructions for getting started instead.
Batfish is a network validation tool that provides correctness guarantees for security, reliability, and compliance by analyzing the configuration of network devices. It builds complete models of network behavior from device configurations and finds violations of network policies (built-in, user-defined, and best-practices).
Batfish enables network engineers to validate configuration changes before deployment, closing a critical gap in existing network automation workflows. By including Batfish in automation workflows, network engineers can ensure that only correct changes are deployed.
- Configuration Complexity: Modern networks involve numerous devices with complex, interdependent configurations
- High Cost of Errors: Misconfigurations can lead to outages, security breaches, and compliance violations
- Limited Testing: Traditional network testing methods are manual, time-consuming, and often incomplete
- Vendor Diversity: Networks typically include devices from multiple vendors with different configuration languages
This documentation is organized into several sections:
- Active Development: Current focus areas, roadmap, and known issues
- Architecture: System design, pipeline overview, and component details
- Development: Setup instructions, contribution guidelines, and technical context
- User Guide: Usage instructions, use cases, and best practices
If you get stuck after reading all relevant documentation, you can ask questions on the Batfish Slack.