Perfiles de dispositivos
Descripción general del perfil del dispositivo
Los perfiles de dispositivo definen las capacidades de los dispositivos de hardware compatibles. Algunas capacidades de característica tienen comportamientos diferentes entre las versiones de NOS y, por lo tanto, las capacidades se expresan por versión de NOS. De forma predeterminada, la versión coincide con todas las versiones compatibles. A medida que se califican los modelos de hardware adicionales, se agregan a la lista de dispositivos calificados.
Los perfiles de dispositivo se asocian con dispositivos lógicos (abstracciones de dispositivos físicos) para crear mapas de interfaz.
En las secciones siguientes se describen los parámetros del perfil de dispositivo.
- Resumen
- Selector
- Capacidades
- Funciones compatibles (solo Cisco)
- Puertos
- Ver perfiles de dispositivos
Resumen
Descripción de la sección de resumen | |
---|---|
Nombre | Nombre del perfil del dispositivo. 64 caracteres o menos. |
Número de ranuras | Número de ranuras o módulos en el dispositivo. Los conmutadores modulares tienen múltiples ranuras. |
Comience desde ID |
Selector
La sección Selector contiene información específica del dispositivo para hacer coincidir el dispositivo de hardware con el perfil de dispositivo, como se describe a continuación:
Descripción de la sección del selector | |
---|---|
Fabricante | Seleccionado de la lista desplegable |
Modelo | Determina si un perfil de dispositivo se puede aplicar a hardware específico. Seleccionado en la lista desplegable o introducido como una expresión regular (regex). |
Familia de sistemas operativos | Define cómo se genera la configuración, cómo se representan los comandos de telemetría y cómo se implementa la configuración en un dispositivo. Seleccionado en la lista desplegable. |
Versión | Determina si un perfil de dispositivo se puede aplicar a versiones específicas del sistema operativo. Seleccionado en la lista desplegable o introducido como regex. Si la versión del sistema operativo de un dispositivo no coincide con la versión del sistema operativo del perfil del dispositivo, el dispositivo estará en el estado ERROR (Dispositivos > dispositivos administrados). |
Capacidades
Puede aprovechar las capacidades de hardware y software definidas en esta sección en otras partes del entorno de Apstra para adaptar la configuración generada o para evitar una situación incompatible. Con la excepción de ECMP, las capacidades de hardware modifican la configuración, la representación o el despliegue. Las capacidades incluyen los siguientes detalles:
Descripción | dela sección de capacidades |
---|---|
CPU (cpu:string) | Describe la arquitectura de CPU del dispositivo. Por ejemplo: "x86" |
Userland (bits) (userland:integer) | Tipo de espacio de usuario (binario de aplicación/kernel) que admite el dispositivo. Por ejemplo: "32" o "64". |
RAM (GB) (ram:entero) | Cantidad de memoria en el dispositivo. Por ejemplo: "16" |
Límite ECMP (ecmp_limit:entero) | Número máximo de rutas de múltiples rutas de igual costo. Por ejemplo: "64". Este campo cambia la configuración de BGP en el dispositivo (ecmp max-paths). |
Factor de forma (form_factor:string) | Número de unidades de bastidor (RU) en el dispositivo. Por ejemplo: "1RU", "2RU", "6RU", "7RU", "11RU","13RU" |
ASIC (asic:string) | El conjunto de chips del conmutador ASIC. Por ejemplo: "T2", "T2(3)", "T2(6)", "Arad(3)", "Alta", "TH", "Spectrum", "XPliant XP80", "ASE2", "Jericho". Se utiliza para ayudar a la telemetría, la representación de la configuración y la semántica del enrutamiento VXLAN |
LXC (lxc_support: booleano) | Se selecciona si el dispositivo admite contenedores LXC. |
ONIE (onie: booleano) | Seleccionado si el dispositivo es compatible con ONIE. |
Funciones compatibles (solo Cisco)
COPP : cuando la vigilancia del plano de control está habilitada (COPP), se representa una configuración estricta del perfil de CoPP para la versión de NX-OS especificada, lo que da como resultado la siguiente representación de la configuración:
terminal dont-ask copp profile strict
Esta configuración de no preguntar de terminal solo es necesaria cuando se habilita la configuración estricta del perfil de CoPP, ya que no queremos que NX-OS espere la confirmación:
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 está habilitado de forma predeterminada, excepto para Cisco 3172PQ NXOS. Puede especificar varias versiones.
Breakout : habilite el breakout para indicar que los puertos de los módulos especificados se pueden dividir en puertos divididos de menor velocidad.
El software de Apstra primero desconecta todos los puertos con capacidad de ruptura y, luego, aplica los comandos de ruptura adecuados según la intención. Esto se basa en la suposición de que el comando no interface breakout module<module_number>
de negación global siempre se puede aplicar correctamente a un módulo con puertos con capacidad de interrupción. (Esto es idempotente cuando se aplica en puertos que no están rotos). Sin embargo, reconocemos que esta suposición puede romperse en futuras versiones de NX-OS, o con una cierta combinación de cables/transceptores insertados en puertos con capacidad de interrupción.
El ejemplo siguiente es para el comando de negación para un módulo (1) establecido en True:
no interface breakout module 1 !
Dado que el comando de negación siempre es aplicable por módulo, cada módulo se especifica individualmente. Las ventajas de esto incluyen:
- En los sistemas modulares, no todas las tarjetas de línea tienen puertos con capacidad de interconexión.
- En sistemas no modulares, es posible que los puertos con capacidad de conexión no siempre estén en el módulo 1.
Breakout está habilitado de forma predeterminada, excepto para los siguientes dispositivos con módulos incapaces de romper puertos: 3172PQ NXOS, 9372TX NXOS, C9372PX NXOS, C9396PX NXOS, NXOSv.
Contexto histórico: con una versión particular de NX-OS, la etapa POAP aplicaría una configuración de ruptura en aquellos puertos con capacidad de ruptura. El comportamiento de POAP, introducido en POAP 7.0(3)I4(1), determina qué mapa de ruptura (por ejemplo, 10gx4, 50gx2, 25gx4 o 10gx2) muestra el vínculo conectado al servidor DHCP. Si la interrupción no se admite en ninguno de los puertos, POAP omite el proceso de ruptura dinámica. Una vez completado el bucle de ruptura, POAP continúa con la fase de detección de DHCP con normalidad. Apstra revierte cualquier configuración de ruptura que se haya representado durante la etapa POAP para garantizar que los puertos vuelvan a la velocidad predeterminada aplicando el comando de negación.
Soporte de números de secuencia : aplicable a la ruta del sistema autónomo (AS). Habilite cuando el dispositivo admita números de secuencia. Apstra secuencias en la lista de entradas para resecuenciar y generar configuración de la siguiente manera:
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$
Los números 5 y 15 son números de secuencia aplicables a dispositivos que admiten la secuenciación AS.
El soporte de números de secuencia está habilitado para todos los perfiles de dispositivos de Cisco de forma predeterminada (excepto Cisco 3172PQ NXOS, que no admite números de secuencia). Para las plataformas que no admiten números de secuencia, deshabilitar esta característica garantiza que los números de secuencia AS se quiten del diccionario del modelo de dispositivo para evitar la adición y la negación en caso de que se vuelva a secuenciar algo. Este escenario no requiere representar nada en estas plataformas, ya que la entrada no se puede secuenciar.
Otras características compatibles , no disponibles en la GUI de Apstra, incluyen "vxlan", "bfd", "vrf_limit", "vtep_limit", "floodlist_limit", "max_l2_mtu" y "max_l3-mtu". Se pueden incluir en el backend con el siguiente formato:
clave : valor :: característica : feature_properties Ejemplo: 32 vtep_limit: 32
Puertos
La sección puertos define los tipos de puertos disponibles, sus capacidades y cómo están organizados.
Cada puerto contiene una colección de transformaciones de velocidad admitidas. Cada transformación representa la capacidad de ruptura (como un puerto de 1-40GBe que se divide en puertos de 4-10GBe) y, por lo tanto, contiene una colección de interfaces.
Ejemplo: Si el puerto 1 es un puerto QSFP28 con capacidad de ruptura 100->4x10, 100->1x40, entonces el puerto 1 tiene una colección de tres transformaciones, una para rupturas 4x10, 1x40 y 1x100. El elemento de transformación en la colección que representa el 4x10 tiene una colección de 4 interfaces, 1x40 y 1x100 tiene una colección de 1 interfaz.
Los parámetros de puertos incluyen los siguientes detalles:
Descripción de la sección Puertos | |
---|---|
Índice de puerto (port_id: entero) | Indica un puerto único en la colección de puertos del perfil de dispositivo. |
Índice de fila (row_id: entero) | Representa las dimensiones de arriba a abajo del panel de puertos. Muestra dónde se coloca el puerto en el panel del dispositivo. Por ejemplo, en un panel con dos filas y muchas columnas, el índice de fila es "1" o "2". |
Índice de columna (column_id: entero) | Representa las dimensiones de izquierda a derecha del panel de puertos. Muestra dónde se coloca el puerto en el panel del dispositivo. Por ejemplo, en un panel con treinta y dos puertos y dos filas, el índice de columna está en el rango de "1" a "16". |
Índice del panel (panel_id: entero) | Indica el panel al que pertenece el puerto, dada la disposición física de los puertos en la especificación del dispositivo. |
ID de ranura (slot_id: entero) | Representa el módulo al que pertenece el puerto. Un conmutador modular tiene más de una ranura. En los dispositivos de función de red de función fija, el ID de ranura suele ser "0". |
Dominio de error (failure_domain_id: entero) | Indica si varios paneles dependen de los mismos componentes de hardware. Se utiliza al crear el plan de cableado para garantizar que dos vínculos ascendentes no estén conectados al mismo dominio de error. |
Tipo de conector (connector_type: cadena) | Tipo de transceptor de puerto. Las capacidades de velocidad del puerto están directamente relacionadas con el tipo de conector, dado que ciertos tipos de conectores pueden ejecutarse a ciertas velocidades. Por ejemplo, "sfp", "sfp28", "qsfp", "qsfp28". |
Transformaciones (transformaciones: lista) | Posibles interrupciones para el puerto. Cada entrada es una velocidad admitida específica. Cada transformación tiene una colección de interfaces. |
Número de interfaces (interfaces:list) | Depende de la capacidad de ruptura del puerto. Para una transformación que representa una determinada velocidad de interrupción, las interfaces contienen información sobre los nombres de interfaz y la configuración de interfaz con los que se pretende configurar el dispositivo. La información de "configuración" es crucial para configurar las interfaces correctamente en el dispositivo. |
Según la información del sistema operativo introducida en el campo selector del perfil de dispositivo, la GUI de Apstra muestra los campos de configuración aplicables. Los campos varían según el sistema operativo del proveedor (como se encuentra en los ejemplos a continuación). Cuando se crea o edita un perfil de dispositivo, la "configuración" se valida a partir del esquema específico del proveedor que se indica a continuación.
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 no utiliza necesariamente toda la información anterior para el modelado. Se pone a disposición de otras herramientas de orquestación de la API de Apstra para su recopilación y uso.
Ver perfiles de dispositivos
En el menú de navegación izquierdo de la GUI de Apstra, vaya a Dispositivos > perfiles de dispositivo para ir a la vista de tabla de perfiles de dispositivos. Puede crear, clonar, editar y eliminar perfiles de dispositivos.