Procédure MAJ switchs Cisco
Procédure de mise à jour du firmware Cisco IOS sur les switchs Cisco vers une version plus récente ou antérieure. Deux cas de figure : avec son PC pour mettre à jour un switch à proxmité, ou une mise à jour à distance en SSH pour des équipements déployés.
Seront couverts la recherche et la récupération des images avec des recommandations communes aux deux pratiques.
Pour la mise à jour à proximité, sera monté un serveur TFTP simple sur votre PC par lequel le switch récupérera sa nouvelle image. Une fois récupérée, celle-ci se vera vérifiée pour ne pas utiliser une image corrompue par le téléchargement ou par le transport, le firmware sera ensuite installé. S’en suivra la vérification du changement et l’assainissement des anciennes images.
La mise à jour à distance reprend les mêmes principes, hormis qu’elle transferera le firmware par SSH avec SCP.
N’hésitez pas à vous servir de la table des matières en haut, et à cliquer sur les images pour les aggrandir.
Je vous conseille par avance de préférer la version à proximité, bien plus rapide pour le transport de l’image (franchement) si vous en avez la possibilité.
Préparatifs de la mise à jour
Récupération de l’image
Sur le site de recherche de Cisco, vous pouvez retrouver les images téléchargeables de votre équipement en renseignant sa référence.
Fait ici pour des 2960X - https://software.cisco.com/download/find/2960X.
Aller sur la référence EXACTE de votre switch puis recherchez l’image souhaitée.
Le firmware est un .bin, si vous rencontrez des .tar c’est pour les installer depuis des interfaces WEB (pas intéressant ici).
Les MD sont les versions stables pour Maintenance Deployment et les ED de Early Deployment pour les versions instables.
À noter que parfois il suffit de renseigner son adresse postale dans son compte pour télécharger une image sans avoir de contrat de license pour l’équipement.
Au même endroit, regardez et conservez l’empreinte MD5 du fichier : on ira la comparer à celle de l’image finale avant de l’installer pour vérifier son authenticité et son intégrité.
Installation à proximité
Seront nécessaires votre ordinateur, un câble console Cisco à raccorder au switch sur son port console, et un câble réseau pour vous connecter à un port réseau du switch.
Vérification du port COM
Vérifiez le numéro que Windows a donné à votre port série s’il est reconnu.
Dans le gestionnaire de périphériques, recherchez un COMX où X un entier naturel non nul.
Ici mon adaptateur USB -> DB9 (RS232) est reconnu comme COM5.
Le port COM change si vous changez l’adaptateur de port USB (par exemple).
Sa configuration n’est pas à changer.
Mais voici quelques informations si vous souhaitez débogger ou en apprendre plus.
Les équipements Cisco utilisent une liaison asynchrone 8N1 avec 8 bits de donnés, pour un débit brut de 9600 bits/s (soit un débit des symboles de 1200 symboles/s). Pas de bit de parité (détection d’erreur), 1 bit d’arrêt pour annoncer la fin d’un symbole, pas de contrôle de flux (0V quand inactif).
Installation d’un serveur TFTP
Pour Trivial FTP, TFTP permet de ne pas avoir à renseigner de mot de passe comparé à un partage FTP normal ou à un SFTP qui font de l’authentification. En TFTP tout le monde est “anonymous”.
L’utilitaire le plus simple trouvé pour monter un serveur TFTP fut l’applicatif de SolarWinds, téléchargeable à ce lien.
https://downloads.solarwinds.com/solarwinds/Release/FreeTool/SolarWinds-TFTP-Server.zip
Une fois décompressé, vous pouvez lancer l’exécutable SolarWinds-TFTP-Server.msi pour installer le serveur TFTP.
Son installation est vraiment simple et va droit au but, pas d’argument à renseigner ou d’option à changer, à en voir par l’installation suivante.
Vous pouvez lancer l’application pour la première fois, elle s’appelle TFTP Server.
Je fais un rapide tour de l’interface.
La fenêtre que vous voyez sont vos logs qui vont s’actualiser, en bas à gauche la racine de votre dossier TFTP partagé sur le réseau (à retenir, tout ce qui est mis dans C:\TFTP-Root sera partagé).
Any la connexion est ouverte sur toutes vos interfaces et enfin à sa droite son état de fonctionnement.
Par défaut, n’importe qui peut écrire et lire des informations sur votre serveur TFTP. Il est aussi ouvert sur toutes vos interfaces.
Mettez donc l’image téléchargée dans votre répertoire C:\TFTP-Root pour que le switch puisse venir la chercher plus tard.
Ouverture du port 69 UDP
Le port serveur 69 en UDP est réservé pour TFTP, il faut cependant l’ouvrir une première fois sur le pare-feu Windows pour autoriser les connexions entrantes sur votre machine.
Si une pop-up pour une autorisation avec le pare-feu Windows apparait, c’est pour rajouter cette règle d’ouverture.
Connexion en port console
Ouvrir Putty avec le câble console branché au switch.
Renseignez Serial avec le port COM vu dans le gestionnaire de périphériques (ici COM4). Puis Open.
La page est vierge, appuyez une fois sur Entrer pour initier la communication.
Placez-vous toujours en mode utilisateur privilégié en renseignant la commande enable (lorsque vous voyez un chevron >).
Configuration IP
Le switch aura besoin de communiquer avec le serveur TFTP par son adresse IP, ils seront sur le même réseau (pas obligatoire, mais pourquoi se compliquer la vie quand nous sommes à côté…).
Pour se faire, vous devez configurer le port du switch sur lequel votre PC sera branché en réseau : il sera mis mode accès s’il ne l’est pas (switch sorti du carton notamment…).
Sera ensuite configuré une adresse IP sur le VLAN 1 (VLAN de tous les ports par défaut, à changer si vous en avez envie…) pour communiquer avec le switch par cette adresse IP.
Les adresses doivent être sur la même plage IP du PC au switch.
Je résume, vous aurez un port de votre switch en mode access sur le VLAN 1, VLAN qui aura une adresse IP pour communiquer avec votre PC. Sur ce port sera branché votre PC qui sera configuré dans la même plage IP pour que les deux puissent communiquer.
Ici le switch sera contactable en 10.0.0.1/24 et votre PC avec le serveur TFTP en 10.0.0.2/24.
Voici la configuration du switch à partir du mode utilisateur privilégié pour mettre le port du switch sur lequel est branché votre PC en mode access et pour y attribuer une adresse IP au VLAN qui y transite.
configure terminal
! le nom des interfaces peuvent changer, vous pouvez les voir avec show ip interface brief en utilisateur privilegie
interface g1/0/1
switchport mode access
exit
interface vlan 1
ip address 10.0.0.1 255.255.255.0
no shutdown
endSi le switch a déjà été configuré auparavant et que vous ne savez pas sur quel VLAN est le port sur lequel le PC est branché, vous pouvez faire depuis le mode utilisateur privilégié la commande show vlan brief pour voir l’affiliation de tous les ports à quel VLAN.
Sur votre PC pour configurer l’adresse IP.
Le switch sera contactable en 10.0.0.1 et votre serveur TFTP par le switch en 10.0.0.2.
Vous pouvez vérifier leur communication par un ping (du PC vers le switch, l’inverse a des chances de ne pas fonctionner par le pare-feu Windows).
Attendre la fin des séances de pings à chaque fois, le premier ne passe pas toujours (ne vous basez pas sur celui-là si vous allez vite)
État des lieux et sauvegarde préventive
Vous pouvez regarder la version de Cisco IOS en route en renseignant la commande show version en mode utilisateur privilégié.
Ici il est en version 15.2(7)E7 en utilisant l’image c2960x-universalk9-mz.152-7.E7.bin.
Vous pouvez aussi en profiter pour regarder si vous avez téléchargé le bon firmware pour votre modèle de switch, toujours dans show version.
Avec un récapitulatif à la fin.
Pour sauvegarder la configuration actuelle de votre switch avant les changements, vous pouvez demander à votre switch d’enregistrer sa configuration actuelle sur le serveur TFTP de votre PC.
les valeurs entre crochets sont celles qui sont utilisées par défaut si aucunes ne sont renseignées, j’appuie donc sur entrer pour les utiliser
Pour sauvegarder la configuration en route sous le fichier running-config sur le serveur TFTP avec la commande copy running-config tftp://10.0.0.2/running-config.
Si vous avez des VLANs sur votre switch, vous pouvez les sauvegarder avec la commande copy flash:vlan.dat tftp://10.0.0.2/vlan.dat pour les récupérer ensuite si besoin.
Vous pourrez ensuite restaurer les fichiers en les reprennant du serveur TFTP comme suivant avec copy tftp://10.0.0.2/running-config running-config.
Pareil pour les VLANs avec le fichier vlan.dat avec la commande copy tftp://10.0.0.2/vlan.dat flash:vlan.dat.
je vous épargne la capture…
Pour sauvegarder un dossier si vous savez que vous devez en sauvegarder un, vous pouvez le compresser pour l’envoyer sur le serveur TFTP.
Ici fait pour le dossier c2960x-universalk9-mz.152-2.E6.
archive tar /create tftp://192.168.74.7/c2960x-universalk9-mz.152-2.E6 flash:/c2960x-universalk9-mz.152-2.E6
pas de capture, mais totalement fonctionnel et essayé
Mise à jour du firmware
Votre switch démarre sur son stockage flash, en recherchant une image indiquée.
Faites un show boot pour regarder sur quelle image votre switch est/démarre avant de faire des modifications.
Le switch utilise ici le firmware c2960x-universalk9-mz.152-7.E4.bin.
On peut aussi la voir dans le stockage flash: à côté des autres fichiers ou dossiers, mémoire comme un disque que le switch utilise notamment pour booter, enregistrer des fichiers… dir flash:
Vous pouvez par ailleurs voir la quantité d’espace restante sur votre mémoire flash:. Vous pouvez la comparer à la taille de votre image récupérée du site de Cisco pour savoir si celle-ci pourra être transférée (erreur auquel cas).
La procédure de suppression de fichier est couvert plus bas, un delete <nom_du_fichier> ou delete /recursive <nom_du_dossier> pour gagner de l’espace peut être utilisé.
Récupérez sur le serveur TFTP l’image que vous aviez téléchargée, ici son nom c2960x-universalk9-mz.152-7.E7.bin mise dans C:\TFTP-Root.
copy tftp://10.0.0.2/c2960x-universalk9-mz.152-7.E7.bin flash:

