设备配置文件
设备配置文件定义受支持的硬件设备的功能。某些功能功能在不同 NOS 版本(计算代理的作系统版本)之间具有不同的行为,因此,功能按 NOS 或 OS 版本表示。默认情况下,该版本与所有受支持的版本匹配。当其他硬件型号获得合格时,它们就会添加到 合格设备列表中。
设备配置文件(特定于供应商的设备详细信息)与逻辑设备(设备物理详细信息的抽象)相关联,以创建 接口图。构建蓝图时,需要将这些接口图分配给拓扑中的设备。
设备配置文件可以是单体式的,也可以是模块化的。以下部分介绍设备配置文件参数。有关设备配置文件的更多信息,请参阅 使用 Apstra UI 添加设备配置文件。
单体设备配置文件
总结
| 摘要部分 | 说明 |
|---|---|
| 类型 | 整体 |
| 物理设备 | 是或否 |
| 名字 | 设备配置文件的名称。64 个字符或更少。 |
| 参考设计能力 | 数据中心和/或 Freeform |
| 机箱配置文件 | 仅适用于模块化设备配置文件 |
选择器
选择器部分包含特定于设备的信息,用于将硬件设备与设备配置文件进行匹配,如下所述:
| 选择器部分 |
描述 |
|---|---|
| 制造者 |
从下拉列表中选择 |
| 型 |
确定设备配置文件是否可以应用于特定硬件。从下拉列表中选择或作为正则表达式 (regex) 输入。 |
| OS 系列 |
定义如何生成配置、如何呈现遥测命令,以及如何在设备上部署配置。从下拉列表中选择。 |
| 版本 |
确定设备配置文件是否可以应用于特定硬件。从下拉列表中选择或以正则表达式输入。 |
能力
您可以在 Apstra 环境的其他部分中利用本部分中定义的硬件和软件功能来调整生成的配置,或防止出现不兼容的情况。除 ECMP 外,硬件功能会修改配置、呈现或部署。功能包括以下详细信息:
| 功能部分 |
描述 |
|---|---|
| CPU (cpu:string) |
描述设备的 CPU 架构。例如:“x86” |
| Userland (bits) (userland:integer) |
设备支持的用户空间类型(应用程序二进制/内核)。例如:“32”或“64”。 |
| RAM (GB) (ram:integer) |
设备上的内存量。例如:“16” |
| ECMP 限制(ecmp_limit:整数) |
等价多路径路由的最大数量。例如:“64”。此字段更改设备上的 BGP 配置(ecmp 最大路径)。 |
| 外形 (form_factor:string) |
设备上的机架单元 (RU) 数。例如:“1RU”、“2RU”、“6RU”、“7RU”、“11RU”、“13RU” |
| ASIC(ASIC:字符串) |
交换机芯片组 ASIC。例如:“T2”、“T2(3)”、“T2(6)”、“Arad(3)”、“Alta”、“TH”、“Spectrum”、“XPliant XP80”、“ASE2”、“Jericho”。用于辅助遥测、配置渲染和 VXLAN 路由语义 |
| LXC(lxc_support:布尔值) |
如果设备支持 LXC 容器,则选中。 |
| ONIE(奥尼:布尔值) |
如果设备支持 ONIE,则选中。 |
COPP — 启用控制平面管制(COPP)后,将为指定的NX-OS版本呈现严格的CoPP配置文件配置,从而呈现以下配置:
terminal dont-ask copp profile strict
仅在启用CoPP配置文件严格配置时才需要此终端不询问配置,因为我们不希望NX-OS等待确认:
switch(config)# copp profile strict This operation can cause disruption of control traffic. Proceed (y/n)? [no] ^C switch(config)# switch(config)# terminal dont-ask switch(config)# copp profile strict switch(config)#
默认情况下,CoPP处于启用状态,Cisco 3172PQ NXOS除外。您可以指定多个版本。
分支 - 启用分支以指示指定模块上的端口可以拆分以降低速度的拆分端口。
Apstra 软件会先取消所有具有分支能力的端口,然后根据意图应用适当的分支命令。这是基于以下假设:全局否定命令 no interface breakout module<module_number> 始终可以成功应用于具有分支端口的模块。(当应用于未断开的端口时,这是幂等的。)但是,我们认识到,这种假设可能会在未来版本的 NX-OS 中被打破,或者通过将某种电缆/收发器组合插入具有分支功能的端口。
以下示例用于设置为 True 的模块 (1) 的否定命令:
no interface breakout module 1 !
由于否定命令始终适用于每个模块,因此每个模块都是单独指定的。这样做的优点包括:
- 在模块化系统中,并非所有线卡都具有支持分支的端口。
- 在非模块化系统中,支持分支的端口可能并不总是在模块 1 中。
默认情况下启用分支,但以下模块无法分线端口的设备除外:3172PQ NXOS、9372TX NXOS、C9372PX NXOS、C9396PX NXOS、NXOSv。
历史背景 - 对于特定版本的 NX-OS,POAP 阶段会在具有分支功能的端口上应用分支配置。7.0(3)I4(1) POAP 中引入的 POAP 行为确定哪个分支图(例如,10gx4、50gx2、25gx4 或 10gx2)显示连接到 DHCP 服务器的链路。如果任何端口不支持分支,POAP 将跳过动态分支过程。分支环路完成后,POAP 将照常进行 DHCP 发现阶段。Apstra 会通过应用否定命令恢复可能在 POAP 阶段呈现的任何此类分支配置,以确保端口恢复到默认速度。
支持序列号 - 适用于自治系统 (AS) 路径。当设备支持序列号时启用。Apstra 将序列放入条目列表中,以重新排序并生成配置,如下所示:
ip as-path access-list MyASN seq 5 permit ^$ ip as-path access-list Rtr seq 5 permit ^3 ip as-path access-list Srvr seq 15 permit _103$
数字 5 和 15 是适用于支持 AS 排序的设备的序列号。
默认情况下,所有 Cisco 设备配置文件都启用序列号支持(Cisco 3172PQ NXOS 除外,它不支持序列号)。对于不支持序列号的平台,禁用此功能可确保从设备型号字典中移除 AS 序列号,以避免在重新排序时进行添加和否定。此方案不需要在这些平台上呈现任何内容,因为无法对条目进行排序。
Apstra GUI 中不提供的其他支持功能包括“vxlan”、“bfd”、“vrf_limit”、“vtep_limit”、“floodlist_limit”、“max_l2_mtu”和“max_l3-mtu”。它们可以使用以下格式包含在后端中:
键 : 值 :: 功能 : feature_properties 示例: 32 vtep_limit: 32
港口
端口部分定义了可用端口的类型、它们的功能以及它们的组织方式。
每个端口都包含一组受支持的速度转换。每个转换代表分支功能(例如 1-40GBe 端口分拆为 4-10GBe 端口),因此包含一组接口。
示例: 如果端口 1 是支持 QSFP28 100->4x10、100->1x40 分支的端口,则端口 1 具有三个转换的集合,4x10、1x40 和 1x100 分支各一个。集合中表示 4x10 的转换元素具有 4 个接口的集合,1x40 和 1x100 具有 1 个接口的集合。
端口参数包括以下详细信息:
| 端口部分 |
描述 |
|---|---|
| 端口索引(port_id:整数) |
指示设备配置文件中端口集合中的唯一端口。 |
| 行索引(row_id:整数) |
表示端口面板的从上到下的尺寸。显示端口在设备面板中的位置。例如,在具有两行和多列的面板中,行索引要么是“1”,要么是“2”。 |
| 列索引(column_id:整数) |
表示端口面板从左到右的尺寸。显示端口在设备面板中的位置。例如,在具有 32 个端口和两行的面板中,列索引的范围为“1”到“16”。 |
| 面板索引(panel_id:整数) |
指示给定设备规格中端口物理布局的端口所属的面板 |
| 插槽 ID(slot_id:整数) |
表示端口所属的模块。模块化交换机有多个插槽。在固定功能网络功能设备中,插槽 ID 通常为“0”。 |
| 故障域(failure_domain_id:整数) |
指示多个面板是否依赖于相同的硬件组件。在创建布线计划时使用,以确保两个上行链路未连接到同一个故障域。 |
| 连接器类型(connector_type:字符串) |
端口收发器类型。端口的速度能力与连接器类型直接相关,因为某些连接器类型可以以某些速度运行。例如,“sfp”、“sfp28”、“qsfp”、“qsfp28”。 |
| 转换(转换:列表) |
端口可能的分支。每个条目都有特定的支持速度。每个转换都有一组接口。 |
| 接口数量 (interfaces:list) |
取决于端口的分支能力。对于表示特定分支速度的转换,接口包含有关设备配置所要使用的接口名称和接口设置的信息。“设置”信息对于在设备上正确配置接口至关重要。 |
根据在设备配置文件的选择器字段中输入的作系统信息,Apstra GUI 会显示适用的设置字段。这些字段因供应商作系统而异(如下例所示)。创建或编辑设备配置文件时,系统会根据供应商特定的架构验证“设置”,如下所示:
eos_port_setting = Dict({
'interface': Dict({
'speed': Enum([
'', '1000full', '10000full', '25gfull', '40gfull',
'50gfull', '100gfull',
])}),
'global': Dict({
'port_group': Integer(),
'select': String()
})
})
nxos_port_setting = Dict({
'interface': Dict({
'speed': Enum([
'', '1000', '10000', '25000', '40000', '50000',
'100000',
])}),
'global': Dict({
"port_index": Integer(),
"speed": String(),
"module_index": Integer()
})
})
junos_port_setting = Dict({
'interface': Dict({
'speed': Enum([
'', 'disabled', '1g', '10g', '25g', '40g', '50g', '100g'
])}),
'global': Dict({
'speed': Enum([
'', '1g', '10g', '25g', '40g', '50g', '100g'
]),
"port_index": Optional(Integer()),
"fpc": Optional(Integer()),
"pic": Optional(Integer())
})
})
sonic_port_setting = Dict({
'interface': Dict({
"command": Optional(String()),
"speed": String(),
"lane_map": Optional(String())
})
})
})
Apstra 不一定使用上述所有信息进行建模。其他 Apstra API 编排工具也可以收集和使用该工具。
模块化设备配置文件
总结
| 类型 |
模块 化 |
| 名字 |
设备配置文件的名称。64 个字符或更少。 |
| 机箱配置文件 | 要与 DP 关联的机箱配置文件 |
设备配置文件 NVIDIA GPU 服务器
从 Apstra GUI 中,您可以看到 NVIDIA GPU 服务器的设备配置文件信息:
| 摘要部分 | 说明 |
|---|---|
| 名字 | 设备配置文件的名称。64 个字符或更少。 |
| 设备配置文件类型 | 整体 |
| 参考设计能力 | 数据中心和/或 Freeform |
| 模块 化 | 不 |
| 机箱配置文件 | 仅适用于模块化设备配置文件 |
| 插槽数量 | 0 |
| 物理设备 | 是的 |
| 端口预览 | ![]() |
Apstra GUI 中的设备配置文件
从 Apstra GUI 的左侧导航菜单中,导航到 设备>设备配置文件 ,以转到设备配置文件表视图。

要查看 Apstra 设备配置文件和设计元素之间的关联情况,请点击 显示关系。如果您还不熟悉 Apstra 环境,这会很有帮助。

许多设备配置文件都是为您预定义的。要搜索设备配置文件,请单击 搜索 按钮(放大镜)并输入您的条件。
单击设备配置文件名称以转到其详细信息。

您可以创建、编辑和删除设备配置文件。
