用于蝙蝠鱼的Python API和实用程序

pybatfish的Python项目详细描述


有问题、反馈或功能请求吗?在Slack!上加入我们的社区

codecov

侏儒鱼

Pybatfish是Batfish的Python客户机。Analytics

什么是蝙蝠鱼?在

Batfish是一个网络验证工具,通过分析网络设备的配置,为安全性、可靠性和遵从性提供正确的保证。它从设备配置构建完整的网络行为模型,并发现违反网络策略的行为(内置的、用户定义的和最佳实践)。在

Batfish的一个主要用例是在部署之前验证配置更改(尽管它也可以用于验证已部署的配置)。部署前验证是现有网络自动化工作流中的一个关键缺陷。通过自动化工作流中的Batfish,网络工程师可以缩小这一差距,并确保只部署正确的更改。在

Batfish不需要直接访问网络设备。核心分析只需要配置网络设备。可使用网络中的其他信息(如:

  • 从外部对等点接收的BGP路由
  • 用LLDP/CDP表示的拓扑信息

有关如何工作的技术信息,请参见www.batfish.orgAnalytics

蝙蝠鱼支持什么样的正确性检查?在

Getting to know Batfish

Batfish YouTube channel(您可以订阅新内容)演示了许多类型的检查。这些检查跨越一系列网络行为和设备配置属性。在

配置符合性

  • 标记未定义但已引用或已定义但未引用的结构(例如ACL、路由映射)
  • MTU、AAA、NTP、日志记录等的配置设置与模板匹配
  • 只能使用SSHv2访问设备,密码不为空

可靠性
  • 任何单链路或单设备故障后,端到端可达性不受任何流的影响
  • 某些服务(如DNS)可在全球范围内访问

安全性

  • 敏感服务只能从特定的子网或设备访问
  • 端点之间的路径如预期(例如,穿过防火墙,至少有2路ECMP等)

变化分析
  • 端到端的可达性在当前配置和计划配置中是相同的
  • 计划的ACL或防火墙更改是可以证明是正确的,并且不会对其他通信量造成附带损害
  • 可能来自不同供应商的两种配置在功能上是等价的

如何开始?在

如果尚未安装Batfish,请按照batfish github repository中列出的说明进行安装。在

安装Pybatfish

我们强烈建议您在python3虚拟环境中安装Pybatfish。有关如何设置的详细信息可以在here找到。设置并激活虚拟环境后,升级pip,然后安装pybatfish。在

python3 -m pip install --upgrade pip
python3 -m pip install --upgrade pybatfish

现在,你可以用蝙蝠鱼来评估你自己的网络了。我们鼓励您使用Jupyter笔记本作为起点,但也可以使用其他您熟悉的方法,例如像PyCharm这样的IDE或交互式pythonshell。如果选择使用Jupyter笔记本作为起点,则需要在虚拟环境中安装Jupyter。可以在here找到Jupyter文档,但是下面的命令可以让您继续。在

^{pr2}$

我们的笔记本电脑为不同的用例提供了快速入门指南。除此之外,完整的文档可在readthedocs上找到。在

Pybatfish文档

pybatfishapi的完整文档是here。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
用于批量操作的java RESTful API分块响应   java读取在线存储的文本文件   在Java ME中将双精度舍入到小数点后5位   java查找一个数字的最接近因子   java更改JMenuBar的字体   java Kmeans聚类算法运行时间和复杂性   java是否可以阻止try catch返回null   java内容解析器指向具有正确URI的错误表   java Android Kotlin插装测试未被识别为插装测试   java TestNG@Dataprovider   在forloop和print语句中声明变量时发生java错误   java在Android Studio 3中设置JNI