Skip to main content

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 的完整文档在这里

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

内置分布

pybatfish-2022.9.7.77-py2.py3-none-any.whl (135.5 kB 查看哈希

已上传 py2 py3