informatique:extreme_networks
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
informatique:extreme_networks [2019/07/02 09:20] – [Ports / VLANs] pteu | informatique: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 | + | Par défaut les switchs sont configurés avec 2 VRs (virtual |
* **VR-Mgmt**, | * **VR-Mgmt**, | ||
* **VR-Default**, | * **VR-Default**, | ||
Line 10: | Line 10: | ||
Pour les versions 16 et antérieures, | Pour les versions 16 et antérieures, | ||
- | Par défaut les résultats de commandes s' | + | Par défaut les résultats de commandes s' |
<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 | 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> | ||
+ | # ou " | ||
+ | |||
# 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' | ||
+ | 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 332: | Line 477: | ||
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 343: | Line 494: | ||
# Voir les compteurs de log par catégorie | # Voir les compteurs de log par catégorie | ||
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 362: | Line 519: | ||
====Firmware==== | ====Firmware==== | ||
- | Pour obtenir la version d'EXOS (ici 21.1.1.4) : | + | Pour obtenir la version d' |
<code bash> | <code bash> | ||
show version | show version | ||
Line 377: | Line 534: | ||
</ | </ | ||
Cette commande retourne également la liste des commutateurs de la stack et les modules additionnels, | Cette commande retourne également la liste des commutateurs de la stack et les modules additionnels, | ||
+ | |||
+ | Consulter la page [[https:// | ||
===MAJ firmware=== | ===MAJ firmware=== | ||
Line 384: | Line 543: | ||
<code bash> | <code bash> | ||
download image 1.1.1.1 < | download image 1.1.1.1 < | ||
+ | </ | ||
+ | |||
+ | 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 | ||
</ | </ | ||
Line 418: | Line 582: | ||
</ | </ | ||
+ | ===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 473: | Line 649: | ||
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 491: | 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 | ||
+ | </ | ||
+ | ====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 | ||
</ | </ | ||
Line 522: | Line 722: | ||
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 560: | Line 763: | ||
</ | </ | ||
- | ====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' | ||
+ | </ | ||
Line 635: | 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 ] | ||
+ | </ | ||
+ | |||
+ | Pour effacer les compteurs : | ||
+ | <code bash> | ||
+ | clear counters ports | ||
</ | </ | ||
Line 652: | 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' | * 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> | <code bash> | ||
Line 665: | Line 921: | ||
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 678: | Line 938: | ||
</ | </ | ||
+ | # 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 771: | Line 1074: | ||
</ | </ | ||
+ | ====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 | ||
+ | </ | ||
+ | |||
+ | ====authentification par mac==== | ||
+ | |||
+ | On peut également faire vérifier l' | ||
+ | |||
+ | ===Configuration côté switch=== | ||
+ | <code bash> | ||
+ | # création du VLAN d' | ||
+ | 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 " | ||
+ | ! | ||
+ | # configuration de l' | ||
+ | |||
+ | 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: | ||
+ | ! | ||
+ | enable radius | ||
+ | enable radius netlogin | ||
+ | </ | ||
+ | |||
+ | ===Configuration côté serveur Radius=== | ||
+ | Dans le cas de freeradius, il faut : | ||
+ | * ajouter l'IP du switch (10.5.255.253) et son " | ||
+ | * 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/ | ||
+ | [...] | ||
+ | authorize { | ||
+ | | ||
+ | # convertir l'@ mAC dans le bon format | ||
+ | | ||
+ | # | ||
+ | | ||
+ | if (ok) { | ||
+ | # The MAC address was found, so update Auth-Type to accept this auth. | ||
+ | update control { | ||
+ | | ||
+ | } | ||
+ | update reply { | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | [...] | ||
+ | </ | ||
=====Spanning-tree===== | =====Spanning-tree===== | ||
Line 776: | Line 1172: | ||
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 790: | Line 1186: | ||
</ | </ | ||
- | 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 818: | Line 1237: | ||
</ | </ | ||
- | sources | + | Sources |
* https:// | * https:// | ||
* http:// | * http:// | ||
Line 870: | 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 | ||
</ | </ | ||
Line 876: | Line 1296: | ||
<code bash> | <code bash> | ||
- | create access-list dynamic test-acl " | + | create access-list dynamic test-acl " |
</ | </ | ||
Line 942: | 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:// | ||
+ | |||
+ | 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 963: | 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: | 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 998: | 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: | ||
+ | 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, | ||
</ | </ | ||
Line 1007: | Line 1503: | ||
* même niveau de licence ('' | * même niveau de licence ('' | ||
* si le switch provient d'une précédente pile, déconfigurer d' | * 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 '' | ||
+ | | ||
<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 1044: | Line 1540: | ||
Stack Topology is a Ring | 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==== | ====Liens==== | ||
- | * [[https:// | + | * [[https:// |
+ | * et particulièrement : [[https:// | ||
====Divers==== | ====Divers==== | ||
Line 1067: | Line 1621: | ||
=====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 1078: | Line 1646: | ||
<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 1154: | 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 | ||
+ | </ | ||
+ | |||
+ | 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 1174: | Line 1766: | ||
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 1185: | Line 1802: | ||
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 1199: | 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 : '' | ||
=====Tips===== | =====Tips===== | ||
Line 1331: | Line 1959: | ||
</ | </ | ||
+ | ====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