« Ios - cisco » : différence entre les versions

De Wiki doc

(→‎Mise à jour : Ajout des explications concernant l'ordre de démarrage des IOS.)
(Ajout d'une section expliquant le démarrage sur la "startup-config" avec IOS-XE + divers légères corrections.)
 
Ligne 1 : Ligne 1 :
[[Category:cisco]]
[[Category:cisco]]
=Mise à jour=
=Mise à jour=
Mettre à jour un ''IOS'' peut servir à obtenir de nouvelles fonctionnalités, corriger des bogues ou des failles et même ajouter des portes dérobés de la ''NSA'' ;). Pour ma part, je vais mettre à jour un routeur ''Cisco 2610MX'' initialement en ''IOS'' ''c2600-i-mz.122-16a.bin'' (ne permettant pas de faire des sous interfaces avec gestion du ''802.1Q'', autant dire qu'il ne sert à rien puisque ce modèle ne possède qu'un seul port ''FastEthernet'' - mais pourquoi ils vendent des merdes pareil ?) vers ''c2600-ik2o3s-mz.121-27b.bin'' qui lui à le mérite de proposer au moins la base (on va enfin pouvoir faire du routage avec ce routeur !).
Mettre à jour un ''IOS'' peut servir à obtenir de nouvelles fonctionnalités, corriger des bogues ou des failles et même ajouter des portes dérobés de la ''NSA'' ;). Pour ma part, je vais mettre à jour un routeur ''Cisco 2610MX'' initialement en ''IOS'' ''c2600-i-mz.122-16a.bin'' (ne permettant pas de faire des sous interfaces avec gestion du ''802.1Q'', autant dire qu'il ne sert à rien puisque ce modèle ne possède qu'un seul port ''FastEthernet'' - mais pourquoi ils vendent des merdes pareil ?) vers ''c2600-ik2o3s-mz.121-27b.bin'' qui lui à le mérite de proposer au moins la base (on va enfin pouvoir faire du routage avec ce routeur !).


