Si vous utilisez des équipements Juniper de la gamme Netscreen (SSG par exemple) vous pouvez rencontrer une erreur lors de la mise à jour du micrologiciel (firmware).

fw-juniper

Voici comment la corriger.

Symptôme

Lors de la mise à jour via le GUI (interface web) le message suivant apparaît : "The uploaded file cannot be recognized as a valid software image file. Please double-check with you supplier."

Ce message est clair : votre fichier de mise à jour est invalide, vérifiez que vous l'avez bien dézippé et qu'il s'agit du firmware et non du bootloader.

Par contre si lors de la mise à jour vous rencontrez ce message :

*********************************************************
                  Exception Dump
*********************************************************

System up time: 0 hours 5 minutes 19 seconds
Version 6.3.0r20.0
Exception(Data Abort Exception code(1002))
Exception address: 00e44988
Registers of Main Processor:
R0:      00000020   R1:      00000001  R2:      00000010
R3:      00000000   R4:      0000002d  R5:      00000001
R6:      8bffef64   R7:      0000002d  R8:      8bffefe8
R9:      02a390f4   R10(sl): 00000014  R11(fp): 8bffef5c
R12(ip): 00000030   R13(sp): 8bffef3c  r14:     00e44990
lr:      00e5a148   SPSR:    80000010  CPSR:    80000097
The registers of control processor 15:
CR1ARM:  000031FF   CR1XSCALE:  00000000   CR2:     0ae30000
CR3:     000000E7   CR4:        Reserved   CR5:     00000017
CR6:     00000000   CR7:        N/A        CR8:     N/A
CR9:     00000000   CR10:       N/A        CR11:    Reserve
CR12:    Reserve    CR13:       00000000
...
Crash dump, the system will reboot...

Alors c'est un problème de clés d'authentification. Rien de méchant, mais ça bloque la mise à jour firmware.

Mise à jour de la clé d'authentification

Prérequis : procurez-vous une clé USB formatée en FAT32.

Pour lister les clés présentes :

SSG-BM-> exec pki test skey

exec pki test <skey>.
Flash base = 0x0, Flash end = 0x0, sector size= 0x10000

KEY1  N/A len =432
 308201ac02010002818100fd7f53811d75122952df4a9c2eece4e7f611b7523cef4400c31e3f80b651     magic1 = f7e9294b magic2=0

KEY2  N/A len =432
 308201ac02010002818100fd7f53811d75122952df4a9c2eece4e7f611b7523cef4400c31e3f80b651     magic1 = f7e9294b magic2=0

KEY3  N/A len =432
 308201ac02010002818100fd7f53811d75122952df4a9c2eece4e7f611b7523cef4400c31e3f80b651     magic1 = f7e9294b magic2=0

C'est le début de la valeur des clés qui nous intéresse : 308201ac

Si vous avez également un "c" et non un "d" alors vous devez mettre à jour la clé. Sinon  votre problème est ailleurs et inutile de suivre ce guide.

Télécharger la nouvelle clé sur le site de Juniper : lien direct, extraire la clé de l'archive sur votre clé USB (imagekey.cer). Insérer la clé USB dans le port USB, un message console doit vous informer qu'elle est vue par l'équipement :

Mount usb device. Please wait...

usb device (usb) ready.

Supprimer d'abord la clé actuelle du Juniper :

delete crypto auth-key

Injecter ensuite la nouvelle clé :

ssg-BM-> save image-key usb imagekey.cer

Read .finished
wait...Done

Relancer le listing des clés :

ssg-BM-> exec pki test skey
exec pki test <skey>.
Flash base = 0x51000000, Flash end = 0x0, sector size= 0x10000

KEY1  N/A len =433
 308201ad02010002818100fd7f53811d75122952df4a9c2eece4e7f611b7523cef4400c31e3f80b651     magic1 = f7e9294b magic2=0

KEY2  N/A len =433
 308201ad02010002818100fd7f53811d75122952df4a9c2eece4e7f611b7523cef4400c31e3f80b651     magic1 = f7e9294b magic2=0

KEY3  N/A len =433
 308201ad02010002818100fd7f53811d75122952df4a9c2eece4e7f611b7523cef4400c31e3f80b651     magic1 = f7e9294b magic2=0

Maintenant les clés commencent bien par : 308201ad

Mise à jour firmware

Vous pouvez maintenant lancer la mise à jour du firmware via l'interface web, ou en CLI :

ssg-BM-> save software from usb FICHIER_FIRMWARE to flash

It will replace current image file with usb image ssg20.
Do you want to continue... y/[n] y
Load image from usb to flash: ssg20.

Read .........................................
Save to flash. It may take a few minutes ...
platform = 25, cpu = 12, version = 18
update new flash image (02a676a0,13385489)
platform = 25, cpu = 12, version = 18
offset = 20, address = 5800000, size = 13385410
date = 258b, sw_version = 31808000, cksum = 6bf65b86
Image authenticated!
Program flash (13385489 bytes) ...
+++++++++++...

Éjecter la clé USB :

ssg-BM-> exec usb-device stop
The "USB Mass Storage Device"can now be safely removed from system

On sauvegarde + reboot (sauvegarde facultatif car aucun changement de conf) :

reset save-config

Conclusion

Comme d'habitude rien de bien compliqué, mais il faut le savoir. Je ferai peut-être d'autres billets sur Juniper mais n'étant absolument pas fan de ces produits et de leur lourdeur de gestion rien n'est sûr.

Pour plus d'info : TSB16495 + forum juniper

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter