Table of Contents
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 <nb de caractères> # 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 <IP>
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 <slot_nb.cpu_nb> # 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
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 <portstring> set port ratelimit enable set port ratelimit <portstring> clear port ratelimit <portstring>
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 : 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 <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 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 <tos tosmask> \ | 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
et0xff
- dscp entre 0 et 63 ou égal à :
af11, af12, af13, af21, af22, af23, af31, af32, af33, af41, af42, af43, af44
;be/cs0
; entrecs1
etcs7
; ouef
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 <NOM_ACL> {deny | permit} {srcmac | any} {destmac | any} \ [ethertype <ethertype>] [vlan <vlan-id>] [priority <pri>] [assign-queue <queue-id>]
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
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 (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 <ID> 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 <from_unit> <to_unit>
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 <slot>
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 ils ne communiquent pas.
set switch copy-fw destination-system <Unit-NUMBER> reset <Unit-NUMBER>
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 <MEMBER_NUMBER>
- 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 : 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 <from-unit> renumber <to-unit> # 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 <port> disable
désactive le STP sur ce portset spantree portedge <port> disable
désactive le forwarding (la commutation) de paquets sur ce port, mais ce dernier restera à l'état UP (à la différence d'unset 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 : 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
Ressources
- EOS-Basic-Switch-Layer-2-Configuration-Best-Practices (sur gtacknowledge)