Mise à jour du routeur SRX 100 sous Junos

Mise à jour du routeur SRX 100 sous Junos
Jérémie Kassianoff
17 mai 2017
6 min de lecture

Découvrez comment réaliser la mise à jour d'un routeur SRX Juniper. Mise à jour 12.1X46-D50.4 vers 12.3X48-D45.6 en quelques minutes.

CertifiéJunos Associé (JNCIA-Junos)

Cas d'usage concret

Votre routeur Juniper SRX 100 accumule les correctifs de sécurité en retard : voici comment réaliser sa mise à jour proprement.

Mise à jour du routeur SRX 100 sous Junos

Il s’avère parfois nécessaire de mettre à jour son routeur afin de combler des failles de sécurité ou encore disposer de nouvelles fonctionnalités plus ou moins importantes. Actuellement mon routeur SRX100 fonctionne sous le firmware : 12.1X46-D50.4 datant de Avril 2016. Je souhaite faire le mise à jour vers 12.3X48-D45.6 datant de Février 2017. Les nouveautés entre les deux firmwares sont significatives et accessibles au lien suivant.

Pré-requis :

  • Sauvegarder la configuration actuelle du routeur :
bash
save /tmp/conf17052017
Wrote 751 lines of configuration to '/tmp/conf17052017'
  • Posséder le firmware le plus récent disponible sur le site de Juniper et accessible depuis un compte valide.
  • Disposer d’un accès physique au routeur ou bien d’un serveur FTP pour uploader le firmware.
  • Une demi-heure devant soi afin de réaliser la mise à jour du SRX100.

Mise à jour individuelle

Il existe différentes catégories de mises à jour, découvrons ensemble la mise à jour individuelle pour le SRX100.
Nous commençons dans le mode dit de fonctionnement et nous vérifions la version du routeur :

bash
show version
Hostname: junsrx
Model: srx100h2
JUNOS Software Release [12.1X46-D50.4]

Dans notre cas nous récupérons le firmware depuis le site de Juniper. Dans mon cas je l’ai uploadé en SFTP dans le répertoire /tmp puis récupéré la configuration du routeur précédemment créé : conf17052017. Voici le contenu /tmp :

bash
root@junsrx> start shell
root@junsrx% cd /tmp/
root@junsrx% ls
.clnpkg.LCK                             conf17052017
.download-manager.LCK                   idpd.pid
.pkg.REBOOT                             junos-srxsme-12.3X48-D45.6-domestic.tgz
BSD.var.dist                            libappid_debug.log
appidd_trace_debug                      lockmgr
exit

Pour les utilisateurs qui préfèrent utiliser la méthode via ftp voici la commande de base :

bash
user@host> file copy ftp://username:[email protected]/filename  /tmp/

Nous sommes désormais prêts pour réaliser la mise à jour du routeur :

yaml
root@junsrx> request system sofware add /tmp/junos-srxsme-12.3X48-D45.6-domestic.tgz validate                      
Formatting alternate root (/dev/da0s1a)...
/dev/da0s1a: 619.6MB (1268876 sectors) block size 16384, fragment size 2048
        using 4 cylinder groups of 154.91MB, 9914 blks, 19840 inodes.
