
pybatfish v2026.08.18
Python客户端用于Batfish,这是一款网络配置分析工具,通过从设备配置建模网络行为,在部署前验证安全性、可靠性和合规性。
有问题、反馈或功能请求?加入我们在 Slack! 上的社区!
Pybatfish
Pybatfish 是 Batfish 的 Python 客户端。
什么是 Batfish?
Batfish 是一个网络验证工具,通过分析网络设备的配置,为安全性、可靠性和合规性提供正确性保证。它从设备配置构建完整的网络行为模型,并发现网络策略(内置、用户定义和最佳实践)的违规行为。
Batfish 的一个主要用途是在部署之前验证配置变更(尽管它也可以用于验证已部署的配置)。部署前验证是现有网络自动化工作流中的一个关键缺口。通过在自动化工作流中集成 Batfish,网络工程师可以弥补这一缺口,确保只部署正确的变更。
Batfish 不需要直接访问网络设备。 核心分析仅需要网络设备的配置。此分析可通过使用来自网络的其他信息得到增强,例如:
- 从外部对等体接收的 BGP 路由
- 由 LLDP/CDP 表示的拓扑信息
请参阅 www.batfish.org 了解其工作原理的技术信息。
Batfish 支持哪些类型的正确性检查?
Batfish YouTube 频道(您可以订阅以获取新内容)展示了多种类型的检查。这些检查覆盖了一系列网络行为和设备配置属性。
配置合规性
- 标记已定义但未引用或已引用但未定义的结构(例如,ACL、路由映射)
- 与模板匹配的配置设置(如 MTU、AAA、NTP、日志记录等)
- 设备只能通过 SSHv2 访问,并且密码非空
可靠性
- 在任何单链路或单设备故障后,端到端可达性不受任何流量影响
- 某些服务(例如,DNS)全局可达
安全性
- 敏感服务只能从特定子网或设备访问
- 端点之间的路径符合预期(例如,经过防火墙,至少具有 2 路 ECMP 等)
变更分析
- 当前配置和计划配置的端到端可达性一致
- 计划的 ACL 或防火墙变更可证明正确,并且不会对其他流量造成附带损害
- 可能来自不同供应商的两个配置在功能上等效
如何开始?
如果尚未安装 Batfish,请按照 batfish 代码仓库 中的说明进行安装。
安装 Pybatfish
我们强烈建议您在 Python 3 虚拟环境中安装 Pybatfish。有关如何设置虚拟环境的详细信息,请参见此处。设置并激活虚拟环境后,升级 pip 并安装 pybatfish。
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade pybatfish
现在,您已准备好使用 Batfish 评估自己的网络。我们鼓励您从 Jupyter 笔记本开始,但您也可以使用其他您熟悉的方法,例如 PyCharm 等 IDE 或交互式 Python Shell。如果选择从 Jupyter 笔记本开始,则需要在虚拟环境中安装 Jupyter。Jupyter 文档可在此处找到——但下面的命令将帮助您启动。
python3 -m pip install jupyter
jupyter notebook
我们的笔记本为不同的用例提供了快速入门指南。此外,完整文档可在 readthedocs 上找到。
Pybatfish 文档
pybatfish API 的完整文档位于此处。
