设备配置文件
设备配置文件概述
设备配置文件定义支持的硬件设备的功能。某些功能在 NOS 版本中具有不同的行为,因此,功能按 NOS 版本表示。默认情况下,版本匹配所有受支持的版本。当其他硬件型号合格时,它们将被添加到 合格设备列表中。
设备配置文件与 逻辑设备 (物理设备的抽象)相关联,以创建 接口映射。
以下部分介绍设备配置文件参数。
总结
摘要部分 | 说明 |
---|---|
名字 | 设备配置文件的名称。不超过 64 个字符。 |
插槽数量 | 设备上的插槽或模块数。模块化交换机具有多个插槽。 |
从 ID 开始 |
选择
选择器部分包含特定于设备的信息,用于将硬件设备与设备配置文件进行匹配,如下所述:
选择器部分 | 说明 |
---|---|
制造商 | 从下拉列表中选择 |
模型 | 确定设备配置文件是否可以应用于特定硬件。从下拉列表中选择或作为正则表达式 (regex) 输入。 |
操作系统系列 | 定义如何生成配置、如何呈现遥测命令以及如何在设备上部署配置。从下拉列表中选择。 |
版本 | 确定设备配置文件是否可以应用于特定操作系统版本。从下拉列表中选择或作为正则表达式输入。如果设备的操作系统版本与设备配置文件的操作系统版本不匹配,则设备将处于错误状态(设备>托管设备)。 |
能力
您可以在 Apstra 环境的其他部分中利用本节中定义的硬件和软件功能来调整生成的配置,或防止出现不兼容的情况。除 ECMP 外,硬件功能会修改配置呈现或部署。功能包括以下详细信息:
功能部分 | 说明 |
---|---|
CPU(CPU:字符串) | 描述设备的 CPU 体系结构。例如:“x86” |
用户空间(位)(用户空间:整数) | 设备支持的用户空间类型(应用程序二进制/内核)。例如:“32”或“64”。 |
内存 (GB) (内存:整数) | 设备上的内存量。例如:“16” |
ECMP 限制(ecmp_limit:整数) | 等价多路径路由的最大数量。例如:“64”。此字段更改设备上的 BGP 配置(ecmp 最大路径)。 |
外形(form_factor:字符串) | 设备上的机架单元 (RU) 数。例如:“1RU”、“2RU”、“6RU”、“7RU”、“11RU”、“13RU” |
ASIC (ASIC:string) | 交换机芯片组 ASIC。例如:“T2”、“T2(3)”、“T2(6)”、“Arad(3)”、“Alta”、“TH”、“Spectrum”、“XPliant XP80”、“ASE2”、“Jericho”。用于辅助遥测、配置渲染和 VXLAN 路由语义 |
LXC(lxc_support:布尔值) | 如果设备支持 LXC 容器,则选择此选项。 |
ONIE (onie: boolean) | 如果设备支持 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 排序的设备的序列号。
默认情况下,为所有思科设备配置文件启用序列号支持(思科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
港口
ports 部分定义了可用端口的类型、功能及其组织方式。
每个端口都包含一系列受支持的速度转换。每个转换都表示分支功能(例如 1-40GBe 端口分支为 4-10GBe 端口),因此包含一组接口。
示例:如果端口 1 是支持 QSFP28 100->4x10、100->1x40 分支的端口,则端口 1 具有三个转换的集合,分别用于 4x10、1x40 和 1x100 分支。集合中表示 4x10 的 transformation 元素具有 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”。 |
转换(转换:列表) | 端口可能出现突破。每个条目都是特定的支持速度。每个转换都有一个接口集合。 |
接口数量(接口:列表) | 取决于端口的分支能力。对于表示特定分支速度的转换,接口包含有关要配置设备的接口名称和接口设置的信息。“设置”信息对于在设备上正确配置接口至关重要。 |
根据在设备配置文件的选择器字段中输入的操作系统信息,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 编排工具收集和使用。
查看设备配置文件
从 Apstra GUI 的左侧导航菜单中,导航到设备>设备配置文件以转到 设备配置文件 表视图。您可以创建、克隆、编辑和删除设备配置文件。