User Tools

Site Tools


informatique:extreme_networks

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatique:extreme_networks [2020/06/08 08:30] – [Gestion des utilisateurs] pteuinformatique:extreme_networks [2023/12/21 15:11] (current) – [Firmware] version recommandée pteu
Line 4: Line 4:
 =====Remarques générales===== =====Remarques générales=====
  
-Par défaut les switchs sont configurés avec 2 VRs (virtuals router), chacun doté d'une table de routage étanche :+Par défaut les switchs sont configurés avec 2 VRs (virtual router), chacun possédant une table de routage étanche :
   * **VR-Mgmt**, le VR de management avec le port d'admin (Mgmt), dont le vlan est 4095   * **VR-Mgmt**, le VR de management avec le port d'admin (Mgmt), dont le vlan est 4095
   * **VR-Default**, celui dans lequel tous les autres ports sont configurés   * **VR-Default**, celui dans lequel tous les autres ports sont configurés
Line 10: Line 10:
 Pour les versions 16 et antérieures, le SSH est une fonctionnalité optionnelle, installable via un paquet téléchargeable dans le "download center" du site officiel (en saisissant le serial d'un équipement). Pour les versions 16 et antérieures, le SSH est une fonctionnalité optionnelle, installable via un paquet téléchargeable dans le "download center" du site officiel (en saisissant le serial d'un équipement).
  
-Par défaut les résultats de commandes s'affichent page par page ; pour afficher tout le retour en une seule fois (pour supprimer les "Press <SPACE> to continue or <Q> to quit: ~more" (''terminal length'' chez Cisco)) :+Par défaut les résultats de commandes s'affichent page par page ; pour afficher tout le retour en une seule fois (pour supprimer les "Press <SPACE> to continue or <Q> to quit: ~more" (''terminal length 0'' chez Cisco)) :
 <code bash> <code bash>
 +disable cli paging
 +enable cli paging
 +
 +# pour les versions EXOS antérieures à 30:
 disable clipaging disable clipaging
 enable clipaging enable clipaging
Line 52: Line 56:
 <code bash> <code bash>
 show switch          # modèle, infos SNMP, heure, uptime show switch          # modèle, infos SNMP, heure, uptime
 +# nb : pour les stacks, c'est l'uptime système qui est remonté ;
 +# pour obtenir les uptimes individuels de chaque slot :
 +debug hal show platform cardInfo | i "Slot:|PowerOn"
 +
 show version         # version firmware, SN, liste des modules show version         # version firmware, SN, liste des modules
 show temperature     # température des sondes show temperature     # température des sondes
Line 102: Line 110:
 ====Management==== ====Management====
  
-Configurer une adresse IP sur le port de management ''Mgmt'' (situé physiquement à côté du port Console) :+Configurer une adresse IP sur le port de management ''Mgmt'' (situé physiquement au dessus du port Console) :
 <code bash> <code bash>
 configure vlan Mgmt ipaddress 10.0.0.1 255.255.255.0 configure vlan Mgmt ipaddress 10.0.0.1 255.255.255.0
Line 109: Line 117:
 configure iproute add default 10.0.0.254 vr VR-Mgmt configure iproute add default 10.0.0.254 vr VR-Mgmt
 </code> </code>
-Ce port est affecté au vlan Mgmt, lui-même attribué au VR-Mgmt. Cela signifie qu'il est indépendant de la configuration des autres ports et routes du switch, ce qui permet d'avoir un accès indépendant pour plus de sécurité. Par défaut tous les autres ports sont positionnés dans le VR-Default.+Ce port est affecté au vlan Mgmt, lui-même attribué au VR-Mgmt. Cela signifie qu'il est indépendant de la configuration des autres ports et routes du switch, ce qui permet d'avoir un accès indépendant pour plus de sécurité. Ce port de mgmt n'est [[https://extreme-networks.my.site.com/ExtrArticleDetail?an=000059306|pas reconfigurable et ne peut pas être supprimé du VLAN 4095 de management]]. Par défaut tous les autres ports sont positionnés dans le VR-Default.
  
 Si on ne veut pas se servir de ce port de Mgmt dédié, on peut tout-à-fait configurer une IP sur un VLAN du VR de prod, par exemple le VLAN "Default" : Si on ne veut pas se servir de ce port de Mgmt dédié, on peut tout-à-fait configurer une IP sur un VLAN du VR de prod, par exemple le VLAN "Default" :
Line 117: Line 125:
 </code> </code>
  
-Il est possible de positionner une adresse par VLAN si on le souhaite. Si on veut activer le routage entre ces VLANs, il faut activer l'ipforwarding dessus (cf [[informatique:extreme_networks#Routage|routage]])+Au passage, pour déconfigurer l'adresse (il faut soit être connecté en console, soit une autre interco pour ne pas perdre la main) : 
 +<code bash>  
 +unconfigure vlan Default ipaddress  
 +</code> 
 + 
 +Il est possible de positionner une adresse par VLAN si on le souhaite. Si on veut activer le routage entre ces VLANs, il faut activer l' ''ipforwarding'' dessus (cf [[informatique:extreme_networks#Routage|routage]])
  
 Afficher et modifier la configuration de l'admin du switch (SSH, TELNET, idle-timeout, etc) Afficher et modifier la configuration de l'admin du switch (SSH, TELNET, idle-timeout, etc)
 <code bash> <code bash>
