自由格式概述和设计
自由格式参考设计概述
Freeform 参考设计与其他参考设计的不同之处在于,网络设计人员负责创建和验证所有设备配置。可以利用适合部署方案的任何功能、协议或体系结构。设备和链接在拓扑编辑器中建模,该编辑器在图形数据库中创建代表参考设计的对象。与其他参考设计一样,Freeform 仍然利用上下文图、基于意图的分析 (IBA)、配置验证、网络操作系统 (NOS) 管理、Time Voyager 和许多其他 Apstra 软件功能。然而,与更高级的参考设计相比,IBA 功能的深度降低是提高设计灵活性的折衷。
Freeform 由各种设计和构建元素和视图组成,每个元素和视图都管理特定的网络设计方面。以下各节介绍了它们的功能和用法。
蓝图
使用 Freeform 参考设计创建新网络时,首先要创建蓝图。与其他参考设计一样,蓝图包含与 Apstra 管理的运营网络关联的所有元素,但在 Freeform 中构建和使用蓝图的方式存在一些关键差异。
数据中心参考设计需要设计和构建元素,例如逻辑设备、接口图、机架和模板。在 Freeform 设计中不需要执行这些步骤,因为您需要直接在蓝图中创建配置详细信息和设备链接。创建新蓝图时,只需选择自由格式参考设计,如下所示:
蓝图导入/导出
您可以将 Freeform 蓝图导入和导出到 Apstra 中或导出 Apstra。这使您可以简化蓝图从一个 Apstra 实例到另一个实例的迁移。此功能还可用于创建自由曲面参考设计的“目录”。工程师可以使用此目录来标准化网络设计,方法是从蓝图中获取信息,并将其作为许多 Apstra 实施的标准化设计。这些实施可以用作组织在多个地理位置使用的设计的模板或模型,从而实现大规模自定义网络设计的快速、统一部署。此功能的另一个用例是测试或评估不同的网络设计和系统。检查导入/导出蓝图的各个方面,而无需承诺进行完整部署。所有这些可能性都存在于 Apstra Freeform 中。
要导出蓝图,请遵循以下简单工作流程:
然后,您可以选择要导出的蓝图元素,如下所示。如果所有切换开关都处于“关闭状态”,则仅导出拓扑编辑器的内容(将在下一节中讨论)。
导出完成后,蓝图将以 JSON 格式保存以供使用。
导入蓝图与此类似;只需创建一个新的蓝图并单击导入对话框,然后选择要导入的蓝图。
拓扑
创建新的自由格式蓝图后,就可以开始设计网络拓扑了。与数据中心参考体系结构一样,所有设计工作都是从“暂存蓝图”选项卡完成的。在 Freeform 的分段拓扑编辑器区域中,您可以与元素进行交互,以创建网络设计和架构。拓扑编辑器是 Freeform 中的一项新功能,允许您以交互方式创建自定义网络设计。您可以选择网络设备,并通过定义它们之间的链接以交互方式连接它们。这些设备可以是内部的,也可以是外部的。
内部设备由 Apstra 管理,必须映射到设备配置文件,这些配置文件对设备功能进行建模,并使用代理与设备交互。外部设备不直接在 Apstra 管理伞下,但仍可以在拓扑视图中建模,以模拟与内部设备的交互。例如,您可以模拟接口链路和速度。外部设备不使用设备代理或模型。
您可以在设备之间创建单个、多个甚至聚合链接。您可以与拓扑进行交互,以重新排列设计布局、添加链接以及编辑设备和链接的颜色或标记。您可以通过选择系统的齿轮图标来执行创建、读取、更新和删除 (CRUD) 操作。您可以选择对单个对象和批量对象执行 CRUD 操作。
颜色
您可以使用颜色来创建快速视觉分组和区分 Apstra 设备。例如,连接到防火墙的设备可以是红色,而仅执行 IP 转发的设备可以是橙色。
标签
在 Apstra 中,标签是一项强大的功能。标签是您将元数据分配给 Apstra 托管资源的一种方式。这些标签可以帮助您识别、组织、搜索和筛选 Apstra 资源。标签还可用于帮助您按用途、所有者、环境或其他条件对资源进行分类。由于标签是元数据,因此它们不仅用于视觉标记,而且还作为节点的属性应用于 Apstra 图形数据库中。然后,您可以在 Jinja 中参考此节点属性或设备属性,用于配置生成中的动态变量,以及通过 Apstra 的实时查询技术和 Apstra 基于意图的分析进行的 Apstra 实时分析。
例如,您可以使用标签 `firewall`
输出特定描述:
{% if has_tag(interface.link.neighbor_system.id, 'firewall') %} description "this is a firewall facing interface"; {% endif %}
有关如何访问和使用标记的更多示例,请参阅 访问设备上下文中的值 和 Jinja 支持 部分。
创建系统
有两种方法可以创建新系统:
1. 导航到拓扑编辑器>分段>拓扑。
使用底部菜单中的前两个图标创建内部或外部系统。新系统将显示在拓扑视图中。创建内部系统时,可以选择指定要使用的设备配置文件并分配系统 ID。请参阅设备配置文件部分,了解如何创建设备配置文件并将其导入蓝图。
2. 导航到 分段 > 系统。
此方法会自动在“拓扑”视图中添加新系统。
您可以选择从现有受管设备创建新系统,也可以选择使用特定设备配置文件创建新系统,并在设备准备就绪后分配受管设备并成为 Apstra 受管设备的一部分。
创建链接
您可以使用链接将对象或设备连接在一起。链接是单个链接或聚合链接。这些链接可以通过拓扑编辑器“齿轮”图标为其分配参数。可以为链接分配 IP 地址和标记。
链路聚合 (LAG)
链路可以是链路聚合或 LAG。通过选择 拓扑 视图,然后选择设备,然后选择管理 LAG 图标,访问 LAG 编辑区域。
以下是链路聚合用户界面的视图。
选择两个链接以形成聚合。单击“ 聚合”后会显示更改。
单击 应用更改 以使用新的 LAG 更新拓扑编辑器。聚合链接较粗,颜色为蓝色。
链路和LAG管理简化了管理链路设置不同排列的潜在复杂过程。
设备配置文件
设备配置文件定义支持的硬件设备的功能。某些功能在 NOS 版本中具有不同的行为。某些功能的性能可能会有所不同,具体取决于您的 NOS 版本。
在 Freeform 的初始版本中,仅支持瞻博网络设备的设备配置文件。
必须先将设备配置文件导入蓝图,然后才能创建蓝图。然后,您可以在蓝图的拓扑编辑器中使用这些设备。
执行 CLI 命令
用户可能希望通过 CLI 直接与网络中的设备交互,以实现统计信息显示等功能,或者检查设备状态或接口运行状况。Apstra Freeform 简化了 CLI 访问。考虑到可能构成网络的设备范围,此功能在自定义 Freeform 拓扑中比以往任何时候都更有用。要访问 CLI 命令功能,请导航到设备,您将看到以下对话框:
单击 执行 CLI 命令 字段。将显示 CLI 命令的 CLI 字段。键入命令的一部分将显示一个提示符,其中包含 CLI 结构中所有可用的相关命令。
目前仅支持 show 命令。
使用 Tab 键自动完成命令到下一个分层级别。
以下是 CLI 命令的示例输出。您无需打开终端会话并通过 SSH 连接到设备即可查看输出。除了此示例中的文本输出外,您还可以选择 XML 或 JSON 输出格式。
配置模板
由于 Freeform 中的网络元素设计是任意的,因此 Freeform 参考设计不会自动渲染设备配置;相反,您可以完全控制设备的配置。
从 Apstra 4.1.1 开始,我们引入了专门针对 Freeform 的配置模板的概念,以驱动设备配置。配置模板可以是非常简单和静态的,也可以是非常复杂和编程的,具体取决于您熟悉的用例和自动化水平。配置模板支持使用 Jinja2 模板语言,该语言可以选择与设备上下文和属性集进行交互。
嵌套(可组合)配置模板
由于配置模板支持 Jinja 模板,因此支持强大的嵌套功能,使您能够将配置模板的一部分包含在另一个配置模板的列表中。嵌套配置模板有两个主要好处。首先,通过嵌套,您可以将各种服务、配置部分等分离到公共组件中,并为它们创建专用的配置模板。
例如,假设您的大多数瞻博网络设备都有针对横幅、登录名、NTP 等的基本系统节配置。您可以为基本系统配置创建专用的配置模板,而不是将相同的配置复制并粘贴到每个设备模板中。然后,只需从另一个模板中引用该模板即可。
第二个好处是您只需要将一个配置模板链接到设备。该设备会自动继承任何链接模板的所有配置设置。
例如,以下配置模板 junos_configuration.jinja
是具有多个嵌套配置模板(如 junos_system.jinja
和 junos_interfaces.jinja
)的单个配置模板。您只需要将模板链接到 junos_configuration_jinja
设备 bond-street
,并应用所有嵌套的配置模板。
在下图中, junos_system.jinja
仅呈现其父模板的系统主机名 (bond-street
):
渲染顺序
Apstra 根据配置模板的顺序呈现配置。
属性集
属性集是您导入蓝图目录以在配置模板和 IBA 探测器中使用的键值对的集合。属性集的使用是可选的,但它提供了一种有价值的功能,允许您通过将配置模板的持久设置与实际变量分离来完全参数化配置模板。换句话说,属性集可以对用于任意灵活呈现配置的设备模型进行更精细的控制。
例如,企业中所有设备上的 NTP 配置可能一致,但每个地理位置的时间源或层不同。您可以为每个地理位置使用不同的变量创建 NTP 配置模板。例如,可以使用名为“ntp”的属性。
请务必使用正确的语法,并记住键值区分大小写。
在这种情况下,您可以使用 {{ntp}} 而不是 NTP 服务器的 IP 地址创建配置模板。此配置模板将导入到所有蓝图中,但在东部区域运行的蓝图会导入“EAST”属性集,而在西部区域运行的蓝图会导入“WEST”属性集。默认情况下,属性集是全局范围的。
Freeform 还支持分配给特定设备的属性集。这使您能够创建特定的属性集并将其分配给某些设备。Apstra 将属性集存储在图形数据库中,其值可用于 IBA 探针。
以下示例演示可以通过“设备上下文”选项卡或图形可视化工具访问属性集。
属性集中的数据结构
自由格式属性集支持可用于满足不同用例的高级数据结构。自由格式属性集支持任何典型的 Python 数据类型,包括:
- 数组(项目列表)
- 布尔值:真或假
- 整数:1、2、3 等
- 浮点数:1.2、3.65 等
- 字符串:“Hello World”
- 字典: {“asn”: 65432, “lo0”: “1.2.3.4/32”}
您可以全局引用属性集,也可以将其分配给蓝图中的系统。
在上面的示例中,您可以使用键递归字典,并根据需要使用键作为值:
- esxRedTrunk 是用作接口描述的链接标记名称
- 99、100、101 是要分配的 VLAN ID/中继成员 &irb.<value>
- 子网/描述/网关也用于派生有意义的配置