Nous utilisons principalement des switchs [Cisco Catalyst](https://www.cisco.com/c/fr_fr/products/switches/index.html) 2960/3750 et quelques [Cisco Small Business](https://www.cisco.com/c/fr_fr/products/switches/index.html), cette documentation sera orientée pour ces modèles.
* Exécuter la commande `minicom cisco` et observer l'initialisation du switch. À la question `Would you like to enter the initial configuration dialog?`, répondre `no`
Pour un switch récent, une fois allumé pour la 1ère fois et les voyants _SYST_, _MAST_ et _STAT_ verts, on appuie 3 à 4 secondes sur le bouton _MODE_ ce qui le fait passer en mode _Express Setup_.
On passe dans le mode d'exécution privilégié avec `Switch> enable`. Dans ce mode, on ne peut rien configurer, mais c'est dans celui-ci que l'on pourra exécuter les commandes `show` permettant d'examiner les configurations en place. Avec `Switch# configure terminal`, on arrive dans le mode de configuration global. Enfin, `Switch(config)# interface XXX` nous mettra dans le mode de configuration d'interface.
On peut descendre d'un niveau avec la commande `exit`, ou redescendre directement vers le mode d'exécution privilégié avec la commande `end`. Les commandes `show` ne peuvent s'exécuter que dans le mode d'exécution privilégié, mais peuvent être exécutés depuis un mode plus élevé en débutant la commande avec `do` :
Attention : ces mots de passe ne sont pas sécurisés et sont déchiffrables par [Cisco Password Cracker](http://www.ifm.net.nz/cookbooks/passwordcracker.html). Il ne faut donc pas utiliser le mot clef `password` et préférer `secret` lorsque cela est possible : `enable secret PASSWORD` au lieu de `enable password PASSWORD`, et ne pas utiliser `password PASSWORD` pour les connexions telnet, ssh ou console. Voir [SwitchCisco#mise-en-place-dun-compte-utilisateur]()
Il faut également utiliser un mot de passe fort, puisque les mots de passes chiffrés par secret sont hashés en MD5 et déchiffrables avec [Cisco IOS Enable Secret Type 5 Password Cracker](http://www.ifm.net.nz/cookbooks/cisco-ios-enable-secret-password-cracker.html)
Par défaut, les privilèges 0 et 1 connectent l'utilisateur en mode user (prompt `Switch>`) où `enable` est nécessaire pour passer dans le mode supérieur. Les privilèges 2 à 15 connectent directement l'utilisateur dans le mode supérieur (prompt `Switch#`).
Avec `login local`, on utilisera un compte local créé par la commande `username`, alors qu'avec `login`, aucun compte n'est utilisé et le mot de passe doit être défini avec la commande `password PASSWORD`. Ces dernières ne doivent pas être utilisées, étant donné que le mot de passe ne serait pas sécurisé.
S'il y a assez de place sur la mémoire flash (`dir flash:`), copier le nouveau firmware dessus (`copy ftp://<IP>/fichier.bin flash:`), sinon effacer le contenu de la flash (`erase flash:`), puis placer le nouveau firmware.
Une façon de contrôler si le trunk est bien mis en place des 2 côtés est de consulter la sortie de la commande `show vlan brief`. Si le port est toujours dans le vlan 1, c'est que le trunk n'est pas opérationnel (interface non montée, ou port distant non configuré en trunk). Si tout fonctionne bien, on ne doit le voir dans aucun vlan, mais on le verra en trunk dans un `show interfaces status`.
Note : `line vty 0 4` autorise 5 connexions simultanées tandis que `line vty 0 15` en autorise 16. Les plus anciens switchs ne permettaient pas plus de 5 connexions simultanées, c'est pourquoi les vty 0 4 et 5 15 sont souvent séparés.
Important : Mettre en place le [nom d'hôte](SwitchCisco#changer-le-nom-dh%C3%B4te), le [nom de domaine](SwitchCisco#changer-le-nom-de-domaine), et le [compte utilisateur](SwitchCisco#mise-en-place-dun-compte-utilisateur).
Cette commande permet de ne pas interrompre le prompt de l'utilisateur lorsque des logs s'affichent sur le switch. Ils s'afficheront sur la ligne du dessus plutôt que sur la ligne courante.
Le principe de fonctionnement est qu'un des switchs est élu ROOT (racine de l'arbre STP), et qu'un coût est associé à chaque lien vers le ROOT.
Ce coût est calculé automatiquement à partir du nombre de connexions et du type de ces connexions (un lien 10Mb/s coûte 100, un lien 100Mb/s coûte 19, un lien 1Gb/s coûte 4, etc.).
Ce coût peut aussi être forcé manuellement si l'on veut influencer le calcul du STP.
Ensuite, grâce à ces coûts, si une boucle est détectée certains ports peuvent être bloqués.
Des vérifications sont réalisées régulièrement pour détecter un changement et adapter les blocages si nécessaire.
/!\ Le _keepalive_ — élement essentiel pour STP — n'est pas activé par défaut sur les ports *SFP* d'un switch Cisco : il faut absolument l'activer si vos segments Ethernet sont propagés sur les ports SFP !
Sur les Cisco 2960-2970, le STP est géré par VLAN on parle de « per-VLAN spanning-tree plus (PVST+) » et si le mode « Rapid » est activé de « rapid per-VLAN spanning-tree plus (rapid-PVST+) ».
La valeur par défaut de la priorité du root switch est 3276.
Le root ID est calculé avec cette priorité + une dérivation de l'adresse MAC. C'est le plus petit ID qui l'emporte.
Il peut être intéressant de changer la priorité pour choisir le switch root.
On peut aussi changer la priorité des ports (128 par défaut + coût du lien [10MBps = 100, 100Mbps = 19, 1Gbps = 4]) pour influencer le calcul STP et les connexions à désactiver.
#### Différence entre Spanning-Tree et Rapid Spanning-Tree
En Spanning-Tree, le rajout d'un lien créant une boucle et ayant un coût plus bas que le lien déjà en place (donc nouveau lien qui sera utilisé à la place de l'actuel) provoquera une coupure de 30s de ces deux liens. Si le lien rajouté a un coût plus élevé et qu'il ne remplacera donc aucun lien, alors seul ce nouveau lien sera coupé 30s. Le changement du switch ROOT provoque également une coupure des ports 30s.
En Rapid Spanning-Tree, le rajout d'un lien et le changement du switch ROOT ne provoquent pas de coupure, seuls des liens redondants déjà désactivés peuvent se couper 30s.
Le passage du mode Spanning-Tree au mode Rapid Spanning-Tree ou inversement provoque également la coupure de tous les ports du switch pour 30s, sauf les ports en mode portfast.
On utilisera cette commande uniquement si l'on est sûr de ne pas avoir besoin du Spanning Tree (serveur non virtuel connecté directement au port, etc.). Le portfast ne désactive pas le spanning-tree puisque le port continue de recevoir et d'envoyer des trames BPDU : il sera bien désactivé par STP si une boucle est créée. Mais dans ce cas, le port pourra mettre jusqu'à 2s pour se désactiver (correspondant à la valeur hello time), et donc des duplications de trames pourront avoir lieu pendant cet instant.
Le VTP est un protocole de niveau 2 propriétaire Cisco et permettant de configurer et administrer les VLAN des switchs dans un même réseau local.
Attention, son utilisation peut être dangereuse si le protocole n'est pas maîtrisé.
Les différents switchs doivent être dans le même domaine VTP pour que la configuration se partage entre eux. Par défaut, aucun domaine n'est configuré, et celui-ci est configuré automatiquement sur tous les switchs dès que sa configuration est faite sur un premier switch.
~~~
Switch(config)# vtp domain NAME
~~~
VTP fonctionne selon plusieurs modes :
* Serveur (mode par défaut) : Création, modification et suppression de VLAN possible. La version VTP peut également être modifiée pour l'ensemble du domaine VTP. Les serveurs annoncent leur configuration VLAN aux autres switchs du domaine et la synchronisent selon les paquets VTP reçus au travers des liens trunks.
* Client : Les clients synchronisent leur configuration VLAN d'après les paquets VTP reçus, et les transférent au travers des liens trunks
* Transparent : Un switch en mode transparent ne participe pas à VTP. Il ne partage ni ne synchronise pas sa configuration, mais transfère les paquets VTP reçus sur ses liens trunks.
* Off : Aucune participation à VTP, et les paquets reçus ne sont pas transférés.
Les switchs ont un numéro de révision VTP, incrémenté lors de chaque modification d'une configuration VTP ou VLAN. Si le numéro de révision reçu par un switch serveur ou client est plus grand que celui en cours, la nouvelle configuration est appliquée. Sinon, elle est ignorée.
~~~
Switch# sh vtp status
VTP Version capable : 1 to 3
VTP version running : 1
VTP Domain Name :
VTP Pruning Mode : Disabled
VTP Traps Generation : Disabled
Device ID : a456.309a.d200
Configuration last modified by 0.0.0.0 at 0-0-00 00:00:00
Local updater ID is 192.0.2.1 on interface Fa0 (first layer3 interface found)
Sans aucun des deux mots clefs `rx` ou `tx`, la réception et la transmission sont tous les deux mirrorés. Il faut préciser `tx` si on ne veut mirrorer que ce qui sort du port, ou `rx` si on ne veut mirrorer que ce qui rentre dans le port.
Si on veut monitorer à la fois un port en tx et un autre en rx :
La deuxième commande n'écrase pas la première, mais la configuration s'additionne.
#### Encapsulation replicate
Par défaut, le port mirroring renvoie tout le trafic vers l'interface de destination de façon non étiqueté (sans aucun marquage de VLAN), et sans les protocoles de niveau 2 : CDP (Cisco Discovery Protocol), VTP (VLAN Trunking Protocol), DTP (Dynamic Trunk Protocol), STP (Spanning Tree Protocol) et PAgP (Port Aggregation Protocol).
En rajoutant le mot clef `encapsulation replicate`, les paquets sont envoyés en gardant le même étiquetage VLAN qu'à la source, et les protocoles de niveau 2 sont également copiés.
Si parmi les ports source, l'un est en mode trunk et l'autre est en mode access, seul la source en trunk est affectée par ce filtre.
#### Autoriser un IDS/IPS à agir sur ce qu'il voit
L'IDS/IPS derrière la destination du port mirroring peut être configuré pour agir sur ce qu'il reçoit, et être ainsi capable d'envoyer par exemple un reset d'une connexion TCP qu'il a detecté comme étant indésirable. Le port de destination doit alors être autorisé à recevoir des paquets de l'IDS/IPS :
Par défaut, CISCO n'autorise pas les modules GBIC non agréés, il faut donc désactiver la vérification des checksum des modules GBIC pour pouvoir les connecter :
Le Dynamic Trunk Protocol (DTP) est un protocole permettant de négocier la création automatique de trunk sur une liaison. Pour en profiter, il faut passer l'interface soit en mode dynamic auto, soit en mode dynamic desirable :
L'utilisation de DTP (et donc du mode dynamic) est risquée car un serveur en face pourrait négocier un trunk et ainsi avoir accès à tous les vlans. Il est donc conseillé de ne jamais utiliser le mode dynamic.
Le DTP peut également être désactivé :
~~~
Switch(config-if)# switchport nonegotiate
~~~
Mais cette commande n'a pas d'intérêt dans le cas où le mode dynamic n'est pas utilisé. Attention cependant, désactiver cette option (`no switchport nonegotiate`) entraînera une coupure de 3 secondes de la liaison.
Les switchs Cisco Small Business Pro (par exemple, le modèle Cisco ESW 500) sont en fait d'anciens switchs Linksys. Ils n'ont pas de système IOS habituel.
La connexion par le port console ou par telnet donne seulement accès à un menu interactif permettant d'effectuer seulement quelques opérations de base. On préférera donc l'utilisation de l'interface HTTP.
Pour l'initialiser, suivre les instructions du Quick Start Guide. En résumé :
* Brancher un câble RJ45 sur un port quelconque
* Se connecter à l'adresse IP par défaut 192.168.10.2
Dans la section «VLAN Management > Interface Settings» il suffit de configurer un port, puis en cliquant sur «Copy settings» en bas de la page, de renseigner la plage de ports à laquelle appliquer la même configuration.
Probablement dans un souci de cohérence, c'est également possible mais avec une méthode totalement différente…
Dans la section «VLAN Management > Port to VLAN» sélectionner le VLAN ID désiré, et cliquer sur Go. Puis cocher «Untagged» au lieu de «Excluded» pour tous les ports désirés, et valider avec «Apply».
L'application des modifications est visible dans «VLAN Management > Port VLAN Membership»