-show management+show switch management
  
-configure idletimeout [0-240 min]+CLI idle timeout                 : Enabled (60 minutes) 
 +CLI max number of login attempts : 3 
 +CLI max number of sessions       : 8 
 +CLI paging                       : Enabled 
 +CLI space-completion             : Disabled (this session only) 
 +CLI configuration logging        : Enabled (without expansion) 
 +CLI journal size                 : 100 
 +CLI password prompting only      : Disabled 
 +CLI display moved-keywords       : Hidden 
 +CLI moved-keywords hidden release: 31.7 
 +CLI RADIUS cmd authorize tokens  : 2 
 +CLI scripting                    : Disabled (this session only) 
 +CLI scripting error mode         : Ignore-Error (this session only) 
 +CLI script search path           : ".:/usr/local/cfg" (this session only) 
 +CLI persistent mode              : Persistent (this session only) 
 +CLI prompting                    : Enabled (this session only) 
 +CLI screen size                  : 68 Lines 135 Columns (this session only) 
 +CLI refresh                      : Enabled 
 +CLI history expansion            : Disabled 
 +Image integrity checking         : Off 
 +Current system port notation     : port 
 +Configured system port notation  : port 
 +Telnet access                    : Disabled (tcp port 23 vr all) 
 +                                 : Access Profile : not set 
 +SSH access                       : Enabled (Key valid, tcp port 22 vr all) 
 +                                 : Secure-Mode    : Off 
 +                                 : Access Profile : not set 
 +SSH2 idle time                   : 60 minutes 
 +SSH2 rekey interval              : 4096 MB and no time limit 
 +Web access                       : Disabled (tcp port 80) 
 +                                 : Access Profile : not set 
 +Total Read Only Communities      : 3 
 +Total Read Write Communities     : 0 
 +RMON                             : Disabled 
 +SNMP access                      : Enabled 
 +                                 : Access Profile : not set 
 +SNMP Notifications               : Enabled 
 +SNMP Notification Receivers  : None 
 +SNMP stats:     InPkts 0       OutPkts         Errors 0       AuthErrors 0 
 +                Gets         GetNexts  0       Sets         Drops      0 
 +SNMP traps:     Sent         AuthTraps Enabled 
 +SNMP inform:    Sent         Retries         Failed 0
 </code> </code>
  
Line 133: Line 187:
 start process "exsshd" start process "exsshd"
 restart process "exsshd" restart process "exsshd"
 +
 +# terminer (kill) un processus
 +terminate process <name> [forceful | graceful] {slot}
 </code> </code>
  
Line 163: Line 220:
 Vérifications : Vérifications :
 <code bash> <code bash>
-show management+show ssh2 
 +show switch management
 </code> </code>
  
 ===Filtrage des accès SSH=== ===Filtrage des accès SSH===
  
-Protection de l'accès SSH par ACL (ici nommée protect-ssh)+Protection de l'accès SSH par ACL (contenue dans le fichier **protect-ssh.pol**)
 <code bash> <code bash>
 configure ssh2 access-profile protect-ssh configure ssh2 access-profile protect-ssh
Line 200: Line 258:
 # autres comptes administrateur : # autres comptes administrateur :
 create account admin toto <PWD> create account admin toto <PWD>
 +# ou "create account admin titi encrypted "$5$fusqbipgusdgfdfg4sfh*mdù""
  
 # pour les comptes utilisateurs + mot de passe # pour les comptes utilisateurs + mot de passe
 create account user tata <PWD> create account user tata <PWD>
 +
 +# pour les compte d'interception légale :
 +create account lawful-intercept <LOGIN> <PWD>
 </code> </code>
-Il n'existe que 2 niveaux de privilège, non configurables : RO (lecture seule) et RW (admin).+ 
 +Il existe 2 niveaux de privilège classiques, non configurables : user (lecture) et admin (root). Le "Lawful Intercept Account" est un peu spécial ; comme son nom l'indique il est conçu pour les interceptions légales, et possède les particularités suivantes : il 
 +  * n'apparait pas dans la conf 
 +  * n'est pas loggué 
 +  * n'est pas désactivable 
 +  * est volatile (il doit être recréé à chaque redémarrage) 
 +  * permet uniquement de configurer des ACLs dynamiques et des mirroring de ports non sauvegardés dans la conf (ils disparaissent après reboot)
  
 Modifier le mot de passe d'un compte existant : Modifier le mot de passe d'un compte existant :
 <code bash> <code bash>
-configure account <utilisateur> <nouveau MDP>+configure account <utilisateur> password 
 + <nouveau MDP>
 </code> </code>
  
Line 235: Line 304:
 ===Failsafe account=== ===Failsafe account===
  