Vous pouvez la voir en refaisant dir flash: comme fait juste au dessus.
Optionnel, mais vous pouvez vérifier l’empreinte de votre image savoir si elle a été corrompue pendant le transport, vérolée pour éviter de vous faire injecter une image non officielle de Cisco…
Vous devez pour cela vous reservir de l’empreinte MD5 trouvée sur le site de téléchargement de Cisco et la comparer à celle actuellement sur votre switch pour vérifier leur concordance.
Vérification de l’empreinte MD5 de l’image c2960x-universalk9-mz.152-7.E7.bin.
verify /md5 c2960x-universalk9-mz.152-7.E7.bin

L’empreinte trouvée est 1b3781db619dcce6a2677628acc15439.
On avait bien la même sur le site de Cisco.
On retrouve bien 1b3781db619dcce6a2677628acc15439 des deux côtés, l’image est correcte (authentique + intègre).
On peut maintenant indiquer au switch de booter sur cette nouvelle image au lieu de l’ancienne.
lorsque la commande est plus grande que la fenêtre, le $ signifie qu’il reste des caractères plus loin au début de la ligne (comme ici ou la commande est très longue)
Demande au switch de booter sur la nouvelle image transférée c2960x-universalk9-mz.152-7.E7.bin.
Pour rappel, sur les switchs les plus anciens, retirer switch all.
configure terminalboot system switch all flash:c2960x-universalk9-mz.152-7.E7.bin

