Mise à jour des routeurs Cisco
2007-04-10
Switzernet Sàrl
Sauvegarde de la version actuelle du programme
Dénomination des versions du logiciel interne
Nous présentons ici les étapes les plus importantes pour procéder à la mise à jour d’un routeur Cisco. Bien que ce guide doive être suffisant dans la plupart des cas, il peut être utile de se référer à la documentation officielle Cisco disponible à cette adresse :
http://www.cisco.com/warp/public/130/sw_upgrade_proc_ram.shtml
Cette procédure a été utilisée sur des routeurs des familles 3600, 3800 et 5300. Il est possible que d’autres modèles demandent certaines commandes particulières
On peut se connecter au routeur par plusieurs moyens : telnet, connexion directe sur le port série, et par une interface web (si cela est activé dans la configuration, mais permet uniquement de voir la configuration, pas de la modifier). Dans le cas de la mise à jour – pour plus de sécurité en cas de problème pendant le transfert des fichiers – on préfèrera utiliser la connexion au routeur par le port série. Pour se loguer directement, on se branche sur le routeur au moyen du câble fourni, et on se connecte par le programme "Hyperterminal" de windows. La configuration à choisir pour la connexion est la suivante :
Par ce moyen de connexion, on est directement logué sans avoir besoin du nom d’utilisateur ou du mot de passe. Il faut cependant utiliser la commande "enable" (qui demandera un mot de passe si spécifié dans la configuration) pour entrer dans le mode de configuration du routeur.
Il devrait être tout aussi sûr de passer par telnet, comme une vérification du checksum de l’image est effectuée avant la mise à jour. Par contre il vaut mieux avoir un accès physique au routeur, au cas ou la connexion réseau vers l’appareil serait perdue au redémarrage.
Avant tout, on copie la version actuelle depuis la mémoire flash du routeur vers un serveur tftp (par exemple sous Windows en utilisant le programme "tftp32"). Cela nous permettra de revenir à la version initiale en cas de problème pendant la mise à jour. La commande à utiliser est "copy flash tftp" :
Router#copy flash:mc3810-a2ik9sv5-mz.123-13.bin tftp:flash_backup.bin
Address or name of remote host []? 192.168.1.7
Destination filename [flash_backup.bin]?
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
13484376 bytes copied in 103.433 secs (130368 bytes/sec)
On peut soit entrer tous les arguments comme illustré au dessus, soit simplement utiliser "copy flash tftp", qui demandera ensuite de spécifier les noms de fichier ou comme ici l’adresse IP du serveur tftp.
De la même manière, on lance la mise à jour par la commande "copy tftp flash". Si il y a suffisamment d'espace disponible dans la mémoire flash, tout se passe automatiquement. Si la mémoire libre est insuffisante, le routeur demandera s’il faut effacer les fichiers présents, ou selon la version il faudra le faire à la main (voir section suivante).
Si le premier fichier disponible dans la mémoire flash du routeur n’est pas l’image du firmware, il faut spécifier dans la configuration quel fichier doit être utilisé au démarrage. Cela se fait avec la commande "boot". Par exemple dans notre cas, on utiliserait :
boot system flash c3640-jk8o3s-mz.122-10a.bin
Après la mise à jour, la commande "reload" fait redémarrer le routeur, avec la nouvelle version du logiciel interne. Le routeur va demander si la configuration doit être sauvegardée. Il faut confirmer ce choix, mais on doit s’attendre à ce que certaines commandes de l’ancienne configuration ne soient plus bien reconnues si la syntaxe a changé entre les deux versions du logiciel interne.
Si la mémoire disponible sur le routeur n'est pas suffisante pour télécharger la nouvelle version du logiciel, il faudra effacer une partie du contenu de la mémoire flash. On peut lister le contenu de la mémoire flash avec la commande "show flash", qui indique aussi la mémoire encore disponible :
Router#sh flash
System flash directory:
File Length Name/status
1 13768756 c3640-jk8o3s-mz.122-10a.bin
[13768820 bytes used, 19785612 available, 33554432 total]
32768K bytes of processor board System flash (Read/Write)
On peut effacer un fichier de la mémoire flash avec la commande "delete flash:<nom du fichier>". On peut aussi complètement effacer la mémoire avec la commande "erase flash" (à utiliser avec précaution!!). Si le routeur n'a pas assez de mémoire disponible pour stocker les deux images, on est obligé d'effacer certains fichiers, ou même la version courante du logiciel interne. Cela ne pose pas de problème, car il est conservé en RAM durant l’utilisation. De plus, une version d’origine du firmware est stockée en mémoire ROM (donc en lecture seule), et devrait permettre de démarrer en mode minimal en cas de problèmes de mise à jour.
Dans le nom de l’image on trouve toutes les indications sur la version du logiciel interne, ainsi que sur les fonctionnalités présentes. La forme générale du nom de fichier est la suivante :
Ce qui nous intéresse principalement est que le modèle de routeur corresponde bien au matériel, le numéro de version et les fonctionnalités présentes. Un autre point important est de savoir si le logiciel est une version "T" ou non. Dans les releases mineures, les versions T apportent de nouvelles fonctionnalités et des mises à jour générales, alors que les versions normales ne comprennent que les mises à jour de sécurité.
Une documentation Cisco bien plus complète sur la dénomination des images est disponible ici :
http://www.cisco.com/warp/public/620/1.html
Pour connaître la version actuelle du logiciel interne du routeur, on peut utiliser la commande "show version" :
Cisco Internetwork Operating System Software
IOS (tm) 3600 Software (C3640-JK8O3S-M), Version 12.2(10a), RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2002 by cisco Systems, Inc.
Compiled Mon 20-May-02 19:40 by pwade
Image text-base: 0x60008930, data-base: 0x61572000
ROM: System Bootstrap, Version 11.1(20)AA2, EARLY DEPLOYMENT RELEASE SOFTWARE (fc1)
Router uptime is 6 days, 17 hours, 17 minutes
System returned to ROM by reload
System restarted at 16:50:58 CET Fri Apr 27 2007
System image file is "flash:c3640-jk8o3s-mz.122-10a.bin"
cisco 3640 (R4700) processor (revision 0x00) with 59392K/6144K bytes of memory.
Processor board ID 24397019
R4700 CPU at 100Mhz, Implementation 33, Rev 1.0
Channelized E1, Version 1.0.
Bridging software.
X.25 software, Version 3.0.0.
SuperLAT software (copyright 1990 by Meridian Technology Corp).
TN3270 Emulation software.
Primary Rate ISDN software, Version 1.1.
4 Ethernet/IEEE 802.3 interface(s)
31 Serial network interface(s)
2 Channelized E1/PRI port(s)
DRAM configuration is 64 bits wide with parity disabled.
125K bytes of non-volatile configuration memory.
32768K bytes of processor board System flash (Read/Write)
Configuration register is 0x2102
On y voit par exemple la version originale du logiciel (11.1(20)AA2), le nom de l’image utilisée actuellement (c3640-jk8o3s-mz.122-10a.bin) et la version du logiciel (Version 12.2(10a)).