Dans tout les cas, l'''IOS'' doit être transféré sur la mémoire flash de l'équipement. Ce dernier peut réagir de deux façons. Soit il n'y a qu'une seul image et il démarrera dessus, soit il y en a plusieurs et il faudra définir l'image sur laquelle démarrer (sinon il restera sur la première qui a été configurée). Après transfert, il convient de vérifier l'intégrité de l'image avec la méthode suivante (les 3 [https://networkproguide.com/upgrade-cisco-ios-switch-step-by-step/ commandes] ci-dessous sont utilisées sur un commutateur ''3560cx-12PD-S''):
Dans tout les cas, l{{'}}''IOS'' doit être transféré sur la mémoire flash de l'équipement. Ce dernier peut réagir de deux façons. Soit il n'y a qu'une seul image et il démarrera dessus, soit il y en a plusieurs et il faudra définir l'image sur laquelle démarrer (sinon il restera sur la première qui a été configurée). Après transfert, il convient de vérifier l'intégrité de l'image avec la méthode suivante (les 3 [https://networkproguide.com/upgrade-cisco-ios-switch-step-by-step/ commandes] ci-dessous sont utilisées sur un commutateur ''3560cx-12PD-S''):
  verify /md5 flash:/c3560cx-universalk9-mz.152-7.E2/c3560cx-universalk9-mz.152-7.E2.bin
  verify /md5 flash:/c3560cx-universalk9-mz.152-7.E2/c3560cx-universalk9-mz.152-7.E2.bin


de prendre connaissance de l'ordre de démarrage actuellement configuré:
de prendre connaissance de l'ordre de démarrage actuellement configuré :
  show boot
  show boot


et d'en définir un en rapport avec ce que vous voulez (il est possible d'en mettre plusieurs via un point virgule):
et d'en définir un en rapport avec ce que vous voulez (il est possible d'en mettre plusieurs via un point-virgule) :
  boot system flash:/c3560cx-universalk9-mz.152-7.E2/c3560cx-universalk9-mz.152-7.E2.bin;flash:/c3560cx-universalk9-mz.152-4.E5/c3560cx-universalk9-mz.152-4.E5.bin
  boot system flash:/c3560cx-universalk9-mz.152-7.E2/c3560cx-universalk9-mz.152-7.E2.bin;flash:/c3560cx-universalk9-mz.152-4.E5/c3560cx-universalk9-mz.152-4.E5.bin


==Par TFTP==
==Par TFTP==
# Configurez une des interfaces de votre équipement dans le réseau de votre serveur tftp
# Configurez une des interfaces de votre équipement dans le réseau de votre serveur ''tftp''
# exécutez la commande suivante: <source lang="bash" inline>copy tftp: flash:</source> et renseignez les paramètres cohérents.
# exécutez la commande suivante : <source lang="bash" inline>copy tftp: flash:</source> et renseignez les paramètres cohérents.
 
''Note: j'utilise [https://{{SERVERNAME}}/fichiers/réseaux/cisco/ios/c2600-ik2o3s-mz.121-27b.bin cet IOS] récupéré sur [https://doc.lagout.org/network/Cisco/IOS%20Collection/c2610-2613/ ce site].''
''Note: j'utilise [https://{{SERVERNAME}}/fichiers/réseaux/cisco/ios/c2600-ik2o3s-mz.121-27b.bin cet IOS] récupéré sur [https://doc.lagout.org/network/Cisco/IOS%20Collection/c2610-2613/ ce site].''


==Par USB==
==Par USB==
Non testé mais j'imagine qu'il faut simplement formater une clé USB en FAT32, l'insérer et copier l'IOS dans la flash.
Non testé mais j'imagine qu'il faut simplement formater une clé USB en ''FAT32'', l'insérer et copier l{{'}}''IOS'' dans la flash.


==Par SCP==
==Par SCP==
Ligne 24 : Ligne 26 :


=Restauration=
=Restauration=
Dans le cas où l'IOS de votre équipement rencontre un problème (mise à jour, effacement accidentel, panne de flash...), il est possible de le réinstaller en passant par l'IOS primaire exécuté au démarrage (équivalent à l'initrd sous Linux). L'équipement ayant servit de cobaye pour cette procédure est un routeur Cisco 2610MX. Son IOS est téléchargeable [https://{{SERVERNAME}}/fichiers/réseaux/cisco/ios/c2600-i-mz.122-16a.bin ici] et un grand nombre d'autres versions sont récupérables sur [https://doc.lagout.org/network/Cisco/IOS%20Collection/ ce site].
Dans le cas où l{{'}}''IOS'' de votre équipement rencontre un problème (mise à jour, effacement accidentel, panne de flash...), il est possible de le réinstaller en passant par l{{'}}''IOS'' primaire exécuté au démarrage (équivalent à l{{'}}''initrd'' sous ''Linux''). L'équipement ayant servit de cobaye pour cette procédure est un routeur ''Cisco 2610MX''. Son ''IOS'' est téléchargeable [https://{{SERVERNAME}}/fichiers/réseaux/cisco/ios/c2600-i-mz.122-16a.bin ici] et un grand nombre d'autres versions sont récupérables sur [https://doc.lagout.org/network/Cisco/IOS%20Collection/ ce site].


==Par TFTP==
==Par TFTP==
# Redémarrez votre équipement
# Redémarrez votre équipement
# Au moment de la décompression de l'IOS primaire (le moment exacte varie selon les équipements), envoyez un message de "break" (<source lang="bash" inline><ctrl>+<a>-<f></source> sous [[Minicom]])
# Au moment de la décompression de l{{'}}''IOS'' primaire (le moment exacte varie selon les équipements), envoyez un message de "break" (<source lang="bash" inline><ctrl>+<a>-<f></source> sous [[Minicom]])
# Un prompt '''rommon 1 >''' se présente, il faut changer l'ordre de démarrage dans le registre afin de démarrer systématiquement sur ce prompte (c'est complètement con mais sans ça, l'étape suivante exige un redémarrage qui ne peut que ce solder par un échec puisque plus d'IOS fonctionnel n'est présent). Tapez <source lang="bash" inline>confreg 0x2100</source> suivit d'un <source lang="bash" inline>reset</source>.
# Un prompt '''rommon 1 >''' se présente, il faut changer l'ordre de démarrage dans le registre afin de démarrer systématiquement sur ce prompte (c'est complètement con mais sans ça, l'étape suivante exige un redémarrage qui ne peut que ce solder par un échec puisque plus d{{'}}''IOS'' fonctionnel n'est présent). Tapez <source lang="bash" inline>confreg 0x2100</source> suivit d'un <source lang="bash" inline>reset</source>.
# Entrez des informations réseau cohérente avec votre infra ainsi que l'adresse IP du serveur TFTP contenant l'IOS d'ont vous avez besoin dans les variables suivantes: <source lang="bash">
# Entrez des informations réseau cohérente avec votre infra ainsi que l'adresse ''IP'' du serveur ''TFTP'' contenant l{{'}}''IOS'' dont vous avez besoin dans les variables suivantes :
 
<source lang="bash">
IP_ADDRESS=2.2.2.9
IP_ADDRESS=2.2.2.9
IP_SUBNET_MASK=255.255.255.248
IP_SUBNET_MASK=255.255.255.248
Ligne 37 : Ligne 41 :
TFTP_FILE=c2600-i-mz.122-16a.bin
TFTP_FILE=c2600-i-mz.122-16a.bin
</source>
</source>
''Note: ces variables sont consultables avec la commande <source lang="bash" inline>set</source>.''
''Note: ces variables sont consultables avec la commande <source lang="bash" inline>set</source>.''
# Initialisez le transfère: <source lang="bash" inline>tftpdnld</source>
# Initialisez le transfère : <source lang="bash" inline>tftpdnld</source>
# Une fois terminé, restaurez l'ordre de démarrage initial: <source lang="bash" inline>confreg 0x2102</source> et redémarrez: <source lang="bash" inline>reset </source>
# Une fois terminé, restaurez l'ordre de démarrage initial: <source lang="bash" inline>confreg 0x2102</source> et redémarrez : <source lang="bash" inline>reset </source>


Voici le pavé complet:
Voici le pavé complet :
<source lang="bash">
<source lang="bash">
confreg 0x2100
confreg 0x2100
Ligne 64 : Ligne 69 :
* https://supportforums.cisco.com/t5/network-infrastructure-documents/the-please-reset-before-issuing-this-command-error-message-is/ta-p/3129967
* https://supportforums.cisco.com/t5/network-infrastructure-documents/the-please-reset-before-issuing-this-command-error-message-is/ta-p/3129967
* https://www.cisco.com/c/en/us/support/docs/routers/2600-series-multiservice-platforms/12714-76.html
* https://www.cisco.com/c/en/us/support/docs/routers/2600-series-multiservice-platforms/12714-76.html
=IOS XE=
==Démarrer sur la configuration locale==
Sur un commutateur comportant ''IOS XE'', il arrive que la ''startup-config'' ne se charge pas au démarrage. Pour régler ça, il faut aller dans la ''ROMMON'' via le boutant "mode" de la face avant de l'équipement lors de sa mise sous tension et taper les commandes suivantes :
<source lang="bash">
flash_init
SWITCH_IGNORE_STARTUP_CFG=0
boot flash:packages.conf
</source>
La configuration se chargera aux prochains démarrages.
===Sources de la section===
* https://community.cisco.com/t5/switching/cisco-3650-on-ios-xe-16-9-3a-ignoring-the-quot-ignore-startup/td-p/4115382
* Page 318 : https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3650/software/release/3se/system_management/configuration_guide/b_sm_3se_3650_cg.pdf ou dans [https://{{SERVERNAME}}/fichiers/réseaux/cisco/ios/docs/b_sm_3se_3650_cg.pdf nos fichiers]

Dernière version du 4 août 2021 à 09:04


Mise à jour

Mettre à jour un IOS peut servir à obtenir de nouvelles fonctionnalités, corriger des bogues ou des failles et même ajouter des portes dérobés de la NSA ;). Pour ma part, je vais mettre à jour un routeur Cisco 2610MX initialement en IOS c2600-i-mz.122-16a.bin (ne permettant pas de faire des sous interfaces avec gestion du 802.1Q, autant dire qu'il ne sert à rien puisque ce modèle ne possède qu'un seul port FastEthernet - mais pourquoi ils vendent des merdes pareil ?) vers c2600-ik2o3s-mz.121-27b.bin qui lui à le mérite de proposer au moins la base (on va enfin pouvoir faire du routage avec ce routeur !).

Dans tout les cas, l'IOS doit être transféré sur la mémoire flash de l'équipement. Ce dernier peut réagir de deux façons. Soit il n'y a qu'une seul image et il démarrera dessus, soit il y en a plusieurs et il faudra définir l'image sur laquelle démarrer (sinon il restera sur la première qui a été configurée). Après transfert, il convient de vérifier l'intégrité de l'image avec la méthode suivante (les 3 commandes ci-dessous sont utilisées sur un commutateur 3560cx-12PD-S):

verify /md5 flash:/c3560cx-universalk9-mz.152-7.E2/c3560cx-universalk9-mz.152-7.E2.bin

de prendre connaissance de l'ordre de démarrage actuellement configuré :

show boot

et d'en définir un en rapport avec ce que vous voulez (il est possible d'en mettre plusieurs via un point-virgule) :

boot system flash:/c3560cx-universalk9-mz.152-7.E2/c3560cx-universalk9-mz.152-7.E2.bin;flash:/c3560cx-universalk9-mz.152-4.E5/c3560cx-universalk9-mz.152-4.E5.bin

Par TFTP

  1. Configurez une des interfaces de votre équipement dans le réseau de votre serveur tftp
  2. exécutez la commande suivante : copy tftp: flash: et renseignez les paramètres cohérents.

Note: j'utilise cet IOS récupéré sur ce site.

Par USB

Non testé mais j'imagine qu'il faut simplement formater une clé USB en FAT32, l'insérer et copier l'IOS dans la flash.

Par SCP

L'usage du serveur SCP embarqué permet également de rapatrier le fichier désiré. Plus de détails dans la section dédiée.

Restauration

Dans le cas où l'IOS de votre équipement rencontre un problème (mise à jour, effacement accidentel, panne de flash...), il est possible de le réinstaller en passant par l'IOS primaire exécuté au démarrage (équivalent à l'initrd sous Linux). L'équipement ayant servit de cobaye pour cette procédure est un routeur Cisco 2610MX. Son IOS est téléchargeable ici et un grand nombre d'autres versions sont récupérables sur ce site.

Par TFTP

  1. Redémarrez votre équipement
  2. Au moment de la décompression de l'IOS primaire (le moment exacte varie selon les équipements), envoyez un message de "break" (<ctrl>+<a>-<f> sous Minicom)
  3. Un prompt rommon 1 > se présente, il faut changer l'ordre de démarrage dans le registre afin de démarrer systématiquement sur ce prompte (c'est complètement con mais sans ça, l'étape suivante exige un redémarrage qui ne peut que ce solder par un échec puisque plus d'IOS fonctionnel n'est présent). Tapez confreg 0x2100 suivit d'un reset.
  4. Entrez des informations réseau cohérente avec votre infra ainsi que l'adresse IP du serveur TFTP contenant l'IOS dont vous avez besoin dans les variables suivantes :
IP_ADDRESS=2.2.2.9
IP_SUBNET_MASK=255.255.255.248
DEFAULT_GATEWAY=2.2.2.10
TFTP_SERVER=2.2.2.10
TFTP_FILE=c2600-i-mz.122-16a.bin

Note: ces variables sont consultables avec la commande set.

  1. Initialisez le transfère : tftpdnld
  2. Une fois terminé, restaurez l'ordre de démarrage initial: confreg 0x2102 et redémarrez : reset

Voici le pavé complet :

confreg 0x2100
reset

IP_ADDRESS=2.2.2.9
IP_SUBNET_MASK=255.255.255.248
DEFAULT_GATEWAY=2.2.2.10
TFTP_SERVER=2.2.2.10
TFTP_FILE=c2600-i-mz.122-16a.bin

tftpdnld

confreg 0x2102
reset

Par Xmodem

Quand ça pue vraiment la merde et que plus rien ne va, il me semble que c'est par le Xmodem que l'on règle ça. Je ne me suis pas plus attardé dessus. Cette section sert juste de pense-bête à mot clé. Cette partie est documenté ici chez Cisco.

Sources de la section

IOS XE

Démarrer sur la configuration locale

Sur un commutateur comportant IOS XE, il arrive que la startup-config ne se charge pas au démarrage. Pour régler ça, il faut aller dans la ROMMON via le boutant "mode" de la face avant de l'équipement lors de sa mise sous tension et taper les commandes suivantes :

flash_init
SWITCH_IGNORE_STARTUP_CFG=0
boot flash:packages.conf

La configuration se chargera aux prochains démarrages.

Sources de la section