Sur certains switchs avec des versions de Cisco IOS plus anciennes, il n’y a pas besoin de l’option switch all (elle vous retournera une erreur)
La commande devient donc : boot system flash:c2960x-universalk9-mz.152-7.E7.bin (dans configure terminal toujours).
On peut désormais voir que le switch démarrera dorénavant sur la nouvelle image, avec la même commande show boot que tout à l’heure.
Le switch démarrera bien sur la nouvelle image.
N’oubliez surtout pas d’enregistrer votre configuration, avec un write ou un copy running-config startup-config pour qu’elles soient prises en compte au prochain démarrage; ça y va de soit pour le changement de l’image sur laquelle le switch va démarrer la prochaine fois.
Puis faire un reload pour redémarrer, le redémarrage sera un peu spécial car le switch intégrera la nouvelle image.
Vous pouvez ensuite vérifier à son redémarrage qu’il ait bien intégré l’image dans un show version.
Avec SSH
Activation du service SCP
La configuration SSH est déjà active et fonctionnelle sur le switch. Avec 192.168.74.21 l’adresse IP du switch contactable.
Des modifications restent à faire, comme activer le serveur SCP pour transférer des fichier via SSH sur le switch.
configure terminalip scp server enable

Modification du timeout des lignes
Si les switchs utilisés n’ont pas de module crypto (comme c’est le cas pour les 2960x), le transfert de fichiers ou les manipulaitons lourdes vont être extrêmement longs. En raison de l’utilisation tout du long de tâches demandant de la cryptographie (en SSH, HTTPS…) que le processeur aura du mal à prendre tout seul sans aide.
En prenant aussi en considération que SSH est en TCP, à contrario de TFTP et FTP qui sont en UDP. Ce qui augmente la taille de l’encapsulation donc diminue le débit net, en plus de la diminution engendrée par la gestion des sessions en TCP (syn, synack, ack…), et j’en passe…
Une image Cisco IOS peut prendre alors plusieurs dixaines de minutes à se transférer sur d’anciens switchs n’ayant pas de module crypto en SSH.
Sauf que le timeout par défaut des lignes de connexion à virtuelles est de 10 minutes, observable ici avec la commande show terminal.
Il est possible que vous soyez déconnectés à la fin de votre transfert ou même avant.
Modifier le temps des sessions pour les connexions SSH, ici fait pour 1 heure (60 minutes et 0 secondes) au lieu de 10 minutes.
il est aussi possible de les désactiver le timeout sur les lignes si c’est temporaire avec la commande no exec-timeout MAIS NE SURTOUT PAS UTILISER no exec SINON VOUS ALLEZ VOUS DÉCONNECTER ET NE PLUS POUVOIR REVENIR
configure terminalline vty 0 15exec-timeout 60 0

