自定义拓扑 (旧版)
本页信息反映了正在弃用的旧版 Air UI 的工作流程。 查看新版 UI 的文档
NVIDIA Air 完全支持创建自定义拓扑。此功能增强了预构建的演示基础设施。
要访问自定义拓扑,请在“创建模拟”页面上单击构建您自己的卡片

您也可以单击 air.nvidia.com/build 链接。
自定义拓扑着陆页
自定义拓扑着陆页是一个空白画布,您可以使用它来设计任何网络。

画布概览
左侧面板列出了可用于创建自定义拓扑的节点
- Cumulus VX 交换机
- Ubuntu 服务器
- SONiC 交换机
- 通用节点
自定义拓扑着陆页顶部的工具栏管理拓扑。单击默认名称 我的拓扑项目 以获取其他管理选项。

- 打开构建 上传 JSON 结构的自定义拓扑构建。这与导入
topology.dot
Graphviz 格式文档不同。JSON 格式结构是自定义拓扑构建器工具独有的。 - 保存构建 导出表示画布的 JSON 结构的自定义拓扑。仅使用自定义拓扑构建器应用程序读取和解释此 JSON 文件;请勿在文本编辑器中打开和编辑该文件。
- 导出构建 将拓扑导出为 Graphviz 格式
topology.dot
文件。您可以将此文件导入 NVIDIA Air 模拟平台以启动自定义拓扑。 - 下载 SVG 下载 SVG 格式的图像,该图像定义您的拓扑。
- 重命名项目 重命名项目。
- 新建项目 创建一个新的项目。
添加节点
要添加节点,请从左侧面板中拖放它。

编辑节点
添加节点后,您可以根据需要对其进行编辑。单击节点以选中它,并使用右侧面板中的选项对其进行配置。
名称 是节点的主机名。
操作系统 是节点上的操作系统版本。支持的操作系统版本在下拉列表中。
内存 是节点上的 RAM 量。默认值为 1GB。
CPU 是分配给节点的 CPU 数量。默认值为 1 个 CPU。
角色 是一项高级功能,用于定义节点在启动顺序中的角色。您通常不必分配角色。
硬件型号 根据您选择的交换机的特定硬件型号预先填充端口。这不会影响模拟,但充当宏来预先填充每个交换机型号的端口数量。
端口 添加、重命名和编辑图表中端口的位置和信息。按下 breakout 按钮 (<-||->) 以模拟将一个端口分解为四个端口的组。
连接节点
要将两个节点连接在一起,请单击一个节点上的端口并将其拖到另一个节点上的端口。这将在两个端口之间绘制一条线以显示连接。

ZTP 脚本
您可以包含自定义 ZTP 脚本作为网络设计的一部分。当您创建模拟时,NVIDIA Air 会将 ZTP 脚本(完全按照粘贴到文本字段中的内容)复制到 oob-mgmt-server 上。任何在 OOB 管理网络上发出 ZTP 请求的网络节点都可以通过在 oob-mgmt-server 上运行的 DHCP 服务器和 Web 服务器访问此 ZTP 脚本。
要上传 ZTP 脚本,请单击画布右上角的 ZTP

将打开一个弹出窗口,您可以在其中粘贴 ZTP 脚本的内容。弹出窗口包含一个默认脚本。默认脚本是指南,用于在 Cumulus Linux 上实现常见的 ZTP 功能,例如
- 禁用密码过期
- 使
cumulus
用户在sudo
时无需密码 - 下载用于基于密钥的 SSH 的 SSH 密钥

应用 ZTP 脚本后,画布右上角的 ZTP 颜色从灰色变为绿色,表示 ZTP 现在在您的 oob-mgmt-server 上处于活动状态。

构建自定义拓扑
要构建自定义拓扑,您可以选择
- 直接从拓扑构建器启动模拟。
- 导出拓扑文件并直接将其上传到 NVIDIA Air。

