{{tag>informatique réseaux cisco}} ======Cisco====== {{ http://www.eecs.berkeley.edu/IPRO/WICSE/images/cisco%20logo.gif}} Cisco est un équipementier de matériels réseaux et sécurité, renommé dans le routage et la commutation notamment. 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. =====B.A.-BA===== ====Les types de mémoire==== * **DRAM** (Dynamic Random-Access Memory) ou **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) : 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... * **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 : * **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-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==== Il existe 2 modes associés à différents privilèges, que l'on peut comparer aux consoles //utilisateur// ($) et //root// (#) sous Unix : * **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é** (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). 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> Switch>en Password: Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)# 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 sous-menus de configuration : * d'une interface ''Router(config-if)#'' * d'une sous-interface ''Router(config-subif)#'' * d'un contrôleur ''Router(config-controller)#'' * d'une ligne ''Router(config-line)#'' * du router ''Router(config-router)#'' ====Commandes de base==== Les fonctionnalités de base d'IOS sont : * la complétion automatique (comme les UNIX) avec la touche '''' 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''. * une aide pour connaitre les paramètres attendus par une commande, ou pour lister les commandes : ''?'' * un modèle en couches successives (cf ci-dessus) de privilèges : pour accéder à un mode privilégié on doit passer par tous les autres modes : utilisateur (prompt ''Router>'') > privilégié (prompt ''Router#'') > configuration (prompt ''Router(config)#'') 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 * 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==== Ils ressemblent aux raccourcis clavier que l'on trouve sous Unix/Linux, et il est préférable de les connaitre quand on se sert souvent de la ligne de commande (CLI) car ils font gagner pas mal de temps ! * ''ctrl+z'' quitter le mode configuration * ''ctrl+a'' déplace le curseur en **début** de ligne * ''ctrl+e'' déplace le curseur en **fin** de ligne * ''esc+b'' déplace le curseur d'un mot à gauche du curseur * ''esc+f'' déplace le curseur d'un mot à droite du curseur * ''ctrl+u'' supprime tous les caractères **avant** le curseur * ''ctrl+k'' supprime tous les caractères **après** le curseur * ''ctrl+w'' supprime le mot avant le curseur * ''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''. ===Les signaux=== Sous Linux on peut utiliser le raccourcis clavier ctrl+c pour envoyer un SIGINT qui provoque l'interruption d'un processus. Sous IOS, on utilise l'équivalent : ''ctrl+shift+6'' ou ''ctrl+shift+9'' + "x". ===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 (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==== 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.) =====Configuration de base===== ====hostname==== C'est le nom de l'équipement. Il est indiqué dans le prompt : Switch(config)# hostname toto Toto(config)# ====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** (qui est par défaut le vlan 1) : Switch(conf t)#int vlan 1 Switch(conf-if)#ip address 10.0.0.1 255.255.255.0 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==== 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 10.0.0.254 É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==== ''ip subnet-zero '' est une commande qui permet l'utilisation du premier subnet d'un ensemble de sous réseau. Il faut le préciser explicitement à cause de la confusion qu'il cause, puisqu'il a la même adresse réseau que le réseau majeur. exemple : on a la plage 172.16.0.0 /16 que l'on veut découper en sous-réseaux, le premier sous-réseau 172.16.0.0 /16+x a la même adresse que le réseau majeur. ====no ip domain-lookup==== ''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 Translating "sxow" ...domain server (255.255.255.255) % Unknow command or computer name, or unable to find computer address ====logging synchronous==== Par défaut on reçoit des messages du routeur, qui troublent la saisie des commandes, par exemple : Router#confi %SYS-5-CONFIG_I : Configured from console by console Enter configuration commands, one per line. End with CNTL/Z. 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 Router(config-line)#logging synchronous Voici l'éventuel résultat : Router#confi %SYS-5-CONFIG_I : Configured from console by console Router#configure =====Configuration générale===== ====Bannière==== Quelque soit le type de bannière, il faut indiquer un délimiter de fin de bannière lors de l'invocation de la commande idoine, par exemple un ''%'' dans notre cas. On peut spécifier une chaine de caractère qui s'affichera lors de la connexion sur l'équipement (**M**essage **O**f **T**he **D**ay) : Switch(config)#banner motd % Enter TEXT message. End with the character '%'. Salut mecbon ; t'es sur le bon ! % Switch(config)# On peut spécifier une bannière spécifique pour un utilisateur lambda : Switch#banner login "Bienvenue sur Switch" =====Màj IOS par tftp===== //Pré-requis// * l'image de l'IOS ne doit pas dépasser 16 Mo. Sinon il faut le faire en FTP. * se connecter au switch par le réseau (telnet ou ssh), pas par le port série (trop lent) On a une version sur un serveur tftp (192.168.0.100) dans ''./logiciel/c2940-i6k2l2q4-mz.121-22.EA8a.bin''. * téléchargement d'IOS Switch#copy tftp:logiciel/c2940-i6k2l2q4-mz.121-22.EA8a.bin flash: Address or name of remote host []? 192.168.0.100 Destination filename [c2940-i6k2l2q4-mz.121-22.EA8a.bin]? Accessing tftp://192.168.0.100/logiciel/c2940-i6k2l2q4-mz.121-22.EA8a.bin... Loading logiciel/c2940-i6k2l2q4-mz.121-22.EA8a.bin from 192.168.0.100 (via Vlan 288): !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!! [OK - 3737506 bytes] 3737506 bytes copied in 65.352 secs (57190 bytes/sec) * changement des paramètres de démarrage Switch#sh boot BOOT path-list: flash:/c2940-i6k2l2q4-mz.121-22.EA8a.bin Config file: flash:/config.text Private Config file: flash:/private-config.text Enable Break: no Manual Boot: no HELPER path-list: NVRAM/Config file buffer size: 32768 Timeout for Config Download: 0 seconds Config Download via DHCP: disabled (next boot: disabled) Ici, l'image chargée au démarrage est la bonne ; sinon il aurait fallut spécifier l'image qu'on vient de télécharger (en mode config) Switch#conf t Switch(config)#boot system flash:/c2940-i6k2l2q4-mz.121-22.EA8a.bin puis sauvegarder la config Switch(config)#exit Switch#wr mem Building configuration... [OK] * on peut enfin redémarrer Switch#reload =====Configurer un 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. Accéder à l'article [[informatique:cisco:configurer_un_vlan]]. =====VTP===== Le **VTP (Vlan Transport Protocol)** permet de propager la configuration des VLANs entre plusieurs commutateurs appartenant au même domaine VTP. Accéder à l'article [[informatique:cisco:vtp]]. =====Configurer un port===== Il faut passer en mode configuration du port ''(config-if)'' Switch>en Switch#conf t Switch(config)#int Fa0/1 Switch(config-if)# Dans l'exemple si dessus on passe à l'interface de configuration du port FastEthernet n°1 du module (carte) 0 du switch. Voici les paramètres classiques qu'on peut retrouver configurés sur un port : * ''description '' description de l'interface * ''duplex full'' forcer le mode full-duplex * ''speed 100'' forcer la vitesse à 100Mbps * ''spanning-tree portfast'' pour les ports utilisateur, permet de réduire le temps de négociation du SPT. A noter qu'on peut passer la commande globale ''spanning-tree portfast default'' pour passer en //portfast// tous les ports qui ne sont pas en //mode trunk//. C'est une sécurité pour le bon fonctionnement du STP de votre réseau (il ne faut pas qu'un utilisateur puisse émettre des bpdu) ; de plus ça permet à l'interface de monter plus vite. Autre vraie sécurité du STP : activer le **bpduguard** sur les ports utilisateurs ''Switch(conf-if)#spanning-tree bpduguard enable''. * ''no cdp enable'' pour désactiver le protocole Cisco Discovery Protocol sur ce port A ceux-là s'ajoute la commande ''shutdown'' qui permet de couper administrativement le port. On le verra avec un ''sh interface description'' en état "administratively down". Pour réactiver le port, il suffit de faire un ''no shutdown'' sur le port. Cela est bien pratique pour préconfigurer un nouveau switch : on peut configurer un "range" de port c'est à dire une suite de ports qui se suivent. Par exemple, pour configurer les ports Fa0/1 jusqu'au Fa0/24 : Switch(config)#int range Fa0/1 - 24 Les ports d'un même "range" doivent être de même type et contigus ; si on veut rajouter des ports gigas, on devra écrire : Switch(config)#int range Fa0/1 - 24, Gi0/1 - 2 ====Switchport==== Pour configurer le niveau 2 d'un port on utilise la commande switchport, généralement soit en mode access (vers une machine) soit en mode trunk (vers un autre switch ou un routeur) : * soit en mode access (vers un PC) : switchport switchport mode access switchport access vlan x * soit en mode trunk (vers un autre switch) switchport switchport mode trunk switchport trunk encapsulation dot1q switchport trunk allowed vlan x,y ====port-security==== On peut ajouter une sécurité par vérification d'adresse MAC source : * ''switchport port-security mac-address '' pour limiter l'accès au port à seulement cette adresse MAC (on peut en spécifier plusieurs en repassant la commande pour chaque adresse MAC) * ''switchport port-security mac-address sticky'' permet au switch d'apprendre la ou les prochaines adresses MAC qui se connectent au port (il les ajoutent dynamiquement dans sa conf) ; pour limiter le nombre des adresses apprises : ''switchport port-security maximum ''. Pour déterminer le comportement du switch s'il rencontre une mauvaise adresse MAC : * ''switchport port-security violation {protect | restrict | shutdown}'' * **protect** drop les trames incorrectes mais ne log pas l'incident * **restrict** comme protect mais log une alerte et envoie un trap SNMP * **shutdown** une alerte est émise (log + SNMP) et l'interface passe en errdisabled (elle est désactivée) jusqu'à ce qu'un administrateur vienne réactiver Pour info, l'adresse MAC est codée en hardware sur la carte réseau de la machine, elle est attribuée de manière unique parmi tous les périphériques réseaux sortant des usines. Cependant elle n'est en __aucun cas__ sécurisée puisqu'on peut changer cette adresse de manière software (sous Linux ou Windows XP par exemple). Cette sécurité est donc juste une corde anti script-kiddies ;).\\ Cela permet aussi d'éviter les flood de trames d'adresse source différentes qui remplissent la table d'adresse MAC du switch (CAM), pouvant aboutir dans le pire des cas à transformer le switch en hub (si sa CAM est pleine). Pour vérifier la configuration : show port-security [interface fa0/1 [address]] ou show port-security address Pour réactiver toutes les interfaces bloquées en err-disabled : passer en mode conf-t : errdisable recovery cause psecure-violation Pour changer une adresse MAC sticky : int GiX/Y no switchport port-security mac-address sticky switchport port-security mac-address sticky Il peut être utile, si cela ne fonctionne pas : * de désactiver également le port-security sur l'interface int GiX/Y no switchport port-security mac-address sticky no switchport port-security switchport port-security switchport port-security mac-address sticky * de relancer l'interface shut no shut * de vérifier que l'adresse MAC n'est pas assignée à un autre port dans la configuration show run | i XXXX.YYYY.ZZZZ switchport port-security mac-address sticky XXXX.YYYY.ZZZZ //(tiens, elle était en sticky sur un autre port ! -> duplicate address)// Pour supprimer le cache d'adresses MAC apprises dynamiquement : clear port-security dynamic [address XXXX.YYYY.ZZZZ] | [interface GiX/Y] ====port serie==== Vérifier si le port est en DCE ou DTE : Router#sh controller serial 0/0 | include DCE DCE V.35, clock rate 64000 Là il est DCE, c'est à dire que c'est lui qui a la vitesse d'horloge du lien. Il faut la configurer (nb : là elle l'est déjà) : Router(config)#int se0/0 Router(config-if)#clock rate 64000 ====Gestion de la file d'attente==== Il est possible de configurer la file d'attente d'une interface en précisant le mode de gestion : FIFO par défaut (tail drop), faire-queue : (config-if)#fair-queue [ ] On peut le vérifier avec : show int se0/1/0 | i Queueing strategy Queueing strategy: weighted fair ====Troubleshooting de port==== 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 Lancer cette commande et vérifier : * que l'interface est "up/up" ('' 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''. * la MTU de l'interface (Maximum Transmission Unit) qui doit être de 1500 par défaut. * BW : bandwidth (bande passante de l'interface) * ''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). * 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 : int gi0/1 load-interval Switch#sh interface ethernet 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''). 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)]] =====Gestion des accès===== [[informatique:cisco:gestion_des_acces|Gestion_des_acces]] =====Mot de passe oublié===== ====avec un switch Catalyst==== //Testé avec un Catalyst 2940 et c3750// **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. * Débrancher le switch * S'y connecter sur le port console * Le rebrancher en maintenant le bouton "mode" enfoncé, jusqu'à ce que le menu de boot apparaisse (''switch:'') 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 Taper ensuite ces commandes (la complétion automatique ne fonctionne pas) : 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 # remplacer le mot de passe perdu : enable secret line con 0 password line vty 0 15 password login write memory # sauvegarder les modifications reload # redémarrer source : [[http://www.cisco.com/en/US/products/sw/iosswrel/ps1831/products_tech_note09186a00801746e6.shtml|Password Recovery Procedures]] sur cisco.com ====avec un routeur c888==== src : https://www.cisco.com/c/en/us/support/docs/routers/800-series-routers/12065-pswdrec-827.html * redémarrer le routeur en se connectant sur la console * 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 rommon 1 > confreg 0x2142 rommon 2 > reset * un fois que l'équipement a rebooté avec sa configuration par défaut, se logguer dessus sans mot de passe, puis : Router>enable # charger la configuration pour pouvoir la modifier Routeur#copy startup-config running-config # changer le mot de passe enable Routeur#config t Routeur(config)#enable secret cisco # 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 =====MAJ IOS via Rommon===== //merci les gars j'ai enfin réussi http://www.cisco.com/en/US/products/hw/routers/ps380/products_configuration_guide_chapter09186a008007c98d.html#xtocid9025 voici ma soluce// rommon 1 > flash_init rommon 2 > set IP_ADDRESS=10.10.10.1 IP_SUBNET_MASK=255.0.0.0 DEFAULT_GATEWAY=10.10.10.1 TFTP_SERVER=10.10.10.2 TFTP_FILE=temp/c820.bin si pb de checksum : ''TFTP_CHECKSUM=0'' //You must use the sync command to save ROMmon environment variables to nonvolatile RAM (NVRAM).// rommon 3 > sync rommon 4 > tftpdnld The variables to set for tftpdnld are shown here: usage: tftpdnld [-ur] Si on avait modifié les registres confreg 0x2101 =====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). Voir la page dédiée aux différents types de STP (CSTP, RSTP, PVSTP, MSTP) : [[informatique:cisco:stp]] =====Etherchannel===== C'est le nom utilisé par Cisco pour désigner du bonding, channel bonding ou encore portchannel, c'est à dire un agrégat de plusieurs ports physiques en un port logique. voir la page dédiée : [[informatique:Cisco:etherchannel]] =====HSRP===== **Hot Standby Router Protocol** est un protocole propriétaire Cisco semblable au VRRP, qui permet de mettre en place une redondance au niveau 3 entre plusieurs routeurs en créant une IP virtuelle. voir l'article : [[informatique:Cisco:HSRP]] =====VRRP===== =====GLBP===== C'est un protocole apportant de la haute disponibilité comme le HSRP ou le VRRP, mais qui permet en plus une répartition de charge entre les routeurs d'une groupe. Un groupe de routeurs apparait comme un seul et permet la répartition de charge. Chaque routeur appartenant à un même groupe est appelé AVF (Active Virtual Forwarder) et possède une adresse MAC virtuelle. L'un d'eux est désigné pour être également répartiteur de charge (Active Virtual Gateway) = il va répondre aux requêtes ARP sur l'IP virtuelle du groupe par une des adresses MAC d'un AVF. La façon dont il distribue les MACs aux client définit la façon dont sera répartie la charge (par poids, par host, ou Round Robin). Si l'AVG tombe, une nouvelle élection a lieu parmi les AVF. * la priorité la plus grande est la meilleure ; elles vont de 1 à 255, celle par défaut étant 100. * les groupes GLBP peuvent aller de 0 à 1023 * le GLBP permet de faire du tracking d'interface * par défaut les routeurs utilisent l'adresse multicast 224.0.0.102 pour envoyer les //Hello packets// à leurs pairs toutes les 3s sur le port udp/3222. ====Mise en place==== Sur le routeur destiné à être AVG : ip address 10.0.0.2 255.255.255.0 glbp 1 ip 10.0.0.1 glbp 1 priority 150 Sur un routeur AVF : ip address 10.0.0.3 255.255.255.0 glbp 1 ip 10.0.0.1 glbp 1 priority 100 On peut redéfinir les timers (resp. Hello et Hold timers) : glbp 1 timers msec 200 msec 700 =====OSPF===== **Open Shortest Path First** est un protocole de routage à état de lien non propriétaire ; c'est le protocole de routage intra-domaine (IGP) le plus utilisé de nos jours. voir l'article : [[informatique:Cisco:OSPF]] =====EIGRP===== **EIGRP** (Enhanced Interior Gateway Routing Protocol) est un protocole de routage propriétaire CISCO à vecteur de distance. voir l'article : [[informatique:Cisco:EIGRP]] =====IS-IS===== **Intermediate System to Intermediate System** possède beaucoup de particularités communes avec OSPF : protocole de routage standardisé à état de liens, scalable (IS-IS l'est plus qu'OSPF), convergence rapide, support des masques de sous-réseaux (VLSM). C'est un protocole **OSI** basé sur le service de niveau 3 **CLNS**. voir l'article : [[informatique:Cisco:IS-IS]] =====BGP===== voir l'article : [[informatique:Cisco:BGP]] =====Redistribution de routes===== voir l'article : [[informatique:Cisco:Redistribution de route]] =====ACL===== 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. [[informatique:Cisco:ACL]] =====NAT/PAT===== //Translation d'adresse et/ou de port.// On considère l'interface du coté réseau privé comme **inside** et l'interface du coté public (internet par exemple) comme **outside**. On veut donc translater l'adressage privé du réseau inside pour le rendre routable et qu'il puisse accéder à internet. On va faire du **PAT** (Port Adresse Translation, ou **NAT overload** chez Cisco) qui correpond à une translation d'adresse (une ou plusieurs IPs) et de port. >inside/ouside local/global >inside = vue de l'intérieur du LAN >outside = vue de l'extérieur (internet) >local = adressage privée, IP réelle de la machine >globale : IP NATtée, routable Soit fa0/0 l'interface inside et se0/0 l'interface outside : Router(config)#interface fa0/0 Router(config-if)#ip nat inside Router(config)#interface se0/0 Router(config-if)#ip nat outside On créé une ACL pour définir quelle est la plage d'IPs source qui va être nattée (c'est l'adressage privé) : Router(config)#access-lit 1 permit 10.4.4.0 0.0.0.255 Et on l'applique sur l'interface : Router(config)#ip nat inside source list 1 interface se0/0 overload L'option **overload** indique que l'on veut du PAT ; sans ça on ne ferait que du NAT sur l'adresse IP de l'interface se0/0. ====Vérification==== //On vient de faire 5 pings de 10.4.4.11 vers 10.1.1.1.// Attention : la table de translation a un timeout ce qui fait que si personne n'a été natté récemment, les commandes suivantes renverront un résultat "vide". Router#sh ip nat statistics Total active translations: 5 (0 static, 5 dynamic; 5 extended) Outside interfaces: Serial0/0 Inside interfaces: FastEthernet0/0 Hits: 920 Misses: 920 CEF Translated packets: 1840, CEF Punted packets: 0 Expired translations: 915 Dynamic mappings: -- Inside Source [Id: 2] access-list 1 interface FastEthernet0/0 refcount 5 Queued Packets: 0 Router#sh ip nat translations Pro Inside global Inside local Outside local Outside global icmp 10.4.4.3:5198 10.4.4.11:5198 10.1.1.1:5198 10.1.1.1:5198 icmp 10.4.4.3:5199 10.4.4.11:5199 10.1.1.1:5199 10.1.1.1:5199 icmp 10.4.4.3:5200 10.4.4.11:5200 10.1.1.1:5200 10.1.1.1:5200 icmp 10.4.4.3:5201 10.4.4.11:5201 10.1.1.1:5201 10.1.1.1:5201 icmp 10.4.4.3:5202 10.4.4.11:5202 10.1.1.1:5202 10.1.1.1:5202 =====DHCP===== Exemple : (config)#service dhcp (config)#ip dhcp excluded-address 10.0.0.1 (config)#ip dhcp pool TOTO (dhcp-config)#network 10.0.0.0 255.255.255.0 (dhcp-config)#default-router 10.0.0.1 (dhcp-config)#dns-server 192.168.0.1 Vérifs : show ip dhcp binding =====PPP===== Point to Point Protocol basé sur : * **LCP** (Link Control Protocol) pour le contrôle de la liaison * **NCP** (Network Control Protocol) pour le contrôle de la couche réseau Avantages : * standard multi-protocol : il peut encapsuler de l'IP, ISDN, IPX, Apple Talk * permet l'authentification avec PAP ou CHAP * permet la correction d'erreur * multiplexage Authentication : * **PAP** (Password Authentication Protocol) * **CHAP** (Challenge Handshake Authentication Protocol) username password int se0/0 ip address 10.0.0.1 255.255.255.0 encapsulation ppp ppp authentication chap Une autre façon d'utiliser l'authentification CHAP est de passer les lignes de commande suivantes : interface dialer0 ppp authentication chap callin ppp chap password =====IPv6===== voir l'article : [[informatique:Cisco:IPv6]] =====Frame Relay===== Pour la suite, on configure une interface série en frame-relay, et on va créer 2 sous-interfaces : l'une pour une liaison point à point et l'autre pour une liaison multipoint. Grâce à l'IARP (Inverse ARP), le routeur doit être capable de récupérer l'adresse IP du ou des routeurs d'en face. En le désactivant on va tout configurer à la main avec des //frame-relay map//. Configuration de l'interface physique : interface Serial0/0/0 no ip address encapsulation frame-relay no frame-relay inverse-arp ====point-to-multipoint==== interface Serial0/0/0.1 multipoint ip address 172.31.33.2 255.255.255.0 ip ospf network point-to-multipoint frame-relay map ip 172.31.33.4 232 broadcast **broadcast** pour activer le broadcast nécessaire aux protocoles de routage (normalement FR ne le supporte pas) ; avec l'IARP il aurait été activé par défaut. ====point-to-point==== interface Serial0/0/0.2 point-to-point ip address 10.33.0.2 255.255.255.0 frame-relay interface-dlci 221 Il semble qu'on ne puisse pas faire de //frame-relay map// sur une subinterface point-to-point. ====Vérifications==== Router#sh run int se0/0 interface Serial0/0 description se0/0 vers CoreRouteur ip address 10.140.3.2 255.255.255.0 encapsulation frame-relay frame-relay map ip 10.140.3.1 120 broadcast Router#sh int se0/0 | include Encapsulation Encapsulation FRAME-RELAY, loopback not set Router#sh frame-relay lmi LMI Statistics for interface Serial0/0 (Frame Relay DTE) LMI TYPE = CISCO Invalid Unnumbered info 0 Invalid Prot Disc 0 Invalid dummy Call Ref 0 Invalid Msg Type 0 Invalid Status Message 0 Invalid Lock Shift 0 Invalid Information ID 0 Invalid Report IE Len 0 Invalid Report Request 0 Invalid Keep IE Len 0 Num Status Enq. Sent 94 Num Status msgs Rcvd 96 Num Update Status Rcvd 0 Num Status Timeouts 0 Last Full Status Req 00:00:11 Last Full Status Rcvd 00:00:11 Router#sh frame-relay pvc PVC Statistics for interface Serial0/0 (Frame Relay DTE) Active Inactive Deleted Static Local 1 0 0 0 Switched 0 0 0 0 Unused 0 0 0 0 DLCI = 120, DLCI USAGE = LOCAL, PVC STATUS = ACTIVE, INTERFACE = Serial0/0 input pkts 349 output pkts 124 in bytes 38990 out bytes 12742 dropped pkts 0 in pkts dropped 0 out pkts dropped 0 out bytes dropped 0 in FECN pkts 0 in BECN pkts 0 out FECN pkts 0 out BECN pkts 0 in DE pkts 0 out DE pkts 0 out bcast pkts 105 out bcast bytes 10920 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec pvc create time 00:16:09, last time pvc status changed 00:09:22 Router#sh frame-relay map Serial0/0 (up): ip 0.0.0.0 dlci 120(0x78,0x1C80) broadcast, CISCO, status defined, active =====IPSec===== voir l'article [[informatique:cisco:ipsec]] =====VoIP===== Configuration de la VoIP avec QoS : on utilise le champ CoS (802.1p) dans du 802.1q. Dans cet exemple le VLAN voix est le 10 et le VLAN data est le 11. Sur le port où est branché un téléphone IP Cisco, avec derrière un PC sur le vlan 11 : * Sur le switch d'accès int fa0/3 desc PC + tel switchport access vlan 11 switchport voice vlan 10 mls qos trust device cisco-phone mls qos trust cos ! ou "mls qos trust dscp" On peut réécrire le CoS venant du PC utilisateur à 0 si on ne lui fait pas confiance (ce traitement sera fait au niveau de l'IP phone) : switchport priority extend cos 0 Sur le switch de distribution, on active la QoS : mls qos Puis on trust le champ COS venant du switch d'accès : int gi1/0/1 mls qos trust cos ====Notes==== Cisco AVVID Architecture for Voice, Video and Integrated Data est basé sur ces 5 préoccupations : haute disponibilité QoS sécurité mobilité extensibilité (passage à l'échelle quoi) débit garanti fourni grâce à l'implémentation du WFQ contrôle de charge grâce au WRED réservation de ressources grâce au RSVP =====Les services===== service password-encryption permet de crypter tous les mots de passe dans la conf =====Tracking d'interface===== 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===== ====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 : show monitor session all Session 1 --------- Type : Local Session Source Ports : Both : Gi1/0/2 Destination Ports : Gi2/0/1 Encapsulation : Native Ingress : Disabled 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 : monitor session 1 source interface Gi1/0/2 [both | rx | tx] monitor session 1 destination interface Gi2/0/1 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. ====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 : ! 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 Configuration de C2 : ! 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 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===== C'est une fonctionnalité qui permet de se prémunir contre les attaques de type : * DHCP snooping (serveur DHCP illicite) * DHCP starvation (de multiples requêtes DHCP qui réduisent le nombre d'adresses restantes) Elle permet au switch d'accès de retenir certaines informations sur les ports configurés "untrust". Mise en place globale : (config)#ip dhcp snooping Définir une interface "trust" (resp. untrust) (ex : un port relié à un serveur DHCP légitime, ou un port trunk vers un switch de distribution) (config-if)#ip dhcp snooping trust On peut limiter le nombre de paquets DHCP par seconde émis sur un port : (config-if)#ip dhcp snooping limit rate 10 Enfin, on peut activer la fonctionnalité sur tout un VLAN : (config)#ip dhcp snooping vlan 11 ====Vérifications==== show ip dhcp snooping ====IP source guard==== Permet au switch de vérifier que les paquets émis depuis un port on bien toujours la même adresse MAC et IP. Pour activer l'IP source guard par rapport à l'adresse MAC et IP : (config-if)#ip verify source vlan dhcp-snooping port-security =====DAI===== **Deep ARP Inspection** est un mécanisme qui permet d'interception les requêtes et réponses ARP en entrée d'un port, afin de vérifier la validité des adresses (MAC et IP). Cela permet de se prémunir des attaques de type **ARP spoofing** (ou **ARP poisonning**). La validité d'un paquet ARP se fait par comparaison à une correspondance ARP-IP créée par le service DHCP snooping ; si un paquet est invalide, il est droppé et/ou loggué. Cette fonctionnalité peut être activée sur les ports de type access, trunk, port-channel et private vlan. Mise en place du DAI sur le VLAN 11 : (config)#ip arp inspection vlan 11 On définit une interface de ce VLAN comme "trust" : (config-if)#ip arp inspection trust ===== Tester la longueur d'un cable ===== Les dernières version de matériel peuvent calculer la longueur d'un câble relié à un de leur port (il doit être UP). C'est possible notamment sur des 3750-E ou des cartes 67xx (pour les châssis 65xx). Pour cela : router#test cable-diagnostics tdr interface gigabitethernet1/2 TDR test started on interface Gi1/2 A TDR test can take a few seconds to run on an interface Use 'show cable-diagnostics tdr' to read the TDR results. Puis, comme indiqué : router#sh cable-diagnostics tdr interface Gi1/2 TDR test last run on: September 02 09:39:51 Interface Speed Pair Cable length Distance to fault Channel Pair status --------- ----- ---- ------------------- ------------------- ------- ------------ Gi1/2 1000 1-2 1 +/- 6 m N/A Pair B Terminated 3-4 2 +/- 6 m N/A Pair A Terminated 5-6 1 +/- 6 m N/A Pair D Terminated 7-8 2 +/- 6 m N/A Pair C Terminated =====Le modèle d'infrastructure Campus===== C'est un modèle de conception d'infrastructure réseau faisant parti des best-practices de Cisco, aussi appelé le "modèle réseau hiérarchique à 3 couches" ou **Enterprise Composite Network Model** ou encore **ECNM**. Il s'agit comme son nom l'indique de définir 3 couches d'équipements réseau ayant des fonctions bien spécifiques : * switchs d'accès : du pur niveau 2 ; le niveau le plus proche des utilisateurs d'où une haute densité de port (typiquement des c2950) * switchs de distribution : des switchs multilayers (niveau 2/3) qui gèrent le routage inter-vlan, la haute disponibilité, la "définition des limites", la sécurité (ACLs) etc... * backbone ou réseau de cœur désigne de gros switch qui assurent le transport ultra-rapide inter-site. =====Divers===== ====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 les c65XX : ''show module'' * 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 ip interface brief'' Interface IP-Address OK? Method Status Protocol Vlan1 unassigned YES NVRAM administratively down down FastEthernet0/1 unassigned YES unset up up * ''show interface description'' Interface IP-Address OK? Method Status Protocol Vlan1 unassigned YES NVRAM administratively down down FastEthernet0/1 unassigned YES unset up up * ''show interface status'' Port Name Status Vlan Duplex Speed Type Fa0/1 S70/346/Sparmania connected 455 full 100 10/100BaseTX * ''show interfaces trunk'' pour afficher toutes les interfaces et les vlan qui y sont trunkées * ''show mac-address-table'' sur un switch Vlan Mac Address Type Ports All 000b.46a4.f880 STATIC CPU 457 0000.0cd6.ac05 DYNAMIC Gi0/2 * ''show ip arp []'' pour voir l'association @/@MAC sur le switch Protocol Address Age (min) Hardware Addr Type Interface Internet 192.168.99.87 - 000b.46a4.f880 ARPA Vlan99 Internet 192.168.99.254 97 0000.0cd6.ac30 ARPA Vlan99 * ''show platform hardware capacity power'' affiche notamment la consommation instantanée du routeur (que sur des WS-6509) * ''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 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 temperature all'' affiche toutes les sondes de températures du châssis 6500 * ''show aliases'' voir les alias * ''show module'' voir la liste des modules installés avec leur nb de ports, le modèle et le numéro de série * ''show inventory'' voir la liste des cartes installées et leur numéro de série * ''show run'' pour voir la **running-config** * ''show start'' pour voir la **startup-config** * ''show line'' pour voir les lignes CON/AUX/TTY/VTY * ''show proc cpu sorted 1min'' : une espèce de top façon Cisco. * ''show proc cpu history'' : des graphes en mode texte sur l'utilisation CPU. router#sh processes cpu history 11 1 1 1 2 8856005765467446644854744606447757404835696583568537644884 100 90 80 70 60 50 40 30 * 20 * * 10 ********** ** ** ** * *** **** * * *#**** **** ** ** 0....5....1....1....2....2....3....3....4....4....5....5.... 0 5 0 5 0 5 0 5 0 5 CPU% per minute (last 60 minutes) * = maximum CPU% # = average CPU% * ''show ver'' pour voir le **version** de l'IOS et d'autres informations router#sh ver Cisco Internetwork Operating System Software IOS (tm) c6sup2_rp Software (c6sup2_rp-PK9SV-M), Version 12.2(18)SXD5, RELEASE SOFTWARE (fc3) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2005 by cisco Systems, Inc. Compiled Fri 13-May-05 22:43 by ssearch Image text-base: 0x4002100C, data-base: 0x422F0000 ROM: System Bootstrap, Version 12.1(11r)E1, RELEASE SOFTWARE (fc1) BOOTLDR: c6sup2_rp Software (c6sup2_rp-PK9SV-M), Version 12.2(18)SXD5, RELEASE SOFTWARE (fc3) router uptime is 31 weeks, 7 hours, 20 minutes Time since routeur switched to active is 31 weeks, 7 hours, 21 minutes System returned to ROM by power-on (SP by power-on) System restarted at 07:41:26 MET Wed Aug 23 2006 System image file is "disk0:c6k222-pk9sv-mz.122-18.SXD5.bin" This product contains cryptographic features and is subject to United States and local country laws governing import, export, transfer and use. Delivery of Cisco cryptographic products does not imply third-party authority to import, export, distribute or use encryption. Importers, exporters, distributors and users are responsible for compliance with U.S. and local country laws. By using this product you agree to comply with applicable laws and regulations. If you are unable to comply with U.S. and local laws, return this product immediately. A summary of U.S. laws governing Cisco cryptographic products may be found at: http://www.cisco.com/wwl/export/crypto/tool/stqrg.html If you require further assistance please contact us by sending email to export@cisco.com. cisco WS-C6506 (R7000) processor (revision 3.0) with 227328K/34816K bytes of memory. Processor board ID SAL0738LMUH R7000 CPU at 300Mhz, Implementation 0x27, Rev 3.3, 256KB L2, 1024KB L3 Cache Last reset from power-on X.25 software, Version 3.0.0. Bridging software. 9 Virtual Ethernet/IEEE 802.3 interface(s) 48 FastEthernet/IEEE 802.3 interface(s) 20 Gigabit Ethernet/IEEE 802.3 interface(s) 381K bytes of non-volatile configuration memory. 32768K bytes of Flash internal SIMM (Sector size 512K). Configuration register is 0x2102 On peut notamment remarquer les informations suivantes : sur un switch : ''Base ethernet MAC Address: 00:0A:F4:80:A5:00'' qui indique l'adresse MAC à partir de laquelle sont tirées celles de chaque port. * ''show tech-support'' renvoie pleins d'informations utiles pour le support CISCO * ''show cdp neighbor [detail]'' pour voir les voisins du switch via le CDP (on peut désactiver le CDP sur l'équipement par ''no cdp run''). A voir aussi : ''sh cdp {interfaces | traffic | entry }''. A noter : le CDP est un protocole très utile pour connaitre son environnement réseau ; il est de ce fait une manne inespérée d'information pour tout coquin se greffant sur votre réseau. A n'activer qu'avec modération et sur des interfaces sûres. ====clear==== La commande clear sert dans beaucoup de cas pour "reseter" certaines fonctions : * ''clear counter int X'' permet de remettre à zéro les compteurs de l'interface X * ''clear mac-address-table dynamic int X'' permet de reseter les @ MAC apprises dynamiquement sur l'interface X * ''clear port-security sticky int X'' supprime l'@ MAC enregistrée pour l'accès à cette interface X ====Gestion de la mémoire==== show file systems File Systems: Size(b) Free(b) Type Flags Prefixes * 7741440 2430976 flash rw flash: - - opaque ro bs: 32768 9297 nvram rw nvram: - - opaque rw null: - - opaque rw system: - - network rw tftp: - - opaque ro xmodem: - - opaque ro ymodem: - - network rw rcp: - - network rw ftp: - - opaque ro cns: On peut utiliser les commandes ''cd'' et ''pwd''. * ''dir all'' affiche l'état de toutes les mémoires (NVRAM, flash, system) * ''copy run start'' copie la **running-config** (située en RAM) dans la **startup-config** NVRAM afin de retrouver sa configuration lors du prochain reboot. Ca équivaut à un ''write memory'' (''wr'' pour les intimes), commande qui tombe en désuétude (mais qui est bien parce qu'elle est moins longue à taper). * ''erase flash:'' Effacer la mémoire flash * ''delete'' pour supprimer un fichier ; on peut ajouter les paramètres ''/force'' et/ou ''/recursive''. * ''more flash:'' permet d'afficher le contenu du fichier * sauvegarder la config ''copy flash:config.text tftp:'' ===Créer une archive=== Pour compresser le fichier flash:/new-configs et l'envoyer par tftp : archive tar /create tftp:172.20.10.30/saved.tar flash:/new-configs ====FTP==== Pour utiliser le FTP il faut configurer un username et password en mode ''conf t'' : Switch(config)#ip ftp username Switch(config)#ip ftp password Puis on procède comme pour le tftp, par exemple : Switch#copy ftp: flash ====boot==== router#show bootvar BOOT variable = disk0:c6k222-pk9sv-mz.122-18.SXD5.bin,1;slot0:c6k222-pk9sv-mz.122-18.SXD5.bin,1 CONFIG_FILE variable does not exist BOOTLDR variable = bootflash:c6msfc2-boot-mz.121-8a.EX Configuration register is 0x2102 Standby is not up. router#show bootflash: -#- ED ----type---- --crc--- -seek-- nlen -length- ---------date/time--------- name 1 .. image B597155E 21D670 25 1693168 Dec 3 2003 05:54:45 +01:00 c6msfc2-boot-mz.121-8a.EX 2 .. image DEF2AA44 1B6417C 30 26503820 Aug 10 2004 15:41:48 +02:00 c6sup22-jk2sv-mz.121-20.E3.bin 3784324 bytes available (28197244 bytes used) Pour changer le mode de démarrage : router(config)#config-register 0x2102 En sachant que **0x2102** c'est le mode normal, **0x2101** c'est pour booter sur le bootstrap, **0x2100** pour booter sur le Rommon (IOS minimal) et **0x2402** pour booter en mode normal sans charger de config (pour récupérer un mot de passe oublié par exemple). On peut spécifier le système de fichier où l'équipement ira chercher son IOS : router(config)#boot system {flash | tftp | disk0 | n'importe quoi d'autre, que sais-je !} Pour lui préciser l'image à utiliser, s'il y en a plusieurs par exemple : router(config)#boot system disk0:c6k222-pk9sv-mz.122-18.SXD5.bin On peut lui en spécifier plusieurs, par ordre croissant de priorité, en les séparant par des virgules. Pour changer le bootloader par défaut : router(config)#boot bootldr bootflash:c6msfc2-boot-mz.121-8a.EX ====GBIC / types de fibres optiques==== Voir la page dédiée : [[informatique:cisco:gbic|GBIC]]. ====ping==== On peut utiliser la commande ''ping '' ; 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)). router#ping 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: On peut forcer un ping à partir d'une interface particulière (celle ayant l'IP 192.168.0.1) directement avec la commande : ping 1.2.3.4 source 192.168.0.1 ... ou directement en spécifiant l'interface source : ping 1.2.3.4 source Gi0/0.3 ====Telnet==== telnet 192.168.103.24 8000 /source-interface vlan8 ====Historique==== On peut voir la liste des dernières commandes passées sur l'équipement en tapant ''sh history''. Ces commandes peuvent également être rappelées une par une au moyen des flèches ''haut'' et ''bas'' (voir aussi les **raccoucis clavier**). On peut paramétrer la taille de max de l'historique (en nombre de ligne) avec la commande ''terminal history size ''. ====Régler l'heure==== Pour ajuster l'heure du Switch, on utilise la commande ''clock set'' (en mode enable), par exemple : clock set 14:03:40 12 february 2016 Cependant vu le niveau de criticité des équipements réseau, il est fortement conseillé d'utiliser le protocole NTP qui permet une mise à l'heure automatique et très précise : en mode config : # 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 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==== ''setup'' : lance le menu d'aide à la configuration ''exec-timeout X [Y]'' : défini le temps d'inactivité maximum d'une session avant une déconnexion automatique (X minutes et Y secondes, Y étant facultatif). Cette commande se passe en mode configuration de ligne (config-line#), par exemple pour le port console ou vty. ''terminal length '' : détermine le nombre de ligne à l'écran. Historiquement c'est 25 (80 colonnes et 25 lignes) mais "de nos jours" on sait faire mieux. Si le résultat d'une commande dépasse cette valeur, on verra s'afficher "--more--" qui mettra en pause l'affichage jusqu'à une frappe clavier.\\ Si on veut récupérer l'intégralité d'une longue commande sans voir apparaître ces pauses, on pourra spécifier une longueur infinie : ''terminal length 0''. Très utile si on loggue la session, pour récupérer un ''show run'' par exemple. ''resume'' basculer sur une autre session telnet ou ssh précédemment ouverte. ''hw-module module 8 reset'' pour procéder à un "soft reset" du module 8. ====Flex links==== Les **flex links** sont une paire de ports de niveau 2 (switchport ou port-channel) parmi lesquels l'un est backup de l'autre. Cela permet de mettre en place une redondance dans un environnement sans ST. Lorsque le lien actif tombe (-> down), le lien backup passe de l'état "standby" à l'état "up" / forwarding. Si le lien principal repasse "up", il passe à l'état "standby" car par défaut il n'y a pas de préemption. * le ST est désactivé sur les port "flex links" Le flex links est configuré sur l'interface qui sera active en lui attribuant une interface backup : interface Port-channel1 backup interface Port-channel2 show interfaces description Interface Status Protocol Description Po1 up up Po actif 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 Pour activer la préemption : switchport backup interface po2 preemption mode bandwidth switchport backup interface po2 preemption delay 60 Liens : * [[http://www.cisco.com/en/US/docs/switches/lan/catalyst2960/software/release/12.2_46_se/configuration/guide/swflink.html#wp1056578|Configuring Flex Links and the MAC Address-Table Move Update Feature]] ====UDLD==== 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).__ 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) 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 cas) et l'activer interface par interface. Pour l'activer ou le désactiver globalement sur toutes les interfaces fibre : (config)# udld {enable | aggressive} Pour l'activer interface par interface (cette configuration outrepasse la commande globale) : (config-if)#udld port [aggressive] ===Vérifs=== show udld neighbor 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 Liens : * [[http://www.cisco.com/en/US/tech/tk389/tk621/technologies_tech_note09186a008009477b.shtml|Understanding and Configuring the Unidirectional Link Detection Protocol Feature]] * [[http://www.cisco.com/en/US/docs/switches/lan/catalyst6500/ios/12.2SX/configuration/guide/udld.html#wp1027520|Configuring UDLD]] ====storm-control==== Le storm-control permet de filtrer (dropper) les paquets broadcast, multicast ou unicast s'ils dépassent le pourcentage spécifié par rapport au débit total. Sur une interface niveau 2 (ici cela bloque les paquets broadcast qui dépassent 1% du trafic) storm-control broadcast level 1.00 ===Vérifications=== * sur un 6500 show interface counter storm-control * sur un 3750 show storm-control ====MTU==== Configurer la [[http://fr.wikipedia.org/wiki/Maximum_Transmission_Unit|MTU]] (Maximum Transmission Unit) permet de passer en "jumbo frame" afin de réduire l'overhead. C'est utile sur les liaisons rapides (gigabit et sup.) afin d'obtenir de meilleurs débits applicatifs. * 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// : 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 Bref, la solution est d'identifier la machine à qui appartient cette adresse MAC : 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) 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)) : router1#show catalyst6000 chassis-mac-addresses chassis MAC addresses: 1024 addresses from 0023.eaXX.XXX0 to 0023.eaXX.XXXf 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 : interface vlan724 mac-address 0023.eaXX.XXX1 ! interface vlan725 mac-address 0023.eaXX.XXX2 ! ! etc... =====Notes===== routeur DTE (Data Terminal Equipement) | | CSU/DSU DCE (Data Communication Equipement ; ex : modem ; c'est lui qui gère la vitesse d'horloge) CSU/DSU (Channel/Data Service Unit) : Equipement de bout de LAN/WAN DSU : fourni un signal d'horloge à l'équipement de bout du consommateur CSU : termine le signal de transport multiplexé ; permet de faire des tests de diagnostic 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===== * http://www.labo-cisco.com * 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.ccie18473.net * http://www.firstdigest.com * http://packetlife.net/ * http://www.nemako.net/ * http://www.iplogos.fr/diagnostic-ladjacence-ospf-ne-monte-pas/