======Remarques générales====== La marque Enterasys a été rachetée par Extreme Networks il y a quelques temps déjà, mais certaines gammes d'équipements sont encore vendues. ======Administration======= Accessibles en telnet par défaut, on peut activer l'accès HTTP, HTTPS ou SSH. Pour configurer l'IP d'admin, le masque réseau et la passerelle du commutateur : set ip address 10.1.11.22 mask 255.255.255.0 gateway 10.1.11.254 Par défaut le VLAN de management (celui sur lequel sera positionnée l'IP d'admin) est le 1. Pour changer son tag (1 -> 66 par exemple) : set host vlan 66 =====Prompt===== Il est de la forme : ''HOSTNAME(DROITS)->'', avec "DROITS" parmi "su", "rw" ou "ro" (SuperUser, ReadWrite ou ReadOnly), et "HOSTNAME" est le nom du switch défini avec la commande : set prompt HOSTNAME On peut filtrer le résultat d'une commande (noter l’absence d'espace avant le mot-clé "find") : show config |find toto Pour configurer une bannière (login est la bannière de pré-login, motd celle de post-login) set banner [ motd | login ] "message" show banner [ motd | login ] Pour forcer la taille du terminal (hauteur et largeur) : set length | width # en définissant une hauteur infinie on désactive les "more" set length 0 Pour lancer une commande (la prochaine qui sera saisie) plusieurs fois d'affilée : # lancer 3x la commande "show port counter ge.1.1" à 1 seconde d'intervalle loop 3 1 show port counter ge.1.1 =====Comptes utilisateurs===== Par défaut, 3 comptes sont préconfigurés à la sortie d'usine, chacun avec un mot de passe vide : * admin * rw * ro Si les logins sont parlant quant à leur droits d'accès, il faut savoir que "rw" et "ro" n'apparaissent pas dans un ''show conf''. Par sécurité il est conseiller de supprimer ou désactiver ces derniers ainsi que de changer le mot de passe admin. # supprimer les comptes clear system login rw clear system login ro # ou juste les désactiver set system login rw read-write disable set system login ro read-only disable # changer le mdp du compte admin set password admin Pour lister les comptes utilisateurs ainsi que la politique de mots de passe : show system login Username Access State Aging Simul Local Login Access Allowed Login Only? Start End Days admin super-user enabled 0 0 no ***access always allowed*** toto read-only enabled 0 0 no ***access always allowed*** Pour lister les utilisateurs connectés show users Session User Location --------- ------- ------------------- SSH admin 10.1.1.24 SSH toto 10.27.132.11 telnet titi 10.27.194.34 Pour déconnecter une session ouverte, ou ghost sans attendre son timeout : disconnect Pour limiter le nombre de connexions simultanées par login (par défaut 0 = pas de limite), par exemple 2 pour "toto" : set system login toto read-only enable simultaneous-logins 2 =====SSH===== Seul le TELNET est activé par défaut ; pour activer les accès SSH : set ssh enabled NB : le nombre maximal de connexions SSH simultanées est limité à 2 sur la majorité des modèles stackables comme les B/C/D. =====HTTP===== Pour activer/désactiver le serveur web du commutateur (par sécurité il est courant de le désactiver) : set webview enable/disable # pour activer le HTTPS set ssl enable/disable =====Sécurité du login===== Pour bloquer un login pendant 10 minutes si l'utilisateur saisit 5 mauvais mots de passe d'affiler : set system lockout attempts 5 time 10 show system lockout A utiliser avec parcimonie puisque une personne malveillante peut bloquer le prompt admin... Configurer le temps d'inactivité, en minutes, avant déconnexion (idle timeout) : set logout 160 =====Sécurité des mots de passe===== On peut définir une politique de sécurité des mots de passe afin qu'ils ne soient pas trop faibles et changés régulièrement : # définir une longueur de mot de passe à 14 caractères minimum # et imposer qu'ils contiennent au moins un caractère minuscule, majuscule, spécial et un chiffre set system password length 14 set system password min-required-chars lowercase 1 uppercase 1 numeric 1 special 1 # enregistrer les (0-10) précédents mots de passe set system password history 3 # pour interdir la réutilisation d'une sous-chaine déjà présente dans un ancien mot de passe # et interdire la répétition de plus de 3 fois le même caractère set system password substring-match-len 10 allow-repeating-chars 3 # forcer le changement des mots de passe tous les ans set system password aging 365 Vérification : show system password =====CDP/LLDP===== Le CDP ou LLDP est un protocole de découverte des voisins ; il est donc recommandé, par sécurité, de ne l'activer que sur les interconnexions entre nos équipements. show cdp show lldp # afficher les voisins détectés en CDP/LLDP sur le même segment ethernet show neighbors # activer le LLDP sur le port tg.1.1 seulement en réception set lldp port status rx-enable tg.1.1 Désactiver le CDP/LLDP : set cdp state disable set cdp state disable *.*.* set lldp port status disabled *.*.* =====Logging===== Pour afficher les logs show logging buffer # activer les logs sur la console et dans un fichier (current.log) set logging local console enable file enable Voir les paramètres de logging par défaut : show logging defaults Pour logguer de façon plus fine certaines fonctions (par ex le STP) show logging application set logging application STP level 8 Configurer l'export des logs vers un serveur syslog externe : set logging server 1 ip-addr 10.68.77.12 severity 7 descr 'serveur_rsyslog' state enable show logging server Rappel : * la **severity** est une échelle de 1 à 8 indiquant le niveau de debug (du moins au plus verbeux) : 1 (emergencies), 2 (alerts), 3 (critical), 4 (errors), 5 (warnings), 6 (notifications), 7 (information), 8 (debugging). * la **facility** sert à identifier les logs sur le serveur syslog ; 8 possibilités, entre //local0// à //local7//. Pour envoyer les logs locaux vers un serveur TFTP : copy logs/current.log tftp://10.0.0.1/switch.log ====current.log==== Le **current.log** contient les logs détaillés du système ; il n'est consultable qu'en l'exportant via TFTP ou via la commande ''show support''. Dans le cas d'un stack il retourne séquentiellement les logs de chaque membre. <134> JAN 19 05:25:17 STK1 BOOT[268434944]: sysapi.c(1295) 1 %% Configuration file on disk size 1086200 is less than expected size 1319967. Dans cet exemple, le ''1%%'' indique le pourmillage d'utilisation de la capacité de stockage (donc entre 0 et 1000). ====Logguer les commandes==== Depuis la version 06.61 il existe la directive ''sfile enable'' qui permet de logguer les actions des utilisateurs (en local et vers les serveurs syslog configurés) : set logging local console enable file enable sfile enable =====Password recovery===== Sur les séries B et C : il y a un petit trou à l'arrière du châssis, juste à droite du port stack. Il faut utiliser une pointe de stylo pour l'atteindre, l'enfoncer 5 secondes et relâcher. "Password Reset button has been pressed" apparaît en console et dans les logs. Il n'y a pas d'interruption de service, on peut ensuite se connecter directement en admin sans mot de passe. ======Système====== # permet d'afficher l'uptime du switch et l'état du système # (aimentations, ventilateurs, températures) show system # pour surveiller la charge CPU du switch et l'utilisation de la mémoire (vive et morte) show system utilization show system utilization cpu show system utilization process [slot x] # afficher le modèle, SN, adresse MAC, le firmware show system hardware # afficher la version du firmware et le SN show version # affiche sur quelle image va démarrer le switch au prochain reboot show boot system # lister les images et les fichiers de configuration présents sur la mémoire flash dir # afficher les connexion ouvertes show netstat =====Rebooter un slot===== Rebooter/redémarrer un module dans un châssis : reset nemcpu # ex : reset nemcpu 4.1 (mod 4, cpu 1) =====Configurer l'heure===== set time 7:50:00 set summertime enable Cependant il vaut mieux configurer le protocole NTP/SNTP : set sntp client unicast set sntp server 10.1.11.24 precedence 2 set sntp server 10.1.11.108 =====Boot Menu===== Le boot menu est le menu minimaliste auquel on accède avant le chargement du firmware (un peu comme le BIOS d'un PC). Il permet des opérations de dépannage et de recovery notamment. On y accède pendant les premières secondes de boot en tapant 2 (par exemple sur un D2G) : Enterasys D2-Series Boot Code... SDRAM Circuit Test of 255MB 100% Version 01.00.46 12-09-2010 Computing MD5 Checksum of operational code... Select an option. If no selection in 2 seconds then operational code will start. 1 - Start operational code. 2 - Start Boot Menu. Select (1, 2): Puis un mot de passe vous est demandé ; par défaut c'est "administrator". Ensuite s'affiche le menu de boot qui donne accès aux fonctions suivantes : Boot Menu Version 01.00.46 12-09-2010 Options available 1 - Start operational code 2 - Change baud rate 3 - Retrieve event log using XMODEM (64KB). 4 - Load new operational code using XMODEM 5 - Display operational code vital product data 6 - Update Boot Code 7 - Delete operational code 8 - Reset the system 9 - Restore Configuration to factory defaults (delete config files) 10 - Set new Boot Code password ======Gestion Configuration====== Pour afficher la configuration : show config # afficher également les lignes avec des valeurs par défaut show config all # pour filtrer le résultat sur un mot-clé : show config |find toto # sauvegarder le résultat dans le fichier (current.cfg) show config outfile configs/current.cfg Faire un factory reset (supprimer la configuration) : clear config # supprimer aussi le stack unit ID, sa priorité et l'IP de mgmt (mais pas la licence) clear config all =====Exporter la configuration vers TFTP===== # 1) enregistrer la conf localement dans un fichier show config outfile configs/20150721_switch.conf # 2) envoyer ce fichier vers un serveur TFTP copy configs/20150721_switch.conf tftp://10.1.2.211/20150721_switch.conf NB : sur les modèles "stackables" (1U) les fichiers sont enregistrés sur l'espace de stockage ''configs/'' ; pour les chassis (Matrix E ou S) il faut préciser le module (''slot1/'' par exemple) : show config outfile slot1/20150721_chassi.conf =====Restaurer la configuration depuis TFTP===== On réalise la procédure inverse, puis on injecte le fichier obtenu avec la commande ''configure'' (attention l'équipement redémarrera) : # 1) récupération de la sauvegarde sur le serveur TFTP copy tftp://10.1.2.211/20150721_switch.conf configs/20150721_switch.conf # 2) application de celle-ci (écrase la précédente conf, ou l'appliquer par dessus l'ancienne (append)) : configure configs/20150721_switch.conf [ append ] =====MAJ du firmware===== Même procédure que pour importer une conf via TFTP ; puis modifier l'image de boot : # sur les Matrix copy tftp://10.1.2.201/DFE-P-61208-0003 images/DFE-P-61208-0003 # sur les B/C/D series copy tftp://10.1.2.201/d2-series_06.03.15.0002 system:image set boot system DFE-P-61208-0003 Si plus de place (//Error: No space left on the device. Please remove backup file//), supprimer une ancienne image : dir delete d2-series_01.00.00.0029 ======Debug/tech-support====== Commandes à saisir pour un autodiagnostique complet (à envoyer au support le cas échéant) : show logging buffer show support source : https://gtacknowledge.extremenetworks.com/articles/How_To/How-to-collect-a-show-tech-or-a-tech-support-to-provide-to-GTAC Lister les flux sur les ports ten gig : show flowlimit stats tg.*.* Afficher les compteurs et l'utilisation des ports : show rmon history interval 30sec wide ======Gestion ports/VLANs====== =====Ports===== # afficher le status d'un port (alias, activation, speed, duplex) show port status [ tg.6.1 ] # affiche la portion de configuration correspondant aux ports ("#port") show config port # activer/désactiver un port set port enable ge.1.1 set port disable ge.1.1 # attribuer une description sur un port set port alias ge.1.12 uplink_vers_central # afficher la capacité du port et celle annoncé par la port d'en face (si autoneg) show port advertise ge.1.12 ge.1.12 capability advertised remote ------------------------------------------------- 10BASE-T yes yes no 10BASE-TFD yes yes yes 100BASE-TX yes yes no 100BASE-TXFD yes yes yes 1000BASE-T no no no 1000BASE-TFD yes yes yes pause yes yes yes # configurer le speed/duplex/négociation (exemple pour forcer un port en 100/FD) set port speed ge.2.1 100 set port duplex ge.2.1 full set port negotiation ge.2.1 disable Pour supprimer la configuration d'un port (par exemple pour supprimer l'alias) : clear port alias ge.1.9 Exception faite pour les paramètres de négociation, speed et duplex, qui se réinitialisent ainsi : set port negotiation ge.1.1 enable set port speed ge.1.1 10 set port duplex ge.1.1 half Pour filtrer les broacast (ici on limite à 2000 pkts/s) : set port broadcast 2000 Dropper les paquets taggués sur un port (edge typiquement) set port discard ge.1.10 tagged ====MAC-security==== La fonctionnalité maclock permet de limiter et bloquer le nombre et la valeur d'@MAC sur un port. Il s'agit d'un mécanisme de contrôle d'accès à n'activer que sur les ports utilisateurs/edge, et surtout pas sur les ports ISL (inter-switchs) sous peine de bloquer le réseau. Exemple de mise en place sur tous les ports utilisateur d'un commutateur, avec 1 MAC par port maximum : set maclock enable ge.1.1-23 # nb max d'@ mac sur le port (1) set maclock static ge.1.1-23 1 set maclock firstarrival ge.1.1-23 1 # activer la fonctionnalité set maclock enable ! # configuration de l'action en cas de dépassement des seuils configurés set maclock syslog ge.1.1-23 enable violation # vérifications show maclock show maclock stations # recopie des MAC apprises en firstarrival vers static set maclock move ge.1.1-23 Vérifications : show maclock show maclock stations Modifications manuelle d'une MAC : // ajouter une MAC staique à la main set maclock 00-11-88-4A-28-BF ge.2.72 create ====Shaping==== Basic traffic shaping : show port ratelimit set port ratelimit enable set port ratelimit clear port ratelimit ====RMON et compteurs==== show port counters ge.2.65 [switch] show rmon stats ge.2.65 Pour voir les infos de rmon sous forme de liste, par port : show rmon history interval 30sec wide Interface Index Util Octets Packets Broadcast Multicast Drop Evts Collisions Jabbers CRC Errors Undersize Oversize Fragments Direction ---------- ----- ---- -------------------- -------------------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- --------- tg.2.1 2001 0% 3555751743 3557100 6055 63100 0 0 0 0 0 0 0 rx+tx tg.2.2 2003 0% 0 0 0 0 0 0 0 0 0 0 0 rx+tx tg.2.3 2005 0% 440571734 500309 5996 122267 0 0 0 0 0 0 0 rx+tx tg.2.4 2007 0% 566194991 733960 6055 63322 0 0 0 0 0 0 0 rx+tx tg.2.5 2009 0% 451879854 477877 6040 62939 0 0 0 0 0 0 0 rx+tx t Reset des compteurs (NB : [[https://community.extremenetworks.com/extreme/topics/is_it_possible_to_reset_port_counters_on_the_n_s_series|impossible avec les Matrix N7, par contre on peut utiliser les compteurs rmon]]) clear port counter ge.2.72 ===Terminologie des compteurs=== * **In Discards** : Packets received by the device interface that were discarded even though no errors prevented them from being delivered to a higher layer protocol (e.g., to free up buffer space in the device). * **In Errors** : Packets received by the device interface that contained errors that prevented them from being delivered to a higher-layer protocol. * **In Unknown** : Packets received by the device interface that were discarded because of an unknown or unsupported protocol. * **Overruns** : inbound - lack of interface buffer * **Out Discards** : outbound - lack of interface buffer (= buffer drop = quand le débit à émettre > débit de l'interface = congestion) * **Jabber** : trame > 1518 et ont une mauvaise FCS ou CRC ; peut être lié a un pb électrique sur une NIC * **CRC** (Cyclic Redundancy Check) : pour détecter les erreurs de transmission/réception: algo de détection d'erreur * **FCS** (Frame check sequence) : détection d'erreur sur une trame, spécifique au réseau L2. * **Alignment** : le paquet ne contient pas un nb de bit multiple de 8 OU contient une //FCS error// NB : en 802.3 les erreurs devraient être < 10^-8, i.e. 1 in 82 x 10^6 * **Undersize** ou **Runt** : trame < 64 octets * **Long** : taille trame entre 1518 et 6000 octets * **Oversize**, **Jumbo** ou **Giant** : trame > 6000 octets * **Dribble** : trame > 1518 mais qui peut être traité quand même * **Congestion** : port egress congestion statistics (dropped packets) * **Jam** : utiliser pour prévenir qu'il y a collision. Peut être utiliser en cas de congestion pour "back pressure" la station qui surcharge le switch ====Agrégats==== La notation des agrégats, interfaces logiques regroupant plusieurs interfaces physiques pour améliorer le débit et la redondance, chez Enterasys, est de la forme : ''lag.0.x''. Enterasys implémente la détection automatique des agrégats et ne nécessite pas de configuration particulière si celle par défaut convient. Cependant il vaut mieux configurer l'agrégat afin de s'assurer qu'il est correctement détecté et qu'il utilise un numéro de port invariant. Procédure pour forcer 2 ports ''ge.1.24'' et ''ge.1.25'' à rejoindre le ''lag.0.4'' : set lacp enable set lacp aadminkey lag.0.1 1 set port lacp port ge.1.24-25 aadminkey 1 set port lacp port ge.1.24-25 enable Pour activer l'auto-neg d'un lag entre switchs Enterasys, dès le premier port : set lacp singleport enable Vérifications/diagnostique : show lacp show port lacp port ge.1.24 status detail show port lacp port ge.1.25 status detail show port lacp port ge.1.24 status summary ===Baisser les timers=== Chaque lien appartenant à un agrégat est testé par l'envoi de paquets de contrôle (~hello packets) qui permettent de détecter un problème quand le lien n'est pas DOWN, et sortir de l'agrégat le port en erreur, le cas échéant. Ces paquets sont envoyés toutes les 10 secondes par défaut, ce qui permet une détection en 3 x 10 = 30 secondes. Pour baisser ces timers à 1 seconde (pour une détection en 3 secondes), passer la commande suivante sur chaque port physique (et sur les 2 switchs) : # exemple avec les ports tg.2.1 et tg.3.1 sur un premier switch set port lacp port tg.2.1,tg.3.1 aadminstate lacptimeout​ ====Linkflap==== Le flapping est le fait de changer d'état //plus souvent// que la normale ; les switchs Enterasys disposent d'un ensemble de commandes permettant de surveiller les transitions UP/DOWN des ports (linkflap). Parce que cela perturbe le switch, on peut définir des règle pour bloquer les ports qui tombent trop souvent. # afficher la configuration actuelle (des ports compatibles avec la fonctionnalité) show linkflap parameters Mise en place d'une surveillance : # activer la fonction globalement set linkflap globalstate enable # définir l'intervalle de temps (en secondes) de comptage des links DOWN set linkflap interval ge.*.* 10 # défini le seuil de link DOWN autorisés par intervalle de comptage set linkflap threshold ge.*.* 20 # définir l'action en cas de non-respect de la règle (ici, juste logguer le port) set linkflap action ge.*.* gensyslogentry # afficher les compteurs de flaps show linkflap metrics # logguer les UP/DOWN des ports set linkflap portstate enable =====VLANs===== Créer un VLAN (17 par exemple) set vlan create 17 set vlan name 17 "SomeName" # afficher les VLANs actifs (dont les ports sont UP) show vlans # afficher tous les VLANs configurés (avec leurs ports, UP ou non) show vlans static # affiche/configurer le vlan natif d'un port show port vlan set port vlan ge.1.1 66 [ modify-egress ] # modify-egress permet de supprimer automatiquement tous les autres VLANs untagged du port # trunker le vlan (300) sur un port (ge.5.1) en taggué set vlan egress 300 ge.5.1 tagged # supprimer les VLANs 2,5,9 du port ge.1.1 clear vlan egress 2,5,9 ge.1.1 # afficher les VLANs configurés (tag/untagged) sur un port show port egress ge.1.12 # afficher les VLANs configurés par port (tag/untag) show vlan portinfo [ port ] =====Adresses MAC===== # afficher la table d'adresses MAC par VLAN (colonne FID) et par port show mac # afficher l'adresse MAC vue sur le port ge.1.1 show mac port ge.1.1 # rechercher sur quel port est vue une adresse MAC show mac address 00-11-88-4A-28-BF ====MAC tracking==== Dans le cas d'une boucle réseau ou d'un problème de niveau 2, avec de fortes latences, des remontées de logs de la forme : Jun 21 09:58:45 10.12.93.197 HostDoS[2] Attack ( arpNd ) detected on vlan.0.90 [ InPort(tg.2.5) LEN(94) DA(33:33:FF:00:11:22) SA(18:DB:F2:00:11:22) C-TAG(8100:005A) ETYPE(86DD) SIP(fe80::f0e9::) DIP(ff02::1::) VER(6) PROTO(58) TOS(0) TTL(255) FLOW(0) ICMP(135:0) ] ... et un ''sh sys utilization process'' remontant une forte charge CPU (proche de 60%) du processus ''Switch Packet Processing'' ; on peut activer la [[https://gtacknowledge.extremenetworks.com/articles/How_To/How-to-troubleshoot-spanning-tree-topology-changes-on-Securestack-and-N-S-Series|surveillance de déplacement d'adresses MAC]] (ou MAC tracking :-) ). Cela consiste à logguer les changements de port des adresses MAC, symptomatiques d'un problème de bouclage ou de //packet reflection// : set movedaddrtrap enable set movedaddrtrap *.*.* enable show logging buffer Afficher la table ARP d'un switch : show arp =====MTU/jumbo frame===== La MTU des ports est configurable jusqu'à 9216 octets show port jumbo ge.1.5 # si ce n'est pas déjà fait, activer les jumbo frames puis saisir une valeur set port jumbo enable ge.1.5 set port jumbo ge.1.5 9216 =====Port mirroring===== Pour copier le trafic du port ge.1.1 vers le port ge.1.2 : set port mirroring create ge.1.1 ge.1.2 # déconfiguration clear port mirroring ge.1.1 ge.1.2 ======Spanning-tree====== Par défaut le MSTP est activé, mais on peut forcer en RSTP ou "stpcompatible". show spantree version show spantree stats # afficher les ports actifs en plus (commandes équivalentes) show spantree stats active show spantree stats port *.*.* active =====Edge ports==== Un port edge est un port "utilisateur" (~ équivalent de portfast chez Cisco), sur lequel se connecte un équipement qui n'est pas un switch et avec lequel le switch n'aura pas à dialoguer en STP. Il n'est pas protégé contre les boucles mais a l'avantage de "monter" (passer UP et FORWARDING) plus rapidement. Les ports edge ne devraient donc jamais envoyer de BPDU. # Définir un port comme edge set spantree adminedge ge.1.1 true # ça n'est nécessaire dans l'absolu car la fonction autoedge est activée par défaut show spantree autoedge Auto Edge is set to enable # vérif show spantree adminedge port ge.1.1 Port ge.1.1 has a port Admin Edge of Edge-Port =====Spanguard===== Fonctionnalité qui protège contre les "TC" (topology change) intempestifs, le **spanguard** permet de désactiver un port (il passe en "blocking") sur lequel le commutateur reçoit un BPDU. Le port sera réactivé automatiquement à la fin du timeout défini, ou réactivé manuellement. Cela permet de traquer les commutateurs sauvages (installés en douce par des utilisateurs) ou des bridges "mal" configurés sur des PCs (par exemple libvirt pour des machines virtuelles ou docker) : qui n'ont pas désactivé le STP. Il ne faut pas l'activer tant que l'on n'a pas défini nos ISL (liens inter-switchs), sinon cela coupera nos intercos et créera un gros incident des familles. show spantree spanguard Spanguard is disabled # Pour fonctionner correctement, il faut préalablement configurer tous les ports utilisateur en edge forcé set spantree adminedge ge.1.1-47 true # mais surtout pas nos ISLs (Inter-Switchs links = les interconnexions avec nos autres commutateurs) clear spantree adminedge ge.1.48 # au cas ou !... # Options éventuelles set spantree spanguardtimeout 60 # Enfin, activer le spanguard set spantree spanguard enabled =====Debug===== (uniquement sur les châssis Matrix) : show spantree debug show spantree debug port tg.7.1 # view if high counts on "Ports with Received TC BPDUs" show spantree debug port *.*.* active show spantree stats port *.*.* sid 0 Pour activer/désactiver le STP : # activer/désactiver le STP : dépend du modèle : sur A/B/C/D/G/I-Series : set spantree enable / disable # sur K/N/S/7100-Series : set spantree stpmode ieee8021 / none # sur les séries BCD: set spantree version { mstp / rstp / stpcompatible } Logger les events LoopProtect : set spantree lptrapenable enable ======Access-lists====== ====="Router-mode" ACLs===== Les **router ACLs** permettent de filtrer du trafic forwardé (pas à destination de l'équipement lui-même) ; elles sont numérotées de 1 à 199 et limitées à 80 lignes ; elles peuvent être de type **standard** (numérotées de 1 à 99) ou **étendues** (numérotées de 100 à 199). * les ACLs standard permettent de filtrer en input et uniquement l'adresse IP source * les ACLs utilisent des wildcard (des masques réseau inversés : masque=255.255.0.0 -> wildcard=0.0.255.255) * par défaut elles se terminent toutes par un ''deny any any'' implicite. * les ACLs et les policys utilisent le même composant matériel ; de ce fait on ne peut utiliser les unes sans désactiver les autres. * pour créer des access-lists de type **IPv6** ou **MAC**, il faut activer le **mode IPv6** : ''access-list ipv6mode'' Pour créer une ACL, créer juste une première règle : ''access-list 67 deny host 192.168.67.1'' ; pour supprimer une ACL : ''no access-list 67''. ===Opérations sur les ACLs=== Par défaut si aucune action n'est précisée, la ligne saisie sera ajoutée à la fin de l'ACL. # ajouter une ligne à l'ACL 67 access-list 67 deny any # supprimer une ou un groupe de lignes # ex : supprimer la première ligne no access-list 67 1 # supprimer les lignes de 1 à 5 no access-list 67 1 5 # Insérer une ligne en première position : access-list 67 insert 1 permit 192.168.67.2 # remplacer la première ligne access-list 67 replace 1 permit 192.168.67.1 0.0.0.1 # Déplacer des lignes ; # par ex : insérer, devant la ligne n°1, les lignes comprises entre la 2nde et la 5ème ligne access-list 67 move 1 2 5 Une fois l'access-list rédigée, on l'applique sur une interface VLAN (''ip access-group'', en **mode routeur**) ou un port physique (''access-list interface'') : # activation sur une interface VLAN en "inbound" # NB : l'application en "outbound" n'est pas disponible sur toutes les gammes de switch interface vlan 67 ip access-group 1 in # activation sur les ports physiques ge.1.1 à ge.1.12 access-list interface 67 ge.1.1-12 On peut préciser les paramètre ''sequence'' suivi du numéro de séquence, si on veut ordonner l'application de plusieurs ACLs sur une même cible. ====ACLs étendues==== Tout fonctionne comme les ACLs standard, mais la syntaxe des règles est plus fine pour un filtrage plus précis : on peut filtrer par protocole (ip proto), ports et couple IP source/destination. # Syntaxe : access-list access-list-number {deny | permit} protocol source [source-wildcard] [eq port] \ destination [destination-wildcard] [eq port][precedence precedence | tos \ | dscp dscp ] [assign-queue queue-id] # ex : permettre au réseau 10.0.0.0/24 de faire du SSH (tcp/22) vers n'importe qui (any) : access-list 101 permit tcp 10.0.0.0 0.0.0.255 any eq 22 Avec : * protocol parmi ''ip, tcp, udp, icmp, igmp'' * port le port entre 0 et 65535 (si UDP ou TCP) * precedence la valeur du champ ip-precedence (entre 0 et 7) * ToS : la valeur du ToS, entre ''0x00'' et ''0xff'' * dscp entre 0 et 63 ou égal à : ''af11, af12, af13, af21, af22, af23, af31, af32, af33, af41, af42, af43, af44'' ; ''be/cs0'' ; entre ''cs1'' et ''cs7'' ; ou ''ef'' ====MAC-based ACLs==== Ces ACLs filtrent au niveau des adresses MAC (Ethernet), uniquement en **mode router** et après activation du mode ipv6 (''access-list ipv6mode''). access-list mac {deny | permit} {srcmac | any} {destmac | any} \ [ethertype ] [vlan ] [priority ] [assign-queue ] avec : * NOM_ACL le nom de l'ACL * Ethertype d'une valeur comprise entre 0x0600 et 0xFFFF, ou valant un mot-clé parmi : ''appletalk, arp, ibmsna, ipv4, ipv6, ipx, mplsmcast, mplsucast, netbior, novell, pppoe, rarp'' ====IPv6 ACL==== Comme les //MAC-based ACLs// il faut activer le mode ipv6mode pour utiliser. Syntaxe : access-list ipv6 name {deny | permit} protocol {srcipv6-addr/prefix-length | any} [eq port] \ {dstipv6-addr/prefix-length | any} [eq port] [dscp dscp] [flow-label label-value] [assign-queue queue-id] =====Service ACLs===== Les **service ACLs** permettent de filtrer les accès au switch. # Syntaxe : set system service-acl name {permit | deny} [ip-source ip-address [wildcard wildcard-bits] \ | ipv6-source ipv6-address [wildcard /prefix-length]] [port port-string | vlan vlan-id] \ [service service] [priority priority-value] # ex : ne permettre l'accès au switch que depuis les port ge.1.1 et ge.1.2 set system service-acl protect-sw permit port ge.1.1 set system service-acl protect-sw permit port ge.1.2 # ne permttre l'accès SSH du switch qu' l'IP 10.0.0.1 et depuis le port ge.1.12 set system service-acl protect-sw permit service ssh ip-source 10.0.0.1 \ wildcard /32 port ge.1.12 # application de l'ACL set system service-class protect-sw # Vérification show system service-class system service-class is enabled, using access list protect-sw. # Désactivation de la protection clear system service-class protect-sw # suppression de l'ACL clear system service-acl protect-sw =====Filtrer les IPv6===== src : https://gtacknowledge.extremenetworks.com/articles/How_To/How-to-configure-policy-to-drop-or-block-IPV6-packets-on-Securestacks-and-Modular-switches-routers set policy profile 1 name ICMP-IPv6 set policy rule 1 ether 0x86dd mask 16 drop # appliquer sur chaque port set policy rule admin-profile port ge.1.1 mask 16 port-string ge.1.1 admin-pid 1 # ou plus simple nb : à tester car plus simple ! set policy port *.*.* 1 show policy profile 1 -verbose # retirer la policy d'un port set policy port tg.3.3 0 ======Stacking====== Fonctionnement du stacking ([[https://community.extremenetworks.com/extreme/topics/securestack_stacking_overview-of7yg|source]]) : * un switch master, les autres "members" ; avec un backup en cas de panne du master * seul le port console du master est actif (c'est le seul a avoir la diode "MGR" allumée) * les critères d'élection du master: Previously assigned / elected management unit User-assigned priority ('set switch priority <15-0>', where15 is high priority)(7694) Hardware preference level Highest MAC Address Procédure de configuration : * les commutateurs doivent avoir le même firmware, la même licence et une conf "factory" * brancher tous les câbles de stack lorsque tous les switchs sont encore éteints * allumer les switchs un par un, en vérifiant le bon fonctionnement de chacun avant d'allumer le suivant * les IDs sont attribués dans l'ordre d'allumage (premier allumé = ID 1, etc) * se logguer en CLI (sur le master) et vérifier le stack avec un "show switch" Pour changer le switch master d'un stack : set switch movemanagement Pour changer le "switchindex" (SID), qui dépend du modèle de switch (normalement il est auto-détecté, et on peut consulter la correspondance SID/produit avec ''show switch switchtype'') : set switch member Vérifier les erreurs sur les ports de stack : show switch stack-ports Faire une bascule (changer de master) (provoque une coupure de 30-40 secondes) set switch movemanagement [from-unit] [to-unit] =====Remplacer un membre défectueux===== Pour remplacer un membre défectueux de la stack : * éteindre le membre défectueux * débrancher tous les câbles de celui-ci (alim, stack-port et brassage) * déracker le switch et le remplacer par un de même modèle (NB : surveiller la version de firmware aussi : il doit avoir la même famille (6.42 ou 6.61) que la stack) * racker et rebrancher tous les câbles sur le nouveau membre, l'alim en dernier * au redémarrage il doit être reconnu et avoir le statut "OK" dans la commande ''show switch'' =====Ajouter un nouveau membre===== Pour ajouter un switch dans une stack déjà en place, on peut recopier le firmware de la stack sur le nouveau membre nouvellement ajouté (normalement cela se fait tout seul). Le seul prérequis que sa version soit du "même côté" de la "6.42/6.61 line", sinon [[https://gtacknowledge.extremenetworks.com/articles/Q_A/How-do-I-replace-a-faulty-unit-or-management-Switch|ils ne communiquent pas]]. set switch copy-fw destination-system reset =====Retirer un membre===== NB : bien vérifier qu'on est en mode loop (double connexion des switchs) car si les membres sont juste chainés, en retirer un membre risque de couper la stack en 2. NB2 : si le membre à retirer est le master de la pile, la réélection (manuelle ou automatique) provoquera une coupure temporaire Pour retirer définitivement un switch d'une pile : * débrancher puis débrasser (ports RJ et ports stack) le switch qui doit être retirer * supprimer la configuration qui s'y rapporte : clear switch member * reconnecter le port stack entre les 2 membres adjacents à celui qui doit être retirer pour retrouver une topologie en loop Pour éviter d'avoir un trou dans la numérotation des membres, il faut renuméroter proprement les switchs restant et la conf associée, cf l'article suivant : [[https://gtacknowledge.extremenetworks.com/articles/How_To/How-to-permanently-remove-Securestack-switch-and-configuration-from-an-existing-stack|How to permanently remove SecureStack switch and configuration from an existing stack]] =====Renuméroter un membre===== Lorsqu'on sort un switch d'une stack, il conserve ses numéros de port même après un ''clear conf'' : s'il était le membre n°3, ses ports se nomment encore ge.3.*. Pour le repasser en ge.1.* (ou pour renuméroter un membre dans un stack), passer la commande : set switch renumber # dans notre exemple : passer de 3 à 1 set switch 3 renumber 1 NB : cela a pour effet de rebooter le switch. ======Routage====== Pour passer des commandes quand le switch est en mode routeur, par exemple pour voir la table ARP : C5(su)->router C5(su)->router>enable C5(su)->router#show ip arp =====helper address===== Pour transférer les paquets broadcastés dans un réseau vers une machine dans un autre réseau (par exemple pour relayer les requêtes DHCP), il faut configurer les "ip helper". Les paquets seront routés vers l'IP spécifiée (qui doit être celle du serveurs DHCP) : router enable configure interface vlan 1 ip address 172.16.1.254 255.255.0.0 ip helper-address 172.16.1.1 no shutdown exit ======Métrologie/SNMP====== Créer un accès rapide à la communauté "supervSNMP" en read-only pour la métrologie : set snmp community supervSNMP set snmp group groupRO user supervSNMP security-model v2c set snmp access groupRO security-model v2c exact read All write none notify All OIDs utiles : DISMAN-EVENT-MIB::sysUpTimeInstance .1.3.6.1.2.1.1.3.0 uptime # trouver le port d'une adresse MAC : après l'avoir convertie en décimal : # ex 00:26:b9:d2:a6:e1 => 0.38.185.210.166.225 .1.3.6.1.2.1.17.4.3.1.2.0.38.185.210.166.225 SNMPv2-SMI::mib-2.47.1.1.1.1.11.x .1.3.6.1.2.1.47.1.1.1.1.11.x numéro de série (SN) # séries B-C-D .1.3.6.1.4.1.5624.1.2.49.1.1.1.1.2.1.1 CPU 5s .1.3.6.1.4.1.5624.1.2.49.1.1.1.1.3.1.1 CPU 1min .1.3.6.1.4.1.5624.1.2.49.1.1.1.1.4.1.1 CPU 5min # Processus .1.3.6.1.4.1.5624.1.2.49.1.2.1.1.2 liste des noms de process .1.3.6.1.4.1.5624.1.2.49.1.2.1.1.3 %age CPU 5s par process .1.3.6.1.4.1.5624.1.2.49.1.2.1.1.4 %age CPU 1min par process .1.3.6.1.4.1.5624.1.2.49.1.2.1.1.5 %age CPU 5min par process # Matrix .1.3.6.1.4.1.5624.1.2.49.1.1.1.1.3 liste % CPU (5s) par slot # Bornes WIFI .1.3.6.1.4.1.5624.1.2.6.5.2.0 nombre de clients connectés ======Tips====== =====portadmin et portenable===== La différence entre **portadmin** et **portenable** (ce dernier n'étant disponible que sur les châssis Matrix apparemment) : * ''set spantree portadmin disable'' désactive le STP sur ce port * ''set spantree portedge disable'' désactive le forwarding (la commutation) de paquets sur ce port, mais ce dernier restera à l'état UP (à la différence d'un ''set port disable'') -> C'est utile dans le cadre d'un agrégat, pour éviter qu'un port ne cause "en dehors" de ce lag. source : [[https://gtacknowledge.extremenetworks.com/articles/Q_A/Difference-between-EOS-Spanning-Tree-portadmin-and-portenable-commands|Difference-between-EOS-Spanning-Tree-portadmin-and-portenable-commands]] =====Activer les policy sur D2===== Les policy ne sont pas utilisables par défaut sur les modèles D2. Pour cela, il faut activer la licence (aujourd'hui gratuite) et accepter les CLUFs pour pouvoir utiliser les commandes du type ''set policy xxx'' : show license D2Policy : status Inactive set license D2Policy src: [[https://community.extremenetworks.com/communities/community-home/digestviewer/viewthread?MessageKey=cfd4cd29-796b-4848-a2df-5898f088e7ef&CommunityKey=b42c6c6a-cd20-4836-b64b-6ff387134e07&tab=digestviewer#bmcfd4cd29-796b-4848-a2df-5898f088e7ef|Activating the Policy Feature on the D-Series]] ======Ressources====== * [[https://gtacknowledge.extremenetworks.com/articles/How_To/EOS-Basic-Switch-Layer-2-Configuration-Best-Practices|EOS-Basic-Switch-Layer-2-Configuration-Best-Practices]] (sur gtacknowledge)