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/04/19 10:26] – routage pteu | informatique:extreme_networks [2023/04/05 12:57] – [Management] show switch management pteu | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | FIXME | ||
- | |||
======Extreme Networks / EXOS====== | ======Extreme Networks / EXOS====== | ||
Line 7: | Line 5: | ||
Par défaut les switchs sont configurés avec 2 VRs (virtuals router), chacun doté d'une table de routage étanche : | Par défaut les switchs sont configurés avec 2 VRs (virtuals router), chacun doté d'une table de routage étanche : | ||
- | - **VR-Mgmt**, | + | * **VR-Mgmt**, |
- | - **VR-Default**, | + | |
- | 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 clipaging | disable clipaging | ||
enable clipaging | enable clipaging | ||
</ | </ | ||
- | + | Depuis les version 30, les commandes précitées, | |
- | =====Logs / journaux===== | + | |
- | + | ||
- | Affichage des logs | + | |
<code bash> | <code bash> | ||
- | show log messages nvram | + | disable cli paging |
+ | enable cli paging | ||
</ | </ | ||
+ | =====Licences===== | ||
- | Configuration des logs | + | Certaines fonctionnalités sont restreintes à un certain niveau de licence. |
+ | |||
+ | Procédure pour changer la licence d'un stack : | ||
<code bash> | <code bash> | ||
- | show log configuration filter " | + | # on enlève la restriction de licence sur le slot4 (s'il y en a une) |
+ | unconfigure stacking license-level slot 4 | ||
- | # logguer les changements de config | + | # pour chaque slot Backup/ |
- | enable | + | telnet slot 2 |
+ | enable | ||
+ | quit | ||
+ | [etc] | ||
- | # lister toutes les familles de log possible | + | # puis le master (slot 1) |
- | show log components | + | enable licence xxxx-xxxx-xxxx-xxxx-yyyy |
- | # filtrer | + | # on reboot |
- | configure log filter DefaultFilter add events All severity warning | + | reboot slot 4 |
- | # Voir les compteurs | + | # vérifier le bon fonctionnement |
- | <code bash> | + | show licenses |
- | show log counters All include | + | |
- | # configurer un rsyslog | + | # au pire |
- | configure log target syslog 10.1.1.24: | + | reboot stack-topology |
- | enable log target syslog 10.1.1.24: | + | |
</ | </ | ||
Line 55: | 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 105: | Line 110: | ||
====Management==== | ====Management==== | ||
- | # Afficher et modifier la configuration de l' | + | Configurer une adresse IP sur le port de management '' |
+ | <code bash> | ||
+ | configure vlan Mgmt ipaddress 10.0.0.1 255.255.255.0 | ||
+ | |||
+ | # configurer sa route par défaut | ||
+ | configure iproute add default 10.0.0.254 vr VR-Mgmt | ||
+ | </ | ||
+ | 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> | <code bash> | ||
- | show management | + | show switch |
- | configure idletimeout [0-240 min] | + | 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 119: | Line 187: | ||
start process " | start process " | ||
restart process " | restart process " | ||
+ | |||
+ | # terminer (kill) un processus | ||
+ | terminate process < | ||
</ | </ | ||
+ | ====Bannière==== | ||
+ | |||
+ | Pour mettre en place une bannière avant et/ou après le login (saisir la commande, puis le texte, et terminer par une ligne vide) : | ||
+ | <code bash> | ||
+ | configure banner before-login save-to-configuration | ||
+ | Unauthorized access to this equipment is prohibited. | ||
+ | |||
+ | </ | ||
+ | |||
+ | Vérification : | ||
+ | <code bash> | ||
+ | show banner | ||
+ | </ | ||
====SSH==== | ====SSH==== | ||
Line 136: | 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 171: | 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 194: | Line 313: | ||
cf : https:// | cf : https:// | ||
+ | ====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 266: | Line 413: | ||
====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 | ||
- | disable snmpv3 default-group | ||
disable snmpv3 default-user | disable snmpv3 default-user | ||
</ | </ | ||
- | ====Commandes UNIX-like==== | + | ===OIDs utiles=== |
- | Certaines commandes sont similaires aux UNIX/Linux : | ||
<code bash> | <code bash> | ||
- | cd | + | # useful OIDs / MIB |
- | cp | + | .1.3.6.1.2.1.1.1.0 description système/ |
- | exit | + | .1.3.6.1.2.1.1.3.0 |
- | history | + | |
- | ls | + | .1.3.6.1.4.1.1916.1.1.1.34.1.10.3 idem |
- | mkdir | + | .1.3.6.1.4.1.1916.1.1.1.13.0 primary system image |
- | mv | + | .1.3.6.1.4.1.1916.1.1.1.14.0 secondary system image |
- | nslookup | + | |
- | ping | + | .1.3.6.1.4.1.1916.1.32.1.2.0 utilisation CPU % (sur le master de la stack) |
- | pwd | + | .1.3.6.1.4.1.1916.1.32.1.4.1.9 utilisation CPU |
- | top | + | .1.3.6.1.4.1.1916.1.32.2.2.1.3.X utilisation memory, avec X=num slot |
- | reboot | + | ---- |
- | reboot slot1 # redémarrer le slot1, dans la cas d'un stack | + | .1.3.6.1.4.1.1916.1.32.1.4.1.5.X utilisation CPU 5s (cf : sh cpu-monitoring) avec X=num slot |
- | reboot time < | + | .1.3.6.1.4.1.1916.1.32.1.4.1.6.1 utilisation CPU 10s |
- | rm | + | .1.3.6.1.4.1.1916.1.32.1.4.1.7.1 utilisation CPU 30s |
- | rmdir | + | .1.3.6.1.4.1.1916.1.32.1.4.1.8.1 utilisation CPU 1m |
- | scp2 | + | .1.3.6.1.4.1.1916.1.32.1.4.1.9.1 utilisation CPU 5m |
- | ssh2 | + | .1.3.6.1.4.1.1916.1.32.1.4.1.10.1 utilisation CPU 30m |
- | telnet | + | .1.3.6.1.4.1.1916.1.32.1.4.1.11.1 utilisation CPU 1h |
- | tftp | + | .1.3.6.1.4.1.1916.1.32.1.4.1.12.1 max utilisation CPU |
- | vi | + | |
+ | .1.3.6.1.4.1.1916.1.1.1.40.1 power usage (= "sh power detail | inc 'System Power Usage'" | ||
+ | .1.3.6.1.4.1.1916.1.1.1.8.0 température | ||
+ | |||
+ | .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.* | ||
</ | </ | ||
+ | |||
+ | ====Logs / journaux==== | ||
+ | |||
+ | Affichage des logs | ||
+ | <code bash> | ||
+ | show log messages nvram | ||
+ | show log messages memory-buffer | ||
+ | </ | ||
+ | |||
+ | Configuration des logs | ||
+ | <code bash> | ||
+ | # afficher la configuration des logs | ||
+ | show configuration ems | ||
+ | |||
+ | show log configuration filter " | ||
+ | |||
+ | # logguer les commandes passées sur le switch | ||
+ | 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 | ||
+ | show log components | ||
+ | |||
+ | # filtrer les alertes | ||
+ | configure log filter DefaultFilter add events All severity warning | ||
+ | |||
+ | # Voir les compteurs de log par catégorie | ||
+ | show log counters All include | ||
+ | |||
+ | # ajouter une catégorie | ||
+ | configure log filter DefaultFilter add events Kern.Info | ||
+ | |||
+ | # configurer un rsyslog | ||
+ | configure 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' | ||
+ | enable log display | ||
+ | # activer l' | ||
+ | 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 339: | Line 548: | ||
* via scp | * via scp | ||
+ | Depuis le commutateur : | ||
<code bash> | <code bash> | ||
scp2 user@host: | scp2 user@host: | ||
+ | install image summitX-22.2.1.5.xos secondary | ||
+ | use image secondary | ||
+ | [ use configuration secondary ] | ||
</ | </ | ||
- | Une fois l' | + | Une fois l' |
<code bash> | <code bash> | ||
- | use image partition | + | show switch | inc "Image Selected" |
+ | |||
+ | # la modifier si besoin | ||
+ | use image partition | ||
# puis redémarrer | # puis redémarrer | ||
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' | ||
+ | ====Commandes UNIX-like==== | ||
+ | |||
+ | Certaines commandes sont similaires aux UNIX/Linux : | ||
+ | <code bash> | ||
+ | cd | ||
+ | cp | ||
+ | exit | ||
+ | history | ||
+ | ls | ||
+ | mkdir | ||
+ | mv | ||
+ | nslookup | ||
+ | ping | ||
+ | pwd | ||
+ | top | ||
+ | reboot | ||
+ | | ||
+ | | ||
+ | rm | ||
+ | rmdir | ||
+ | scp2 | ||
+ | ssh2 | ||
+ | telnet | ||
+ | tftp | ||
+ | vi | ||
</ | </ | ||
- | =====Debug===== | + | =====Debug |
<code bash> | <code bash> | ||
Line 360: | Line 615: | ||
# 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 ! | ||
+ | # normal et extended testent les mêmes fonctions mais le second de façon plus approfondie (il prend 5 min env.). | ||
+ | run diagnostics [ extended | normal ] | ||
+ | # Performs a BERT on the stacking ports and reboots the switch : | ||
+ | run diagnostics stack-port | ||
+ | |||
+ | # voir les modules consommant de la mémoire (permet d' | ||
+ | debug hal show sys-health-check | ||
# augmenter la verbosité de certaines fonctions (XXX=fdb, deviceInfo, linkInfo, portStats, etc...) | # augmenter la verbosité de certaines fonctions (XXX=fdb, deviceInfo, linkInfo, portStats, etc...) | ||
Line 368: | Line 634: | ||
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' | ||
debug hal show fdb | debug hal show fdb | ||
# tip : trouver l' | # tip : trouver l' | ||
- | debug hal show fdb | inc CPU | + | show switch |
# alternative : | # alternative : | ||
- | show stacking detail | + | debug hal show fdb | inc CPU |
# afficher les compteurs de chaque VLAN | # afficher les compteurs de chaque VLAN | ||
Line 386: | Line 654: | ||
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 400: | Line 707: | ||
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 438: | Line 748: | ||
</ | </ | ||
- | ====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 472: | Line 829: | ||
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 492: | Line 850: | ||
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 511: | Line 911: | ||
sh iparp 10.1.2.201 | sh iparp 10.1.2.201 | ||
VR Destination | VR Destination | ||
- | VR-Default | + | VR-Default |
[..] | [..] | ||
# alternatives : | # alternatives : | ||
Line 519: | Line 919: | ||
</ | </ | ||
+ | [[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 531: | Line 971: | ||
====Agrégat==== | ====Agrégat==== | ||
- | Créer un agrégat permet de regrouper plusieurs ports physique pour un créer un logique. | + | Créer un **agrégat** permet de regrouper plusieurs ports physique pour un créer un logique. Le premier port (ordre croissant) devient le **master port**, c'est lui qui porte la configuration de l' |
<code bash> | <code bash> | ||
- | # agrégat | + | # créer l'agrégat |
- | configure | + | enable |
- | # => créer l'agrégat | + | |
+ | # ajout d'un 4ème port | ||
+ | configure sharing | ||
# désactiver l' | # désactiver l' | ||
Line 549: | Line 991: | ||
Master | Master | ||
================================================================================ | ================================================================================ | ||
- | 1:1 | + | |
- | | + | |
- | | + | |
- | | + | |
================================================================================ | ================================================================================ | ||
Link State: A-Active, D-Disabled, R-Ready, NP-Port not present, L-Loopback | Link State: A-Active, D-Disabled, R-Ready, NP-Port not present, L-Loopback | ||
Line 566: | Line 1008: | ||
Sys-Pri | Sys-Pri | ||
-------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ||
- | 1:1 0 0x03e9 02: | + | 1 |
Port list: | Port list: | ||
Line 573: | Line 1015: | ||
Port | Port | ||
-------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ||
- | 1:1 | + | 1 0 |
- | 1:2 | + | 1 0 |
- | 1:3 | + | 1 0 |
- | 1:4 | + | 1 0 |
================================================================================ | ================================================================================ | ||
Line 610: | Line 1052: | ||
</ | </ | ||
+ | ====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 629: | Line 1107: | ||
</ | </ | ||
- | 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 657: | Line 1158: | ||
</ | </ | ||
- | sources | + | Sources |
* https:// | * https:// | ||
* http:// | * http:// | ||
Line 709: | Line 1210: | ||
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 715: | Line 1217: | ||
<code bash> | <code bash> | ||
- | create access-list dynamic test-acl " | + | create access-list dynamic test-acl " |
</ | </ | ||
Line 769: | Line 1271: | ||
=====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 800: | Line 1367: | ||
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 833: | Line 1390: | ||
# 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 847: | Line 1533: | ||
# se connecter sur le premier slot, puis lancer une session telnet interne : | # se connecter sur le premier slot, puis lancer une session telnet interne : | ||
telnet slot 5 | telnet slot 5 | ||
+ | </ | ||
+ | |||
+ | Modifier l' | ||
+ | <code bash> | ||
+ | configure stacking node-address " | ||
</ | </ | ||
=====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 862: | Line 1567: | ||
<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==== | ||
+ | |||
+ | Le BGP n'est activé qu'à partir d'une licence **Core**. | ||
+ | |||
+ | Exemple de configuration BGP simple et exhaustive : | ||
+ | * pré-requis : création des interfaces vlans sous-jascentes avec au moins un port attribué, activation du routage | ||
+ | <code bash> | ||
+ | # création du VR dédié au BGP | ||
+ | create vr " | ||
+ | configure vr VR-Default del ports 15 | ||
+ | configure vr VR-BGP add ports 15 | ||
+ | # activation du BGP sur le VR-BGP | ||
+ | configure vr VR-BGP add protocol bgp | ||
+ | |||
+ | # on entre sur le VR pour le reste de la conf | ||
+ | vr VR-BGP | ||
+ | |||
+ | # création du VLAN d' | ||
+ | create vlan " | ||
+ | configure vlan Vl-BGP description " | ||
+ | configure vlan Vl-BGP tag 6 | ||
+ | configure vlan Vl-BGP add ports 15 untagged | ||
+ | configure vlan Vl-BGP ipaddress 10.55.6.93 255.255.255.254 | ||
+ | enable ipforwarding vlan Vl-BGP | ||
+ | |||
+ | # création d'une interface de loopback | ||
+ | create vlan " | ||
+ | enable loopback-mode vlan lo0 | ||
+ | configure vlan lo0 ipaddress 10.24.255.1 255.255.255.255 | ||
+ | enable ipforwarding vlan lo0 | ||
+ | </ | ||
+ | |||
+ | * Configuration BGP | ||
+ | <code bash> | ||
+ | configure bgp AS-number 64512 | ||
+ | configure bgp routerid 10.24.255.1 | ||
+ | # préfixes annoncés | ||
+ | configure bgp add network 10.24.255.1/ | ||
+ | # déclaration du peer | ||
+ | create bgp neighbor 10.55.6.92 remote-AS-number 64513 | ||
+ | configure bgp neighbor 10.55.6.92 description " | ||
+ | enable bgp neighbor 10.55.6.92 | ||
+ | enable bgp | ||
+ | </ | ||
+ | |||
+ | On peux ajouter une protection par mot de passe MD5 : | ||
+ | <code bash> | ||
+ | configure bgp neighbor 10.55.6.92 password encrypted "# | ||
+ | </ | ||
+ | |||
+ | Ainsi qu'une route-map pour contrôler les annonces reçues : | ||
+ | <code bash> | ||
+ | edit policy BGP-in | ||
+ | | ||
+ | # on ne permet que le préfixe 10.24.255.2/ | ||
+ | entry lo0-BGP-den-face { | ||
+ | if { nlri 10.24.255.2/ | ||
+ | then { permit; } | ||
+ | } | ||
+ | entry deny_all { | ||
+ | if { nlri 0.0.0.0/0; } | ||
+ | then { deny; } | ||
+ | } | ||
+ | |||
+ | # application de la routemap | ||
+ | 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 | ||
+ | </ | ||
+ | |||
+ | Vérifications : | ||
+ | <code bash> | ||
+ | show vr | ||
+ | Virtual | ||
+ | Router | ||
+ | -------------------------------------------------------------------------------- | ||
+ | VR-Default | ||
+ | VR-BGP | ||
+ | # (Le flag " | ||
+ | |||
+ | # (en se connectant sur le bon VR !) | ||
+ | ping < | ||
+ | show bgp | ||
+ | show bgp neighbor | ||
+ | show bgp routes all | ||
+ | show bgp routes detail all | ||
+ | |||
+ | 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 | ||
+ | </ | ||
+ | |||
+ | ===Suppression de la conf BGP=== | ||
+ | |||
+ | <code bash> | ||
+ | configure bgp delete network 10.24.255.1/ | ||
+ | delete bgp neighbor 10.55.6.92 | ||
+ | # mais surtout : | ||
+ | configure bgp router-id 0.0.0.0 | ||
+ | configure bgp AS-number 0 | ||
+ | </ | ||
+ | |||
+ | ===Tips=== | ||
+ | |||
+ | * si un préfixe est déclaré en BGP mais pas transmis (cf '' | ||
====VRRP==== | ====VRRP==== | ||
Line 886: | Line 1741: | ||
+ | =====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 921: | Line 1783: | ||
</ | </ | ||
+ | ====Bootreplay==== | ||
+ | |||
+ | ~ip-helper DHCP ; permet de router des paquets DHCP vers un serveur sur un autre réseau. | ||
+ | |||
+ | <code bash> | ||
+ | # enable bootprelay for every VLAN | ||
+ | enable bootprelay | ||
+ | # or just for the upstream and downstream VLANs | ||
+ | enable bootprelay vlan data | ||
+ | enable bootprelay vlan backbone | ||
+ | # either way, add the IP address of the DHCP server | ||
+ | config bootprelay add 10.1.30.254 | ||
+ | # To disable BOOTP relay on one or more VLANs, use the following command: | ||
+ | disable bootprelay vlan data | ||
+ | # To see the bootprelay configuration and statistics | ||
+ | show bootprelay | ||
+ | </ | ||
+ | |||
+ | ====MAC-tracking==== | ||
+ | |||
+ | Cas d' | ||
+ | |||
+ | Pour voir les modules consommant de la mémoire : | ||
+ | <code bash> | ||
+ | debug hal show sys-health-check | ||
+ | [..] | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | //Custom type 24 et 25// sont des suppressions et ajouts dans la FDB (table d' | ||
+ | |||
+ | C'est donc un problème d' | ||
+ | <code bash> | ||
+ | configure fdb mac-tracking ports all | ||
+ | configure log filter " | ||
+ | |||
+ | # et éventuellement | ||
+ | configure log filter " | ||
+ | configure log filter " | ||
+ | </ | ||
+ | |||
+ | Pour trouver les adresses MAC et les ports, voir les logs : | ||
+ | <code bash> | ||
+ | show log messages memory-buffer | ||
+ | </ | ||
+ | |||
+ | Pour info, on peut aussi activer les TRAP SNMP (mais attention au flood !) pour récupérer les infos sur un serveur externe : | ||
+ | <code bash> | ||
+ | enable snmp traps fdb mac-tracking | ||
+ | </ | ||
+ | |||
+ | Une fois trouvée la source du problème (l' | ||
+ | <code bash> | ||
+ | configure log filter " | ||
+ | configure fdb mac-tracking delete ports all | ||
+ | </ | ||
+ | |||
+ | [[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===== | ||
+ | |||
+ | * [[https:// | ||
informatique/extreme_networks.txt · Last modified: 2023/12/21 15:11 by pteu