探索网络的未来:NetGrph——新一代网络自动化模型
项目简介
NetGrph 是一款革新性的网络管理工具,它利用强大的 Neo4j 图形数据库来构建一个统一的网络视图,覆盖从传统局域网/广域网到混合SDN网络的各类组件。这个系统通过网络配置文件直接建模,而不是依赖第二手信息,从而允许您像操作软件一样浏览和管理您的网络。
NetGrph 提供了通用的 L2/L3/L4 层路径遍历功能,并能为每个层次提供上下文信息。它同时充当 VLAN 和 CIDR 数据库,揭示网络中的一切关系。即使在大型网络上也能高效运行,确保查询速度在秒级以内,让处理复杂网络关系的发现与自动化变得简单易行。
返回的数据可以以 CSV, JSON, YAML 或 Ascii 树状图的形式显示,也可以通过 Neo4j 的Web应用程序创建网络可视化图像。其数据模型与 D3.js, vis.js 或 Graphviz 等工具兼容,可通过 Neo4j 原生API以及 NetGrph 的树型数据结构进行转换。
所有的数据都可通过 API 访问,轻量级的 NetGrph 客户端可以在多台机器上分发使用。
图形数据模型示例:Vlan 110 到 200 路径遍历
(黄色:L3 SVI,绿色:L2 VLAN,蓝色:交换机/路由器)
功能亮点
- 跨层路径查找:支持任意两个网络设备间的 L2 至 L4 层路径遍历。
- 全路径查询:可返回单个路径或所有ECMP。
- 三层网络数据库:自动化的 VRF 感知网络数据库,可搜索。
- VLAN 库:全网 VLAN 实例库存,按交换机区域细分。
- L2 链路映射:跨交换机域的 L2 VLAN 桥接和 STP 根节点计算。
- L2 路径查询:支持正则表达式(如
dc.* -> dc.*
,查询所有数据中心间链接)。 - 配置 VLAN 反馈:报告每个链路上的配置 VLAN 及实际存在的 VLAN。
- 安全的 REST API 服务器和客户端:高性能,低延迟查询。
- 可扩展性:轻松适应混合厂商环境。
- 快速安装:通过 Ansible playbook 在 Ubuntu 14.04/16.04 上完成五分钟内安装。
预计特性
- API 改进:使其更加一致。
- 开发 Web 前端界面。
- 集成 Napalm 进行数据源。
系统要求
- Python 3.4+(建议使用虚拟环境)
- Ubuntu 或 MacOS(其他 Python 兼容平台理论上也可运行,但仅提供上述系统的支持)
- Neo4j 图形数据库 和 Java8
- 对于 Cisco 设备,需提供已存储的配置信息(参考 Rancid 或 Oxidized)
- 需要 CDP/LLDP 发现数据。ndcrawl 将以适合 NetGrph 的格式输出这些数据。
- 第三方网络设备需要解析成 NetGrph CSV 格式。
文档资源
路径遍历示例
$ ./netgrph.py -p 10.26.72.142 10.34.72.24
...
安装说明
详细安装步骤请查看文档中的 Install Instructions。
支持与贡献
首先查阅文档:NetGrph Read The Docs。
若需要即时帮助,您可以在 networktocode Slack 组群 的 #netgrph 频道找到我。对于任何互动支持,请在那里联系我。
贡献者
感谢以下人员对 NetGrph 的贡献:
- Jonathan Yantis (yantisj)
许可协议
NetGrph 遵循 GNU AGPLv3 许可协议。
通过 NetGrph,探索网络的新维度,将网络管理带入新的境界,开启自动化新篇章!