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/10/09 09:23] – [BGP] afficher les routes échangées pteu | informatique:extreme_networks [2025/10/15 15:30] (current) – [authentification par mac] 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 82: | Line 90: | ||
| Dillinger Version: | Dillinger Version: | ||
| - | # afficher  | + | # x695 | 
| + | Slot  1 Version Information: | ||
| + | Branch  | ||
| + | Version:  | ||
| + | Card type: X695-48Y-8C rev 0 | ||
| + | MAC--1:  | ||
| + | Saved Chip Data:                  | ||
| + | CPU Core:                        | ||
| + | CPU Memory Size: 16384 MB | ||
| + | Alternate Bootrom Version:  | ||
| + | Default Bootrom Version:  | ||
| + | </ | ||
| + | |||
| + | Afficher  | ||
| + | <code bash> | ||
| debug hal show optic-info slot 1 port 52 | debug hal show optic-info slot 1 port 52 | ||
| Line 102: | Line 124: | ||
| ====Management==== | ====Management==== | ||
| - | # Afficher et modifier la configuration  | + | Configurer une adresse IP sur le port de management '' | 
| + | |||
| + | Vérifier le DHCP : | ||
| <code bash> | <code bash> | ||
| - | show management | + | show dhcp-client ipv4 state | 
| + | Client VLAN      | ||
| + | --------------- -------- --------------- --------------------------------------- | ||
| + | Default  | ||
| + | Mgmt            None      | ||
| - | configure  | + | # désactiver le DHCP (au besoin) | 
| + | disable dhcp vlan all | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | # configurer l'IP du port de Management | ||
| + | configure  | ||
| + | # configurer sa route par défaut | ||
| + | configure iproute add default 10.0.0.254 vr VR-Mgmt | ||
| + | </ | ||
| + | |||
| + | Parfois, ça bug et on ne peut toujours pas configurer d' | ||
| + | <code bash> | ||
| + | sh vlan | ||
| + | Untagged ports auto-move: Inform | ||
| + | ----------------------------------------------------------------------------------------------- | ||
| + | Name            VID  Protocol Addr        | ||
| + | ----------------------------------------------------------------------------------------------- | ||
| + | Mgmt            4095 169.254.120.0  | ||
| + | ----------------------------------------------------------------------------------------------- | ||
| + | ! | ||
| + | disable dhcp vlan all | ||
| + | WARNING: VLAN " | ||
| + | ! | ||
| + | unconfigure vlan Mgmt ipaddress | ||
| + | Error: Dhcp/Bootp configured IP address cannot be removed on VLAN Mgmt | ||
| + | ! | ||
| + | conf vlan Mgmt ipaddress 10.0.0.1 255.255.0.0 | ||
| + | Error: DHCP/BOOTP is enabled on the VLAN | ||
| + | |||
| + | # contournement | ||
| + | enable dhcp vlan Mgmt | ||
| + | disable dhcp vlan Mgmt | ||
| + | unconf vlan Mgmt ipaddress | ||
| + | ! | ||
| + | conf vlan Mgmt ipaddress 10.0.0.1 255.255.0.0 | ||
| + | IP interface for VLAN Mgmt has been created. | ||
| + | </ | ||
| + | |||
| + | 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 243: | ||
| start process " | start process " | ||
| restart process " | restart process " | ||
| + | |||
| + | # terminer (kill) un processus | ||
| + | terminate process < | ||
| </ | </ | ||
| Line 146: | Line 276: | ||
| 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 312: | ||
| 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 369: | ||
| 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 334: | Line 535: | ||
| # 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" | ||
| + | # 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 368: | Line 575: | ||
| ====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 383: | Line 590: | ||
| </ | </ | ||
| 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 390: | Line 599: | ||
| <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 | ||
| </ | </ | ||
| * via clé USB | * via clé USB | ||
| + | |||
| + | ref:  [[https:// | ||
| + | |||
| + | Avant EXOS 31.1: | ||
| <code bash> | <code bash> | ||
| - | # puis vérifier qu' | + | # vérifier qu' | 
| show memorycard | show memorycard | ||
| Line 403: | Line 621: | ||
| This image will be used only after rebooting the switch! | This image will be used only after rebooting the switch! | ||
| </ | </ | ||
| + | |||
| + | Depuis la version EXOS 31.1 | ||
| + | <code bash> | ||
| + | # vérifier que la clé USB est reconnue et montée (elle doit être en FAT32) | ||
| + | show switch mounts | ||
| + | Memory storage is present. | ||
| + | ! | ||
| + | show switch usb | ||
| + | USB port: Disabled | ||
| + | # Si KO, activer la prise en chagre de l'USB | ||
| + | enable switch usb | ||
| + | This setting will take effect at the next system reboot | ||
| + | |||
| + | # la clé USB est montée ici: | ||
| + | ls / | ||
| + | -rwxrwxr--  | ||
| + | [..] | ||
| + | |||
| + | # copier l' | ||
| + | download url file:/// | ||
| + | </ | ||
| + | |||
| + | Puis '' | ||
| * via scp | * via scp | ||
| Line 423: | Line 664: | ||
| reboot | reboot | ||
| </ | </ | ||
| + | |||
| + | ===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' | ||
| + | |||
| + |   * autre erreur TFTP quand on passe de la 30.1 à la 30.3 : '' | ||
| + |   | ||
| ====Commandes UNIX-like==== | ====Commandes UNIX-like==== | ||
| Line 479: | Line 736: | ||
| 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 497: | Line 756: | ||
| 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 528: | Line 809: | ||
| 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 | ||
| + | </ | ||
| + | |||
| + | Lorsqu' | ||
| + | <code bash> | ||
| + | * Slot-1 toto.3 # show conf difference | ||
| + | --- primary.cfg  | ||
| + | +++ Running Configuration  | ||
| + | @@ -1,7 +1,7 @@ | ||
| + | # | ||
| + | # Module devmgr configuration. | ||
| + | # | ||
| + | -configure snmp sysName " | ||
| + | +configure snmp sysName " | ||
| + | [...] | ||
| </ | </ | ||
| Line 566: | Line 864: | ||
| </ | </ | ||
| - | ====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 641: | Line 981: | ||
| # 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 658: | Line 1003: | ||
| * 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 671: | Line 1022: | ||
| 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 684: | Line 1039: | ||
| </ | </ | ||
| + | # 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 777: | Line 1175: | ||
| </ | </ | ||
| + | ====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 | ||
| + | </ | ||
| + | |||
| + | NB: le VLAN d' | ||
| + | |||
| + | ===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 782: | Line 1275: | ||
| 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 796: | Line 1289: | ||
| </ | </ | ||
| - | 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 824: | Line 1340: | ||
| </ | </ | ||
| - | sources  | + | Sources  | 
|   * https:// |   * https:// | ||
|   * http:// |   * http:// | ||
| Line 876: | Line 1392: | ||
| 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 882: | Line 1399: | ||
| <code bash> | <code bash> | ||
| - | create access-list dynamic test-acl " | + | create access-list dynamic test-acl " | 
| </ | </ | ||
| Line 948: | Line 1465: | ||
| * 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 969: | Line 1548: | ||
| # 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 1004: | Line 1572: | ||
| # 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 1013: | Line 1606: | ||
|     * 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 1050: | Line 1643: | ||
| 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:// | ||
| + |     * [[https:// | ||
| ====Divers==== | ====Divers==== | ||
| Line 1073: | Line 1725: | ||
| =====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 1084: | Line 1750: | ||
| <code bash> | <code bash> | ||
| - | # déclarer  | + | # Afficher  | 
| - | config iproute add default 10.1.1.1 | + | show ipconfig | 
| - | # activer le routage [ sur un vlan particulier ] : | + | # Déclarer  | 
| - | enable ipforwarding [ vlan Default ] | + | |
| - | + | ||
| - | # déclarer  | + | |
| config iproute add 10.1.8.x/24 10.1.10.1 | config iproute add 10.1.8.x/24 10.1.10.1 | ||
| - | # déclarer  | + | # Déclarer la route par défaut | 
| + | config iproute add default 10.1.1.1 | ||
| + | |||
| + | # Activer le routage de VLAN | ||
| + | # 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  | ||
| # ne repartent par la route par défaut | # ne repartent par la route par défaut | ||
| configure iproute add blackhole 192.168.0.0/ | configure iproute add blackhole 192.168.0.0/ | ||
| </ | </ | ||
| + | Diagnostique : | ||
| + | <code bash> | ||
| + | # résoudre une IP : | ||
| + | rtlookup 8.8.8.8 | ||
| + | Ori  Destination  | ||
| + | #s    | ||
| + | </ | ||
| ====BGP==== | ====BGP==== | ||
| Line 1164: | Line 1843: | ||
| # 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 1199: | Line 1885: | ||
| show bgp neighbor 10.55.200.92 accepted-routes all | 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 rejected-routes all | ||
| + | [...] | ||
| + | BGP Route Statistics  | ||
| + | Total Rxed Routes : 8 | ||
| + |   Rejected Routes  | ||
| + | Unfeasible Routes : 0 | ||
| ! | ! | ||
| show bgp neighbor 10.55.200.92 transmitted-routes all | show bgp neighbor 10.55.200.92 transmitted-routes all | ||
| Line 1210: | Line 1901: | ||
| show bgp neighbor 10.55.200.92 suppressed-routes all | show bgp neighbor 10.55.200.92 suppressed-routes all | ||
| </ | </ | ||
| + | |||
| + | <WRAP center round important 80%> | ||
| + | Les commandes précédentes n' | ||
| + | </ | ||
| ===Suppression de la conf BGP=== | ===Suppression de la conf BGP=== | ||
| Line 1220: | Line 1915: | ||
| 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 1234: | Line 1933: | ||
| + | =====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 1366: | Line 2072: | ||
| </ | </ | ||
| + | ====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.1570612983.txt.gz · Last modified: 2019/10/09 09:23 by pteu