super-block backups (for fsck -b #) at:
 32, 317280, 634528, 951776
Extracting /tmp/junos-srxsme-12.3X48-D45.6-domestic.tgz ...
saving package file in /var/sw/pkg ...
Checking compatibility with configuration
Initializing...
rm: /var/validate/chroot/mfs/var/etc/pam.conf: Operation not permitted
rm: /var/validate/chroot/mfs/var/etc: Directory not empty
rm: /var/validate/chroot/mfs/var: Directory not empty
rm: /var/validate/chroot/mfs: Directory not empty
rm: /var/validate/chroot: Directory not empty
Verified manifest signed by PackageProductionEc_2016 method ECDSA
Verified junos-12.1X46-D50.4-domestic signed by PackageProductionEc_2016 method ECDSA
Using junos-12.3X48-D45.6-domestic from /altroot/cf/packages/install-tmp/junos-12.3X48-D45.6-domestic
Copying package ...
veriexec: cannot update veriexec for /cf/var/validate/chroot/junos/usr/lib/libslax.so.3: No such file or directory
veriexec: cannot update veriexec for /cf/var/validate/chroot/junos/usr/lib/libext_bit.so.3: No such file or directory
veriexec: cannot update veriexec for /cf/var/validate/chroot/junos/usr/lib/libext_curl.so.3: No such file or directory
veriexec: cannot update veriexec for /cf/var/validate/chroot/junos/usr/lib/libext_xutil.so.3: No such file or directory
Verified manifest signed by PackageProductionEc_2017 method ECDSA
Hardware Database regeneration succeeded
Validating against /config/juniper.conf.gz
Usage: license-check -f "<features>" -m -p -q -M -u -U -V
  -V verify if release based licenses are present
Connectivity fault management process: rtslib: ERROR kernel does not support all messages: expected 103 got 102,a reboot or software upgrade may be required
Connectivity fault management process:
Connectivity fault management process: rtslib: WARNING version mismatch for msg bulkstats: expected 0 got 98,a reboot or software upgrade may be required
Connectivity fault management process:
Connectivity fault management process: rtslib: WARNING version mismatch for msg ddos: expected 99 got 98,a reboot or software upgrade may be required
Connectivity fault management process:
Connectivity fault management process: rtslib: WARNING version mismatch for msg notify msg: expected 98 got 0,a reboot or software upgrade may be required
Connectivity fault management process:
Connectivity fault management process: rtslib: WARNING version mismatch for msg kuack messages: expected 99 got 0,a reboot or software upgrade may be required
Connectivity fault management process:
Connectivity fault management process: rtslib: WARNING version mismatch for msg marker ifstate: expected 104 got 0,a reboot or software upgrade may be required
Connectivity fault management process:
mgd: commit complete
Validation succeeded
rm: /cf/var/validate/chroot/mfs/var/etc/pam.conf: Operation not permitted
rm: /cf/var/validate/chroot/mfs/var/etc: Directory not empty
rm: /cf/var/validate/chroot/mfs/var: Directory not empty
rm: /cf/var/validate/chroot/mfs: Directory not empty
rm: /cf/var/validate/chroot: Directory not empty
Installing package '/altroot/cf/packages/install-tmp/junos-12.3X48-D45.6-domestic' ...
Verified junos-boot-srxsme-12.3X48-D45.6.tgz signed by PackageProductionEc_2017 method ECDSA
Verified junos-srxsme-12.3X48-D45.6-domestic signed by PackageProductionEc_2017 method ECDSA
Verified junos-boot-srxsme-12.3X48-D45.6.tgz signed by PackageProductionEc_2017 method ECDSA
Verified junos-srxsme-12.3X48-D45.6-domestic signed by PackageProductionEc_2017 method ECDSA
JUNOS 12.3X48-D45.6 will become active at next reboot
WARNING: A reboot is required to load this software correctly
WARNING:     Use the 'request system reboot' command
WARNING:         when software installation is complete
Saving state for rollback ...

Il est demandé de réaliser un redémarrage de l’appareil afin de disposer de la nouvelle version du firmware :

bash
root@junsrx> request system reboot
Reboot the system ? [yes,no] (no) yes

Shutdown NOW!
root@junsrx> *** FINAL System shutdown message from root@junsrx *** System going down IMMEDIATELY

Une fois l’appareil redémarré un message apparaît avant de nous authentifier :

bash
WARNING: JUNOS versions running on dual partitions are not same
** /dev/da0s2a
FILE SYSTEM CLEAN; SKIPPING CHECKS
clean, 240844 free (44 frags, 30100 blocks, 0.0% fragmentation)

Junos utilise deux partitions : da0s1a et da0s2a qui contiennent encore notre ancien firmware.
Pour résoudre le problème nous allons lui copier notre firmware de la partition da0s1a vers da0s2a comme ceci :

text
root@junsrx> request system snapshot slice alternate
Formatting alternate root (/dev/da0s2a)...
Copying '/dev/da0s1a' to '/dev/da0s2a' .. (this may take a few minutes)
The following filesystems were archived: /

Pour vérifier l’intégralité de notre mise à jour :

bash
root@junsrx> show system snapshot media internal slice alternate
Information for snapshot on       internal (/dev/da0s1a) (primary)
Creation date: May 17 19:12:57 2017
JUNOS version on snapshot:
  junos  : 12.3X48-D45.6-domestic
Information for snapshot on       internal (/dev/da0s2a) (backup)
Creation date: May 17 19:24:28 2017
JUNOS version on snapshot:
  junos  : 12.3X48-D45.6-domestic

Pour terminer, un redémarrage est nécessaire afin que le message disparaisse et que notre routeur soit opérationnel.

Conclusion

Cet article a détaillé la mise à jour individuelle d’un routeur Juniper SRX100 du firmware 12.1X46-D50.4 vers 12.3X48-D45.6, en passant par la sauvegarde de la configuration, le transfert du firmware, sa validation puis son installation avant un redémarrage de l’équipement. Une étape supplémentaire de synchronisation des deux partitions du routeur (da0s1a et da0s2a) a permis de garantir la cohérence du firmware installé. Cette mise à jour reste une opération à réaliser régulièrement pour combler les failles de sécurité et bénéficier des nouvelles fonctionnalités de Junos.