-Le **failsafe account** est un compte préconfiguré, n'apparaissant pas dans un ''show conf'', qui permet de se connecter au switch quand on a perdu le mot de passe d'accès au switch (utilisable uniquement via la console ou control fabric par défaut). Son login est "ONE TIME FAILSAFE" par défaut, il affiche un challenge à envoyer au GTAC qui génère un OTP à saisir. Pour le désactiver :+Le **failsafe account** est un compte préconfiguré, n'apparaissant pas dans un ''show conf'', qui permet de se connecter au switch quand on a perdu le mot de passe d'accès au switch (utilisable uniquement via la console ou control fabric par défaut). Son login est "ONE TIME FAILSAFE" par défaut, il affiche un challenge à envoyer au GTAC qui génère un OTP à saisir. Pour vérifier s'il est activé : ''show failsafe-account'' 
 + 
 +Pour le désactiver :
 <code bash> <code bash>
 configure failsafe-account deny all configure failsafe-account deny all
Line 242: Line 313:
 cf : https://gtacknowledge.extremenetworks.com/articles/How_To/How-to-access-an-EXOS-switch-using-a-one-time-failsafe-password cf : https://gtacknowledge.extremenetworks.com/articles/How_To/How-to-access-an-EXOS-switch-using-a-one-time-failsafe-password
  
 +====Radius / mgmt-access====
  
 +Pour utiliser une d'utilisateur base distante et centralisé, on peut configurer le client Radius :
 +<code bash>
 +configure radius mgmt-access primary server 10.0.1.1 1812 client-ip 10.0.2.254 vr VR-Default
 +configure radius mgmt-access primary shared-secret <MDP défini sur le serveur Radius>
 +enable radius mgmt-access
 +</code>
 +====Politique de mots de passe====
 +
 +Pour configurer une politique de mot de passe :
 +<code bash>
 +SW# configure account all password-policy ?
 +  char-validation            Password character validation
 +  history                    Check passwords against ones stored in history
 +  lockout-on-login-failures  Lockout account in case of multiple login failures
 +  lockout-time-period        Period of time to lockout account in case of multiple login failures
 +  max-age                    Maximum age of password, between 1 and 365 days
 +  min-age                    Minimum age of password, between 1 and 365 days
 +  min-different-characters   Minimum number of different characters between old and new password
 +  min-length                 Minimum length of password, between 1 and 32 characters
 +</code>
 +
 +Le nombre max de mauvais logins est configurable avec la commande :
 +<code bash>
 +configure cli max-failed-logins <1-10>
 +</code>
 +
 +Si un compte est verrouillé par suite de trop de tentatives de login incorrectes, on verra dans les logs le message:
 +<code bash>
 +<Warn:AAA.accountLockedOut> Account for user 'admin' locked out!
 +</code>
 +
 +Pour le débloquer : ''clear account admin lockout'' ->
 +<code bash>
 +<Info:AAA.accountMod> User 'admin2' modified clear lockout setting for 'admin' user(s).
 +</code>
 ====DNS==== ====DNS====
  
Line 372: Line 479:
 # logguer les commandes passées sur le switch # logguer les commandes passées sur le switch
 enable cli-config-logging enable cli-config-logging
 +# nouvelle syntaxe à partir d'EXOS v30
 +enable cli config-logging
 +
 +# Active la "CLI history expansion" qui active la prise en charge
 +# du rappel de commande de bash : (!motif_rechch:motif_rempl)
 +enable cli history expansion permanent
  
 # lister toutes les familles de log possible # lister toutes les familles de log possible
Line 406: Line 519:
 ====Firmware==== ====Firmware====
  
-Pour obtenir la version d'EXOS (ici 21.1.1.4) :+Pour obtenir la version d'EXOS courante (ici 21.1.1.4) :
 <code bash> <code bash>
 show version show version
