informatique:extreme_networks
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
informatique:extreme_networks [2017/09/05 07:48] – [Bannière] pteu | informatique:extreme_networks [2023/08/28 08:53] – [Gestion des utilisateurs] auth Radius pteu | ||
---|---|---|---|
Line 15: | Line 15: | ||
enable clipaging | enable clipaging | ||
</ | </ | ||
+ | Depuis les version 30, les commandes précitées, | ||
+ | <code bash> | ||
+ | disable cli paging | ||
+ | enable cli paging | ||
+ | </ | ||
=====Licences===== | =====Licences===== | ||
Line 52: | Line 56: | ||
<code bash> | <code bash> | ||
show switch | show switch | ||
+ | # nb : pour les stacks, c'est l' | ||
+ | # pour obtenir les uptimes individuels de chaque slot : | ||
+ | debug hal show platform cardInfo | i " | ||
+ | |||
show version | show version | ||
show temperature | show temperature | ||
Line 102: | Line 110: | ||
====Management==== | ====Management==== | ||
- | # Afficher et modifier la configuration | + | Configurer une adresse IP sur le port de management '' |
<code bash> | <code bash> | ||
- | show management | + | configure vlan Mgmt ipaddress 10.0.0.1 255.255.255.0 |
- | configure | + | # configurer sa route par défaut |
+ | configure | ||
+ | </ | ||
+ | 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' | ||
+ | |||
+ | 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 " | ||
+ | <code bash> | ||
+ | configure vlan Default ipaddress 10.10.10.1 255.255.255.0 | ||
+ | configure iproute add default 10.10.10.254 | ||
+ | </ | ||
+ | |||
+ | Au passage, pour déconfigurer l' | ||
+ | <code bash> | ||
+ | unconfigure vlan Default ipaddress | ||
+ | </ | ||
+ | |||
+ | 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' | ||
+ | |||
+ | Afficher et modifier la configuration de l' | ||
+ | <code bash> | ||
+ | show switch management | ||
+ | |||
+ | CLI idle timeout | ||
+ | CLI max number of login attempts : 3 | ||
+ | CLI max number of sessions | ||
+ | CLI paging | ||
+ | CLI space-completion | ||
+ | CLI configuration logging | ||
+ | CLI journal size : 100 | ||
+ | CLI password prompting only : Disabled | ||
+ | CLI display moved-keywords | ||
+ | CLI moved-keywords hidden release: 31.7 | ||
+ | CLI RADIUS cmd authorize tokens | ||
+ | CLI scripting | ||
+ | CLI scripting error mode : Ignore-Error (this session only) | ||
+ | CLI script search path : " | ||
+ | CLI persistent mode : Persistent (this session only) | ||
+ | CLI prompting | ||
+ | CLI screen size : 68 Lines 135 Columns (this session only) | ||
+ | CLI refresh | ||
+ | CLI history expansion | ||
+ | Image integrity checking | ||
+ | Current system port notation | ||
+ | Configured system port notation | ||
+ | Telnet access | ||
+ | : Access Profile : not set | ||
+ | SSH access | ||
+ | : Secure-Mode | ||
+ | : Access Profile : not set | ||
+ | SSH2 idle time : 60 minutes | ||
+ | SSH2 rekey interval | ||
+ | Web access | ||
+ | : Access Profile : not set | ||
+ | Total Read Only Communities | ||
+ | Total Read Write Communities | ||
+ | RMON : Disabled | ||
+ | SNMP access | ||
+ | : Access Profile : not set | ||
+ | SNMP Notifications | ||
+ | SNMP Notification Receivers | ||
+ | SNMP stats: | ||
+ | Gets | ||
+ | SNMP traps: | ||
+ | SNMP inform: | ||
</ | </ | ||
Line 116: | Line 187: | ||
start process " | start process " | ||
restart process " | restart process " | ||
+ | |||
+ | # terminer (kill) un processus | ||
+ | terminate process < | ||
</ | </ | ||
Line 146: | Line 220: | ||
Vérifications : | Vérifications : | ||
<code bash> | <code bash> | ||
- | show management | + | show ssh2 |
+ | show switch | ||
</ | </ | ||
===Filtrage des accès SSH=== | ===Filtrage des accès SSH=== | ||
- | Protection de l' | + | Protection de l' |
<code bash> | <code bash> | ||
configure ssh2 access-profile protect-ssh | configure ssh2 access-profile protect-ssh | ||
Line 181: | Line 256: | ||
Créer de nouveaux comptes utilisateurs : | Créer de nouveaux comptes utilisateurs : | ||
<code bash> | <code bash> | ||
- | Créer des comptes utilisateurs + mot de passe | ||
# autres comptes administrateur : | # autres comptes administrateur : | ||
create account admin toto <PWD> | create account admin toto <PWD> | ||
- | pour les comptes utilisateurs + mot de passe | + | # ou " |
- | # create account user tata <PWD> | + | |
+ | # pour les comptes utilisateurs + mot de passe | ||
+ | create account user tata < | ||
+ | |||
+ | # pour les compte d' | ||
+ | create account lawful-intercept < | ||
</ | </ | ||
- | Il n'existe | + | |
+ | Il existe 2 niveaux de privilège | ||
+ | * n' | ||
+ | * 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 < | + | configure account < |
+ | <nouveau MDP> | ||
</ | </ | ||
+ | ===Diag=== | ||
+ | |||
+ | Lister les comptes utilisateurs configurés : | ||
+ | <code bash> | ||
+ | show accounts | ||
+ | User Name Access LoginOK | ||
+ | -------------------------------- | ||
+ | | ||
+ | | ||
+ | toto | ||
+ | titi | ||
+ | </ | ||
+ | |||
+ | Lister les utilisateurs connectés actuellement : | ||
+ | <code bash> | ||
+ | show session | ||
+ | # Login Time | ||
+ | ================================================================================ | ||
+ | | ||
+ | *17 Mon Jun 8 10:13:26 2020 titi | ||
+ | </ | ||
===Failsafe account=== | ===Failsafe account=== | ||
- | Le **failsafe account** est un compte préconfiguré, | + | Le **failsafe account** est un compte préconfiguré, |
+ | |||
+ | Pour le désactiver : | ||
<code bash> | <code bash> | ||
configure failsafe-account deny all | configure failsafe-account deny all | ||
Line 204: | Line 313: | ||
cf : https:// | cf : https:// | ||
+ | ====Radius / mgmt-access==== | ||
+ | Pour utiliser une d' | ||
+ | <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 | ||
+ | </ | ||
+ | ====Politique de mots de passe==== | ||
+ | |||
+ | Pour configurer une politique de mot de passe : | ||
+ | <code bash> | ||
+ | SW# configure account all password-policy ? | ||
+ | char-validation | ||
+ | history | ||
+ | lockout-on-login-failures | ||
+ | lockout-time-period | ||
+ | max-age | ||
+ | min-age | ||
+ | min-different-characters | ||
+ | min-length | ||
+ | </ | ||
+ | |||
+ | Le nombre max de mauvais logins est configurable avec la commande : | ||
+ | <code bash> | ||
+ | configure cli max-failed-logins < | ||
+ | </ | ||
+ | |||
+ | Si un compte est verrouillé par suite de trop de tentatives de login incorrectes, | ||
+ | <code bash> | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | Pour le débloquer : '' | ||
+ | <code bash> | ||
+ | < | ||
+ | </ | ||
====DNS==== | ====DNS==== | ||
Line 276: | Line 421: | ||
====SNMP==== | ====SNMP==== | ||
- | Supprimer la configuration SNMP par défaut (qui n' | + | Supprimer la configuration SNMP par défaut (qui n' |
<code bash> | <code bash> | ||
configure snmpv3 delete community private | configure snmpv3 delete community private | ||
Line 310: | Line 455: | ||
.1.3.6.1.4.1.1916.1.4.14.1.1 packets drops | .1.3.6.1.4.1.1916.1.4.14.1.1 packets drops | ||
+ | |||
+ | .1.3.6.1.4.1.1916.1.19.1 | ||
+ | |||
.1.3.6.1.2.1.47.1.1.1.1.2.1.* | .1.3.6.1.2.1.47.1.1.1.1.2.1.* | ||
Line 319: | Line 467: | ||
<code bash> | <code bash> | ||
show log messages nvram | show log messages nvram | ||
+ | show log messages memory-buffer | ||
</ | </ | ||
Configuration des logs | Configuration des logs | ||
<code bash> | <code bash> | ||
+ | # afficher la configuration des logs | ||
+ | show configuration ems | ||
+ | |||
show log configuration filter " | show log configuration filter " | ||
- | # logguer les changements de config | + | # 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" | ||
+ | # du rappel de commande de bash : (!motif_rechch: | ||
+ | enable cli history expansion permanent | ||
# lister toutes les familles de log possible | # lister toutes les familles de log possible | ||
Line 335: | Line 493: | ||
# Voir les compteurs de log par catégorie | # Voir les compteurs de log par catégorie | ||
- | <code bash> | ||
show log counters All include | show log counters All include | ||
+ | |||
+ | # ajouter une catégorie | ||
+ | configure log filter DefaultFilter add events Kern.Info | ||
# configurer un rsyslog | # configurer un rsyslog | ||
configure log target syslog 10.1.1.24: | configure log target syslog 10.1.1.24: | ||
enable log target syslog 10.1.1.24: | enable log target syslog 10.1.1.24: | ||
+ | |||
+ | # modifier le format des messages de log | ||
+ | configure log target syslog 10.1.1.24: | ||
# activer l' | # activer l' | ||
Line 347: | Line 510: | ||
enable log target session | enable log target session | ||
</ | </ | ||
+ | |||
+ | Pour censurer certains messages de log inévitables et polluant, on peut les exclure des journaux en les filtrant ; par exemple pour exclure les messages de STP contenant "STP Domain tag 1" : | ||
+ | <code bash> | ||
+ | configure log filter DefaultFilter add exclude events STP.InBPDU.Drop strict-match string "STP Domain tag 1" | ||
+ | </ | ||
+ | |||
====Firmware==== | ====Firmware==== | ||
Line 406: | Line 575: | ||
</ | </ | ||
+ | ===Erreurs rencontrées=== | ||
+ | |||
+ | * '' | ||
+ | Se produit au milieu du transfert scp pour télécharger l' | ||
+ | |||
+ | Il faut donc relancer le scp et cela finit par fonctionner ! | ||
+ | |||
+ | * '' | ||
+ | L' | ||
+ | |||
+ | * '' | ||
+ | L' | ||
====Commandes UNIX-like==== | ====Commandes UNIX-like==== | ||
Line 442: | Line 623: | ||
# alternative : enregistrement dans le fichier : / | # alternative : enregistrement dans le fichier : / | ||
show tech-support all logto file | show tech-support all logto file | ||
+ | # alternative 2 : les envoyer directement sur un serveur tftp | ||
+ | upload tech-support vr " | ||
# tester les ASICs et teste les ports (packet loopback test). Attention cela reboot le switch ! | # tester les ASICs et teste les ports (packet loopback test). Attention cela reboot le switch ! | ||
Line 459: | Line 642: | ||
show log messages memory | show log messages memory | ||
show debug system-dump [slot X] | show debug system-dump [slot X] | ||
+ | # afficher l' | ||
+ | show cli journal | ||
# voir la table d' | # voir la table d' | ||
Line 477: | Line 662: | ||
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 | ||
</ | </ | ||
+ | ====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:// | ||
+ | enable elrp-client | ||
+ | configure elrp-client one-shot < | ||
+ | # après le test | ||
+ | disable elrp-client | ||
+ | </ | ||
+ | |||
+ | ====tech-support collector==== | ||
+ | |||
+ | Dans la conf usine on s' | ||
+ | <code bash> | ||
+ | configure tech-support collector 12.38.14.200 | ||
+ | </ | ||
+ | [[https:// | ||
+ | <code bash> | ||
+ | configure tech-support delete collector 12.38.14.200 | ||
+ | | ||
+ | |||
+ | disable tech-support collector | ||
+ | configure tech-support delete collector 12.38.14.200 tcp-port 1 from 10.0.0.1 | ||
+ | |||
+ | # vérification : | ||
+ | show tech-support collector | grep "Tech Support Collector" | ||
+ | Tech Support Collector: | ||
+ | </ | ||
=====Configuration===== | =====Configuration===== | ||
Line 491: | Line 715: | ||
show configuration | show configuration | ||
- | # en incluant les paramètres par défaut (non affichés sinon) | + | # En incluant les paramètres par défaut (non affichés sinon) |
show configuration detail | show configuration detail | ||
- | # afficher | + | # Afficher |
show configuration stp | show configuration stp | ||
+ | |||
+ | # Utiliser un filtre de famille de fonctionnalités (ici la partie DNS/ | ||
+ | show configuration nettools | ||
</ | </ | ||
Line 529: | Line 756: | ||
</ | </ | ||
- | ====factory-reset==== | + | ====Restauration==== |
+ | On peut injecter une configuration au format " | ||
<code bash> | <code bash> | ||
- | # reset tout sauf les comptes admin, | + | # Télécharger |
- | unconfigure switch [all] | + | tftp get 10.1.1.24 save.xsf |
+ | | ||
+ | |||
+ | # Charger cette conf : | ||
+ | load script save | ||
+ | |||
+ | # Sauvegarder | ||
+ | # par défaut de ce switch | ||
+ | save config | ||
+ | y | ||
</ | </ | ||
+ | |||
+ | On peut aussi directement utiliser le fichier récupérer par TFTP comme sa conf par défaut : | ||
+ | <code bash> | ||
+ | # Télécharger la sauvegarde | ||
+ | tftp get 10.1.1.24 save.xsf | ||
+ | | ||
+ | |||
+ | # L' | ||
+ | use configuration save.xsf | ||
+ | |||
+ | # redémarrer sans sauver la config | ||
+ | # (pour ne pas écrire la primary courante sur la save fraichement restaurée) | ||
+ | reboot | ||
+ | n | ||
+ | </ | ||
+ | |||
+ | src : https:// | ||
+ | ====factory-reset==== | ||
+ | |||
+ | Il existe plusieurs façons de déconfigurer un switch, décrites ici : https:// | ||
+ | |||
+ | __Déconfigurations non destructrices (ne supprime pas les fichiers de conf en nvram) :__ | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | __Déconfigurations destructrices :__ | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | A noter que dans tous les cas, lorsqu' | ||
+ | </ | ||
=====Ports / VLANs===== | =====Ports / VLANs===== | ||
- | Créer un VLAN | + | Configurer la vitesse/ |
+ | <code bash> | ||
+ | configure port 2 auto off speed 100 duplex full | ||
+ | </ | ||
+ | |||
+ | Créer un VLAN : | ||
<code bash> | <code bash> | ||
create vlan TEST-VISIO | create vlan TEST-VISIO | ||
Line 563: | Line 837: | ||
configure ports 1:14 display-string " | configure ports 1:14 display-string " | ||
configure ports 1:14 description-string " | configure ports 1:14 description-string " | ||
+ | unconfigure ports 1:14 display-string | ||
# pour partitionner un port (pour un 40Gb compatible, qui nécessite un câble spécifique) | # pour partitionner un port (pour un 40Gb compatible, qui nécessite un câble spécifique) | ||
Line 583: | Line 858: | ||
show port 2 information [ detail ] | show port 2 information [ detail ] | ||
- | # afficher | + | # afficher |
- | show ports utilization [ bandwidth | packets | bytes ] | + | show port 2 utilization [ bandwidth | packets | bytes ] |
+ | show port 2 statistics | ||
+ | # afficher les infos de santé du port/du lien : | ||
+ | show port 2 [ anomaly | buffer | collisions | congestion ] | ||
+ | |||
+ | # afficher les erreurs en émission/ | ||
+ | show port 2 [ rxerrors | txerrors ] | ||
+ | |||
+ | # afficher les informations de contrôle de flux (RX/TX pause packets) | ||
+ | show port 2 flow-control [ rx-pauses | tx-pauses ] | ||
+ | |||
+ | # afficher les informations concernant le convertisseur (GBIC/SFP) branché sur le port | ||
+ | sh port 2 transceiver information [ detail ] | ||
+ | </ | ||
+ | |||
+ | Pour effacer les compteurs : | ||
+ | <code bash> | ||
+ | clear counters ports | ||
+ | </ | ||
+ | |||
+ | En cas de congestion ('' | ||
+ | * augmenter la taille du buffer d' | ||
+ | <code bash> | ||
+ | show port 1 buffer | ||
+ | Packet Buffer Allocation for ports in range 1-54 | ||
+ | Total Packet Buffer Size: 4046848 bytes, Not Overcommitted | ||
+ | Total Shared Buffer Size: 3674112 | ||
+ | Port 1 Max Shared Buffer Usage: 734656 bytes (20%) | ||
+ | QP1: Reserved Buffer: 3328 bytes | ||
+ | QP8: Reserved Buffer: 3328 bytes | ||
+ | |||
+ | configure port 1 shared-packet-buffer 100 | ||
+ | </ | ||
+ | * baisser le pourcentage du buffer partagé sur les autres interfaces | ||
+ | * si plusieurs ports provoquent la congestion au niveau de l' | ||
+ | |||
+ | Local fault/ | ||
+ | Quand un port passe DOWN il affiche dans les logs la raison '' | ||
+ | * une **local fault** est détectée par le switch lui-même, souvent dû à trop d' | ||
+ | * **remote fault** est une erreur détectée et signalée par le switch d'en face | ||
+ | |||
+ | |||
+ | <code bash> | ||
# afficher l' | # afficher l' | ||
show vlan 2 | show vlan 2 | ||
Line 597: | Line 914: | ||
show fdb ports < | show fdb ports < | ||
show fdb vlan < | show fdb vlan < | ||
+ | |||
+ | # enregistrer une entrée statique dans le FDB | ||
+ | # create [fdbentry | fdb] < | ||
+ | create fdb 00: | ||
# interroger la table ARP (association adresse IP <-> MAC) | # interroger la table ARP (association adresse IP <-> MAC) | ||
Line 610: | Line 931: | ||
</ | </ | ||
+ | # créer une association ARP statique : | ||
+ | configure iparp add 10.0.20.2 vr VR-Default bc: | ||
+ | |||
+ | [[https:// | ||
+ | <code bash> | ||
+ | debug vlan show vpifs vl-WIFI 2:29 | ||
+ | VLAN: Default, port:2:29, vlanId:1, instance: 50002499, tag: 0, | ||
+ | Ingress: | ||
+ | l2Protos (IDs): 0x0 [PIF: type: | ||
+ | uRPF[-]:0, isTrillAppointedForwarder: | ||
+ | clientUsage: | ||
+ | |||
+ | Egress and Ingres state bit definitions | ||
+ | typedef enum ifIngressState_ { | ||
+ | IF_STATE_ENABLE_LEARNING= | ||
+ | IF_STATE_DISABLE_LEARNING = 0x2, | ||
+ | | ||
+ | | ||
+ | IF_STATE_SLOWPATH_PROCESSING = 0x10, | ||
+ | IF_STATE_IN_BLOCK_ALL = 0x20, | ||
+ | IF_STATE_IN_BLOCK_DATA = 0x40, | ||
+ | IF_STATE_INVALID = 0xffffffff, | ||
+ | } ifIngressState_t; | ||
+ | typedef enum ifEgressState_ { | ||
+ | IF_STATE_FORWARDING = 0x1, | ||
+ | IF_STATE_EG_BLOCK_ALL = 0x2, | ||
+ | IF_STATE_BLOCK_FLOODING = 0x4, | ||
+ | IF_STATE_EG_BLOCK_DATA = 0x8, | ||
+ | IF_STATE_BLOCK_BROAD_CAST = 0x10, | ||
+ | } ifEgressState_t; | ||
+ | Layer 2 protocols , ids and their priorities(lower values have higher precedence | ||
+ | Protocol: SRP , ID: 0x1, Priority: 8001 | ||
+ | Protocol: netLogin , ID: 0x2, Priority: 10001 | ||
+ | Protocol: VRRP , ID: 0x4, Priority: 40001 | ||
+ | Protocol: ESRP , ID: 0x8, Priority: 30001 | ||
+ | Protocol: ELSM , ID: 0x10, Priority: 7001 | ||
+ | Protocol: ETHOAM , ID: 0x20, Priority: 6001 | ||
+ | Protocol: brm , ID: 0x40, Priority: 50001 | ||
+ | Protocol: stp , ID: 0x80, Priority: 9001 | ||
+ | Protocol: ERPS , ID: 0x100, Priority: 10050 | ||
+ | Protocol: EAPS , ID: 0x200, Priority: 20001 | ||
+ | gMacTree[0]: | ||
+ | </ | ||
====jumbo frames==== | ====jumbo frames==== | ||
Line 703: | Line 1067: | ||
</ | </ | ||
+ | ====mac-locking==== | ||
+ | Le contrôle d' | ||
+ | |||
+ | Exemple rapide de mise en place : | ||
+ | <code bash> | ||
+ | # activation du mac-locking sur tous les ports " | ||
+ | enable mac-locking ports 1-47 | ||
+ | # configuration de l'' | ||
+ | # nb: pas d'' | ||
+ | configure mac-locking ports 1-47 first-arrival limit-learning 1 | ||
+ | # activation du mac-locking | ||
+ | enable mac-locking | ||
+ | |||
+ | # [ phase d'' | ||
+ | |||
+ | # vérifs | ||
+ | show mac-locking stations ports 1-47 | ||
+ | # on limite le nombre d'' | ||
+ | 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 | ||
+ | </ | ||
+ | |||
+ | Vérifications | ||
+ | <code bash> | ||
+ | show mac-locking ports 1-47 | ||
+ | show mac-locking stations ports 1-47 | ||
+ | |||
+ | # ajouter ou supprimer une MAC d'' | ||
+ | configure mac-locking ports 47 static [add | enable | disable] @MAC | ||
+ | </ | ||
=====Spanning-tree===== | =====Spanning-tree===== | ||
En vrac : | En vrac : | ||
<code bash> | <code bash> | ||
+ | # Configuration de base | ||
+ | configure stpd s0 priority 16384 | ||
+ | configure stpd s0 mode dot1w | ||
+ | configure stpd s0 add vlan Default ports 5:1 dot1d | emistp | pvst-plus | ||
# (dés)activation du domaine s0 | # (dés)activation du domaine s0 | ||
disable stpd s0 | disable stpd s0 | ||
enable stpd s0 | enable stpd s0 | ||
- | configure stpd s0 priority 16384 | + | # Configurer |
- | configure stpd s0 mode dot1w | + | |
- | configure stpd s0 add vlan Default ports 5:1 dot1d | emistp | pvst-plus | + | |
- | + | ||
- | # configurer | + | |
# attention cela bloque le port si l'on reçoit un BPDU dessus | # attention cela bloque le port si l'on reçoit un BPDU dessus | ||
# les bridges sous Linux peuvent en générer par exemple | # les bridges sous Linux peuvent en générer par exemple | ||
Line 722: | Line 1122: | ||
</ | </ | ||
- | Debug / diagnostique | + | ====Fast convergence==== |
+ | |||
+ | Lors d'un changement de topology (TC), le switch vide sa table ARP ("// | ||
+ | <code bash> | ||
+ | configure iparp fast-convergence on | ||
+ | |||
+ | show iparp | grep Convergence | ||
+ | Fast Convergence : On | ||
+ | </ | ||
+ | |||
+ | ====Debug / diagnostique==== | ||
+ | |||
+ | Lister l' | ||
<code bash> | <code bash> | ||
- | # lister l' | ||
show stpd s0 ports | show stpd s0 ports | ||
[..] | [..] | ||
- | 1:12 | + | 1:12 |
- | 1:13 | + | 1:13 |
+ | 1:14 | ||
# exemple de résultat : PC Linux ponté qui génère des BPDUs en 1:12 | # exemple de résultat : PC Linux ponté qui génère des BPDUs en 1:12 | ||
- | # et port edge ' | + | # |
+ | # port bloqué en listening en 1:14 | ||
+ | </ | ||
- | # | + | Afficher la raison du blocage d'un port : |
- | # logs | + | <code bash> |
- | # | + | show stpd s0 ports non-forwarding-reason |
- | # logguer | + | Port State |
+ | ------------------------------------------------------------------------------- | ||
+ | 1:14 LISTENING | ||
+ | </ | ||
+ | |||
+ | Logguer | ||
+ | <code bash> | ||
+ | # changements de topo STP : | ||
+ | configure stpd s0 trap topology-change on | ||
configure stpd s0 trap topology-change edge-ports 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 750: | Line 1173: | ||
</ | </ | ||
- | sources | + | Sources |
* https:// | * https:// | ||
* http:// | * http:// | ||
Line 802: | Line 1225: | ||
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 | ||
</ | </ | ||
Line 808: | Line 1232: | ||
<code bash> | <code bash> | ||
- | create access-list dynamic test-acl " | + | create access-list dynamic test-acl " |
</ | </ | ||
Line 862: | Line 1286: | ||
=====Stacking===== | =====Stacking===== | ||
- | Certains modèles sont stackable, jusqu' | + | Certains modèles sont stackable, jusqu' |
+ | |||
+ | Pré-requis pour monter un stack : tous les switchs doivent avoir : | ||
+ | * la même partition active (primary ou secondary, cf '' | ||
+ | * la même version de firmware ('' | ||
+ | De plus les switchs élligibles pour devenir master (" | ||
Infos en vrac : | Infos en vrac : | ||
- | | + | * l' |
- | | + | * seul le port Mgmt du slot master |
- | * les master-capable doivent avoir le même niveau de licence | + | * tous les ports console sont utilisables |
- | * seul le port Mgmt du slot master est utilisable | + | |
- | * tous les ports console sont utilisable | + | |
* 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:// | ||
+ | |||
+ | Depuis une conf usine, se logguer sur le port CONsole en " | ||
+ | |||
+ | 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 | ||
+ | </ | ||
+ | |||
+ | Éteindre les switchs et brancher leurs interfaces de stack (ports 40G éventuellement disponibles via l' | ||
+ | <code bash> | ||
+ | -- slot 1(1) | ||
+ | / | ||
+ | | ||
+ | | ||
+ | \--------------------------------/ | ||
+ | </ | ||
+ | Ceci afin d' | ||
+ | |||
+ | Démarrer chaque switch et activer le stacking ; puis redémarrer : | ||
+ | <code bash> | ||
+ | enable stacking-support | ||
+ | reboot | ||
+ | </ | ||
+ | |||
+ | Vérification : une fois tous les slots redémarrés, | ||
+ | |||
+ | Sur le master uniquement, lancer l' | ||
+ | <code bash> | ||
+ | enable stacking | ||
+ | |||
+ | Execute " | ||
+ | Executing " | ||
+ | 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 | ||
+ | </ | ||
+ | |||
+ | 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 | ||
+ | ------------------ | ||
+ | *00: | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
Commandes en vrac : | Commandes en vrac : | ||
Line 893: | Line 1382: | ||
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: | configure stacking node-address 00: | ||
- | # permet d' | + | # permet d' |
configure stacking slot 2 master-capability on|off | configure stacking slot 2 master-capability on|off | ||
Line 926: | Line 1405: | ||
# 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: | ||
+ | Node Priority: 0 | ||
+ | Sw Health: | ||
+ | Hw Health: | ||
+ | |||
+ | Node Slot-2 information: | ||
+ | Node State: | ||
+ | Node Priority: 0 | ||
+ | Sw Health: | ||
+ | Hw Health: | ||
+ | |||
+ | # 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, | ||
+ | Member [0, | ||
+ | SPB 2: Type 5(80G), Status UP | ||
+ | Member [0, | ||
+ | Member [0, | ||
+ | </ | ||
+ | |||
+ | ====Ajouter un switch dans un stack existant==== | ||
+ | |||
+ | * vérifier les pré-requis | ||
+ | * même version d'EXOS ('' | ||
+ | * même partitions actives | ||
+ | * même niveau de licence ('' | ||
+ | * si le switch provient d'une précédente pile, déconfigurer d' | ||
+ | * qu'il possède des interfaces pour le stacker (QSFP+), comme une carte VIM par exemple ('' | ||
+ | * activer le support du stacking : vérifier '' | ||
+ | * brancher le nouveau switch avec les câbles de stack, le booter et lui passer ces commandes dessus : | ||
+ | <code bash> | ||
+ | configure stacking-support stack-port all selection native | ||
+ | enable stacking | ||
+ | reboot | ||
+ | # (optionnel) pour renuméroter le slot : | ||
+ | configure stacking node-address < | ||
+ | </ | ||
+ | * sur le master : | ||
+ | <code bash> | ||
+ | configure stacking slot < | ||
+ | reboot slot < | ||
+ | synchronize slot < | ||
+ | </ | ||
+ | |||
+ | Vérifications sur le master : | ||
+ | <code bash> | ||
+ | show stacking | ||
+ | show slot | ||
+ | show slot detail | ||
+ | </ | ||
+ | ====Sortir un switch d'un stack==== | ||
+ | |||
+ | * si le protocole de stacking est " | ||
+ | * sur le master, avec <# | ||
+ | <code bash> | ||
+ | unconfigure stacking slot <# | ||
+ | reboot slot <# | ||
+ | </ | ||
+ | * si le master voit toujours le slot ('' | ||
+ | * après le reboot du switch, on peut le débrancher de la stack, en vérifiant que cela ne la scinde pas en deux (c'est le cas si le switch est branché en milieu de pile et que celle-si est en série (Daisy chain ; à l' | ||
+ | <code bash> | ||
+ | show stacking stack-ports | grep Topology | ||
+ | Stack Topology is a Ring | ||
+ | </ | ||
+ | |||
+ | ====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: | ||
+ | ------------------------ | ||
+ | Current State: | ||
+ | |||
+ | Image Selected: | ||
+ | Image Booted: | ||
+ | Primary ver: 30.7.1.1 | ||
+ | patch1-23 | ||
+ | Secondary ver: 30.2.1.8 | ||
+ | | ||
+ | </ | ||
+ | |||
+ | 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 : '' | ||
+ | <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 | ||
+ | | ||
+ | Image installed to the secondary partition successfully. | ||
+ | </ | ||
+ | |||
+ | Puis définir cette partition comme active : | ||
+ | <code bash> | ||
+ | use image primary slot 2 | ||
+ | |||
+ | # vérification: | ||
+ | show slot 2 detail | grep ary | ||
+ | Image Selected: | ||
+ | Image Booted: | ||
+ | | ||
+ | | ||
+ | |||
+ | # Puis, rebooter: | ||
+ | reboot | ||
+ | |||
+ | # après reboot: | ||
+ | show switch | ||
+ | [..] | ||
+ | Slot: | ||
+ | ------------------------ | ||
+ | Current State: | ||
+ | |||
+ | Image Selected: | ||
+ | Image Booted: | ||
+ | Primary ver: 30.7.1.1 | ||
+ | patch1-23 | ||
+ | Secondary ver: 30.2.1.8 | ||
+ | | ||
</ | </ | ||
+ | ====Liens==== | ||
+ | * [[https:// | ||
+ | * et particulièrement : [[https:// | ||
====Divers==== | ====Divers==== | ||
Line 949: | Line 1557: | ||
=====packet capture===== | =====packet capture===== | ||
- | Pour réaliser une capture | + | Pour réaliser une capture |
<code bash> | <code bash> | ||
- | debug packet capture ports 8 on vlan default | + | # activer/ |
+ | 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 / | ||
+ | debug packet capture ports 2-3 on file-name < | ||
+ | |||
+ | # limiter la capture sur le port 8, le vlan Default et à 100 paquets (alt.) | ||
+ | debug packet capture ports 8 on vlan Default | ||
</ | </ | ||
- | ([[https://gtacknowledge.extremenetworks.com/articles/ | + | Il est important de toujours désactiver la capture, quelque soit les options utilisées |
+ | |||
+ | Sources : | ||
+ | * [[https://extremeportal.force.com/ExtrArticleDetail? | ||
Line 960: | Line 1582: | ||
<code bash> | <code bash> | ||
- | # déclarer | + | # Afficher la configuration IP : |
+ | show ipconfig | ||
+ | |||
+ | # Déclarer une route statique | ||
+ | config iproute add 10.1.8.x/24 10.1.10.1 | ||
+ | |||
+ | # Déclarer | ||
config iproute add default 10.1.1.1 | config iproute add default 10.1.1.1 | ||
- | # activer le routage | + | # Activer le routage de VLAN |
- | enable ipforwarding [ vlan Default | + | # NB : il faut activer le routage sur le VLAN ingress et egress (source et destination) : |
+ | # ou ne pas préciser de VLAN pour tous les router | ||
+ | enable ipforwarding [ vlan ingress | ||
+ | enable ipforwarding [ vlan egress | ||
- | # déclarer une route | + | # Déclarer un " |
- | config | + | # ne repartent par la route par défaut |
+ | configure | ||
</ | </ | ||
+ | Diagnostique : | ||
+ | <code bash> | ||
+ | # résoudre une IP : | ||
+ | rtlookup 8.8.8.8 | ||
+ | Ori Destination | ||
+ | #s | ||
+ | </ | ||
====BGP==== | ====BGP==== | ||
Line 1036: | Line 1675: | ||
# 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 | ||
+ | </ | ||
+ | |||
+ | Après la MAJ d'une policy, pour qu' | ||
+ | <code bash> | ||
+ | check policy BGP-in.pol | ||
+ | refresh policy BGP-in | ||
+ | configure bgp soft-reconfiguration | ||
</ | </ | ||
Line 1056: | Line 1702: | ||
show iproute origin bgp | show iproute origin bgp | ||
+ | |||
+ | # afficher les routes reçues/ | ||
+ | show bgp neighbor 10.55.200.92 received-routes all | ||
+ | Routes: | ||
+ | | ||
+ | ------------------------------------------------------------------------------------------------------ | ||
+ | *> | ||
+ | *> | ||
+ | *> | ||
+ | *> | ||
+ | *> | ||
+ | *>? | ||
+ | |||
+ | show bgp neighbor 10.55.200.92 accepted-routes all | ||
+ | show bgp neighbor 10.55.200.92 rejected-routes all | ||
+ | ! | ||
+ | show bgp neighbor 10.55.200.92 transmitted-routes all | ||
+ | Advertised Routes: | ||
+ | | ||
+ | ---------------------------------------------------------------------------------------- | ||
+ | > | ||
+ | > | ||
+ | > | ||
+ | |||
+ | show bgp neighbor 10.55.200.92 suppressed-routes all | ||
</ | </ | ||
Line 1067: | Line 1738: | ||
configure bgp AS-number 0 | configure bgp AS-number 0 | ||
</ | </ | ||
+ | |||
+ | ===Tips=== | ||
+ | |||
+ | * si un préfixe est déclaré en BGP mais pas transmis (cf '' | ||
====VRRP==== | ====VRRP==== | ||
Line 1081: | Line 1756: | ||
+ | =====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 : '' | ||
=====Tips===== | =====Tips===== | ||
Line 1175: | Line 1857: | ||
[[https:// | [[https:// | ||
+ | ====Bloqué en " | ||
+ | |||
+ | Un switch peut être bloqué au boot , avec le message '' | ||
+ | * soit parce qu' | ||
+ | * soit parce que le switch est master-capable et possède une licence inférieure aux autres switchs master-capable de la stack : dans le cas suivant il s'agit du slot 4 : | ||
+ | <code bash> | ||
+ | show stacking configuration | ||
+ | [blabla] | ||
+ | Node | ||
+ | MAC Address | ||
+ | *00: | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | Dans la commande suivante on voit que le dernier switch (slot 4) possède une licence **Edge** alors que les autres n'en ont pas (et, de fait, bénéficient d'une **Adv. Edge** supérieure). Pour corriger cela il faut supprimer le licence du slot 4 : | ||
+ | <code bash> | ||
+ | unconfigure stacking license-level slot 4 | ||
+ | reboot slot 4 | ||
+ | </ | ||
+ | |||
+ | ====MAC 00-E0-2B-00-00-01 moved==== | ||
+ | |||
+ | Sur certains switch il est possible de surveiller et remonter les adresses MAC changeant de port, c'est le cas des châssis S4 par exemple. Cela permet de mettre en lumière des problèmes les problèmes de configuration sur le réseau (STP, agrégats, etc...). | ||
+ | |||
+ | Dans le cas de l' | ||
+ | <code bash> | ||
+ | AddrNtfy[2]MAC: | ||
+ | AddrNtfy[2]MAC: | ||
+ | </ | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | Pour résoudre le problème, il faut désactiver le protocole en mousse, activé par défaut sur les EXOS : | ||
+ | <code bash> | ||
+ | disable edp port all | ||
+ | </ | ||
+ | |||
+ | ====BOOTPrelay==== | ||
+ | |||
+ | Comme chez Cisco & consorts, il est possible de relayer les paquets broadcastés sur un réseau (VLAN) vers une adresse IP unicast située sur un autre réseau (VLAN). C'est nécessaire en DHCP/BOOTP par exemple, si le serveur DHCPd est centralisé et adresse plusieurs réseaux clients. Chez Cisco/ | ||
+ | <code bash> | ||
+ | configure bootprelay add 10.0.0.1 [ vr VR-Default ] | ||
+ | enable bootprelay ipv4 vlan LAN-clients | ||
+ | enable bootprelay ipv4 vlan ico-vers-DHCPd | ||
+ | </ | ||
+ | NB : à noter qu'il faut activer le bootprelay à la fois que le VLAN ingress (côté clients) et egress (côté serveur DHCP), même si le serveur DHCP n'est adressé dans un VLAN directement connecté sur ce routeur. | ||
+ | NB2 : bien sûr puisque cela implique du routage, cela n'est possible qu'en activant l' '' | ||
+ | <code bash> | ||
+ | enable ipforwarding vlan LAN-clients | ||
+ | enable ipforwarding vlan ico-vers-DHCPd | ||
+ | |||
+ | # le serveur DHCPd doit être joignable également | ||
+ | rtlookup 10.0.0.1 | ||
+ | Ori Destination | ||
+ | #s | ||
+ | </ | ||
+ | |||
+ | ====Conduit error==== | ||
+ | |||
+ | Lorsqu' | ||
+ | <code bash> | ||
+ | show ports stack-ports txerrors no-refresh | ||
+ | Port Tx Error Monitor | ||
+ | Port Link Tx Tx Tx Tx | ||
+ | State | ||
+ | ================================================================================ | ||
+ | 1:1 | ||
+ | 1:2 | ||
+ | 2:1 | ||
+ | 2:2 | ||
+ | ================================================================================ | ||
+ | ! | ||
+ | show ports stack-ports rxerrors no-refresh | ||
+ | Port Rx Error Monitor | ||
+ | Port Link | ||
+ | State Crc Over Under | ||
+ | ================================================================================ | ||
+ | 1:1 | ||
+ | 1:2 | ||
+ | 2:1 | ||
+ | 2:2 | ||
+ | ================================================================================ | ||
+ | Link State: A-Active, R-Ready, NP-Port Not Present L-Loopback | ||
+ | </ | ||
+ | Ici, tout va bien. | ||
+ | src: [[https:// | ||
=====Ressources===== | =====Ressources===== | ||
* [[https:// | * [[https:// | ||
informatique/extreme_networks.txt · Last modified: 2023/12/21 15:11 by pteu