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