User Tools

Site Tools


informatique:cisco:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatique:cisco:start [2009/09/21 12:17] pteuinformatique:cisco:start [2019/02/27 16:26] (current) – [password recovery avec un c888] pteu
Line 1: Line 1:
 {{tag>informatique réseaux cisco}} {{tag>informatique réseaux cisco}}
  
-====== Index de la rubrique cisco ====== +======Cisco======
- +
-~~DIR::informatique:cisco?cols=page;date;user;tags~~ +
  
 {{ http://www.eecs.berkeley.edu/IPRO/WICSE/images/cisco%20logo.gif}} {{ http://www.eecs.berkeley.edu/IPRO/WICSE/images/cisco%20logo.gif}}
  
-//à valider et insérer\\ +Cisco est un équipementier de matériels réseaux et sécurité, renommé dans le routage et la commutation notamment.
-telnet 192.168.103.24 8000 /source-interface vlan8\\ +
-PVID = n° du VLAN non taggué (le VLAN en access sur un port access et le VLAN natif sur un port trunk)\\ +
-bla//+
  
 Cette page est un recueil de l'expérience que j'ai acquise en travaillant sur des équipements Cisco. Il s'agit dans la majorité des cas du B.A.-BA assez superficiel qui me sert d'aide-mémoire. Cette page est un recueil de l'expérience que j'ai acquise en travaillant sur des équipements Cisco. Il s'agit dans la majorité des cas du B.A.-BA assez superficiel qui me sert d'aide-mémoire.
Line 19: Line 13:
  
 ====Les types de mémoire==== ====Les types de mémoire====
-  * **DRAM** Dynamic Random-Access Memory ou **RAM** tout court mémoire rapide et non permanente (elle s'efface lors d'un reboot ou d'un arrêt) ; elle contient la running-config, la table de routage, les caches, etc... +  * **DRAM** (Dynamic Random-Access Memoryou **RAM** tout court mémoire vive, rapide et non permanente (elle s'efface lors d'un arrêt électrique) ; elle contient la running-config, la table de routage, les caches, etc... 
-  * **ROM** (Read-Only Memory) contient un IOS minimal et le code, chargé au boot du routeur, qui lance l'IOS présent sur la flash+  * **ROM** (Read-Only Memory) : mémoire morte (inverse de vive !) qui contient un IOS minimal et le code, chargé au boot du routeur, qui lance l'IOS présent sur la flash
   * **Flash memory** (EEPROM ou carte PCMCIA) contient l'IOS, les sauvegardes des confs, le serveur http, etc...   * **Flash memory** (EEPROM ou carte PCMCIA) contient l'IOS, les sauvegardes des confs, le serveur http, etc...
-  * **NVRAM** (Non-Volatile RAM) contient la startup-config+  * **NVRAM** (Non-Volatile RAM) contient la startup-config ; la flash en fait partie de même que les différents slot de mémoire additionnelle.
  
 Sur les IOS, il existe 2 versions de la configuration : la running-config et la startup-config : Sur les IOS, il existe 2 versions de la configuration : la running-config et la startup-config :
-  * **running-config** c'est la configuration courante ; elle est modifiée dynamiquement/automatiquement quand on tape une commande, mais on la perd quand on reboot car elle est située dans la mémoire vive de l'équipement. C'est la "copie de travail" de la startup. +  * **running-config** c'est la configuration courante ; elle est modifiée dynamiquement et automatiquement quand on tape une commande, mais elle disparait quand on reboot car elle est située dans la mémoire vive de l'équipement (la DRAM). C'est une "copie de travail" de la startup-config
-  * **startup-config** c'est une sauvegarde pérenne de la running-configelle est stockée sur la NVRAM et est donc conservée lors de l'arrêt de l'équipement. Quand on démarre un équipement, cette dernière est copiée dans la RAM, ce qui créer la running-config.+  * **startup-config** c'est une sauvegarde pérenne de la running-config elle est stockée sur la NVRAM et est donc conservée lors de l'arrêt de l'équipement. Quand on démarre un équipement, cette dernière est copiée dans la RAM, ce qui créer la running-config.
  
 ====Les 2 niveaux d'accès==== ====Les 2 niveaux d'accès====
-Il existe 2 modes liés à différents privilèges, que l'on peut comparé aux consoles //utilisateur// ($) et //root// (#) sous Unix : +Il existe 2 modes associés à différents privilèges, que l'on peut comparer aux consoles //utilisateur// ($) et //root// (#) sous Unix : 
-  * **mode utilisateur** ''Switch>'' : le mode par défaut quand on accède au switch +  * **mode utilisateur** : le mode auquel on accède quand on se connecte au switch ; le prompt est reconnaissable au symbole "supérieur" : ''Switch>'' 
-  * **mode privilégié** ''Switch#'' : on y accède depuis le mode utilisateur par la commande ''enable'' et on le quitte avec ''disable''+  * **mode privilégié** (ou mode enable) : on y accède depuis le mode utilisateur par la commande ''enable'' on le quitte avec ''disable''. Ce mode est symbolisé par un prompt avec un dièse : ''Switch#''
  
-Le **mode configuration** ''Switch(config)#'' est une sous-partie du mode privilégié, accessible depuis le mode privilégié par la commande ''configure terminal'' (''conf t'' pour les intimes). +Le **mode configuration** ''Switch(config)#'' est une sous-partie du mode privilégié, accessible depuis le mode privilégié par la commande ''configure terminal'' (''conf t'' pour les intimes). Comme son nom l'indique, ce mode sert à passer des commandes qui seront inscrite dans la running-config ; le mode enable servant plutôt à passer des commandes de diagnostique (show). 
-  Switch> +<code bash> 
-  Switch>en +Switch> 
-  Password: +Switch>en 
-  Switch#conf t + Password: 
-  Enter configuration commands, one per line.  End with CNTL/Z. +Switch#conf t 
-  Switch(config)# + Enter configuration commands, one per line.  End with CNTL/Z. 
-On peut protéger l'accès à chaque mode de privilège (utilisateur et privilégié).+Switch(config)# 
 +</code> 
 + 
 +On peut (c'est même recommandé) protéger l'accès à chaque mode de privilège (utilisateur et privilégié).
  
-Depuis le mode configuration global (conf t) on peut accéder aux modes de configuration :+Depuis le mode configuration global (conf t) on peut accéder aux sous-menus de configuration :
   * d'une interface ''Router(config-if)#''   * d'une interface ''Router(config-if)#''
   * d'une sous-interface ''Router(config-subif)#''   * d'une sous-interface ''Router(config-subif)#''
Line 48: Line 45:
   * d'une ligne ''Router(config-line)#''   * d'une ligne ''Router(config-line)#''
   * du router ''Router(config-router)#''   * du router ''Router(config-router)#''
 +
  
 ====Commandes de base==== ====Commandes de base====
-IOS permet :+ 
 +Les fonctionnalités de base d'IOS sont :
   * la complétion automatique (comme les UNIX) avec la touche ''<tab>''   * la complétion automatique (comme les UNIX) avec la touche ''<tab>''
 Mais à la différence d'UNIX, on peut ne taper que le début d'une commande pour qu'elle soit interprétée (s'il n'y a pas de conflit) : par exemple ''conf t'' pour ''configure terminal''. Mais à la différence d'UNIX, on peut ne taper que le début d'une commande pour qu'elle soit interprétée (s'il n'y a pas de conflit) : par exemple ''conf t'' pour ''configure terminal''.
Line 59: Line 58:
 On quitte un mode avec la commande ''exit'' ou avec la combinaison de touches ''ctrl+z'' On quitte un mode avec la commande ''exit'' ou avec la combinaison de touches ''ctrl+z''
   * ''do'' permet de lancer des commandes privilégiées (réservées au mode privilégié donc) lorsqu'on est en mode configuration   * ''do'' permet de lancer des commandes privilégiées (réservées au mode privilégié donc) lorsqu'on est en mode configuration
-  * la plupart du temps, pour annuler une commande, on utilise le mot ''no'' suivit de la commande à supprimer (ex : ''no ip address'' pour supprimer l'adresse IP d'une interface).+  * la plupart du temps, pour annuler une commande, on utilise le mot ''no'' suivit de la commande à supprimer (par ex : ''no ip address'' pour supprimer l'adresse IP d'une interface).
  
 ====Raccourcis clavier==== ====Raccourcis clavier====
Line 74: Line 73:
   * ''ctrl+d'' supprime un caractère à gauche du curseur (équivalent du ''backspace'')   * ''ctrl+d'' supprime un caractère à gauche du curseur (équivalent du ''backspace'')
  
-Le rappel des dernières commandes passées peut se faire avec les flèches ''haut'' et ''bas'' ou avec ''ctrl+p'' et ''ctrl+n''. De même pour déplacer le curseur à gauche ou à droite on peut se servir des flèches ou des combinaisons ''ctrl+b'' et ''ctrl+f''.+Le rappel des dernières commandes passées peut se faire avec les flèches ''haut'' et ''bas'' ou avec ''ctrl+p'' et ''ctrl+n''. De mêmepour déplacer le curseur à gauche ou à droite on peut se servir des flèches ou des combinaisons ''ctrl+b'' et ''ctrl+f''.
  
 ===Les signaux=== ===Les signaux===
-Sous Linux on peut utiliser le raccourcis clavier ctrl+pour envoyer un SIGINT qui provoque l'interruption d'un processus long ou bloqué. +Sous Linux on peut utiliser le raccourcis clavier ctrl+pour envoyer un SIGINT qui provoque l'interruption d'un processus. Sous IOSon utilise l'équivalent : ''ctrl+shift+6'' ou ''ctrl+shift+9'' + "x".
-Sous les IOS on utilise l'équivalent : ''ctrl+shift+6'' ou ''ctrl+shift+9'' + "x".+
  
 ===Séquence d'échappement=== ===Séquence d'échappement===
-C'est une séquence de touches qui, lorsqu'elle est envoyée à un équipement Cisco lors du boot, le fait basculer en rommon. Cette séquence dépend du logiciel utilisé ; Cisco liste les plus connues sur cette page : [[http://www.cisco.com/warp/public/701/61.html|Standard Break Key Sequence Combinations During Password Recovery]].+C'est une séquence de touches qui, lorsqu'elle est envoyée à un équipement Cisco lors du boot, le fait basculer en rommon (l'IOS minimal). Cette séquence dépend du terminal utilisé ; Cisco liste les plus connues sur cette page : [[http://www.cisco.com/warp/public/701/61.html|Standard Break Key Sequence Combinations During Password Recovery]].
  
 +Avec Putty, on peut faire juste un clic droit sur le titre de la fenêtre, puis Special Command > Break.
 ====Commandes filtres==== ====Commandes filtres====
  
-Quand on fait une commande qui renvoie une grosse sortie, on peut le filtrer le résultat avec le caractère ''|'' (pipe) (entouré d'espaces, c'est obligatoire à la différence de Linux) suivi les mots-clés ''include'' ou ''exclude'', suivi d'un texte. Cela ne sélectionnera que les lignes qui, respectivement, contiennent ou ne contiennent pas le texte spécifié.+Quand on fait une commande qui renvoie un résultats sur de nombreuses lignes, on peut les filtrer avec le caractère ''|'' (pipe) (entouré d'espaces, c'est obligatoire à la différence de Linux) suivi des mots-clés ''include'' ou ''exclude'', suivi d'un texte. Cela ne sélectionnera que les lignes qui, respectivement, contiennent ou ne contiennent pas le texte spécifié.
  
 Le mot-clé ''begin'' permet de positionner le fenêtre de lecture sur la première occurrence de la chaîne qui le suit (ex : ''show run | begin router ospf'' pour voir le résultat à partir de la configuration de l'OSPF - pour un routeur bien sur.) Le mot-clé ''begin'' permet de positionner le fenêtre de lecture sur la première occurrence de la chaîne qui le suit (ex : ''show run | begin router ospf'' pour voir le résultat à partir de la configuration de l'OSPF - pour un routeur bien sur.)
Line 98: Line 97:
  
 ====IP de management==== ====IP de management====
-Dans le cas d'un switch, il n'y a pas de traitement de paquet niveau 3 normalement (hors ACLs, mais disons pas de routage comme sur un routeur). Pourtant, on a besoin d'attribuer une adresse IP à ce dernier pour pouvoir l'administrer : c'est ce qu'on appelle l'IP de management. +Dans le cas d'un switch, il n'y a pas de traitement de paquet niveau 3 normalement (hors ACLs, mais disons pas de routage). Pourtant, on a besoin d'attribuer une adresse IP à ce dernier pour pouvoir l'administrer : c'est ce qu'on appelle l'IP de management. 
-On spécifie l'IP d'administration du switch en configurant l'IP de l'interface du **vlan d'administration** (par défaut le vlan 1) : +On spécifie l'IP d'administration du switch en configurant l'IP de l'interface du **vlan d'administration** (qui est par défaut le vlan 1) : 
-  Switch(conf t)#int vlan 1 +<code bash> 
-  Switch(conf-if)#ip address 10.0.0.1 255.255.255.0+Switch(conf t)#int vlan 1 
 +Switch(conf-if)#ip address 10.0.0.1 255.255.255.0 
 +</code>
  
-Un switch ne peut avoir qu'une seule adresse IP de management (sauf s'il s'agit d'un switch multilayer comme un 3500 ou un 3700).+Un switch ne peut avoir qu'une seule adresse IP de management (sauf s'il s'agit d'un switch multilayer comme les séries Catalyst (c3500, c3700, c6500, etc...).
  
  
 ====Passerelle==== ====Passerelle====
-Pour sortir du réseauon doit spécifier la passerelle du réseau, c'est à dire la machine qui va router les paquets :+Toujours dans le cas d'un switch, et à l’instar d'un PC, pour sortir du réseau on doit spécifier la passerelle (ou le routeur) du réseau :
  
-  (conf t)#ip default-gateway 192.168.0.254+<code bash> 
 +(conf t)#ip default-gateway 10.0.0.254 
 +</code>
  
 Évidemment celle-ci doit être dans le VLAN d'administration du switch pour être inaccessible. Évidemment celle-ci doit être dans le VLAN d'administration du switch pour être inaccessible.
 +
 +Pour les routeurs, on définit la route par défaut ; voir les commandes ''ip default-network'' et ''ip route 0.0.0.0 0.0.0.0'' (plus d'info sur cisco.com : [[http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080094374.shtml|Configuring a Gateway of Last Resort Using IP Commands]]
  
 ====subnet zero==== ====subnet zero====
Line 121: Line 126:
  
 ''no ip domain-lookup'' permet de désactiver les fonctions de résolution de nom (ça évite au routeur de perdre du temps à rechercher une machine lorsqu'on se trompe en tapant une commande) : ''no ip domain-lookup'' permet de désactiver les fonctions de résolution de nom (ça évite au routeur de perdre du temps à rechercher une machine lorsqu'on se trompe en tapant une commande) :
-  Router#sxow +<code bash> 
-  Translating "sxow" ...domain server (255.255.255.255) +Router#sxow 
-  % Unknow command or computer name, or unable to find computer address+ Translating "sxow" ...domain server (255.255.255.255) 
 + % Unknow command or computer name, or unable to find computer address 
 +</code>
  
 ====logging synchronous==== ====logging synchronous====
 +
 Par défaut on reçoit des messages du routeur, qui troublent la saisie des commandes, par exemple : Par défaut on reçoit des messages du routeur, qui troublent la saisie des commandes, par exemple :
-  Router#confi +<code bash> 
-  %SYS-5-CONFIG_I : Configured from console by console +Router#confi 
-  Enter configuration commands, one per line. End with CNTL/Z.+ %SYS-5-CONFIG_I : Configured from console by console 
 + Enter configuration commands, one per line. End with CNTL/Z. 
 +</code>
  
 Pour retrouver sa ligne de commande on peut faire un ''ctrl+r'' qui ré affiche notre ligne. Mais pour éviter ce problème, on peut demander un **logging synchronous** sur la console : Pour retrouver sa ligne de commande on peut faire un ''ctrl+r'' qui ré affiche notre ligne. Mais pour éviter ce problème, on peut demander un **logging synchronous** sur la console :
-  Router(config)#line con 0 +<code bash> 
-  Router(config-line)#logging synchronous+Router(config)#line con 0 
 +Router(config-line)#logging synchronous 
 +</code>
  
 Voici l'éventuel résultat : Voici l'éventuel résultat :
-  Router#confi +<code bash> 
-  %SYS-5-CONFIG_I : Configured from console by console +Router#confi 
-  Router#configure + %SYS-5-CONFIG_I : Configured from console by console 
 +Router#configure 
 +</code>
  
 =====Configuration générale===== =====Configuration générale=====
Line 218: Line 231:
 =====Configurer un VLAN===== =====Configurer un VLAN=====
  
-Un //Virtual LAN, réseau virtuel, permet de créer plusieurs réseaux sur différents ports du switch//. Cela consiste à tagger les paquets des LANs virtuels et à les échanger via des liens trunk. Ainsi on peut avoir différents réseaux virtuels sur un ou plusieurs switchs, avec un domaine de broadcast propre à chaque VLAN.+L'utilisation de VLANs (Virtual LAN, ou réseau virtuel) sur un commutateur, permet de créer plusieurs réseaux sur un même commutateur physique.
  
-But : +Accéder à l'article [[informatique:cisco:configurer_un_vlan]].
-  * segmentation (un domaine de broadcast) +
-  * flexibilité (possibilité de plusieurs vlan pour un switch) +
-  * sécurité (lié à la segmentation)+
  
-Il existe 2 protocoles pour tagger les VLANs : 
- 
-  * **802.1q** : normalisé par l'IEEE, aussi appelé **dot1q**, qui ajoute un champ de 4 octets dans la trame Ethernet pour le tagging : 16 bits pour le champ Ethertype (0x8100), 3 bits pour la priorité de la trame (802.1p), 1 bit pour identifier un réseau token ring, et 12 bits pour le VLAN ID (soit 4096 possibilités). C'est appelé //single tagging// ou //internal tagging//. Ce protocole n'est utilisé que sur des liens point-à-point (point-to-point). 
-  * **ISL** (Inter Switch Link) est le protocole propriétaire CISCO désuet actuellement. Il encapsule la trame Ethernet en lui rajoutant un header de 26 octets et un FCS (CRC) de 4 octets. Le VLAN ID est codé dans un champ de 10 bits, donc ce protocole ne supporte, lui, que 1024 VLANs max. Comme pour le 802.1q, ce protocole n'est utilisé que sur des liens point-à-point (point-to-point). 
- 
-Les différentes dénominations (types) de VLAN : 
-  * **VLAN par défaut** : le VLAN 1, celui dans lequel sont mis tous les ports par défaut. 
-  * **VLAN natif** : les trames du VLAN natif ne sont pas tagguées en 802.1q afin d'assurer l'inter-opérabilité avec les matériels ne supportant pas le tagging. C'est par ce VLAN que transitent les protocoles de contrôle tels le CDP, VTP, PAgP et DTP. Par défaut c'est le VLAN 1. 
-  * **VLAN de management** : VLAN dans lequel est située d'IP de management du commutateur, via laquelle on accède au matériel pour l'administrer. 
-  * **VLAN utilisateur** : VLANs classiques = tous les autres. 
- 
-**Une best-practice concernant les VLANs consiste à isoler le VLAN natif (ni data ni utilisateurs dedans) ainsi que le VLAN d'administration (afin d'y appliquer un contrôle d'accès drastique, sécurité oblige).** 
- 
-Les différents VLANs : 
-  * le VLAN 1 est, comme vu plus haut, le VLAN natif par défaut. 
-  * les VLANs 1 à 1001 sont les **VLANs standards**, enregistrés dans le fichier ''VLAN.dat'' sur la mémoire flash (VLAN database). 
-  * les VLANs 1002 à 1005 sont des **VLANs réservés** pour FDDI et Token Ring ; ils sont créés automatiquement et on ne peut pas les supprimer. 
-  * sur un switch configuré en mode transparent utilisant une version récente d'IOS (version "enhanced") il est possible de créer des **VLANs étendus**, de 1006 à 4094. Cependant ceux-ci ne sont pas sauvegardés dans la VLAN database. 
- 
-====La règle des 80/20==== 
-Vilfredo Paretto était un économiste italien qui avait "découvert" que 80% des richesses d'un pays étaient contrôlées par 20% de la population. 
- 
-La **règle des 80/20** en réseau en est fortement inspirée : "on" a constaté que, généralement, 80% du trafic réseau ne concernait que des flux locaux (serveurs locaux, imprimantes, etc...) alors que seulement 20% des flux étaient distants (fermes de serveurs, internet, etc...). Partant de là on a donc cherché à privilégier les flux intra-VLAN en créant des VLANs par fonction et non géographiques. 
- 
-De nos jours, les coûts liés à la bande-passante ont baissé et on constate l'apparition de fermes de serveur centralisées (data-center, etc...) ce qui a inverser la métrique de cette règle, qui est devenue la règle des 20/80. 
- 
-Ces 2 règles sont essentielles pour choisir le type de VLAN que l'on va mettre en place : 
-  * VLANs locaux si on se rapproche de la règle des 80/20 
-  * VLANs géographiques si on se rapproche de la règle des 20/80 
- 
-====Création d'un vlan==== 
-Pour créer le vlan 5 de nom "vlan cinq" (tiens, c'est original). 
- 
-  Switch(config)#vlan 5 
-  Switch(config-vlan)#name "vlan cinq" 
- 
-//Jadis// il fallait rentrer dans la ''vlan database'' pour créer un VLAN ; c'est désormais déconseillé car cette commande est en voie de désuétude.  
- 
-La configuration des VLANs est contenue dans le fichier ''flash:/vlan.dat'', qu'il faut effacer en plus du fichier de configuration (startup-config) si on veut nettoyer __complètement__ le switch. 
- 
- 
-====Mode access==== 
-C'est le cas d'un port physiquement relié à une machine (utilisateur, serveur, ...). 
- 
-===Configuration statique=== 
-//Caractéristiques : sécurisé, facile à configurer, facile à monitorer.// 
- 
-Pour attribuer un port physique à ce vlan, par exemple le fast ethernet 0/2 : 
- 
-  Switch(config)#int fa0/2 
-  Switch(config-if)#switchport mode access 
- 
-  Switch(config-if)#switchport access vlan 5 
- 
-Il pourra discuter avec toutes les autres machines connectées sur d'autres ports dans le même VLAN. Pour communiquer avec d'autres machines qui ne sont pas dans le VLAN 5, il faut passer par un **routeur** (un équipement de niveau 3). 
- 
-===VMPS (configuration dynamique)=== 
-Un **VLAN Management Policy Server** permet d'attribuer des VLANs dynamiquement sur des ports physiques. 
- 
-C'est un switch ou un serveur qui centralise une base de données faisant correspondre un numéro de VLAN (VLAN ID) à une adresse MAC. Lorsqu'une machine se connecte sur un port, une requête est émise par le switch d'accès à destination du VMPS afin de savoir dans quel VLAN est la machine ; il configurera automatiquement le port : 
-  * dans le bon VLAN 
-  * en mode portfast (voir plus bas) 
- 
-C'est ce qu'on appelle le **Dynamic VLAN configuration**. Ce mode est incompatible avec le mode %%port-security%% et le mode trunk. 
- 
-Le ports doivent être configurés de cette façon : 
- 
-  switchport access dynamic 
- 
-===VLAN auxiliaire=== 
-Avec l'avènement de la VOIP il existe un mode "bâtard" entre le mode access et le mode trunk (ce n'est pas très correct de dire cela mais ça permet de bien s'imaginer la chose). Il permet de préciser, sur un port en mode access, un VLAN supplémentaire spécifique pour la voix. C'est utilisé dans le cas où la machine est reliée à un téléphone IP, qui relais les données du PC + ses trames de VOIP vers le switch. Dans ce cas le "VLAN voix" est appelé le **VLAN auxiliaire** ; il sera taggué par le téléphone, et se sera totalement transparent pour la machine connectée derrière. 
- 
-====Mode trunk==== 
-Pour diffuser des VLANs entre 2 switchs (par exemple) par le même lien physique on doit passer ce lien inter-switch en **mode trunk** : cela consiste à ajouter une information (un tag) sur chaque paquet Ethernet permettant de définir l'appartenance à un VLAN : c'est ce qu'on appelle le tagging. 
- 
-Un port trunk doit être configuré en ''switchport'' (de niveau 2) et en ''mode trunk''. Ensuite, on doit spécifier les VLANs qui transitent par ce port avec la syntaxe : ''switchport trunk allowed vlan {all | none | [add | remove | except] <VLANs>}''. Par défaut un port en mode trunk relaie tous les VLANs du commutateur. 
- 
-Enfin il faut spécifier le protocole utilisé pour le trunk : ''switchport trunk encapsulation [dot1q | isl | negociate]'' (par défaut, //negociate// utilisera l'ISL). 
- 
-  Switch(config-if)#switchport 
-  Switch(config-if)#switchport mode trunk 
-  Switch(config-if)#switchport trunk encapsulation dot1q 
-  Switch(config-if)#switchport trunk allowed vlan add 2,5 
- 
- 
-Pour modifier le VLAN natif, c'est-à-dire le VLAN non taggué (par défaut c'est le 1 ; ici on le passe à 17) on passe la commande : 
- 
-  Switch(config-if)#switchport trunk native vlan 17 
- 
-===DTP=== 
-**Dynamic Trunking Protocol** permet à un port de dialoguer avec le port d'en face dans le but de passer en mode trunk ou non. 
- 
-  * ''switchport nonegociate'' ne négocie pas le trunk ; la commande n'est accessible que sur un port configuré en mode access ou trunk. 
-  * ''switchport mode dynamic {auto | desirable}''. Active l'auto configuration du port : 
-    * mode **desirable** : négocie __activement__ pour passer le lien en trunk ; il passe donc en mode trunk face à un port configuré en trunk, desirable ou en auto. C'est le mode par défaut. 
-    * mode **auto** : négocie __passivement__ le lien en trunk (= il répond juste aux sollicitations qu'il reçoit); il passe en trunk uniquement face à un port configuré en mode trunk ou desirable. 
- 
-Si rien n'est spécifié c'est une __faille potentielle__ (VLAN hopping) quand c'est sur un port relié à une machine utilisateur (ce dernier peut se faire passer pour un switch, forcer en mode trunk, et faire passer tous les VLANs dessus). 
- 
-==Synthèse des interactions== 
- 
-|                   ^ Dynamic auto ^ Dynamic desirable ^ Trunk        ^ Access       ^ 
-^ Dynamic auto      |  access      |  trunk            |  trunk        access      | 
-^ Dynamic desirable |  trunk        trunk            |  trunk        access      | 
-^ Trunk              trunk        trunk            |  trunk        déconseillé | 
-^ Access            |  access      |  access            déconseillé |  access      | 
- 
- 
-==Vérification== 
- 
-  sh dtp interface 
-   DTP information for GigabitEthernet1/0/1: 
-   TOS/TAS/TNS:                              ACCESS/OFF/ACCESS 
-   TOT/TAT/TNT:                              802.1Q/NEGOTIATE/802.1Q 
-   Neighbor address 1:                       000000000000 
-   Neighbor address 2:                       000000000000 
-   Hello timer expiration (sec/state):       never/STOPPED 
-   Access timer expiration (sec/state):      never/STOPPED 
-   Negotiation timer expiration (sec/state): never/STOPPED 
-   Multidrop timer expiration (sec/state):   never/STOPPED 
-   FSM state:                                S1:OFF 
-   # times multi & trunk                     0 
-   Enabled:                                  no 
-   In STP:                                   no 
-    
-   Statistics 
-   ---------- 
-   203 packets received (0 good) 
-   203 packets dropped 
-       0 nonegotiate, 0 bad version, 0 domain mismatches, 
-       0 bad TLVs, 0 bad TAS, 0 bad TAT, 0 bad TOT, 203 other 
-   0 packets output (0 good) 
-       0 native, 0 software encap isl, 0 isl hardware native 
-   0 output errors 
-   0 trunk timeouts 
-   1 link ups, last link up on Mon Mar 01 1993, 00:01:57 
-   2 link downs, last link down on Wed Mar 10 1993, 23:43:59 
- 
-====Vérification==== 
-  Switch#sh vlan [ brief | id <vlan_id> | name <vlan_name> ] 
-  Switch#sh vlan brief 
-   
-  VLAN Name                             Status    Ports 
-  ---- -------------------------------- --------- ------------------------------- 
-  1    default                          active    Fa0/1,Fa0/2, Fa0/3, Fa0/4, Fa0/5 
-                                                  Fa0/6, Fa0/7, Fa0/8, Fa0/9 
-                                                  Gi0/1 
-  5    vlan cinq                        active 
-  1002 fddi-default                     act/unsup 
-  1003 token-ring-default               act/unsup 
-  1004 fddinet-default                  act/unsup 
-  1005 trnet-default                    act/unsup 
- 
-Les vlans 1, 1002, 1003, 1004 et 1005 sont les vlans par défaut de chaque type d'interface ; on ne peut pas les supprimer.\\ 
-Là on voit qu'aucun port n'a accès au vlan 5 (aucun port n'est en mode access pour le VLAN 5). 
  
 =====VTP===== =====VTP=====
-Le **Vlan Transport Protocol** permet de propager la configuration des VLANs sur un domaine VTP (un ensemble de switch convenu). Le VTP est propagé __uniquement sur les ports trunk__ ; les conditions suivantes sont requises pour que le VTP fonctionne correctement : 
-  * chaque switch doit appartenir au même domaine VTP 
-  * les switchs doivent être adjacents 
-  * les switchs doivent être reliés entre eux par des liens trunk 
  
-Chaque switch envoie les information suivantes : +Le **VTP (Vlan Transport Protocol)** permet de propager la configuration des VLANs entre plusieurs commutateurs appartenant au même domaine VTP.
-  le nom du domaine VTP +
-  le numéro de révision +
-  les VLANs connus ainsi que leurs paramètres spécifiques+
  
-Chaque switch envoie des //VTP advertisement// par défaut toutes les 5 minutes a ses voisins sur l'adresse MAC multicast ''01-00-0C-CC-CC-CC''+Accéder à l'article [[informatique:cisco:vtp]].
- +
- +
-====Les 3 modes de fonctionnement==== +
- +
-Il existe 3 modes de fonctionnement pour le VTP : +
- +
-  * **serveur** : les serveurs centralisent la conf en écriture, et la propagent vers les clients --et serveurs-- du même domaine. Chaque modification de la base des VLAN incrémente la révision du VTP et est transmise à tout le domaine. +
-  * **client** : les clients reçoivent et ré-émettent la conf de leur domaine VTP, qu'ils gardent en lecture seule : impossible de créer un VLAN en mode client. +
-  * **transparent** : le mode transparent permet de garder une base de VLAN indépendante (locale) à l'équipement. Dans ce mode, la révision VTP reste toujours à 0. En revanche, le switch relaie les informations VTP qu'il reçoit (en VTP v2 seulement). +
- +
-Un commutateur ne peut appartenir qu'à un seul domaine VTP ; en revanche il peut y avoir plusieurs domaines VTP dans un même réseau. +
- +
-Les confs envoyées par VTP disposent d'un numéro de version par domaine VTP ; les équipement se synchronisent sur le **dernier numéro de version de ce domaine**. Il faut donc faire attention lorsqu'on rajoute un switch dans un réseau si ce dernier appartient à un domaine existant et que son numéro de version est > à celui du domaine, tous les équipements du domaine vont se synchroniser sur sa base, et donc perdre leur configuration ! Il faut donc bien nettoyer un équipement qu'on insère dans un réseau : +
-  * soit on supprime le fichier **vlan.dat** qui contient les informations VTP (''delete flash:vlan.dat''+
-  * soit on change le domaine du switch pour reseter son compteur ; puis on remet le domaine voulu +
-  * (à vérifier) soit on fait un ''delete vtp'' en mode privilégié (uniquement sur les dernières versions d'IOS). +
-  * si le switch est en mode transparent il ne communique pas sa version de sa vlan database donc il est normalement "safe"+
- +
-Pour ce protéger de cela, il est fortement conseillé de définir un mot de passe au domaine VTP. Ainsi un switch connecté par inadvertance sur un réseau de prod ne pourra pas modifier pas les confs des autres équipements sans ce mot de passe. +
- +
- +
-====Les différents types d'advertisement==== +
- +
-  * **Summary Advertisements** envoyés par les clients toutes les 5 minutes ou lors d'un changement de topologie +
-  * **Subset Advertisements** faisant suite à un **Summary Advertisements**, envoyés par les serveurs VTP après un changement de configuration. Un advertisement est généré par VLAN modifié. +
-  * **Avertisement Requests** est une demande d'information sur un VLAN envoyés par un client (lorqu'on ajoute un switch dans un domaine VTP par exemple). +
- +
-====Configuration==== +
- +
-Comme pour la création de VLAN, elle peut se faire dans le mode de configuration des vlans (en entrant dans la ''vlan database''), mais c'est une façon dépréciée. On doit maintenant configurer le vtp à partir du mode config : +
- +
-  Switch(conf t)#vtp domain <mon_domaine> +
-  Switch(conf t)#vtp mode [serveur | client | transparent] +
-  Switch(conf t)#vtp password <mdp_du_domaine_VTP> +
- +
- +
-====Pruning==== +
-Comme pour le multicast, le **pruning** est l'**élagage** des liens de retransmission des données inutilesCela permet à un switch de détecter sur quels ports il n'est pas nécessaire de retransmettre les broadcast, flood ou multicast. Ainsi, il ne les retransmettra que sur les ports reliés aux switchs qui ont des ports en access dans ce VLAN, pas aux autres. Il s'active sur le serveur du domaine VTP. +
- +
-Configuration du VTP pruning : +
- +
-  Switch(conf t)#vtp pruning +
- +
-Ou alors : +
- +
-  Switch(conf t)#set vtp pruneeligible {VLAN_list} +
- +
-Pour supprimer le pruning : +
- +
-  Switch(conf t)#clear vtp pruneeligible {VLAN_list} +
- +
-====Vérification==== +
-  Switch#sh vtp status +
-  VTP Version                     : 2 +
-  Configuration Revision          : 0 +
-  Maximum VLANs supported locally : 128 +
-  Number of existing VLANs        : 7 +
-  VTP Operating Mode              : Transparent +
-  VTP Domain Name                 : vtp_montage +
-  VTP Pruning Mode                : Disabled +
-  VTP V2 Mode                     : Disabled +
-  VTP Traps Generation            : Disabled +
-  MD5 digest                      : 0x92 0xEF 0xF4 0xB5 0xA8 0xCC 0x3F 0x1A +
-  Configuration last modified by 10.2.1.30 at 3-5-93 00:41:31+
  
-====Recommandations==== 
-  * utiliser un mot de passe par domaine VTP 
-  * ne pas créer de domaine VTP trop étendu 
-  * ne pas dépasser 1 ou 2 VTP server 
  
 =====Configurer un port===== =====Configurer un port=====
Line 520: Line 300:
  
 Pour vérifier la configuration : Pour vérifier la configuration :
-  sh port-security [interface fa0/1]+<code bash> 
 +show port-security [interface fa0/1 [address]
 +</code>
 ou ou
-  sh port-security address+<code bash> 
 +show port-security address 
 +</code> 
 + 
 +Pour réactiver toutes les interfaces bloquées en err-disabled : passer en mode conf-t : 
 +<code bash> 
 +errdisable recovery cause psecure-violation 
 +</code> 
 + 
 +Pour changer une adresse MAC sticky : 
 +<code bash> 
 +int GiX/Y 
 + no switchport port-security mac-address sticky 
 + switchport port-security mac-address sticky 
 +</code> 
 + 
 +Il peut être utile, si cela ne fonctionne pas :  
 +  * de désactiver également le port-security sur l'interface 
 +<code bash> 
 +int GiX/Y 
 + no switchport port-security mac-address sticky 
 + no switchport port-security 
 + switchport port-security 
 + switchport port-security mac-address sticky 
 +</code> 
 +  * de relancer l'interface 
 +<code bash> 
 + shut 
 + no shut 
 +</code> 
 +  * de vérifier que l'adresse MAC n'est pas assignée à un autre port dans la configuration 
 +<code bash> 
 +show run | i XXXX.YYYY.ZZZZ 
 + switchport port-security mac-address sticky XXXX.YYYY.ZZZZ 
 +</code> 
 +//(tiens, elle était en sticky sur un autre port ! -> duplicate address)// 
 + 
 +Pour supprimer le cache d'adresses MAC apprises dynamiquement : 
 +<code bash> 
 +clear port-security dynamic [address XXXX.YYYY.ZZZZ] | [interface GiX/Y] 
 +</code>
  
 ====port serie==== ====port serie====
Line 544: Line 366:
  
  
-====troubleshooting==== +====Troubleshooting de port==== 
-  Switch#sh interface fa0/0+ 
 +<code bash> 
 +Switch#show interface GigabitEthernet7/13 
 +GigabitEthernet7/13 is up, line protocol is up (connected) 
 +  Hardware is C6k 1000Mb 802.3, address is 0011.93XX.XXXX (bia 0011.93XX.XXXX) 
 +  Description: Gi7/13 - attention pb 
 +  MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec, 
 +     reliability 255/255, txload 1/255, rxload 1/255 
 +  Encapsulation ARPA, loopback not set 
 +  Keepalive set (10 sec) 
 +  Full-duplex, 1000Mb/s, media type is 10/100/1000BaseT 
 +  input flow-control is off, output flow-control is on 
 +  Clock mode is auto 
 +  ARP type: ARPA, ARP Timeout 04:00:00 
 +  Last input 40w5d, output 40w5d, output hang never 
 +  Last clearing of "show interface" counters never 
 +  Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 173510 
 +  Queueing strategy: fifo 
 +  Output queue: 0/40 (size/max) 
 +  5 minute input rate 0 bits/sec, 0 packets/sec 
 +  5 minute output rate 4000 bits/sec, 8 packets/sec 
 +     11805518907 packets input, 5433554007048 bytes, 0 no buffer 
 +     Received 4863341 broadcasts (4421997 multicasts) 
 +     0 runts, 0 giants, 0 throttles 
 +     26 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored 
 +     0 watchdog, 0 multicast, 0 pause input 
 +     0 input packets with dribble condition detected 
 +     18374938262 packets output, 23940953868607 bytes, 0 underruns 
 +     147 output errors, 0 collisions, 8 interface resets 
 +     0 babbles, 0 late collision, 0 deferred 
 +     0 lost carrier, 0 no carrier, 0 PAUSE output 
 +     0 output buffer failures, 0 output buffers swapped out 
 +</code>
  
 Lancer cette commande et vérifier : Lancer cette commande et vérifier :
-  * que l'interface est "up/up" (''<interface> is up, line protocol is up''+  * que l'interface est "up/up" (''<interface> is up, line protocol is up''). Le premier "up" indique que la couche 1 OSI (couche physique) est montée elle peut être "disabled" si trop d'erreurs ont été reçues dans un intervalle de keepalive (+ de 5000 erreurs en moins de 10s, par défaut) ; le second, //line protocol//, indique que la couche 2 (liaison de données) est montée. Si le port est configuré comme destination d'une "monitor session", il apparait en ''up/down''
-  * les ''input errors'' (avec tout ce qui suit : CRC, frame, etc...) +  * la MTU de l'interface (Maximum Transmission Unit) qui doit être de 1500 par défaut. 
-  * les ''output errors'' +  * BW : bandwidth (bande passante de l'interface) 
-  * les ''collisions''+  * ''reliability 255/255, txload 1/255, rxload 1/255'' indique la disponibilité et la charge de l'interface. 
 +  * les ''input errors'' (avec tout ce qui suit : CRC (problème de bruit ou de transmission), frame, overrun, ignored, etc...) 
 +  * les ''output errors'' : s'il y en a, c'est à cause du buffer de sortie de l'interface qui est full. Souvent, cela apparait quand on a un lien de forte capacité (1 giga) et un autre de plus faible capacité (100 méga). Dans ce cas le lien 100 méga risque d'être surchargé en cas de burst sur le lien giga. 
 +  * les ''collisions'' : il est normal d'en voir apparaitre sur des interfaces en half duplex, mais il ne devrait pas y en avoir sur celles en full duplex ; auquel cas il peut y avoir un problème de configuration de duplex.
   * les ''restarts'' (si l'interface a du redémarrer à cause d'erreurs).   * les ''restarts'' (si l'interface a du redémarrer à cause d'erreurs).
 +  * runts/giants : paquets resp. trop petits/grands pour le medium
 +  * CRC : problème d'intégrité du Contrôle de Redondance Cyclique (Cyclic Redundancy Checksum) du paquet. Cela indique une altération du paquet reçu par rapport à celui envoyé (et dont l'émetteur a calculé et envoyé un hash). Cela est souvent provoqué par des collisions ou une mauvaise émission du paquet (interface réseau, GBIC ou transciever défectueux).
 +  * frame : erreur de réception d'un paquet (CRC + nombre d'octets incohérent).
 +  * overrun : nombre de fois ou l'interface a reçu trop de paquets par rapport à sa capacité de réception = dépassement du buffer de réception de l'interface
 +  * underrun : nombre de fois ou l'émetteur à fonctionner plus rapidement que la vitesse de traitement de l'équipement.
 +  * ignored : nombre de paquets ignorés pour cause de quasi-saturation des buffers internes. Souvent lié à des tempêtes de broadcast ou des burst de paquets altérés (//burst of noise//).
 +  * interface resets : nombre de reset des compteurs d'interface (''clear counter'').
 +  * lost carrier : nombre de perte de signal pendant émission
 +  * no carrier : nombre de fois ou le signal n'était pas présent pendant l'émission
 +
 +''5 minute input/output rate'' : cela indique la moyenne du trafic en input et output, sur 5 minutes. On peut baisser la période de récupération de ces données avec la commande :
 +<code bash>
 +int gi0/1
 + load-interval <seconds>
 +</code>
  
-  Switch#sh interface ethernet+<code bash> 
 +Switch#sh interface ethernet 
 +</code>
 Vérifier que les collisions ne dépassent pas 0.1 % des paquets émis Vérifier que les collisions ne dépassent pas 0.1 % des paquets émis
  
 Vérifier le ''speed'' et le ''duplex'' du port, ainsi que la protection par adresse MAC (''port-protection''). Vérifier le ''speed'' et le ''duplex'' du port, ainsi que la protection par adresse MAC (''port-protection'').
-=====Gestion des accès===== 
  
-Différents types d'accès l'accès série (port console ou auxiliaireet l'accès distant (telnet ou ssh).+source [[http://www.cisco.com/en/US/docs/ios/12_0/interface/command/reference/irshowin.html#wp1018148|Interface Commands (show interfaces -- show interfaces vg-anylan)]]
  
-Pour la première configuration il faut se connecter au port **console** avec le câble fourni par Cisco. Sous Windows on ouvre l' //Hyper terminal//, on saisit un nom de connexion bidon, on clique sur "default" et on se connecte. Il faut parfois taper "entrée" pour activer l'affichage. Normalement si le switch n'est pas configuré il ne faut pas saisir de mot de passe pour se logguer ni pour passer en mode privilégié. +=====Gestion des accès=====
-  Switch> en +
-  Switch#+
  
-====Mode enable==== +[[informatique:cisco:gestion_des_acces|Gestion_des_acces]]
-En mode config on va saisir un nouveau mot de passe pour le mode privilégié. On a le choix entre, respectivement, le garder en clair dans la config ou le hacher : +
-  Switch(config)# enable password <pwd> +
-  Switch(config)# enable secret <pwd> +
-Si les 2 sont configurés, le ''enable secret'' est prioritaire ; c'est donc celui-là qu'il faudra saisir.+
  
-====Console==== 
-On veut mettre en place un mot de passe pour se connecter sur la ligne console (CTY) : 
-  Switch(config)# line console 0 
-  Switch(config-line)# login 
-  Switch(config-line)# password <pwd> 
-''login'' indique une authentification par mot de passe, ''password'' précise le mot de passe. 
  
-====Ligne auxiliaire==== +=====Mot de passe oublié=====
-La principale différence entre les ports console (CTY) et auxiliaire (AUX) est que le port auxiliaire supporte le contrôle de flux hardware ; le port console non. Le contrôle de flux permet un contrôle des transmissions, idéal pour une connexion "rapide" (historiquement bien sûr !) telle qu'un modem, alors que le port console suffit pour une connexion série @ 9600bps. +
-  Switch(config)# line aux 0 +
-  Switch(config-line)# login +
-  Switch(config-line)# password <pwd>+
  
-====ligne vty==== +====avec un switch Catalyst====
-Elles correspondent à des lignes virtuelles (des connexions non physiques comme le port console ou AUX), celles utilisées quand un utilisateur se connecte en telnet ou ssh.+
  
-Tant qu'un mot de passe n'est pas spécifié (via la console), les sessions telnet sont interdites pour des problèmes de sécurité. +//Testé avec un Catalyst 2940 et c3750//
-De plus on ne peut y accéder que quand on a spécifié une adresse IP d'administration au switch (c'est logique puisqu'on y accède par le réseau).+
  
-Souvent les routeurs ne comprennent que 5 lignes vty (''line vty 0 4''), alors que les switchs peuvent en avoir 8 ou 16 lignes (''line vty 0 15''): +**password recovery** : Mode opératoire pour récupérer l'accès à un switch dont on a oublier le mot de passe d'accès ou enable.
-  P4SW#sh line  +
-     Tty Typ     Tx/Rx    A Modem  Roty AccO AccI   Uses   Noise  Overruns   Int +
-  *    0 CTY              -    -      -    -    -      0           0/      - +
-  *    1 VTY              -    -      -    -    -      4           0/      - +
-       2 VTY              -    -      -    -    -      0           0/      - +
-       3 VTY              -    -      -    -    -      0           0/      - +
-       4 VTY              -    -      -    -    -      0           0/      - +
-       5 VTY              -    -      -    -    -      0           0/      - +
-       6 VTY              -    -      -    -    -      0           0/      - +
-       7 VTY              -    -      -    -    -      0           0/      - +
-       8 VTY              -    -      -    -    -      0           0/      - +
-       9 VTY              -    -      -    -    -      0           0/      - +
-      10 VTY              -    -      -    -    -      0           0/      - +
-      11 VTY              -    -      -    -    -      0           0/      - +
-      12 VTY              -    -      -    -    -      0           0/      - +
-      13 VTY              -    -      -    -    -      0           0/      - +
-      14 VTY              -    -      -    -    -      0           0/      - +
-      15 VTY              -    -      -    -    -      0           0/      - +
-      16 VTY              -    -      -    -    -      0           0/      -+
  
-On veut les configurer tous les vtys ensemble : +  * Débrancher le switch 
-  Switch(config)# line vty 0 4 +  * S'y connecter sur le port console 
-  Switch(config-line)# login +  * Le rebrancher en maintenant le bouton "mode" enfoncé, jusqu'à ce que le menu de boot apparaisse (''switch:'')
-  Switch(config-line)# password <pwd>+
  
-On peut spécifier le type de protocole qu'on veut utiliser (ici ssh et telnet+<code bash> 
-  Switch(config)# line vty 0 4 +C2940 Boot Loader (C2940-HBOOT-MVersion 12.1(13r)AY1, RELEASE SOFTWARE (fc1) 
-  Switch(config-line)#transport input telnet ssh+Compiled Mon 30-Jun-03 15:16 by antonino 
 +WS-C2940-8TF-S starting... 
 +Base ethernet MAC Address: 00:12:80:81:42:c0 
 +Xmodem file system is available. 
 +The password-recovery mechanism is enabled.
  
 +The system has been interrupted prior to initializing the
 +flash filesystem.  The following commands will initialize
 +the flash filesystem, and finish loading the operating
 +system software:
  
-Dans les 3 cas ci-dessus, on demande un mot de passe pour établir une connexion ; si on veut demander aussi un login, il faut rajouter : +    flash_init 
-  Switch(config)#line vty 0 4 +    load_helper 
-  Switch(config-line)login local+    boot 
 +</code>
  
-On spécifie de nom d'utilisateur par la commande +Taper ensuite ces commandes (la complétion automatique ne fonctionne pas) 
-  Switch(config)#username toto password toto+<code bash> 
 +flash_init 
 +load_helper 
 +rename flash:config.text flash:config.old      renommer la config 
 +boot                                           # redémarrer 
 +# un fois redémarré : 
 +enable 
 +copy flash:config.old flash:config.text        # restaurer la config 
 +copy flash:config.text system:running-config   # réinjecter la conf
  
 +config t
  
-====SSH==== +# remplacer le mot de passe perdu : 
-//Les lignes vty doivent être configurées (cf § précédent)//+enable secret <NEW_PWD> 
 +line con 0 
 +   password <NEW_PWD_CON> 
 +line vty 0 15 
 +   password <NEW_PWD_SSH-TELNET> 
 +   login
  
-Le SSH ne fonctionne qu'après avoir configuré un hostname et un nom de domaine : +write memory                                   # sauvegarder les modifications 
-  Switch(config)ip domain-name <nom_de_domaine> +reload                                         redémarrer 
-  Switch(config)# hostname toto+</code>
  
-On peut préciser certains paramètres (facultatif) : +source [[http://www.cisco.com/en/US/products/sw/iosswrel/ps1831/products_tech_note09186a00801746e6.shtml|Password Recovery Procedures]] sur cisco.com
-  toto(config)#ip ssh version 2 +
-  toto(config)#ip ssh time-out 120 +
-  toto(config)#ip ssh authentication-retries 3+
  
-Configuration de l'accès SSH : +====avec un routeur c888==== 
-//à valider : le fait de devoir faire un ''toto(config)# aaa new-model''//+src :  https://www.cisco.com/c/en/us/support/docs/routers/800-series-routers/12065-pswdrec-827.html
  
-Génération d'un couple de clés RSA : +  * redémarrer le routeur en se connectant sur la console 
-  toto(config)# crypto key generate rsa [modulus <360-2048>]+  * dans les 60s suivant le boot, envoyer un Break (avec putty, ouvrir le menu puis "Special Command" > Break) 
 +  * cela coupe la séquence de boot et charge la console de Rommon ; y saisir 
 +<code bash> 
 +rommon 1 > confreg 0x2142 
 +rommon 2 > reset 
 +</code> 
 +  * un fois que l'équipement a rebooté avec sa configuration par défaut, se logguer dessus sans mot de passe, puis : 
 +<code bash> 
 +Router>enable
  
-Les lignes vty doivent être configurées (cf § précédent).+# charger la configuration pour pouvoir la modifier 
 +Routeur#copy startup-config running-config
  
-On créé ensuite un compte local : +changer le mot de passe enable 
-  toto(config)username <login> password <pwd> +Routeur#config t 
- +Routeur(config)#enable secret cisco
- +
-=====Gestion des sessions===== +
- +
-Pour afficher les sessions courante sur l'équipement : +
-  show sessions +
- +
-Pour afficher la liste des utilisateurs connectés : +
-  show users +
- +
-(Et aussi : ''show line''+
- +
-Pour déconnecter une session : +
-  disconnect <n°_de_session> +
- +
- +
-=====Mot de passe oublié===== +
-//Testé avec un Catalyst 2940// +
- +
-Mode opératoire pour récupérer l'accès à un switch dont on a oublier le mot de passe d'accès. +
- +
-  * Débrancher le switch +
-  * Le rebrancher en maintenant le bouton "mode" enfoncé, jusqu'à ce que le menu de boot apparaisse +
- +
-  C2940 Boot Loader (C2940-HBOOT-M) Version 12.1(13r)AY1, RELEASE SOFTWARE (fc1) +
-  Compiled Mon 30-Jun-03 15:16 by antonino +
-  WS-C2940-8TF-S starting... +
-  Base ethernet MAC Address: 00:12:80:81:42:c0 +
-  Xmodem file system is available. +
-  The password-recovery mechanism is enabled. +
-   +
-  The system has been interrupted prior to initializing the +
-  flash filesystem.  The following commands will initialize +
-  the flash filesystem, and finish loading the operating +
-  system software: +
-   +
-      flash_init +
-      load_helper +
-      boot +
- +
-(la complétion automatique ne fonctionne pas) +
-  * ''flash_init'' +
-  * ''load_helper'' +
-  * Sauvegarder la config : ''rename flash:config.text flash:config.old'' +
-  * Démarrer : ''boot'' +
-  * Passer en mode //enable// : ''enable'' +
-  * Restaurer la config : ''copy flash:config.old flash:config.text'' +
-  * Sauver la conf : ''copy flash:config.text system:running-config'' +
-  * Changer le mot de passe : ''(config)# enable secret <pwd>'' +
-  * Sauvegarder la conf sur la flash : ''write memory''+
  
 +# modifier les registres pour booter sur cette conf au prochain démarrage
 +Routeur(config)#config-register 0x2102
 +Routeur(config)#exit
  
 +# sauvegarder la configuration
 +Routeur#write mem
 +Routeur#reload
 +</code>
 =====MAJ IOS via Rommon===== =====MAJ IOS via Rommon=====
 //merci les gars j'ai enfin réussi //merci les gars j'ai enfin réussi
Line 731: Line 553:
  
  
-=====STP=====+=====Spanning-Tree=====
  
 Le **Spanning-Tree Protocol** ou **CST** (Common Spanning-Tree) est un protocole de niveau 2 normalisé par l'IEEE en tant que **802.1D**. Il permet de découvrir la topologie du réseau, d'en détecter les changements et d'éviter les boucles en établissant un chemin unique d'un point à un autre du réseau grâce à un algorithme d'arbre recouvrant (spanning tree). Le **Spanning-Tree Protocol** ou **CST** (Common Spanning-Tree) est un protocole de niveau 2 normalisé par l'IEEE en tant que **802.1D**. Il permet de découvrir la topologie du réseau, d'en détecter les changements et d'éviter les boucles en établissant un chemin unique d'un point à un autre du réseau grâce à un algorithme d'arbre recouvrant (spanning tree).
  
-Les communications entre les commutateurs se font par des paquets appelés BPDUs, qui sont notamment composés du "bridge priority" sur 2 octets suivi de la MAC adresse du commutateur qui parle (donc au total 2 + 6 = 8 octets). Ces 8 octets forment le BID (bridge ID) et servent à déterminé qui sera le **root bridge**. **La priorité la plus basse est la meilleure** ; à priorité égalele switch qui a la plus petite @ MAC devient le root bridge. A partir de son électiontous les autres switchs du réseau vont déterminer le chemin le plus court vers celui-cien additionnant les coûts des liens traversés :+Voir la page dédiée aux différents types de STP (CSTPRSTPPVSTPMSTP) : [[informatique:cisco:stp]]
  
-  * 100 pour 10 Mbps 
-  * 19 pour du 100 Mbps 
-  * 4 pour 1 Gbps 
-  * 2 pour 10 Gbps, etc... 
- 
-On peut influer sur l'algorithme STP en modifiant manuellement le coût d'une interface : en l'augmentant, on "oblige" le commutateur à prendre un chemin moins coûteux (ici le coût du lien sur l'interface fa0/1 du switch passe de 19 à 200) : 
-  Switch(config)#int fa0/1 
-  Switch(config-if)#spanning-tree cost 200 
- 
- 
-====STP BPDU Guard==== 
-Désactive le port sur lequel il reçoit des BPDUs si le portfast est activé sur le port. Il faut réactiver manuellement le port. 
-Pour activer le BPDU guard, on se met en config-if : 
-''spanning-tree bpduguard enable'' 
- 
-NB : on peut activer par défaut sur tous les ports __configurés en portfast__ avec la commande globale ''spanning-tree portfast bpduguard default'' 
- 
-====STP BPDU filter==== 
-''spanning-tree bpdufilter enable'' permet d'ignorer les BPDUs venant de cette interface (drop) sans pour autant la désactiver. 
- 
-NB : on peut activer par défaut sur tous les ports __configurés en portfast__ avec la commande globale ''spanning-tree portfast bpdufilter default''. 
- 
-====STP Root Guard==== 
-Désactive le port si un BPDU de plus faible priorité est reçu (= si le switch de l'autre coté tente de devenir root) ; le port se réactive automatiquement lorsque l'équipement cesse de recevoir des BPDUs supérieurs. 
- 
-Pour activer le root guard, on se met en config-if : 
-''spanning-tree guard root'' 
- 
-http://www.cisco.com/warp/public/473/74.html 
- 
-====Loop guard==== 
-Le **loop guard** est une sécurité supplémentaire pour éviter les boucles ST. Lorsqu'un port "blocking" cesse de recevoir des BPDUs, il passe normalement aux états listening-learning et forwarding. Si le loop guard est activé, ce dernier passera à l'état loop-inconsistent blocking et le message suivant sera écrit dans les logs : 
- 
-  SPANTREE-2-LOOPGUARDBLOCK: No BPDUs were received on port 3/2 in vlan 3. Moved to loop-inconsistent state. 
- 
-Lorsque le port recevra à nouveau des BPDUs, il se débloquera automatiquement. 
- 
-====Uplink fast==== 
-Permet à un switch de basculer rapidement sur un port alternatif vers le root bridge lorsque son root port tombe. Typiquement, les switchs sur lesquels on activera cette option sont les switchs d’accès. 
- 
-  (config-if)#spanning-tree uplinkfast 
- 
-C'est une fonctionnalité qui est reprise dans le RST. 
- 
-====Backbone fast==== 
-En effet lorsqu'un switch perd le lien de son root port, il ne reçoit plus de BPDU et se prend pour le root bridge, envoyant des BPDUs à ses voisins en indiquant qu'il est root. En temps normal ceux-ci l'ignorent car qui reçoivent toujours les BPDUs supérieurs envoyés par le vrai root bridge. 
- 
-Cette fonctionnalité Cisco au switch de détecter la perte du root port de son voisin quand il reçoit des BPDUs inférieurs de sa part, ceci avant le Max age (qui est de 20 secondes) et de provoquer une renégociation ST immédiate. 
- 
-  (config-if)#spanning-tree backbonefast 
- 
-====RST==== 
- 
-Le **Rapid Spanning-Tree** (normalisé **802.1w**) est une modification du ST qui permet une convergence bien plus rapide que le standart initial : on passe de 50 secondes à quelques secondes lors d'une perte d'un lien. C'est devenu un standart lui aussi. 
- 
-Par rapport au simple ST, le RST apporte un état supplémentaire : 
-  * discarding (équivalent de blocking en ST) 
- 
-Cependant les IOS actuels affichent l'état //blocking// et non //discarding// : 
-  Po22                Altn BLK 1         128.1676 P2p 
- 
- 
-... ainsi que des rôles de ports supplémentaires : 
-  * **alternative** : c'est un port qui offre un chemin alternatif vers le root bridge ; il est à l'état __discarding__ en temps normal. Il n'est présent que sur les switchs non-désignés. 
-  * **backup** : c'est un port additionnel présent sur un switch désigné qui possède un lien redondant vers le segment sur le lequel il est désigné. C'est donc le cas quand un switch a 2 ports sur le même segment : si l'un devient le port désigné du segment, l'autre deviendra le backup. Son état, dans une topologie stable, est __discarding__. 
- 
- 
-===Récapitulatif des états des ports=== 
- 
-^ état opérationnel ^ rôles      ^ états ST   ^ états RST  ^ 
-| disabled          | disabled   | disabled   | discarding | 
-| enabled           | ?          | listening  | discarding | 
-| enabled           | ?          | learning   | learning   | 
-| enabled           | root       | forwarding | forwarding | 
-| enabled           | designated | forwarding | forwarding | 
-| enabled           | discarding | blocking   | discarding | 
-| enabled           ^ alternate  | /          | discarding | 
-| enabled           ^ backup     | /          | discarding | 
- 
-États des ports (schémas trouvés chez [[http://www.cisco.com/en/US/tech/tk389/tk621/technologies_white_paper09186a0080094cfa.shtml#roles|Cisco]]) : 
- 
-{{http://www.cisco.com/image/gif/paws/24062/146-b.gif}} 
- 
-{{http://www.cisco.com/image/gif/paws/24062/146-c.gif}} 
- 
-{{http://www.cisco.com/image/gif/paws/24062/146-d.gif}} 
- 
-{{http://www.cisco.com/image/gif/paws/24062/146-e.gif}} 
- 
-C'est actuellement cette version de ST qui est utilisée partout. Partout vous dis-je. 
- 
-====PVST==== 
- 
-Le **Per VLAN Spanning-Tree** est une amélioration propriétaire de Cisco qui permet d'avoir une instance ST par VLAN (ça permet de faire de la répartition de flux puisqu'on peut ainsi définir un root bridge différent pour chaque VLAN). 
- 
-Cependant son inconvénient est que ce n'est pas un standart (donc concrètement ça ne tourne qu'entre équipements Cisco) et qui cela consomme beaucoup de ressources (CPU et réseau). 
- 
-Comme ce protocole utilise une instance par VLAN, chaque BID doit contenir le numéro de VLAN : la priorité du STP (**bridge priority**, sur 16 bits) a été décomposée en 2 champs pour devenir l'**extented bridge priority** 4+12 bits : 4 pour la priorité du switch et 12 bits pour identifier le VLAN (2^12 = 4096, le compte est bon). Cela permet donc de ne pas changer le format du champs, mais implique d'utiliser une priorité multiple de 4096 (on joue sur les 4 bits de poids fort du BID). 
- 
-=====R-PVSTP===== 
-Rapid-PVST Protocol ou **Rapid Per VLAN Spanning Tree Protocol** permet de combiner le "rapide" et le "par VLAN" ST : 
- 
-  * **Rapid** : de converger plus vite lors d'un changement de topologie (2 secondes au lieu de 50 environs) 
-  * **Per VLAN** : d'utiliser une instance STP par VLAN 
- 
-C'est un protocole propriétaire CISCO à la différence du MSTP (**Multiple STP**, extension du RSTP, qui permet de créer plusieurs instances de STP avec un ou plusieurs VLAN rattaché). 
- 
-Configuration (idem pour le PVSTP activé par défaut) : 
- 
-On active le RPVST : 
-  Switch1(config)#spanning-tree mode rapid-pvst 
-  Switch2(config)#spanning-tree mode rapid-pvst 
- 
-La priorité par défaut est de 32768 : on va déclarer le Switch1 en "root primaire" et le 2 en "root secondaire" backup, ce qui va avoir comme effet de passer la priorité du Switch1 à 24576 et du Switch2 à 28672. 
-  Switch1(config)#spanning-tree vlan 445 root primary 
-  Switch2(config)#spanning-tree vlan 445 root secondary 
- 
-NB : quand on configure un switch en ''root primary'' sur un vlan, il va modifier dynamiquement sa priorité pour devenir root sur ce VLAN ; en revanche la commande ''root secondary'' __fixe__ une priorité statique de 28672 (juste prioritaire à la priorité d'un switch lambda configuré par défaut). 
- 
-On aurait pu gérer les priorités statiques à la main : 
-  Switch1(config)#spanning-tree vlan 445 priority 8192 
-  Switch2(config)#spanning-tree vlan 445 priority 16384 
- 
-Vérification : 
-  Switch1#sh spanning-tree vlan 445 
- 
- 
-=====MSTP===== 
-Le **Multiple Spanning-tree** (IEEE 802.1s) permet de créer des groupes (instances) de VLANs qui partageront une même topologie spanning-tree. On diminue ainsi la charge du réseau et des CPUs des commutateurs par rapport au PVST (moins de BPDUs et moins de calculs d'arbres). Cela permet par exemple de faire du partage de charge en déterminant des chemins différents pour différentes instances. 
- 
-L'inconvénient est qu'un problème de ST sur une instance impacte tous les VLANs de celle-ci ; de plus le MST doit se configurer sur chaque switch d'une instance. 
- 
-On associe donc un groupe de VLAN à une instance (numérotées de 1 à 15 max), contenue dans une région ; ces VLANs partageront leur topologie ST (ou plutôt RST car chez Cisco le MST implique de fonctionner en RST). 
- 
-Par défaut l'instance 0 (MST00) contient tous les VLANs. 
- 
-Les switchs appartenant à une même région MST apparaissent comme un seul "gros" switch par rapport aux autres ; ils doivent avoir en commun : 
- 
-  * les mêmes numéros d'instance 
-  * le même mapping de VLAN par instance 
-  * le même numéro de révision 
- 
-Le BID (Bridge ID) du MST a le même format qu'en PVST, à ceci prêt que l'extended system ID contient le numéro de l'instance à la place du numéro de VLAN. 
- 
-====Configuration==== 
- 
-On va créer 2 instances dans la région region1 avec un n° de révision de 1 : 
- 
-  Switch(config)#spanning-tree mst configuration 
-  Switch(config-mst)#instance 1 vlan 1-500 
-  Switch(config-mst)#instance 2 vlan 501-1000 
-  Switch(config-mst)#revision 1 
-  Switch(config-mst)#name region1 
-  Switch(config-mst)#exit 
- 
-Puis on active le MST : 
- 
-  Switch(config)#spanning-tree mode mst 
- 
-Chaque commutateur doit avoir la même configuration de région sous peine de ne pas pouvoir communiquer avec les autres commutateurs "régionnaux". 
- 
-Pour réinitialiser la détection des protocoles ST, il faut passer la commande : 
- 
-  clear spanning-tree detected-protocols 
- 
-Dans certains cas (à déterminer) il faut passer la directive suivante sur les interfaces physiques reliées à certains commutateurs : 
- 
-  Switch(config-if)#spanning-tree mst pre-standart 
- 
- 
-====Vérification==== 
- 
-  show spanning-tree mst configuration 
-  show spanning-tree mst 
  
 =====Etherchannel===== =====Etherchannel=====
  
-C'est le nom utilisé par CISCO pour désigner du bonding ou channel bonding, c'est à dire un agrégat de ports physiques en un port logique. On peut fusionner jusqu'à 8 interfaces de même nature. Les avantages sont : +C'est le nom utilisé par Cisco pour désigner du bondingchannel bonding ou encore portchannel, c'est à dire un agrégat de plusieurs ports physiques en un port logique.
-  * addition globale (pas de machine à machine) de la bande passante de chaque lien (ex : 4 liens physiques à 100 Mbps ~= 1 lien logique à 400 Mbps). +
-  * redondance d'interface +
-On l'utilise souvent pour les interconnexions de gros commutateurs, par exemple sur un backbone. +
- +
-Il 2 principaux protocoles : le LACP (standart IEEE 802.3ad) et le PAgP (propriétaire Cisco). +
- +
-====Configuration==== +
- +
-On créer l'interface logique +
-  Switch(config)#interface PortChannel1 +
- +
-On la configure comme une interface normale. +
- +
-Pour chaque interface physique que l'on veut ajouter à l'Etherchannel, on ajoute dans la conf : +
-  Switch(config)#interface Gi0/1 +
-  Switch(config-if)#channel-group 1 mode active +
- +
-On peut spécifier le mode par : +
- +
-   active     Enable LACP unconditionally +
-   auto       Enable PAgP only if a PAgP device is detected +
-   desirable  Enable PAgP unconditionally +
-   on         Enable Etherchannel only +
-   passive    Enable LACP only if a LACP device is detected+
  
-Les ports physiques d'un Etherchannel doivent être de même type et de même vitesse ; ils doivent avoir la même configuration.+voir la page dédiée : [[informatique:Cisco:etherchannel]]
  
  
Line 1010: Line 634:
 =====ACL===== =====ACL=====
  
-//Access Control List//, implémenté sur les switchs et routeurs CISCO+Les ACLs pour **Access Control List** sont implémentées sur les switchs et routeurs CISCO ; c'est un mécanisme de filtrage de paquets.
-Il existe les ACLs standarts (numérotées de 1-99 ou 1300-1999) et les ACLs étendues (numérotées 100-199 ou 2000-2699). +
-  * **ACLs standards** : elles travaillent au niveau 3 de la pile OSI et **uniquement sur les adresses IPs source**. Chaque ligne s'empile à la suite des précédentes ; pour supprimer une ligne il faut supprimer l'ACL entière et la réécrire sans ladite ligne.+
  
-  (config)#ip access-list <numéro entre 1-99> {permit | deny} <ip source> [<wildcard>]+[[informatique:Cisco:ACL]]
  
-  * **ACLs étendues** : elles travaillent au niveau 3/4 de la pile OSI = on peut tester également les protocoles de niveau 4 (tcp, udp) et notamment les numéros de port. Elles sont de la forme : 
- 
-  (config)#access-list <numéro> {permit | deny} <procole> <adresse src> <wildcard src> [<port src]] 
-   <adresse dst> <wildcard dst> [<port dst>] [established] [log] 
- 
-  * **ACLs nommées** : elle peuvent être de type standard ou étendues ; on peut supprimer les lignes indépendamment. 
- 
-  (config)#ip access-list <standard | extended> <nom_de_l'ACL> 
-  (config-std-nacl)#permit ip host 10.0.0.1 host 10.0.1.1 log 
- 
-**Les ACLs standards doivent être placées au plus près de la destination, alors que les ACLs étendues doivent être placées au plus près de source.** 
- 
-  * ACLs additonnelles : 
-    * **ACLs dynamiques** : l'utilisateur s'authentifie sur un routeur, qui va charger une ACL sur mesure en fonction du profil. 
-    * **Reflexive ACLs** : permet de passer en staful = on permet un traffic de passer uniquement s'il est déjà passé dans l'autre sens sur une autre ligne de l'ACL. C'est plus fin que le mot clé **established** des ACLs étendues. 
-    * **Time-based ACLs** défini des critère de date/time pour l'application d'une ACL. 
- 
-On applique une access-list sur une interface en "in" ou en "out" (entrée ou sortie __de l'interface__) : 
-  Router(config)#interface fa0/0 
-  Router(config-if)#access-group 1 {in | out} 
- 
-Une ACL est lue de manière séquentielle = ligne 1 puis ligne 2, etc. Si la ligne 1 matche, le routeur applique la règle pour le paquet et sort de l'ACL. Ainsi, si plusieurs lignes conviennent pour un même paquet, seule la première sera appliquée. 
- 
-====ip access-list resequence==== 
- 
-Voici une manière habile de modifier une ACL "proprement", c'est-à-dire de la façon la plus efficiente. Soit l'ACL étendue suivante : 
-  #show access-lists 
-   Extended IP access list 101 
-     1 permit ip host 10.0.0.1 host 10.0.1.1 
-     2 permit ip host 10.0.0.1 host 10.1.1.1 
-     3 deny tcp host 10.2.1.1 host 10.3.1.1 eq www 
- 
-On veut ajouter la ligne ''deny tcp ip host 10.0.0.1 host 10.1.1.1 eq www'' en #2. La façon "classique" est de supprimer l'ACL et de la réécrire en insérant la ligne supplémentaire. 
- 
-La façon la plus classe est de faire comme ceci : 
-  (config)#ip access-list resequence 101 10 10 
-  (config)#ip access-list extended 101 
-  (config-ext-nacl)#11 deny tcp ip host 10.0.0.1 host 10.1.1.1 eq www 
-  (config)#ip access-list resequence 101 10 10 
- 
-Dans l'ordre, on renumérote les lignes de l'ACL de 10 en 10 (10, 20, 30) ; puis on édite l'ACL pour insérer notre ligne entre les lignes 10 et 20 (exclues) ; enfin, pour avoir une numérotation "propre", on renumérote l'ACL pour avoir un incrément de 10 entre chaque numéro de ligne. 
- 
-=====VACL===== 
- 
-Les **VLAN Access-list** ou **VLAN access maps** sont des ACLs de niveau 2, qui s'appliquent à l'intérieur d'un VLAN ; elles __peuvent__ donc filtrer du trafic par adresse MAC, mais sont assez peu utilisées. 
- 
-Pour les mettre en place, il faut spécifier une ou plusieurs //map sequence// qui associent une action à une ACL ; si un permit de l'ACL "matche", l'action est appliquée ; si c'est un "deny", les map sequence suivantes sont vérifiées jusqu'à ce que ça matche. Si un paquet ne match aucune ligne et qu'au moins une ACL de son type est configurée, par défaut le paquet sera droppé. 
- 
-**Ici donc, comme dans les route-map, les termes //permit// et //deny// ne sont pas à prendre au sens strict mais en fonction du contexte.** 
- 
-  ! déclaration de l'ACL niveau 2 
-  mac access-list extended MAC-ACL 
-   permit host 0050.5611.05b1 any 
-   
-  ! Déclaration de l'access map 1 ; le numéro de séquence (10 ici) est optionnel ; 
-  !   il permet de déterminer un ordre d'application dans le cas de multiples access-map 
-  ! On filtre (match) sur les adresses MAC (|IP|IPX) en spécifiant "mac address", suivi du nom de l'ACL filtrante 
-  ! L'action effectuée en cas de match est de forwarder les paquets 
-  vlan access-map 1 10 
-   match mac address MAC-ACL 
-   action forward 
- 
-  ! Pour dropper le reste on doit créer un second statement (20) 
-  vlan access-map 1 20 
-   action drop 
- 
-  ! On associe l'access-map qu'on vient de mettre en place aux VLAN 11 et 12 
-  vlan filter 1 vlan-list 11,12 
- 
-Dans l'exemple précédent on filtre les flux des VLANs 11 et 12 pour ne forwarder que les paquets de la machine d'adresse MAC 0050.5611.05b1. 
  
 =====NAT/PAT===== =====NAT/PAT=====
Line 1313: Line 865:
  
 =====Tracking d'interface===== =====Tracking d'interface=====
-Permet de baisser un coup HSRP en cas de perte d'une route. 
-  ! L’objet tracking est = 1 
-  ! Tracking de la route 10.4.101.8 255.255.255.248 
-  ! Delay down = temps en secondes avant de déclarer la perte de la route. 
-  ! delay up = temps en secondes avant de prendre en compte le retour de la route. 
- 
-  ! Sur le routeur maitre (2) 
-  track 1 ip route 10.4.101.8 255.255.255.248 reachability 
-   delay down 5 up 30 
-   
-  ! Sur le routeur backup (1) 
-  track 1 ip route 10.4.101.8 255.255.255.248 reachability 
-   delay down 3 up 40 
-  
-  interface VlanX 
-  ! Récupération de l’objet tracking 1 
-  ! Si l’objet est valide (route inaccessible) alors décrémenter le poids HSRP de 30 
-   standby Y track 1 decrement 30 
  
 +Mécanisme qui permet de baisser une priorité HSRP si une condition n'est pas remplie ; plus de détails sur la page [[informatique:cisco:hsrp|HSRP]].
  
 =====Port mirroring===== =====Port mirroring=====
  
-Permet de répliquer le trafic d'un port vers un autre à l'identique. L'usage classique est pour l'analyse de trafic, en mettant une sonde sur le port.+====Local SPAN==== 
 + 
 +Ou "span de port" : cela permet de répliquer le trafic d'un port vers une destination à l'identique. L'usage classique est pour l'analyse de trafic (snif), en mettant une sonde sur le port destination.
  
 Voir les sessions de mirroring existantes : Voir les sessions de mirroring existantes :
-  show monitor session all +<code bash> 
-  Session 1 +show monitor session all 
-  --------- +Session 1 
-  Type                   : Local Session +--------- 
-  Source Ports           :+Type                   : Local Session 
 +Source Ports           :
  
  
-      Both               : Gi1/0/2 +    Both               : Gi1/0/2 
-  Destination Ports      : Gi2/0/1 +Destination Ports      : Gi2/0/1 
-      Encapsulation      : Native +    Encapsulation      : Native 
-            Ingress      : Disabled+          Ingress      : Disabled 
 +</code>
  
-La mention **Both** indique que la redirection se fait sur le trafic entrant et sortant de l'interface Gi1/0/2 vers l'interface Gi2/0/1.+La mention **Both** (par défaut) indique que la redirection se fait sur le trafic entrant et sortant de l'interface Gi1/0/2 vers l'interface Gi2/0/1.
  
 Mise en place de la session de monitoring : Mise en place de la session de monitoring :
-  monitor session 1 source interface Gi1/0/2 [both | rx | tx] +<code bash> 
-  monitor session 1 destination interface Gi2/0/1+monitor session 1 source interface Gi1/0/2 [both | rx | tx] 
 +monitor session 1 destination interface Gi2/0/1 
 +</code>
  
-On peut donc choisir de ne redirigerque le trafic entrant ou sortant (ou les 2, par défaut) de l'interface source.+On peut choisir de ne rediriger que le trafic entrant (rx) ou sortant (tx) de l'interface source.
 On peut aussi monitorer le trafic d'un vlan en remplaçant **interface** par **vlan** dans la source. On peut aussi monitorer le trafic d'un vlan en remplaçant **interface** par **vlan** dans la source.
  
 +====Remote SPAN====
 +
 +On peut aussi faire du RSPAN c'est à dire du remote SPAN. Cela consiste à créer un vlan spécifique de type remote-span et a le distribuer du commutateur source au commutateur destination. Le premier redirige le trafic dessus, et le commutateur destination le prend en source.
 +
 +Exemple : C1 et C2 sont 2 commutateur interconnectés par un lien trunk sur leur interface fa0/24. C1 le commutateur source. Il a le port fa0/1 que je désire sniffer sur un sonde connectée sur le port fa0/2 du commutateur C2.
 +
 +Configuration de C1 :
 +<code bash>
 +! création du vlan de type RSPAN
 +vlan 100
 + name v100-RSPAN
 + remote-span
 +!
 +! on définit la capture
 +monitor session 1 source interface fa0/1
 +monitor session 1 destination remote vlan 100
 +!
 +! propagation du remote vlan vers C2
 +interface fa0/24
 + description fa0/24 - vers C2 fa0/24
 + switchport trunk allowed vlan add 100
 +</code>
 +
 +
 +Configuration de C2 :
 +<code bash>
 +! création du vlan de type RSPAN
 +vlan 100
 + name v100-RSPAN
 + remote-span
 +!
 +! on définit la capture
 +monitor session 1 destination interface fa0/2
 +monitor session 1 source remote vlan 100
 +!
 +! propagation du remote vlan vers C2
 +interface fa0/24
 + description fa0/24 - vers C1 fa0/24
 + switchport trunk allowed vlan add 100
 +</code>
 +
 +Ce vlan 100 doit bien être déclaré comme remote-vlan ; il peut être propagé sur n'importe quel commutateur, peut utiliser le spanning-tree pour gérer les boucle (comme n'importe quel autre vlan), et peut être sniffé sur tous les commutateurs sur lequel il est propagé. En revanche il ne faut qu'une seule source sur un seul commutateur.
 +
 +source : [[http://www.cisco.com/en/US/docs/switches/lan/catalyst6500/ios/12.1E/native/configuration/guide/span.html#wp1045542|Configuring Local and Remote SPAN]] sur cisco.com
  
 =====DHCP Snooping===== =====DHCP Snooping=====
Line 1405: Line 990:
  
  
-=====Shaping===== 
  
-Le shaping c'est l'application du concept du leaky-bucket (saut troué), qui consiste à limiter le flux d'une interface à un certain débit (c'est la taille du trou du saut) ; on peut lui permettre quelques dépassement en allouant un buffer de dépassement (c'est la contenance du saut). 
- 
-Création de la class-map qui sélectionne le flux que l'on veut limiter : 
- 
-  class-map match-all Classmap_shaping 
-    match access-group name ACL_Selection_flux 
- 
-Mise en place de la limitation de débit (50Mbps) ainsi que de la taille du buffer de dépassement (8Kbps ici) ; tout ce qui dépasse sera droppé. 
- 
-  policy-map Policy_limit_50Mbps 
-    class Classmap_shaping 
-      police 50000000 8000 exceed-action drop 
- 
-Création de l'access-list qui matche (''permit'') le flux à limiter (elle est appelée par la class-map) : 
- 
-  ip access-list extended ACL_Selection_flux 
-   permit ip any 192.168.1.0 0.0.0.255 
- 
-On applique la politique sur une interface en entrée (on peut aussi l'appliquer en sortie -> ''output'') ; on ne peut l'appliquer que sur une interface physique : 
- 
-  int Gi1/0/1 
-   service-policy input Policy_limit_50Mbps 
  
 ===== Tester la longueur d'un cable ===== ===== Tester la longueur d'un cable =====
Line 1461: Line 1023:
  
 ====Numéros de série==== ====Numéros de série====
 +
 Pour récupérer le //serial number// d'un équipement sans avoir un accès physique pour regarder l'étiquette : Pour récupérer le //serial number// d'un équipement sans avoir un accès physique pour regarder l'étiquette :
  
   * pour les c65XX : ''show module''   * pour les c65XX : ''show module''
-  * pour les c3825 : ''show diag''+  * pour les c3825 : ''show diagnostic''
  
 +On peut récupérer les SNs des GBICs, alimentations, carte FAN, châssis... avec la commande ''show inventory''.
 ====show==== ====show====
  
Line 1501: Line 1065:
   * ''show platform health'' permet d'obtenir la consommation de ressources par ports, processus, etc...   * ''show platform health'' permet d'obtenir la consommation de ressources par ports, processus, etc...
   * ''show platform cpu packet statistics'' : //show CPU packet statistics//   * ''show platform cpu packet statistics'' : //show CPU packet statistics//
 +  * ''show platform tcam utilization'' : voir un résumé de l'utilisation de la TCAM
   * ''show environment connector'' affiche un ersatz de la commande ci-dessus, mais sur des petits modèles   * ''show environment connector'' affiche un ersatz de la commande ci-dessus, mais sur des petits modèles
   * ''show environment temperature all'' affiche toutes les sondes de températures du châssis 6500   * ''show environment temperature all'' affiche toutes les sondes de températures du châssis 6500
Line 1666: Line 1231:
  
  
-====GBIC==== +====GBIC / types de fibres optiques====
-GBIC (Gigabit Interface Converter) est un module qui convertit un signal électrique en signal optique.+
  
-  * 1000BASE-SX multi-mode (jusqu'à 500 m) +Voir la page dédiée [[informatique:cisco:gbic|GBIC]].
-  * 1000BASE-LX/LH mono-mode (single-mode) mais accepte aussi le multi-mode (jusqu'à 10 km) +
-  * 1000Base-ZX mono-mode (jusqu'à 70 km)+
  
-  * ST: carré/gros gbic +====ping====
-  * LC: mini gbic (sfp) +
-  * SC: rond/quart de tour +
-  * FC: rond à visser+
  
-Connecteur (terminaison des fibres) : +On peut utiliser la commande ''ping <ip>'' ; on peut aussi faire un **ping étendu** en tapant juste ''ping'' et en répondant aux questions qui s'affichent (notamment pinguer à partir d'une autre IP que celle d'administration (par défaut)). 
-  * plat +<code bash> 
-  * PC et UPC +router#ping 
-  * APC (bisoté)+ Protocol [ip]
 + Target IP address: 1.2.3.4 
 + Repeat count [5]: 
 + Datagram size [100]: 
 + Timeout in seconds [2]: 
 + Extended commands [n]: y 
 + Source address or interface: 
 + Type of service [0]: 
 + Set DF bit in IP header? [no]: 
 + Validate reply data? [no]: 
 + Data pattern [0xABCD]: 
 + Loose, Strict, Record, Timestamp, Verbose[none]: 
 + Sweep range of sizes [n]: 
 + Type escape sequence to abort. 
 + Sending 5, 100-byte ICMP Echos to 1.2.3.4, timeout is 2 seconds: 
 +</code>
  
 +On peut forcer un ping à partir d'une interface particulière (celle ayant l'IP 192.168.0.1) directement avec la commande :
 +<code>ping 1.2.3.4 source 192.168.0.1</code>
  
-====ping==== +... ou directement en spécifiant l'interface source : 
-On peut utiliser la commande ''ping <ip>'' ; on peut faire un **ping étendu** en tapant juste ''ping'' et en répondant aux questions qui s'affichent (notamment pinguer à partir d'une autre IP que celle d'administration (par défaut)).+<code>ping 1.2.3.4 source Gi0/0.3</code> 
 + 
 +====Telnet==== 
 + 
 +<code bash> 
 +telnet 192.168.103.24 8000 /source-interface vlan8 
 +</code>
  
 ====Historique==== ====Historique====
Line 1693: Line 1275:
  
 ====Régler l'heure==== ====Régler l'heure====
-Pour ajuster l'heure du Switch, on utilise la commande ''clock set''Cependant vu le niveau de criticité des équipements réseau il est conseillé d'utiliser le protocole NTP qui permet une mise à l'heure automatique et très précise.+Pour ajuster l'heure du Switch, on utilise la commande ''clock set'' (en mode enable), par exemple : 
 +<code bash> 
 +clock set 14:03:40 12 february 2016 
 +</code> 
 + 
 +Cependant vu le niveau de criticité des équipements réseauil est fortement conseillé d'utiliser le protocole NTP qui permet une mise à l'heure automatique et très précise : en mode config : 
 +<code bash> 
 +# configuration de la zone de temps (Paris, UTC+1) : 
 +clock timezone UTC 1 
 + 
 +ntp server 10.0.0.1 prefer 
 +ntp server 10.0.0.2 
 + 
 +# vérifications 
 +show ntp status 
 +show ntp associations 
 +</code> 
 +source : [[http://www.cisco.com/c/en/us/td/docs/ios/12_2/configfun/command/reference/ffun_r/frf012.html#wp1018092|cisco]]
  
 ====Commandes en vrac==== ====Commandes en vrac====
Line 1716: Line 1315:
 Le flex links est configuré sur l'interface qui sera active en lui attribuant une interface backup : Le flex links est configuré sur l'interface qui sera active en lui attribuant une interface backup :
  
-  interface Port-channel1 +<code bash> 
-    backup interface Port-channel2+interface Port-channel1 
 + backup interface Port-channel2
  
-  show interfaces description +show interfaces description 
-   Interface                      Status         Protocol Description + Interface                      Status         Protocol Description 
-   Po1                            up             up       Po actif + Po1                            up             up       Po actif 
-   Po2                            standby mode   down     Po standby+ Po2                            standby mode   down     Po standby 
 +! NB : il se peut que l'interface backup soit "up" 
 + 
 +show interfaces switchport backup detail 
 +Switch Backup Interface Pairs: 
 + 
 +Active Interface        Backup Interface        State 
 +------------------------------------------------------------------------ 
 + 
 +GigabitEthernet0/11 GigabitEthernet0/12 Active Up/Backup Standby 
 +</code>
  
 Pour activer la préemption : Pour activer la préemption :
  
-  switchport backup interface po2 preemption mode bandwidth +<code bash> 
-  switchport backup interface po2 preemption delay 60+switchport backup interface po2 preemption mode bandwidth 
 +switchport backup interface po2 preemption delay 60 
 +</code>
  
 Liens : Liens :
Line 1738: Line 1350:
 L'**UDLD** (UniDirectional Link Detection) est un protocole Cisco qui s'appuie sur le niveau 1 de la couche OSI pour détecter les problèmes de liens unidirectionnel (par exemple une fibre optique qui casse alors que l'autre fonctionne correctement). L'UDLD détecte également l'inversion de fibre. L'**UDLD** (UniDirectional Link Detection) est un protocole Cisco qui s'appuie sur le niveau 1 de la couche OSI pour détecter les problèmes de liens unidirectionnel (par exemple une fibre optique qui casse alors que l'autre fonctionne correctement). L'UDLD détecte également l'inversion de fibre.
  
-Si la fonction est activée et qu'un lien unidirectionnel est détecté, le port associé passera à l'état ''err. disabled'' (down).+__Si la fonction est activée et qu'un lien unidirectionnel est détecté, le port associé passera à l'état ''err. disabled'' (down).__
  
-Pour fonctionné, le protocole doit être activé sur les équipements des 2 cotés du lien.+UDLD permet d'éviter (je cite) : 
 +  * Spanning tree topology loops caused by unidirectional links 
 +  * Incorrect cabling of unbundled fiber strands 
 +  * Transceiver or link hardware malfunction 
 +  * Incorrect or excessive flooding of packets 
 +  * Loss of traffic without notice (also known as black holing) 
  
-Par défaut il n'est activé que sur les interfaces ethernet fibre (non vérifié). Pour l'activer ou le désactiver globalement sur toutes les interfaces fibre :+Pour fonctionner, le protocole doit être activé sur les équipements des 2 cotés du lien, et dans le même mode (normal ou agressif). Le **mode agressif** ne doit être activé que sur des liens point-à-point ; ce mode permet de tenter de réétablir un connexion avec un voisin qui a disparu, puis shut le port après 8 tentatives. Le mode normal a un temps de réaction de 15 secondes avant blocage du port. 
 + 
 +Il est possible de configurer l'UDLD en mode global (''conf t''), ce qui activera l'UDLD sur toutes les interfaces fibres ; on peut également le désactiver en mode global (par défaut c'est le caset l'activer interface par interface. Pour l'activer ou le désactiver globalement sur toutes les interfaces fibre :
   (config)# udld {enable | aggressive}   (config)# udld {enable | aggressive}
  
Line 1748: Line 1367:
   (config-if)#udld port [aggressive]   (config-if)#udld port [aggressive]
  
-Vérifs : +===Vérifs=== 
-  show udld + 
-  show udld neighbor+<code bash> 
 +show udld neighbor 
 +</code> 
 + 
 +<code bash> 
 +show udld te6/3 
 + 
 +Interface Te6/3 
 +--- 
 +Port enable administrative configuration setting: Enabled 
 +Port enable operational state: Enabled 
 +Current bidirectional state: Unknown 
 +Current operational state: Advertisement 
 +Message interval: 7 
 +Time out interval: 5 
 +No neighbor cache information stored 
 +</code>
  
 Liens : Liens :
Line 1779: Line 1414:
   * Sur les switchs catalyst : [[http://www.cisco.com/en/US/products/hw/switches/ps700/products_configuration_example09186a008010edab.shtml|Jumbo/Giant Frame Support on Catalyst Switches Configuration Example]] sur cisco.com   * Sur les switchs catalyst : [[http://www.cisco.com/en/US/products/hw/switches/ps700/products_configuration_example09186a008010edab.shtml|Jumbo/Giant Frame Support on Catalyst Switches Configuration Example]] sur cisco.com
  
 +  * [[http://www.cisco.com/en/US/tech/tk827/tk369/technologies_white_paper09186a00800d6979.shtml#t3|Resolve IP Fragmentation, MTU, MSS, and PMTUD Issues with GRE and IPSEC]]
 +====verify====
 +
 +Après avoir téléchargé une image IOS, il faut vérifier qu'elle est intègre : il peut y avoir eu un problème lors du téléchargement, ou l'image a pu être altérée  par une personne malintentionnée. Peut probable mais possible, ça ne sert à rien de prendre le risque car cela prend 30 secondes à vérifier.
 +
 +Il existe une commande Cisco qui permet de vérifier l'intégrité du hash MD5 d'une image : ''verify''.
 +
 +Exemple :
 +  verify /md5 bootflash:cat4500-entservicesk9-mz.122-50.SG2.bin
 +   [..].......Done!
 +   verify /md5 (bootflash:cat4500-entservicesk9-mz.122-50.SG2.bin) = f0f8a446a7827760561c609b2f9f8890
 +La commande renvoie la hash MD5 du binaire ; on doit ensuite le comparer au hash fournit sur le site de Cisco.
 +
 +Pour vérifier directement si le hash est bon on peut le fournir en paramètre de la commande :
 +  verify /md5 bootflash:cat4500-entservicesk9-mz.122-50.SG2.bin f0f8a446a7827760561c609b2f9f8890
 +   [..].......Done!
 +   Verified (bootflash:cat4500-entservicesk9-mz.122-50.SG2.bin) = f0f8a446a7827760561c609b2f9f8890
 +
 +Voir aussi les [[http://www.cisco.com/en/US/docs/ios/fundamentals/configuration/guide/cf_md5_ps6350_TSD_Products_Configuration_Guide_Chapter.html|best-practices de Cisco pour vérifier une image IOS]].
 +
 +====IP SLA====
 +
 +**IP SLA** (Service Level Agreement) est un mécanisme permettant de tester le réseau et d'en tirer les indicateurs suivants :
 +  * connectivité
 +  * Timeout
 +  * RTT (Round-trip time)
 +  * gigue (aller-retour et one-way)
 +  * pertes de paquets
 +  * latence
 +  * Mean opinion score (MOS)
 +
 +Pour cela on configure un routeur en //initiateur// et un en //répondeur// ; le premier envoie à intervalles réguliers des paquets (grossièrement des PING) et calcule les mesures précédemment listées. Ces valeurs sont récupérables par SNMP.
 +
 +source : [[http://www.cisco.com/en/US/docs/switches/lan/catalyst4500/12.2/44sg/configuration/guide/swipsla.html|cisco.com]]
 +
 +====Forwarding / routing====
 +
 +Le **forwarding** c'est routage effectif des paquets. Tous les routeurs le font par défaut.\\
 +Le **routing** implique construction de tables de routage ; un routeur IP fait toujours du forwarding ; mais s'il n'a pas de routage dynamique (OSPF, EIGRP) il ne fait pas de routing.
 +
 +====Changer d'adresse MAC====
 +
 +Sur les châssis Catalyst, qui font du routage et de la commutation, les SVIs utilisent toutes la même adresse MAC. Normalement cela ne pose pas de problème pour les commutateurs intermédiaires car ces adresses sont vues dans des VLANs différents. En revanche si on utilise des technologies bizarres comme du QinQ, qui consiste à encapsuler des VLANs dans un autre, cela peut poser des problèmes d'adresse MAC //duplicate// ou //flapping// :
 +<code bash>
 +Feb 28 13:49:17 switch1 425287: Feb 28 13:49:16: %SW_MATM-4-MACFLAP_NOTIF: Host 0023.eaXX.XXX0 in vlan 873 is flapping between port Po1 and port Te2/0/1
 +</code>
 +
 +Bref, la solution est d'identifier la machine à qui appartient cette adresse MAC :
 +<code bash>
 +router1#sh int vlan 724 | i address
 +  Hardware is EtherSVI, address is 0023.eaXX.XXX0 (bia 0023.eaXX.XXX0)
 +!
 +router1#sh int vlan 725 | i address
 +  Hardware is EtherSVI, address is 0023.eaXX.XXX0 (bia 0023.eaXX.XXX0)
 +</code>
 +
 +Puis de trouver une adresse MAC libre (par exemple lister la plage d'adresses MAC réservées au châssis (dans notre cas un c6500)) :
 +<code bash>
 +router1#show catalyst6000 chassis-mac-addresses
 +  chassis MAC addresses: 1024 addresses from 0023.eaXX.XXX0 to 0023.eaXX.XXXf
 +</code>
 +
 +On voit que l’adresse MAC attribuée par défaut à toute les SVIs est la première de la plage. Il faut donc en prendre d'autre non utilisées :
 +<code bash>
 +interface vlan724
 + mac-address 0023.eaXX.XXX1
 +!
 +interface vlan725
 + mac-address 0023.eaXX.XXX2
 +!
 +! etc...
 +</code>
 =====Notes===== =====Notes=====
  
Line 1790: Line 1497:
   ETTD/ETCD (Equipement Terminal de Traitement/Circuit de Données) == DTE/DCE en anglais   ETTD/ETCD (Equipement Terminal de Traitement/Circuit de Données) == DTE/DCE en anglais
  
 +  AUI pour se connecter à un transsiver externe pour conversion vers un type de média spécifique
 +  BRI port pour les connexion ISDN
 +
 +====Standards IEEE====
 +
 +  802.3z = 1000BASE-SX
 +  802.3ab = 1000BASE-T
 +  802.5 = token ring
 +  802.3ae = 10 Giga Ethernet
 +  802.3u = 100BASE-TX
 +
 +=====Troubleshot=====
 +
 +  * [[http://www.cisco.com/en/US/products/hw/switches/ps708/products_tech_note09186a008072c406.shtml#sup_sub_5|Catalyst 6000/6500 System Crashes Troubleshooting]]
 +  * [[http://www.cisco.com/en/US/products/hw/switches/ps708/products_tech_note09186a00804916e0.shtml|Catalyst 6500/6000 Switch High CPU Utilization]]
 =====Liens===== =====Liens=====
  
Line 1795: Line 1517:
   * http://cisco.goffinet.org   * http://cisco.goffinet.org
   * [[http://www.cisco.com/en/US/docs/internetworking/terms_acronyms/ita.html|Internetworking Terms and Acronyms]] sur cisco.com   * [[http://www.cisco.com/en/US/docs/internetworking/terms_acronyms/ita.html|Internetworking Terms and Acronyms]] sur cisco.com
 +  * http://www.ccie18473.net
 +  * http://www.firstdigest.com
 +
 +  * http://packetlife.net/
 +  * http://www.nemako.net/
 +  * http://www.iplogos.fr/diagnostic-ladjacence-ospf-ne-monte-pas/
 +
informatique/cisco/start.1253535466.txt.gz · Last modified: 2013/10/14 20:51 (external edit)