Batfish 的 Python API 和实用程序
项目描述
有问题、反馈或功能请求?加入我们的Slack 社区!
鲶鱼
Pybatfish 是Batfish的 Python 客户端。
什么是蝙蝠鱼?
Batfish 是一种网络验证工具,通过分析网络设备的配置,为安全性、可靠性和合规性提供正确性保证。它根据设备配置构建完整的网络行为模型,并发现违反网络策略(内置、用户定义和最佳实践)的行为。
Batfish 的主要用例是在部署之前验证配置更改(尽管它也可用于验证已部署的配置)。部署前验证是现有网络自动化工作流程中的一个关键差距。通过自动化工作流程中的 Batfish,网络工程师可以缩小这一差距并确保只部署正确的更改。
Batfish 不需要直接访问网络设备。核心分析只需要配置网络设备。可以使用来自网络的其他信息来增强此分析,例如:
- 从外部对等方接收到的 BGP 路由
- LLDP/CDP代表的拓扑信息
有关其工作原理的技术信息,请参见www.batfish.org。
Batfish 支持哪些类型的正确性检查?
Batfish YouTube 频道(您可以订阅新内容)说明了许多类型的检查。这些检查涵盖一系列网络行为和设备配置属性。
配置合规性
- 标记未定义但引用或定义但未引用的结构(例如,ACL、路由映射)
- MTU、AAA、NTP、日志等的配置设置匹配模板
- 设备只能使用 SSHv2 访问且密码不为空
可靠性
- 任何单链路或单设备故障后,任何流的端到端可达性都不会受到影响
- 某些服务(例如,DNS)是全球可达的
安全
- 只能从特定子网或设备访问敏感服务
- 端点之间的路径符合预期(例如,穿越防火墙、至少有 2 路 ECMP 等...)
变化分析
- 在当前配置和计划配置中,端到端可达性是相同的
- 计划的 ACL 或防火墙更改被证明是正确的,并且不会对其他流量造成附带损害
- 可能来自不同供应商的两种配置在功能上是等效的
我该如何开始?
如果您尚未安装 Batfish,请按照batfish github 存储库中列出的说明进行安装。
安装 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 的完整文档在这里。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。