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