Line 421: Line 534:
 </code> </code>
 Cette commande retourne également la liste des commutateurs de la stack et les modules additionnels, ainsi que leurs //serial number// respectifs (ici SN=1531N-01234). Cette commande retourne également la liste des commutateurs de la stack et les modules additionnels, ainsi que leurs //serial number// respectifs (ici SN=1531N-01234).
 +
 +Consulter la page [[https://www.extremenetworks.com/support/compatibility-matrices/sw-release-extremexos-eos/|ExtremeXOS and Switch Engine Release Recommendations]] pour connaitre la version recommandée par le constructeur.
  
 ===MAJ firmware=== ===MAJ firmware===
Line 428: Line 543:
 <code bash> <code bash>
 download image  1.1.1.1 <filename> vr "VR-Default" secondary download image  1.1.1.1 <filename> vr "VR-Default" secondary
 +</code>
 +
 +Téléchargement sur la partition inactive + installation + reboot (all-in-one)
 +<code bash>
 +download image 1.1.1.1 summitX-31.7.2.28-patch1-38.xos vr VR-Mgmt install reboot
 </code> </code>
  
Line 462: Line 582:
 </code> </code>
  
 +===Erreurs rencontrées===
 +
 +  * ''Couldn't write to "/scratch/summitX-30.7.1.1-patch1-23.xos": Cannot allocate memory''
 +Se produit au milieu du transfert scp pour télécharger l'image ; c'est un erreur aléatoire corrigée après passage en v30.7 : //Randomly following the completion of the SCP file transfer between the switch and the source point the SSH service on the switch restarts and re-attempts to bind to TCP port 22; already in use.// ([[https://gtacknowledge.extremenetworks.com/articles/Solution/000049463|source GTAC]]).
 +
 +Il faut donc relancer le scp et cela finit par fonctionner !
 +
 +  * ''Error:can't read "xmlData(reply.status)": no such element in array''
 +L'erreur apparait après l'installation d'une image sur le switch ''install image summitX-30.7.1.1-patch1-23.xos''. Il s'agit d'un plantage du processus hal : //Hal process is being hung and hal has not finished loading it// ([[https://gtacknowledge.extremenetworks.com/articles/Solution/Summit-Switch-Error-can-t-read-xmlData-reply-status-no-such-element-in-array|source GTAC]]) qui ne se résoud qu'avec un reboot du switch !
 +
 +  * ''Error: Failed to download image on Slot-3 - tftp: write error''
 +L'erreur apparait après téléchargement de l'image sur le master, pendant le transfert vers les autres slots de la stack, lors de la MAJ de le 22 vers la v30.7. En passant par la version intermédiaire 30.2.1.8, le problème n'apparait plus. ([[https://gtacknowledge.extremenetworks.com/articles/Solution/000043762|source GTAC]])
 ====Commandes UNIX-like==== ====Commandes UNIX-like====
  
Line 537: Line 669:
 Total number of MLD control packets snooped = 0. Total number of MLD control packets snooped = 0.
 Total number of MLD data packets switched = 0. Total number of MLD data packets switched = 0.
 +
 +# alternative à "sh l2stats"
 +run script spath-stats.py
 +
 +show ipstats ipv4 vlan Default
 +
 +debug hal show congestion
 +</code>
 +====Détecter une boucle====
 +
 +Trouver les ports qui génèrent une boucle avec l'ELRP (Extreme Loop Recovery Protocol) (c'est un test unique et non un service en arrière-plan) :
 +<code bash>
 +clear l2stats
 +# après quelques secondes, afficher les compteurs de chaque VLAN
 +show l2stats
 +
 +# à effectuer sur le VLAN qui possède le plus de paquets remontés à la CPU
 +# src: https://extremeportal.force.com/ExtrArticleDetail?an=000090973
 +enable elrp-client
 +configure elrp-client one-shot <vlan_name> ports all print-and-log
 +# après le test
 +disable elrp-client
 </code> </code>
  
Line 726: Line 880:
 # afficher les informations concernant le convertisseur (GBIC/SFP) branché sur le port # afficher les informations concernant le convertisseur (GBIC/SFP) branché sur le port
 sh port 2 transceiver information [ detail ] sh port 2 transceiver information [ detail ]
 +</code>
 +
 +Pour effacer les compteurs :
 +<code bash>
 +clear counters ports
 </code> </code>
  
Line 743: Line 902:
   * baisser le pourcentage du buffer partagé sur les autres interfaces   * baisser le pourcentage du buffer partagé sur les autres interfaces
   * si plusieurs ports provoquent la congestion au niveau de l'ASIC, répartir les congestionnés sur l'ensemble des ASICs disponibles (si c'est un stack, les répartir sur tous les slots)   * si plusieurs ports provoquent la congestion au niveau de l'ASIC, répartir les congestionnés sur l'ensemble des ASICs disponibles (si c'est un stack, les répartir sur tous les slots)
 +
 +Local fault/remote fault
 +Quand un port passe DOWN il affiche dans les logs la raison ''Local fault'' ou ''remote fault''. [[https://extremeportal.force.com/ExtrArticleDetail?n=000005204|D'après le GTAC]]:
 +  * une **local fault** est détectée par le switch lui-même, souvent dû à trop d'atténuation (mauvaise lumière)
 +  * **remote fault** est une erreur détectée et signalée par le switch d'en face
 +
  
 <code bash> <code bash>
Line 756: Line 921:
 show fdb ports <port> show fdb ports <port>
 show fdb vlan <vlan> show fdb vlan <vlan>
 +
 +# enregistrer une entrée statique dans le FDB
 +# create [fdbentry | fdb] <mac_addr> vlan <vlan_name> ports <port#>
 +create fdb 00:11:22:33:44:55 vlan v10_users ports 12
  
 # interroger la table ARP (association adresse IP <-> MAC) # interroger la table ARP (association adresse IP <-> MAC)
Line 768: Line 937:
 show iparp vlan <vlan> show iparp vlan <vlan>
 </code> </code>
 +
 +# créer une association ARP statique :
 +configure iparp add 10.0.20.2 vr VR-Default bc:30:5b:12:34:56
  
 [[https://gtacknowledge.extremenetworks.com/articles/Q_A/How-to-check-ports-for-possible-blocking|Commande de diagnostique bas niveau]] : [[https://gtacknowledge.extremenetworks.com/articles/Q_A/How-to-check-ports-for-possible-blocking|Commande de diagnostique bas niveau]] :
Line 902: Line 1074:
 </code> </code>
  
 +====mac-locking====
 +
 +Le contrôle d'accès par adresse MAC / mac-locking permet de limiter l'accès d'un port à une ou des adresses MAC. Dans un premier temps on place le switch dans une période d’apprentissage des adresses, à l'issue de laquelle on fige les couples port;adresse MAC. Toute nouvelle adresse MAC dépassant le seuil d'adresse configurée par port provoquera une coupure de ce dernier et l'émission d'une alerte.
 +
 +Exemple rapide de mise en place :
 +<code bash>
 +# activation du mac-locking sur tous les ports "user" (pas l'uplink)
 +enable mac-locking ports 1-47
 +# configuration de l''apprentissage dynamique, limité à 1 adresse par port
 +# nb: pas d''aging = les MAC apprises restent liées à leur port, même si la MAC disparait de la FDB
 +configure mac-locking ports 1-47 first-arrival limit-learning 1
 +# activation du mac-locking
 +enable mac-locking
 +
 +# [ phase d''apprentissage ]
 +
 +# vérifs
 +show mac-locking stations ports 1-47
 +# on limite le nombre d''adresse à une par port
 +configure mac-locking ports 1-47 static limit-learning 1
 +# copie des MAC apprises en static
 +configure mac-locking ports 1-47 first-arrival move-to-static
 +# vérifs
 +show mac-locking ports 1-47
 +show mac-locking stations ports 1-47
 +# configurer les actions si dépassement de seuil (violation)
 +configure mac-locking ports 1-47 learn-limit-action disable-port
 +</code>
 +
 +Vérifications
 +<code bash>
 +show mac-locking ports 1-47
 +show mac-locking stations ports 1-47
 +
 +# ajouter ou supprimer une MAC d''un port
 +configure mac-locking ports 47 static [add | enable | disable] @MAC
 +</code>
 +
 +====authentification par mac====
 +
 +On peut également faire vérifier l'adresse MAC d'un port par un serveur Radius, et si validé, basculer ce port sur le VLAN envoyé par le serveur Radius.
 +
 +===Configuration côté switch===
 +<code bash>
 +# création du VLAN d'accueil (VLAN par défaut si MAC non authentifiée) et 10 (VLAN utilisateur)
 +create vlan v10_Users tag 10
 +create vlan v666_Accueil tag 666
 +!
 +# configuration du serveur Radius
 +configure radius netlogin primary server 10.4.1.1 1814 client-ip 10.5.255.253 vr VR-Default
 +configure radius netlogin primary shared-secret encrypted "blablahashé"
 +!
 +# configuration de l'authentification par adresse MAC
 +
 +configure netlogin vlan v666_Accueil
 +enable netlogin mac 
 +configure netlogin mac authentication database-order radius
 +# on active la protection MAC sur les port 1 à 8 (arbitraire)
 +enable netlogin ports 1-8 mac 
 +configure netlogin add mac-list ff:ff:ff:ff:ff:ff 48
 +!
 +enable radius
 +enable radius netlogin
 +</code>
 +
 +===Configuration côté serveur Radius===
 +Dans le cas de freeradius, il faut :
 +* ajouter l'IP du switch (10.5.255.253) et son "secret" dans clients.conf
 +* activer le plugin **authorized_macs**
 +* peupler le fichier **authorized_macs** avec la liste des adresses MAC permises (format 00-11-22-33-44-55)
 +* dans la section authorize de la configuration du site :
 +<file site-enabled/mac-auth>
 +[...]
 +authorize {
 +   preprocess
 +   # convertir l'@ mAC dans le bon format
 +   rewrite_calling_station_id
 +   #auth_log
 +   authorized_macs
 +   if (ok) {
 +      # The MAC address was found, so update Auth-Type to accept this auth.
 +      update control {
 +         Auth-Type := Accept
 +      }
 +      update reply {
 +         Tunnel-Type := VLAN
 +         Tunnel-Medium-Type := IEEE-802
 +         Tunnel-private-Group-ID := 100
 +      }
 +   }
 +}
 +[...]
 +</file>
  
 =====Spanning-tree===== =====Spanning-tree=====
Line 919: Line 1184:
 # les bridges sous Linux peuvent en générer par exemple # les bridges sous Linux peuvent en générer par exemple
 configure stpd s0 ports link-type edge 1:14 edge-safeguard enable bpdu-restrict configure stpd s0 ports link-type edge 1:14 edge-safeguard enable bpdu-restrict
 +</code>
 +
 +====Fast convergence====
 +
 +Lors d'un changement de topology (TC), le switch vide sa table ARP ("//FDB Flushed due to topology Change//") et doit réapprendre toutes les correspondances IP <-> MAC, ce qui peut prendre du temps et de la CPU. Aussi il est possible d'activer la fast-convergence, qui permet de ne pas vider cette table suite à un TC ; pour activer cette fonctionnalité :
 +<code bash>
 +configure iparp fast-convergence on
 +
 +show iparp | grep Convergence
 +Fast Convergence :         On
 </code> </code>
  
Line 947: Line 1222:
 # changements de topo STP : # changements de topo STP :
 configure stpd s0 trap topology-change on configure stpd s0 trap topology-change on
 +configure stpd s0 trap topology-change edge-ports on
 +configure stpd s0 trap new-root on
  
 # ajouter des msg de log # ajouter des msg de log
Line 1012: Line 1289:
 Si on modifie une access-list déjà appliquée sur un port, il faut la réappliquer : Si on modifie une access-list déjà appliquée sur un port, il faut la réappliquer :
 <code bash> <code bash>
 +check policy internet-in
 refresh policy internet-in refresh policy internet-in
 </code> </code>
Line 1084: Line 1362:
   * tous les ports console sont utilisables mais seul celui du master peux modifier la configuration   * tous les ports console sont utilisables mais seul celui du master peux modifier la configuration
   * le numéro de slot du master apparaît dans le prompt (ex : **Slot-2 sw-cc-s1.7 #**)   * le numéro de slot du master apparaît dans le prompt (ex : **Slot-2 sw-cc-s1.7 #**)
 +
 +
 +====Créer une pile====
 +
 +refs: [[https://extremeportal.force.com/ExtrArticleDetail?an=000083347|Create a Stack With Summit Switches (gtacknowledge)]]
 +
 +Depuis une conf usine, se logguer sur le port CONsole en "admin" sans mot de passe, et quitter l'assistant de configuration qui s'affiche (''q'').
 +
 +Vérifier les prérequis : la version, la partition active et la licence doivent être les même sur chaque switch :
 +<code bash>
 +show licenses
 +show version images
 +show sys | grep Selected
 +</code>
 +
 +Éteindre les switchs et brancher leurs interfaces de stack (ports 40G éventuellement disponibles via l'ajout d'une carte VIM insérée à l'arrière de X460G2, par exemple). Pour une numérotation propre, brancher le port stack 2 du slot 1 sur le port stack 1 du slot 2, puis le port stack 2 du slot 2 sur le port stack 1 du slot 3, etc... jusqu'au port stack 2 du dernier slot qu'il faut brancher sur le port stack 1 du slot 1.
 +<code bash>
 +  -- slot 1(1)
 + /   slot 1(2)---slot 2(1)
 +               slot 2(2)---slot 3(1)
 +                           slot 3(2)
 +  \--------------------------------/
 +</code>
 +Ceci afin d'obtenir une topologie de stack en //ring//, qui supporte la coupure d'un lien, à la différence de la //daisy-chain// (branchement en cascade)
 +
 +Démarrer chaque switch et activer le stacking ; puis redémarrer :
 +<code bash>
 +enable stacking-support
 +reboot
 +</code>
 +
 +Vérification : une fois tous les slots redémarrés, on peut tous les voir avec ''show stacking''.
 +
 +Sur le master uniquement, lancer l'assistant de configuration :
 +<code bash>
 +enable stacking
 +
 +Execute "configure stacking easy-setup" ? Y
 +Executing "configure stacking easy-setup" command...
 +For every node in the 4-node stack, this command will:
 +- enable stacking
 +- configure a stack MAC address
 +- choose and configure a slot number (this node will be assigned to slot 1)
 +- configure redundancy to minimal (slot 1 will be the master node)
 +- configure the stacking protocol to enhanced
 +Upon completion, the stack will automatically be rebooted into the new configuration.
 +Warning: If stacking is already configured, this command will alter that configuration.
 +Do you wish to proceed? (y/N)Y
 +</code>
 +
 +Après un reboot automatique des tous les slots, on doit maintenant les retrouver avec la commande :
 +<code bash>
 +show stacking
 +Stack Topology is a Ring
 +Active Topology is a Ring
 +Node MAC Address    Slot  Stack State  Role     Flags
 +------------------  ----  -----------  -------  ---
 +*00:04:96:01:01:01  1     Active       Master   CA-
 + 00:04:96:02:02:02  2     Active       Backup   CA-
 + 00:04:96:03:03:03  3     Active       Standby  CA-
 +</code>
 +
  
 Commandes en vrac : Commandes en vrac :
Line 1105: Line 1445:
 # afficher les firmwares installés sur chaque partition de chaque slot : # afficher les firmwares installés sur chaque partition de chaque slot :
 show version images show version images
- 
-# 
-# monter une pile : 
-# 
-# sur tous les switchs 
-enable stacking-support 
-# sur le master uniquement 
-enable stacking 
-configure stacking easy-setup 
-configure stacking slot-number automatic 
-configure stacking priority 
  
 # pour re-numéroter le slot 5 (34:56) en 6 # pour re-numéroter le slot 5 (34:56) en 6
 configure stacking node-address 00:04:96:12:34:56 slot-number 6 configure stacking node-address 00:04:96:12:34:56 slot-number 6
  
-# permet d'activer ou désactiver la capacité des sw à être master ou pas+# permet d'activer ou désactiver la capacité des slots à être master ou pas
 configure stacking slot 2 master-capability on|off configure stacking slot 2 master-capability on|off
  
Line 1140: Line 1469:
 # forcer une bascule master -> backup (vérifier qu'ils soient sync) # forcer une bascule master -> backup (vérifier qu'ils soient sync)
 run failover run failover
 +
 +# afficher les infos sur les nodes
 +show node detail
 +Node Slot-1 information:
 +   Node State:    BACKUP
 +   Node Priority: 0
 +   Sw Health:     0
 +   Hw Health:     34
 +
 +Node Slot-2 information:
 +   Node State:    MASTER
 +   Node Priority: 0
 +   Sw Health:     0
 +   Hw Health:     34
 +
 +# afficher les infos sur les liens de stacking ; ici 4 liens 40G pour le stacking mode V320
 +debug hal show stacking ports
 +Stack Port Bundles
 +------------------
 +SPB 1: Type 5(80G), Status UP
 +  Member [0,101]  hg0: Configured <40G>, Operational <40G>
 +  Member [0,103]  hg2: Configured <40G>, Operational <40G>
 +SPB 2: Type 5(80G), Status UP
 +  Member [0,102]  hg1: Configured <40G>, Operational <40G>
 +  Member [0,104]  hg3: Configured <40G>, Operational <40G>
 </code> </code>
  
Line 1149: Line 1503:
     * même niveau de licence (''show licenses'')     * même niveau de licence (''show licenses'')
     * si le switch provient d'une précédente pile, déconfigurer d'abord le stacking dessus : ''disable stacking''     * si le switch provient d'une précédente pile, déconfigurer d'abord le stacking dessus : ''disable stacking''
-  * brancher le nouveau switch avec les câbles de stack, le booter et lui passer ces commande dessus :+    * qu'il possède des interfaces pour le stacker (QSFP+), comme une carte VIM par exemple (''show temperature'' ou ''show stacking-support'' permet de vérifier cela) 
 +  * activer le support du stacking : vérifier ''show stacking configuration'', et si la commande ne retourne rien : ''enable stacking-support'' ; puis rebooter ; puis éteindre le switch 
 +  * brancher le nouveau switch avec les câbles de stack, le booter et lui passer ces commandes dessus :
 <code bash> <code bash>
 configure stacking-support stack-port all selection native configure stacking-support stack-port all selection native
-enable stacking-support 
-reboot 
 enable stacking enable stacking
 reboot reboot
Line 1186: Line 1540:
 Stack Topology is a Ring Stack Topology is a Ring
 </code> </code>
 +
 +====Synchroniser les images d'un slot====
 +
 +Il peut arriver qu'une stack monte avec une image active sur des partitions différentes entre plusieurs slots ; par exemple :
 +<code bash>
 +show switch
 +[..]
 +Slot:             Slot-1 *                     Slot-2
 +                  ------------------------     ------------------------
 +Current State:    MASTER                       BACKUP (In Sync)
 +
 +Image Selected:   primary                      secondary
 +Image Booted:     primary                      secondary
 +Primary ver:      30.7.1.1                     30.5.1.15
 +                  patch1-23
 +Secondary ver:    30.2.1.8                     30.7.1.1
 +                                               patch1-23
 +</code>
 +
 +On voit que la version 30.7.1.1 est installé sur des partitions différentes : primaru sur le slot1 et secondary sur le slot 2. Cela fonctionne, mais les montées de versions génèrent une erreur : ''Error: active partitions must be the same across the stack''. Pour corriger cela il faut installer l'image courante (30.7.1.1patch1-23) sur la partition primary du slot 2:
 +<code bash>
 +install image inactive slot 2
 + This will overwrite the image installed on the secondary partition with the image installed on the primary partition.
 + Do you want to proceed? (y/N) Yes
 + Copying image to secondary partition... 100% complete.
 + Image installed to the secondary partition successfully.
 +</code>
 +
 +Puis définir cette partition comme active :
 +<code bash>
 +use image primary slot 2
 +
 +# vérification:
 +show slot 2 detail | grep ary
 +     Image Selected:      primary
 +     Image Booted:        secondary
 +     Primary ver:         30.7.1.1
 +     Secondary ver:       30.7.1.1
 +
 +# Puis, rebooter:
 +reboot
 +
 +# après reboot:
 +show switch
 +[..]
 +Slot:             Slot-1 *                     Slot-2
 +                  ------------------------     ------------------------
 +Current State:    MASTER                       BACKUP
 +
 +Image Selected:   primary                      primary
 +Image Booted:     primary                      primary
 +Primary ver:      30.7.1.1                     30.7.1.1
 +                  patch1-23                    patch1-23
 +Secondary ver:    30.2.1.8                     30.7.1.1
 +                                               patch1-23
 +</code>
 +
 ====Liens==== ====Liens====
   * [[https://gtacknowledge.extremenetworks.com/articles/How_To/Getting-started-with-Summit-Stacking|Getting started with Summit Stacking]]   * [[https://gtacknowledge.extremenetworks.com/articles/How_To/Getting-started-with-Summit-Stacking|Getting started with Summit Stacking]]
-    * et particulièrement : [[https://gtacknowledge.extremenetworks.com/articles/How_To/How-to-create-stack-with-Summit-X460-48p-and-Summit-X460-24p|How to create a stack with Summit switches]]+    * et particulièrement : [[https://gtacknowledge.extremenetworks.com/articles/How_To/000001503|How to create a stack with Summit switches]]
 ====Divers==== ====Divers====
  
Line 1210: Line 1621:
 =====packet capture===== =====packet capture=====
  
-Pour réaliser une capture de paquets (sniff / tcpdump-like)+Pour réaliser une capture des paquets qui remontent à la CPU (sniff / tcpdump-like)
 <code bash> <code bash>
-debug packet capture ports 8 on vlan default cmd-args "-c 100"+# activer/désactiver la capture 
 +debug packet capture on 
 +debug packet capture off 
 + 
 +# limiter la capture aux ports 2 et 3, et à 100 paquets 
 +debug packet capture port 2-3 on count 100 
 + 
 +# sauvegarde dans un fichier pcap, récupérable dans /usr/local/tmp 
 +debug packet capture ports 2-3 on file-name <pcap-file> count 100 
 + 
 +# limiter la capture sur le port 8, le vlan Default et à 100 paquets (alt.) 
 +debug packet capture ports 8 on vlan Default cmd-args "-c 100"
 </code> </code>
  
-([[https://gtacknowledge.extremenetworks.com/articles/How_To/How-to-perform-a-local-packet-capture-on-an-EXOS-switch|source]])+Il est important de toujours désactiver la capture, quelque soit les options utilisées (même count). 
 + 
 +Sources : 
 +  * [[https://extremeportal.force.com/ExtrArticleDetail?an=000079573|Perform a packet capture in the EXOS CLI using the command "debug packet capture"]]
  
  
Line 1314: Line 1739:
 # application de la routemap # application de la routemap
 configure bgp neighbor 10.55.6.92 route-policy in BGP-in configure bgp neighbor 10.55.6.92 route-policy in BGP-in
 +</code>
 +
 +Après la MAJ d'une policy, pour qu'elle soit prise en compte :
 +<code bash>
 +check policy BGP-in.pol
 +refresh policy BGP-in
 +configure bgp soft-reconfiguration
 </code> </code>
  
Line 1388: Line 1820:
  
  
 +=====Scripts Python=====
 +
 +Les EXOS interprètent les scripts Python depuis la v15.7 ; 2 scripts sont fournis de base pour aider au diagnostique :
 +  * **spath-stats.py** pour aider au diag de problème CPU (il est basé sur le retour de la commande "sh l2stats")
 +  * **mem-stats.py** qui collecte le stats mémoire sur le système
 +
 +On peut les exécuter avec la commande : ''run script'' ; par exemple ''run script mem-stats.py''.
 =====Tips===== =====Tips=====
  
Line 1539: Line 1978:
 #s   default            10.20.1.2      1    UG---S-um--f- ico-vers-DHCPd    181d:0h:6m:52s #s   default            10.20.1.2      1    UG---S-um--f- ico-vers-DHCPd    181d:0h:6m:52s
 </code> </code>
 +
 +====Conduit error====
 +
 +Lorsqu'une stack rencontre des problèmes de communication entre slots, il génère des messages de type : ''Conduit receive error encountered'', ou ''<Warn:HAL.Card.Warning> pibConduitMasterRcvOneSlot(): failed [..]''. Cela vient souvent d'un problème de câblage inter-slots, et peut produite des reboots forcés. On peut vérifier les erreurs des ports de stack avec les commandes :
 +<code bash>
 +show ports stack-ports txerrors no-refresh
 +Port Tx Error Monitor
 +Port      Link      Tx          Tx          Tx          Tx       Tx       Tx
 +          State     Coll        Late coll   Deferred    Errors   Lost     Parity
 +================================================================================
 +1:1                          0                                   0
 +1:2                          0                                   0
 +2:1                          0                                   0
 +2:2                          0                                   0
 +================================================================================
 +!
 +show ports stack-ports rxerrors no-refresh
 +Port Rx Error Monitor
 +Port      Link     Rx      Rx      Rx        Rx      Rx         Rx         Rx
 +          State    Crc    Over    Under     Frag    Jabber      Align      Lost
 +================================================================================
 +1:1              0              0        0        0          0          0
 +1:2              0              0        0        0          0          0
 +2:1              0              0        0        0          0          0
 +2:2              0              0        0        0          0          0
 +================================================================================
 +          Link State: A-Active, R-Ready, NP-Port Not Present L-Loopback
 +</code>
 +Ici, tout va bien.
 +
 +src: [[https://extremeportal.force.com/ExtrArticleDetail?an=000077135|Switch in Summit Stack Failed with Conduit Receive Error]]
 =====Ressources===== =====Ressources=====
  
   * [[https://gtacknowledge.extremenetworks.com/articles/Q_A/EXOS-Switch-Security-Checklist-and-best-practice|EXOS-Switch-Security-Checklist-and-best-practice]]   * [[https://gtacknowledge.extremenetworks.com/articles/Q_A/EXOS-Switch-Security-Checklist-and-best-practice|EXOS-Switch-Security-Checklist-and-best-practice]]
  
informatique/extreme_networks.1591605035.txt.gz · Last modified: 2020/06/08 08:30 by pteu