Profils d’appareils
Vue d’ensemble du profil d’appareil
Les profils d’appareils définissent les capacités des périphériques matériels pris en charge. Certaines fonctionnalités ont des comportements différents selon les versions de NOS et, par conséquent, les fonctionnalités sont exprimées par version de NOS. Par défaut, la version correspond à toutes les versions prises en charge. Au fur et à mesure que des modèles de matériel supplémentaires sont qualifiés, ils sont ajoutés à la liste des équipements éligibles.
Les profils d’appareils sont associés à des périphériques logiques (abstractions de périphériques physiques) pour créer des mappages d’interface.
Les sections suivantes décrivent les paramètres de profil d’appareil.
- Résumé
- Sélecteur
- Capacités
- Fonctionnalités prises en charge (Cisco uniquement)
- Ports
- Afficher les profils des appareils
Résumé
Description de | la section Résumé |
---|---|
Nom | Nom du profil de l’appareil. 64 caractères ou moins. |
Nombre d’emplacements | Nombre d’emplacements ou de modules sur l’appareil. Les commutateurs modulaires ont plusieurs emplacements. |
Partir de l’ID |
Sélecteur
La section Sélecteur contient des informations spécifiques au périphérique pour faire correspondre le périphérique matériel au profil de périphérique, comme décrit ci-dessous :
Description de | la section Sélecteur |
---|---|
Fabricant | Sélectionné dans la liste déroulante |
Modèle | Détermine si un profil de périphérique peut être appliqué à un matériel spécifique. Sélectionné dans la liste déroulante ou entré en tant qu’expression régulière (regex). |
Famille de systèmes d’exploitation | Définit comment la configuration est générée, comment les commandes de télémétrie sont restituées et comment la configuration est déployée sur un appareil. Sélectionné dans la liste déroulante. |
Version | Détermine si un profil de périphérique peut être appliqué à des versions de système d’exploitation spécifiques. Sélectionné dans la liste déroulante ou entré en tant que regex. Si la version du système d'exploitation d'un appareil ne correspond pas à la version du système d'exploitation du profil d'appareil, l'appareil sera à l'état ERREUR (Périphériques > Appareils gérés). |
Capacités
Vous pouvez tirer parti des fonctionnalités matérielles et logicielles définies dans cette section dans d’autres parties de l’environnement Apstra pour adapter la configuration générée ou éviter une situation incompatible. À l’exception d’ECMP, les capacités matérielles modifient le rendu ou le déploiement de la configuration. Les fonctionnalités incluent les détails suivants :
Description de la section Fonctionnalités | |
---|---|
CPU (cpu :chaîne) | Décrit l’architecture CPU du périphérique. Par exemple : « x86 » |
Userland (bits) (userland :integer) | Type de zone utilisateur (binaire d’application/noyau) prise en charge par l’appareil. Par exemple : « 32 » ou « 64 ». |
RAM (Go) (ram :entier) | Quantité de mémoire sur l’appareil. Par exemple : « 16 » |
Limite ECMP (ecmp_limit :entier) | Nombre maximal d’itinéraires multichemins à coût égal. Par exemple : « 64 ». Ce champ modifie la configuration BGP sur l’appareil (ecmp max-paths). |
Format (form_factor :chaîne) | Nombre d’unités de rack (RU) sur l’appareil. Par exemple : « 1RU », « 2RU », « 6RU », « 7RU », « 11RU »,"13RU » |
ASIC (asic :chaîne) | Le chipset du commutateur ASIC. Par exemple : « T2 », « T2(3) », « T2(6) », « Arad(3) », « Alta », « TH », « Spectrum », « XPliant XP80 », « ASE2 », « Jéricho ». Utilisé pour faciliter la télémétrie, le rendu de la configuration et la sémantique du routage VXLAN |
LXC (lxc_support : booléen) | Sélectionné si le périphérique prend en charge les conteneurs LXC. |
ONIE (onie : booléen) | Sélectionné si l’appareil prend en charge ONIE. |
Fonctionnalités prises en charge (Cisco uniquement)
COPP - Lorsque Control Plane Policing est activé (COPP), une configuration de profil CoPP stricte est rendue pour la version spécifiée de NX-OS, ce qui entraîne le rendu de configuration suivant :
terminal dont-ask copp profile strict
Cette configuration de type « don’t ask » de terminal n’est nécessaire que lors de l’activation de la configuration stricte du profil CoPP, car nous ne voulons pas que NX-OS attende la confirmation :
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 activé par défaut, sauf pour Cisco 3172PQ NXOS. Vous pouvez spécifier plusieurs versions.
Breakout - Activez breakout pour indiquer que les ports des modules spécifiés peuvent être divisés en ports split à vitesse inférieure.
Le logiciel Apstra détache d’abord tous les ports compatibles breakout, puis applique les commandes de breakout appropriées en fonction de l’intention. Ceci est basé sur l’hypothèse que la commande no interface breakout module<module_number>
de négation globale peut toujours être appliquée avec succès à un module avec des ports de breakout. (Ceci est idempotent lorsqu’il est appliqué sur des ports qui ne sont pas ventilés.) Cependant, nous reconnaissons que cette hypothèse peut être brisée dans les futures versions de NX-OS, ou avec une certaine combinaison de câbles / émetteurs-récepteurs insérés dans des ports capables de breakout.
L’exemple ci-dessous concerne la commande negation pour un module (1) dont la valeur True est définie :
no interface breakout module 1 !
Étant donné que la commande negation est toujours applicable par module, chaque module est spécifié individuellement. En voici les avantages :
- Dans les systèmes modulaires, toutes les cartes de ligne ne sont pas dotées de ports breakout.
- Dans les systèmes non modulaires, les ports de rupture ne se trouvent pas toujours dans le module 1.
Breakout est activé par défaut, sauf pour les périphériques suivants avec des modules incapables de rompre les ports : 3172PQ NXOS, 9372TX NXOS, C9372PX NXOS, C9396PX NXOS, NXOSv.
Contexte historique - Avec une version particulière de NX-OS, l’étape POAP appliquerait la configuration breakout sur les ports qui sont capables de breakout. Le comportement POAP, introduit dans le POAP 7.0(3)I4(1), détermine quelle carte de répartition (par exemple, 10gx4, 50gx2, 25gx4 ou 10gx2) affiche le lien connecté au serveur DHCP. Si breakout n’est pris en charge sur aucun des ports, POAP ignore le processus de breakout dynamique. Une fois la boucle d’évasion terminée, POAP poursuit la phase de découverte DHCP normalement. Apstra rétablit toute configuration de breakout qui aurait pu être rendue pendant l’étape POAP pour s’assurer que les ports sont remis à la vitesse par défaut en appliquant la commande negation.
Prise en charge des numéros de séquence - Applicable au chemin du système autonome (AS). Activez cette option lorsque l’appareil prend en charge les numéros de séquence. Séquences Apstra dans la liste des entrées pour reséquencer et générer la configuration comme suit :
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$
Les nombres 5 et 15 sont des numéros de séquence applicables aux appareils qui prennent en charge le séquençage AS.
La prise en charge des numéros de séquence est activée par défaut pour tous les profils de périphériques Cisco (à l’exception de Cisco 3172PQ NXOS, qui ne prend pas en charge les numéros de séquence). Pour les plates-formes qui ne prennent pas en charge les numéros de séquence, la désactivation de cette fonctionnalité garantit que les numéros de séquence AS sont supprimés du dictionnaire de modèle de périphérique afin d’éviter l’ajout et la négation en cas de reséquence. Ce scénario n'a aucune exigence de rendu sur ces plates-formes, car l'entrée ne peut pas être séquencée.
Autres fonctionnalités prises en charge - non disponibles à partir de l’interface graphique d’Apstra incluent « vxlan », « bfd », « vrf_limit », « vtep_limit », « floodlist_limit », « max_l2_mtu » et « max_l3-mtu ». Ils peuvent être inclus dans le backend en utilisant le format suivant :
Clé : Valeur :: Caractéristique : feature_properties Exemple : 32 vtep_limit : 32
Ports
La section ports définit les types de ports disponibles, leurs fonctionnalités et leur organisation.
Chaque port contient un ensemble de transformations de vitesse prises en charge. Chaque transformation représente la capacité de rupture (par exemple, un port 1-40GBe éclatant vers 4-10GBe) et contient donc un ensemble d’interfaces.
Exemple : Si le port 1 est un port QSFP28 compatible 100->4x10, 100->1x40, le port 1 possède une collection de trois transformations, une pour les breakouts 4x10, 1x40 et 1x100. L’élément de transformation dans la collection qui représente le 4x10 a une collection de 4 interfaces, 1x40 et 1x100 a une collection de 1 interface.
Les paramètres des ports incluent les détails suivants :
Description de | la section Ports |
---|---|
Index de port (port_id : entier) | Indique un port unique dans la collection de ports dans le profil de périphérique. |
Index de ligne (row_id : entier) | Représente les dimensions de haut en bas du panneau de ports. Affiche l'emplacement du port dans le panneau du périphérique. Par exemple, dans un panneau avec deux lignes et de nombreuses colonnes, l’index de ligne est « 1 » ou « 2 ». |
Index des colonnes (column_id : entier) | Représente les dimensions de gauche à droite du panneau de ports. Affiche l'emplacement du port dans le panneau du périphérique. Par exemple, dans un panneau avec trente-deux ports et deux lignes, l’index de colonne est compris entre « 1 » et « 16 ». |
Index du panel (panel_id : entier) | Indique le panneau auquel appartient le port compte tenu de la disposition physique des ports dans la spécification du périphérique |
ID d’emplacement (slot_id : entier) | Représente le module auquel appartient le port. Un commutateur modulaire comporte plus d’un emplacement. Dans les équipements à fonction réseau à fonction fixe, l’ID d’emplacement est généralement « 0 ». |
Domaine d’échec (failure_domain_id : entier) | Indique si plusieurs panneaux reposent sur les mêmes composants matériels. Utilisé lors de la création du plan de câblage pour s’assurer que deux liaisons montantes ne sont pas attachées au même domaine de défaillance. |
Type de connecteur (connector_type : chaîne) | Type d’émetteur-récepteur de port. Les capacités de vitesse du port sont directement liées au type de connecteur, étant donné que certains types de connecteurs peuvent fonctionner à certaines vitesses. Par exemple, « sfp », « sfp28 », « qsfp », « qsfp28 ». |
Transformations (transformations : liste) | Breakouts possibles pour le port. Chaque entrée est une vitesse prise en charge spécifique. Chaque transformation possède une collection d’interfaces. |
Nombre d’interfaces (interfaces :liste) | En fonction de la capacité de rupture du port. Pour une transformation représentant une certaine vitesse de rupture, les interfaces contiennent des informations sur les noms d’interface et les paramètres d’interface avec lesquels le périphérique souhaite être configuré. Les informations de « paramétrage » sont cruciales pour configurer correctement les interfaces sur l’appareil. |
En fonction des informations du système d'exploitation saisies dans le champ de sélection du profil d'appareil, l'interface graphique d'Apstra affiche les champs de paramètres applicables. Les champs varient selon le système d’exploitation du fournisseur (comme indiqué dans les exemples ci-dessous). Lorsqu’un profil d’appareil est créé ou modifié, le « paramètre » est validé à partir du schéma spécifique au fournisseur, comme indiqué ci-dessous :
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 n’utilise pas nécessairement toutes les informations ci-dessus à des fins de modélisation. Il est mis à la disposition d'autres outils d'orchestration de l'API Apstra pour la collecte et l'utilisation.
Afficher les profils des appareils
Dans le menu de navigation de gauche de l’interface graphique d’Apstra, accédez à Devices > Device Profiles (Appareils profils d’appareils) pour accéder à la table des profils d’appareils. Vous pouvez créer, cloner, modifier et supprimer des profils d’appareil.