自定义拓扑 (旧版)

本页信息反映了正在弃用的旧版 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.dottopology.svg 文件

  1. 在侧边栏中,单击 创建模拟 以打开“创建模拟”窗口。

  2. 单击 构建您自己的,然后单击 上传拓扑文件

  3. 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 来恢复配置。