直接启动模拟
要直接从拓扑构建器启动模拟,请单击 启动模拟 按钮。模拟启动并将您重定向到 NVIDIA Air 着陆页。拓扑和图表会自动链接到您的模拟。
导出自定义拓扑
要导出自定义拓扑,请单击 导出 按钮下载两个文件
topology.dot
是 Graphviz 格式的网络定义。topology.svg
是可缩放矢量图形格式的网络图。
要上传 topology.dot
和 topology.svg
文件
在侧边栏中,单击 创建模拟 以打开“创建模拟”窗口。
单击 构建您自己的,然后单击 上传拓扑文件。
将
topology.dot
文件拖到 将拓扑文件拖到此处 卡片上,并将topology.svg
文件拖到 将图表文件拖到此处 卡片上,然后单击 提交。
NetQ 集成
要在任何模拟中包含 NetQ,请确保 NetQ 切换开关处于打开状态,这是默认行为。

要禁用 NetQ,请单击切换开关以禁用它。
从生产网络创建自定义拓扑
本节介绍如何基于现有的生产部署创建模拟。
从生产网络收集 cl-support
使用 这些 playbook 收集 cl-support
脚本输出。存储库中的 ReadMe
提供了有关如何运行 playbook 以收集 cl-support
输出的说明。
从生产网络创建 topology.dot
获取 cl-support
输出后,您可以使用 此脚本 创建 topology.dot
文件。您可以使用 python3
运行脚本。这是示例输出
$ python3 cl_support_lldp_parser.py
Extracting: /home/cumulus/cl_support_lldp_parser/cl_support_leaf01_20210721_164553.txz
Extracting: /home/cumulus/cl_support_lldp_parser/cl_support_spine02_20210721_164553.txz
Extracting: /home/cumulus/cl_support_lldp_parser/cl_support_leaf02_20210721_164553.txz
Extracting: /home/cumulus/cl_support_lldp_parser/cl_support_spine01_20210721_084129.txz
folder is: /home/cumulus/cl_support_lldp_parser/cl_support_leaf01_20210721_164553
leaf01
leaf01:eth0 -- oob-mgmt-switch:swp2
leaf01:swp31 -- spine01:swp1
leaf01:swp32 -- spine02:swp1
folder is: /home/cumulus/cl_support_lldp_parser/cl_support_spine02_20210721_164553
spine02
spine02:eth0 -- oob-mgmt-switch:swp6
spine02:swp1 -- leaf01:swp32
spine02:swp2 -- leaf02:swp32
folder is: /home/cumulus/cl_support_lldp_parser/cl_support_leaf02_20210721_164553
leaf02
leaf02:eth0 -- oob-mgmt-switch:swp4
leaf02:swp31 -- spine01:swp2
leaf02:swp32 -- spine02:swp2
folder is: /home/cumulus/cl_support_lldp_parser/cl_support_spine01_20210721_084129
spine01
spine01:eth0 -- oob-mgmt-switch:swp5
spine01:swp1 -- leaf01:swp31
spine01:swp2 -- leaf02:swp31
DOTFILE: cl_support_lldp_parser.dot
该命令将输出写入 cl_support_lldp_parser.dot
。您需要手动编辑此文件以定义节点版本并清理任何多余的配置
$ cat cl_support_lldp_parser.dot
graph dc1 {
"leaf01" [function="leaf" ]
"oob-mgmt-switch" [function="leaf" ]
"spine01" [function="leaf" ]
"spine02" [function="leaf" ]
"leaf02" [function="leaf" ]
"leaf01":"eth0" -- "oob-mgmt-switch":"swp2"
"leaf01":"swp31" -- "spine01":"swp1"
"leaf01":"swp32" -- "spine02":"swp1"
"spine02":"eth0" -- "oob-mgmt-switch":"swp6"
"spine02":"swp2" -- "leaf02":"swp32"
"leaf02":"eth0" -- "oob-mgmt-switch":"swp4"
"leaf02":"swp31" -- "spine01":"swp2"
"spine01":"eth0" -- "oob-mgmt-switch":"swp5"
}
恢复配置文件
创建模拟后,您可以恢复配置文件。
此 python 脚本 提取所有相关文件并将它们整理到文件夹中,以便您可以使用它们从模拟内部恢复配置。
您还可以使用 基础设施即代码 Ansible playbook 来恢复配置。