En refaisant la commande show terminal vous devriez voir la valeur précédemment entourée changée.
Suite à quoi, les prochaines connexions auront un temps d’inactivité possible augmenté à 60 minutes.
Transfert de l’image avec SCP
Vous pouvez maintenant transférer votre image avec SCP au switch (ici fait avec l’image c2960x-universalk9-mz.152-7.E7.bin).
scp c2960x-universalk9-mz.152-7.E7.bin <utilisateur_sur_switch>@192.168.74.21:flash

La suite des événements se déroule pareillement au changement de version par câble console, je les répète rapidement ici.
Votre image est désormais bien dans votre stockage flash:, on peut la voir à côté des autres fichiers et dossiers avec la commande dir flash:.
Ici pour vérifier l’intégriter de l’image et sa concordance au site officiel de Cisco, avec l’empreinte MD5 conservée.
verify /md5 c2960x-universalk9-mz.152-7.E7.bin

Prise en compte du nouveau firmware
On peut désormais changer l’image sur lequel le switch démarrera. Le $ voulant dire que vous n’êtes pas au début de la ligne, la fenêtre étant trop courte.
Ici pour l’image c2960x-universalk9-mz.152-7.E7.bin.
configure terminalboot system switch all flash:c2960x-universalk9-mz.152-7.E7.bin

Vérification que le switch démarrera bien sur la nouvelle image en affichant son image de boot avec show boot.
Prise en compte des modifications aussi au prochain redémarrage (y compris le changement d’image au démarrage…) avec un write.
Redémarrage du switch sur la nouvelle image, redémarrer avec reload.
Une fois terminé et le switch redémarré, on peut voir qu’il a bien monté en version ici avec show version.
Assainissement des anciennes images
Après la mise à jour du firmware et la vérification de la prise en compte; il reste les anciennes images dans la mémoire flash: qui nous poseront problème pour les prochaines mises à jour (espace insuffisant…).
Vous pouvez toutes les lister en affichant les fichiers avec l’extension .bin (extension des images) comme suivant : dir flash:*.bin.
Pour en supprimer une, renseigner l’image avec la commande delete devant.
Faites attention que ce ne soit pas votre image de boot de votre show boot…
delete flash:c2960x-universalk9-mz.152-7.E4.bin

Pour un dossier, ici avec c2960x-universalk9-mz.152-2.E6 il faut rajouter l’option /recursive, mais on nous demande une confirmation chaque fichier présents… (50 fichiers, 50 confirmations…) : delete /recursive c2960x-universalk9-mz.152-2.E6.
Pour éviter les confirmations, on peut ajouter en plus l’option /force : delete /recursive /force c2960x-universalk9-mz.152-2.E6.
Troubleshoot guide
- branchements ou matériel
- PING -> conf switch (ping lui-même? port down, pas bon vlan) ou conf IP PC
- conf PUTTY
- conf TFTP
Alexis Déhu


















































