IOS, IOS XE et IOS XR : cours CCNP SP Core (350-501 SPCOR), architectures, commit, rollback et lab

Ce qui différencie vraiment IOS, IOS XE et IOS XR : noyau, mémoire, paquets logiciels, commit en deux étapes, rollback, commit confirmed et droits par tâches. Avec un lab PNETLab pas à pas, une fiche et un quiz.

CCNP SPCOR 350-501 · Chapitre 2 : IOS, IOS XE et IOS XR, les architectures logicielles Cisco

Pourquoi un routeur d’opérateur ne tourne pas sous le même système qu’un routeur d’agence, ce qui change vraiment entre IOS, IOS XE et IOS XR, et comment configurer un routeur XR sans risque grâce au commit en deux temps, au rollback et à la gestion des paquets logiciels.

CCNP Service Provider350-501 SPCORDomaine 1 · Architecture (15 %)Objectifs 1.2.a à 1.2.cLecture ≈ 35 min + lab 1 h
Ce que tu sauras faire à la fin de ce chapitre
  • Expliquer les différences d’architecture entre IOS, IOS XE et IOS XR (noyau, ordonnancement, mémoire, séparation des plans).
  • Reconnaître les différentes générations d’IOS XR (classique, eXR, XR7 / LNT) et leur mode de gestion des paquets.
  • Configurer un routeur IOS XR avec le commit en deux étapes, et revenir en arrière proprement (rollback, commit confirmed, labels).
  • Sécuriser tes changements sur IOS XE avec l’archive, configure replace et le revert timer.
  • Naviguer dans la CLI hiérarchique de XR et comprendre son modèle d’autorisation par tâches.
Sommaire
  1. Pourquoi le système d’exploitation compte autant chez un opérateur
  2. IOS classique : le monolithe historique
  3. IOS XE : IOS sur un noyau Linux
  4. IOS XR : l’OS conçu pour les opérateurs
  5. Configurer IOS XR au quotidien : commit, rollback et CLI hiérarchique
  6. Tableau comparatif IOS / IOS XE / IOS XR
  7. Lab PNETLab pas à pas
  8. Fiche de révision, quiz, glossaire et sources

1. Pourquoi le système d’exploitation compte autant

Un opérateur s’engage souvent sur une disponibilité de 99,999 % (« cinq neuf ») : cela représente à peine plus de 5 minutes d’indisponibilité par an. Avec un tel objectif, on ne peut pas se permettre qu’un bug dans un processus (par exemple BGP) fasse redémarrer tout le routeur, ni qu’un copier-coller raté dans la console coupe des milliers de clients sans possibilité de retour arrière rapide.

Cisco a fait évoluer son système d’exploitation réseau en trois grandes familles, chacune née d’un besoin précis :

  • IOS (années 1980) : un OS léger pour des routeurs aux ressources très limitées.
  • IOS XE (2004, avec l’ASR 1000) : IOS modernisé, posé sur un noyau Linux, pour gagner en stabilité tout en gardant la même CLI.
  • IOS XR (2004, avec le CRS-1) : un OS repensé pour les grands routeurs d’opérateurs, distribué, modulaire et pensé pour la haute disponibilité.
IOS classique Une seule imageroutage + pilotes + gestionmémoire partagée à platordonnanceur coopératif Matériel IOS XE IOSdroutage Plan dedonnées Gestionplateforme Noyau Linux 64 bitsmémoire protégée, multicœur Matériel IOS XR BGPIS-ISLDPSysDB Micro-noyau (QNX) puis Linuxprocessus isolés, redémarrablesordonnancement préemptif Matériel distribué (RP + cartes) De gauche à droite : de plus en plus d’isolation entre les fonctions, donc moins de risque qu’une panne locale fasse tomber le routeur.
Figure 1 : les trois architectures en un coup d’œil.

2. IOS classique : le monolithe historique

IOS est né à une époque où un routeur disposait de quelques centaines de kilo-octets de mémoire et d’un processeur modeste. Ses choix de conception s’expliquent par ces contraintes :

  • Noyau monolithique : tout le système tourne dans une seule image ; les processus accèdent directement au matériel, ce qui économise du temps de traitement.
  • Ordonnanceur « run-to-completion » (coopératif) : un processus qui a la main la garde jusqu’à ce qu’il ait fini ou qu’il la rende de lui-même. Avantage : pas de changements de contexte coûteux. Inconvénient : un processus qui part en boucle (« runaway process ») peut monopoliser le CPU et rendre le routeur instable.
  • Pas de protection mémoire : toute la mémoire physique forme un seul espace d’adressage à plat. Un processus qui corrompt la mémoire peut faire planter le système entier, et seul un redémarrage complet le répare.

Ce modèle est efficace sur de petits équipements, mais il atteint ses limites quand les routeurs doivent faire tourner des dizaines de protocoles, porter des millions de routes et ne jamais redémarrer.

Définition à connaître Un ordonnanceur run-to-completion laisse chaque tâche s’exécuter jusqu’à la fin avant de passer à la suivante. C’est le contraire de l’ordonnancement préemptif d’IOS XR, qui peut suspendre une tâche de faible priorité au profit d’une tâche plus prioritaire.

3. IOS XE : IOS posé sur Linux

En 2004, Cisco lance IOS XE avec l’ASR 1000. Pour l’utilisateur, presque rien ne change : la CLI et la logique de configuration sont celles d’IOS. Sous le capot, en revanche, c’est un autre système :

  • un noyau Linux est le seul à accéder directement au matériel, ce qui stabilise la plateforme ;
  • le système est découpé en processus séparés : tous les protocoles de routage et la CLI vivent dans un processus appelé IOSd (le « démon IOS »), la programmation du matériel et la gestion de la plateforme ont leurs propres processus ;
  • séparation du plan de contrôle et du plan de données : sur un ASR 1000, le plan de données est traité par un processeur dédié (QFP) ;
  • 64 bits, mémoire virtuelle et protégée : fin de la limite des 4 Go et une corruption mémoire reste confinée à son processus ;
  • exploitation des processeurs multicœurs ;
  • une image universelle dont certaines fonctions sont activées par licence (aujourd’hui via Smart Licensing).

IOS XE fait tourner l’immense majorité des routeurs et switches Cisco d’entreprise actuels (ISR, Catalyst 8000, Catalyst 9000, ASR 1000) et des routeurs virtuels (CSR 1000v, Catalyst 8000v). Dans la suite de la série, comme dans le livre officiel, « IOS » désigne IOS XE quand il n’y a pas de différence fonctionnelle.

3.1 Les modes de la CLI IOS / IOS XE

ModeInviteCe qu’on y fait
User EXECR1>Consultation limitée (quelques show, ping). Accès par défaut à la connexion.
Privileged EXECR1#Tous les show, debug, copies de fichiers, rechargement. On y entre avec enable.
Global configurationR1(config)#Modifier la configuration. On y entre avec configure terminal. Les sous-modes (config-if, config-router…) en découlent.

3.2 Le point faible : une configuration appliquée immédiatement

Sur IOS et IOS XE, chaque ligne est appliquée dès que tu appuies sur Entrée. Il n’y a aucune vérification de cohérence avec le reste de la configuration. Tout ingénieur réseau a connu ce moment où la session SSH se fige juste après avoir validé une commande sur un équipement distant…

Et revenir en arrière n’est pas trivial. Une erreur classique consiste à faire copy startup-config running-config : cette commande fusionne la configuration sauvegardée avec la configuration courante, elle ne la remplace pas. Les lignes ajoutées par erreur restent en place. Les bons outils sur IOS XE sont l’archive, configure replace et le revert timer.

Sauvegarder et remplacer une configuration

! 1. Activer l'archivage automatique des configurations
PE3(config)# archive
PE3(config-archive)#  path bootflash:cfg-
PE3(config-archive)#  write-memory            ! une archive à chaque "write memory"
PE3(config-archive)#  time-period 1440        ! et au moins une fois par jour (minutes)
PE3(config-archive)#  maximum 10
PE3(config-archive)# end
PE3# write memory
PE3# show archive                 ! liste des archives, la plus récente est marquée

! 2. Comparer la config actuelle avec une archive
PE3# show archive config differences bootflash:cfg--Oct-12-07-45-10.123-1

! 3. Remplacer entièrement la running-config par l'archive
PE3# configure replace bootflash:cfg--Oct-12-07-45-10.123-1 list
! "list" affiche les lignes ajoutées / retirées ; l'outil calcule lui-même les "no ..." nécessaires

configure replace calcule la différence entre la configuration actuelle et le fichier cible, puis applique les ajouts et les suppressions nécessaires. Il faut assez de mémoire pour les deux versions, et quelques rares commandes ne peuvent pas être retirées à chaud.

Le filet de sécurité : le revert timer

PE3# configure terminal revert timer 5
! IOS XE sauvegarde la config actuelle et programme un retour arrière dans 5 minutes
PE3(config)# interface GigabitEthernet2
PE3(config-if)# ip access-group FILTRE-MGMT in    ! changement risqué à distance
PE3(config-if)# end
! Si tu as toujours la main et que tout va bien :
PE3# configure confirm
! Si tu as perdu l'accès, le routeur revient seul à la config précédente au bout de 5 minutes.

La gestion des images sur IOS XE

IOS XE peut démarrer en mode bundle (le routeur démarre directement sur un gros fichier .bin) ou en mode install (recommandé : l’image est décompressée en paquets, et le routeur démarre sur un fichier packages.conf). En mode install, la mise à jour suit le cycle install add file bootflash:image.bin activate commit.

4. IOS XR : l’OS conçu pour les opérateurs

IOS XR naît en mai 2004 avec le CRS-1, le routeur de cœur à très grande capacité de Cisco. On le retrouve aujourd’hui sur les ASR 9000, NCS 540 / 560 / 5500 / 5700, Cisco 8000 et en version virtuelle (XRv, XRv 9000, XRd). Ses principes de conception :

  • Architecture distribuée : les fonctions sont réparties entre les processeurs de routage (RP / RSP) et les cartes de ligne, qui ont leur propre CPU. Le plan de contrôle et le plan de données sont séparés.
  • Micro-noyau (QNX pour les premières versions) : le noyau ne fait presque rien, tous les services (BGP, IS-IS, gestion des interfaces, base de configuration…) tournent comme des processus utilisateurs isolés. Un processus qui plante peut être redémarré seul sans recharger le routeur.
  • Ordonnancement préemptif : un processus de faible priorité peut être suspendu (changement de contexte) au profit d’un plus prioritaire. Le CPU est partagé plus équitablement et un processus ne peut plus le monopoliser.
  • Protection mémoire : une unité de gestion mémoire (MMU) fait la correspondance entre adresses virtuelles et physiques ; chaque processus a son propre espace, une corruption reste locale.
  • Logiciel modulaire en paquets : on installe, met à jour ou retire des fonctions (MPLS, multicast…) sans réinstaller tout le système, et on corrige un bug avec un patch ciblé.
  • Modèle de configuration transactionnel : commit en deux étapes, historique des changements, rollback (section 5).

4.1 Le nommage des nœuds et des interfaces

L’invite d’un routeur XR indique sur quel processeur tu es connecté : RP/0/RP0/CPU0:PE1# se lit Route Processor / rack 0 / slot RP0 / CPU 0. Selon la plateforme, tu verras RP/0/RSP0/CPU0 (ASR 9000), RP/0/RP0/CPU0 (NCS, Cisco 8000) ou RP/0/0/CPU0 (XRv). Les interfaces suivent le même principe en quatre champs : GigabitEthernet0/0/0/1 = rack / slot / sous-slot / port.

Autres différences visibles dès la connexion :

  • Pas de mode User EXEC (>) : tu arrives directement en #, et tes droits dépendent de ton profil d’autorisation (section 5.5).
  • La plupart des commandes affichent un horodatage en première ligne, pratique pour documenter un changement ou un incident.
  • Les adresses s’écrivent ipv4 address / ipv6 address (et non ip address), et les interfaces sont généralement administrativement désactivées par défaut dans une nouvelle configuration (à vérifier selon la plateforme) : pense au no shutdown.

4.2 Les générations d’IOS XR

« IOS XR » recouvre plusieurs générations aux architectures différentes. Peu de chances d’avoir une question pointue dessus, mais savoir les reconnaître évite de se perdre entre des commandes qui diffèrent.

GénérationBaseCaractéristiquesPaquets
XR classique (cXR)Micro-noyau QNX, 32 bitsSystèmes distribués et multi-châssis (CRS, premiers ASR 9000)PIE et SMU
XR 64 bits virtualiséLinux 64 bits, XR dans une machine virtuelleContexte admin séparé (« System Admin »), ISSU visant zéro perte de paquets / zéro perte de topologie, notion de SDR (Secure Domain Router, découpage d’un châssis en routeurs logiques) aujourd’hui abandonnéeRPM
eXR (Evolved XR)Linux 64 bits, conteneurs LXCPlus léger, meilleure télémétrie, hébergement d’applications ; le plan admin tourne toujours dans un conteneur séparéRPM
XR7 / XR LNT (« lint »)Linux natifEnsemble minimal de binaires XR, démarrage plus rapide, plus de contexte admin ni de SDR, plus d’ISSU, sécurité renforcée (Cisco 8000, NCS 540 récents…)RPM, images « golden ISO » (GISO)
! Accès au contexte admin sur les générations qui en ont un
RP/0/RSP0/CPU0:ASR9K# admin
RP/0/RSP0/CPU0:ASR9K(admin)#   ! versions logicielles, paquets, état du châssis...

! Identifier la génération : la ligne de version suffit
RP/0/RP0/CPU0:PE1# show version
Cisco IOS XR Software, Version 7.x.x LNT     ! "LNT" = XR7 Linux natif

4.3 Les paquets logiciels : PIE, SMU, RPM

Sur IOS XE, les fonctions avancées s’activent par licence sur une image universelle. Sur IOS XR, le logiciel est découpé en paquets qu’on installe selon ses besoins.

  • PIE (Package Installation Envelope, XR classique) : fichier contenant le code d’un ensemble de fonctions. Les PIE obligatoires forment l’image de base (« mini ») ; les autres sont optionnels.
  • SMU (Software Maintenance Upgrade) : un correctif ciblé pour un bug, livré rapidement, qui permet de rester sur la même version logicielle. Idéal pour corriger un problème critique sans migration complète.
  • RPM : sur les XR 64 bits, paquets et SMU sont au format RPM Linux. Sur XR7, on travaille de préférence avec des GISO (golden ISO) qui regroupent l’image de base, les paquets optionnels et les SMU choisis.
Paquets du « mini » obligatoire (XR classique)Exemples de paquets optionnels
OS (noyau, système de fichiers, mémoire) · Base (gestionnaire d’interfaces, SysDB, gestion de config, checkpoint) · Admin (cartes, fabric) · Forwarding (FIB, ACL, QoS, ARP) · Pilotes de cartes · Routing (RIB, OSPF, IS-IS, BGP, RPL)MPLS · Multicast · BNG · Satellite · CGN (NAT) · Sécurité (k9sec) · Interception légale · Manageability (mgbl) · Optiques / FPD

Le cycle de vie d’un paquet

1. ADDcopié sur le disque 2. ACTIVATEprocessus relancés 3. COMMITsurvit au redémarrage Paquet en servicedurablement Oublier le commit = le paquet disparaît au prochain redémarrage. Retrait : DEACTIVATE → COMMIT → REMOVE (suppression du disque).
Figure 2 : add → activate → commit, le cycle à connaître pour l’examen.
ÉtapeXR classique (PIE)XR 64 bits / eXR (RPM)XR7 / LNT
Ajouteradmin install add tftp://srv/asr9k-mpls-px.pieinstall add source tftp://srv/ pkg.rpminstall package add source … pkg
Activeradmin install activate disk0:asr9k-mpls-px-x.y.zinstall activate id <n>install apply (ou install replace GISO)
Valideradmin install commitinstall commitinstall commit
Vérifiershow install active summary · show install committed · show install inactive

La syntaxe exacte varie selon la plateforme et la version : en production, suis toujours la procédure de la note de version correspondante.

4.4 Redémarrer un processus sans redémarrer le routeur

C’est l’illustration concrète de la modularité de XR. Si un processus se comporte mal, on peut le relancer seul ; le système (et grâce aux mécanismes de haute disponibilité, souvent le trafic) continue de fonctionner :

RP/0/RP0/CPU0:PE1# show processes isis              ! état, PID, nombre de redémarrages
RP/0/RP0/CPU0:PE1# process restart isis             ! relance uniquement IS-IS
RP/0/RP0/CPU0:PE1# show processes cpu sort 5min | include isis

5. Configurer IOS XR au quotidien

5.1 Le commit en deux étapes

C’est LA différence que tout le monde remarque en arrivant sur XR. Quand tu tapes une commande en mode configuration, rien n’est appliqué. Tes modifications s’accumulent dans une configuration cible (target configuration), propre à ta session, qui ne contient que tes changements (pas une copie de toute la configuration). Ce n’est qu’au moment du commit que le système :

  1. vérifie la syntaxe et la cohérence sémantique de tes changements ;
  2. les applique à la running-config de façon atomique : tout passe ou rien ne passe (par défaut, mode « pseudo-atomique ») ;
  3. enregistre le changement dans la base des commits avec un identifiant, l’utilisateur, la date et éventuellement un label.
OpérateurCLI, NETCONF… Target configtes changements seulement commitvérificationsyntaxe + sémantique Running config+ base des commits Étape 1 : préparerÉtape 2 : valider Erreur → rien n’est appliqué · show configuration failed abort / clear pour tout annuler
Figure 3 : le commit en deux étapes d’IOS XR.
RP/0/RP0/CPU0:ios# configure
RP/0/RP0/CPU0:ios(config)# hostname PE1
RP/0/RP0/CPU0:ios(config)# show configuration          ! ce qui sera appliqué (target)
hostname PE1
RP/0/RP0/CPU0:ios(config)# commit label INIT-HOSTNAME comment "Nommage du PE"
RP/0/RP0/CPU0:PE1(config)# end                         ! l'invite ne change qu'après le commit
RP/0/RP0/CPU0:PE1# show configuration commit list
SNo. Label/ID          User   Line   Client  Time Stamp
~~~~ ~~~~~~~~          ~~~~   ~~~~   ~~~~~~  ~~~~~~~~~~
1    INIT-HOSTNAME     zoher  vty0   CLI     ...
RP/0/RP0/CPU0:PE1# show configuration commit changes last 1
hostname PE1

5.2 Les variantes de commit à connaître

CommandeEffetQuand l’utiliser
commitApplique la target de façon pseudo-atomique (tout ou rien)Cas général
commit label <nom> / comment "…"Donne un nom lisible et un commentaire au changementToujours en production (numéro de ticket, objet du changement)
commit confirmed [secondes] ou commit confirmed minutes <1-1024>Applique le changement provisoirement ; s’il n’est pas confirmé par un nouveau commit avant la fin du délai, il est annulé automatiquementChangement risqué à distance (ACL de management, routage vers le routeur lui-même)
commit best-effortApplique les lignes valides même si certaines échouentRarement ; préfère corriger les erreurs
commit replaceRemplace toute la running-config par la target (tout ce qui n’y figure pas est supprimé)Restaurer une configuration complète chargée avec load. Dangereux avec une target incomplète !
commit show-errorAffiche immédiatement la cause d’un échecDépannage
commit forceIgnore les contrôles de mémoire disponibleÀ éviter, uniquement sur avis du support
Attention à commit replace commit replace n’ajoute pas : il remplace. Si ta target ne contient qu’un hostname, ton routeur se retrouve avec… seulement un hostname. C’est l’équivalent d’un effacement suivi de l’application de la target. En pratique, on l’utilise après load bootflash:config-complete.cfg pour revenir à une configuration de référence.

Le réflexe commit confirmed

RP/0/RP0/CPU0:PE1(config)# interface MgmtEth0/RP0/CPU0/0
RP/0/RP0/CPU0:PE1(config-if)#  ipv4 access-group MGMT-IN ingress
RP/0/RP0/CPU0:PE1(config-if)# commit confirmed minutes 5
! Le changement est actif... et sera annulé dans 5 minutes sauf confirmation.
! Tu ouvres une NOUVELLE session SSH pour vérifier que tu as toujours accès, puis :
RP/0/RP0/CPU0:PE1(config)# commit                       ! confirmation : le changement devient définitif

5.3 Consulter, comparer et revenir en arrière

BesoinCommande
Voir ce que je vais appliquer (en mode config)show configuration
Voir le résultat final si je commit (running + target)show configuration merge
Voir la différence avec la runningshow commit changes diff
Historique des commitsshow configuration commit list
Contenu d’un commitshow configuration commit changes last 1 · … changes <ID>
Prévisualiser un rollbackshow configuration rollback changes last 2
Annuler les N derniers commitsrollback configuration last 2
Revenir à l’état d’un commit précisrollback configuration to <ID ou label>
Comprendre pourquoi un commit a échouéshow configuration failed
Abandonner la target et sortir du mode configabort
Vider la target sans sortirclear
Voir la running ligne par ligne avec le chemin completshow running-config formal
RP/0/RP0/CPU0:PE1# show configuration rollback changes last 2   ! que va faire le rollback ?
RP/0/RP0/CPU0:PE1# rollback configuration last 2
Loading Rollback Changes.
Committing.
Configuration successfully rolled back 2 commits.

Un rollback est lui-même un commit : il apparaît dans l’historique, et on peut donc… annuler un rollback.

Si tu tapes end ou exit avec des changements non validés, XR te demande : Uncommitted changes found, commit them before exiting(yes/no/cancel)? [cancel]. La réponse par défaut, cancel, te laisse en mode configuration.

Piège d’examen Le rollback se tape en mode EXEC : RP/0/RP0/CPU0:R1# rollback configuration last 2. Pas en mode config, et pas « rollback 2 » tout court.

5.4 Une CLI hiérarchique

Sur IOS, la configuration d’une même fonction peut être éparpillée : un bout sous le processus de routage, un bout sous l’interface, un bout en global. Sur XR, la configuration est strictement hiérarchique : tout ce qui concerne IS-IS est sous router isis, y compris les interfaces IS-IS. C’est plus lisible une fois habitué, mais cela piège au début : on reste dans le sous-mode courant tant qu’on n’en sort pas explicitement.

RP/0/RP0/CPU0:PE1(config)# router isis CORE
RP/0/RP0/CPU0:PE1(config-isis)#  interface GigabitEthernet0/0/0/0
RP/0/RP0/CPU0:PE1(config-isis-if)#   ipv4 address 10.1.12.1 255.255.255.252
                                           ^
% Invalid input detected at '^' marker.           ! on est encore dans IS-IS !
RP/0/RP0/CPU0:PE1(config-isis-if)# pwd                 ! où suis-je ?
router isis CORE
 interface GigabitEthernet0/0/0/0
RP/0/RP0/CPU0:PE1(config-isis-if)# root                ! retour au sommet (ou plusieurs "exit")
RP/0/RP0/CPU0:PE1(config)# interface GigabitEthernet0/0/0/0
RP/0/RP0/CPU0:PE1(config-if)#  ipv4 address 10.1.12.1 255.255.255.252
RP/0/RP0/CPU0:PE1(config-if)#  do show clock          ! "do" : une commande EXEC sans quitter le mode config

Autres outils utiles : configure exclusive (verrouille la configuration pour être le seul à pouvoir commiter), show configuration sessions (qui est en train de configurer ?), les groupes de configuration (group / apply-group) pour factoriser des blocs répétitifs, et load pour charger un fichier dans la target.

5.5 L’autorisation par tâches (task-based authorization)

IOS utilise des niveaux de privilège (0 à 15). XR utilise un modèle plus fin, en quatre couches :

  1. Task ID : une catégorie de fonctions (bgp, ospf, isis, interface, aaa…), chacune avec des droits read, write, execute, debug.
  2. Taskgroup : un ensemble de task IDs avec leurs droits.
  3. Usergroup : un ensemble de taskgroups (et éventuellement d’autres usergroups hérités).
  4. Utilisateur : appartient à un ou plusieurs usergroups.

Des groupes prédéfinis existent : root-system, root-lr, netadmin, sysadmin, operator, serviceadmin, read-only-tg…

! Exemple : un compte NOC qui peut lire le routage mais rien modifier
taskgroup TG-NOC-ROUTAGE
 task read bgp
 task read ospf
 task read isis
 task read mpls-ldp
!
usergroup UG-NOC
 taskgroup TG-NOC-ROUTAGE
 taskgroup read-only-tg
!
username noc1
 group UG-NOC
 secret 0 <mot-de-passe>          ! saisi en clair, stocké chiffré
!
commit
Erreur classique Un taskgroup ne peut pas porter le nom d’un task ID existant. taskgroup ospf est refusé au commit ; show configuration failed indique alors une erreur sémantique du type « Usergroup/Taskgroup names cannot be taskid names ». Choisis des noms explicites et préfixés (TG-…, UG-…).

6. Tableau comparatif IOS / IOS XE / IOS XR

CritèreIOSIOS XEIOS XR
ApparitionAnnées 19802004 (ASR 1000)2004 (CRS-1)
NoyauMonolithiqueLinux ; IOS tourne dans le processus IOSdMicro-noyau QNX (classique), puis Linux 64 bits
OrdonnancementRun-to-completion (coopératif)Linux (préemptif) ; coopératif à l’intérieur d’IOSdPréemptif
Protection mémoireNon (espace à plat)Oui entre processusOui (MMU, espaces séparés)
Redémarrage d’un processus seulNonPartiel (IOSd est un bloc)Oui (process restart)
ArchitectureCentraliséeCentralisée, plans contrôle / données séparésDistribuée (RP + CPU des cartes), multi-châssis possible
FonctionsFeature sets (images différentes)Image universelle + licencesPaquets (PIE, SMU, RPM, GISO)
Application de la configImmédiate, ligne par ligneImmédiate, ligne par ligneCommit en deux étapes, atomique
Retour arrièreManuelArchive, configure replace, revert timerNatif : rollback, commit confirmed, labels
DroitsNiveaux de privilège 0–15Niveaux de privilège 0–15Task IDs, taskgroups, usergroups
Mode User EXEC (>)OuiOuiNon
Plateformes typiquesAnciens ISR, 7200ISR, Catalyst 8000/9000, ASR 1000, CSR 1000v / C8000vASR 9000, NCS, Cisco 8000, CRS, XRv / XRd

7. Lab PNETLab pas à pas

Matériel : 1 IOS XRv (ou XRv 9000) nommé PE1, 1 CSR 1000v / Catalyst 8000v nommé PE3, reliés par un lien Gi0/0/0/0 ↔ Gi2. Durée : environ 1 h à 1 h 30.

  1. Identifier la plateforme (XR). show version, show install active summary, show platform. Note la génération d’XR et la liste des paquets actifs.
  2. Premier commit. Configure le hostname et une Loopback0 10.0.0.1/32. Avant de valider, regarde show configuration et show commit changes diff. Valide avec commit label LAB-01.
  3. Lire l’historique. show configuration commit list, puis show configuration commit changes last 1.
  4. Le piège de la hiérarchie. Entre dans router isis LAB, puis dans une interface IS-IS, et essaie d’y configurer une adresse IP. Utilise pwd puis root pour te sortir de là.
  5. Une erreur sémantique. Crée taskgroup ospf et commit. Lis show configuration failed, puis fais abort.
  6. commit confirmed. Change l’adresse de la Loopback0 en 10.0.0.99/32 avec commit confirmed 60. Attends 1 minute sans rien faire : vérifie avec show running-config interface Loopback0 que l’ancienne adresse est revenue. Recommence, et cette fois confirme avec commit.
  7. Rollback. Fais trois commits successifs (une description d’interface, une deuxième loopback, une bannière). Prévisualise avec show configuration rollback changes last 2, puis exécute rollback configuration last 2. Vérifie que seule la description reste.
  8. abort et clear. Entre en configuration, tape deux ou trois commandes, utilise clear et vérifie avec show configuration que la target est vide. Recommence et sors avec abort.
  9. Côté IOS XE (PE3). Active l’archive, fais un write memory, change le hostname, compare avec show archive config differences, puis restaure avec configure replace … list.
  10. Revert timer (PE3). configure terminal revert timer 2, modifie la description de Gi2, ne confirme pas, et observe le retour arrière automatique au bout de 2 minutes.
  11. Bonus : droits sur XR. Crée le compte noc1 de la section 5.5, connecte-toi avec, vérifie que show bgp summary passe mais que configure suivi d’un commit est refusé.
Bonnes pratiques terrain Un label par changement (numéro de ticket), un commit confirmed pour tout ce qui touche à l’accès au routeur, un show commit changes diff avant chaque commit, et un show configuration rollback changes avant chaque rollback. Ces quatre réflexes évitent la plupart des incidents liés à la configuration.

8. Fiche de révision

Architectures
  • IOS : monolithique, run-to-completion, pas de protection mémoire.
  • IOS XE : noyau Linux + processus IOSd, 64 bits, mémoire protégée, licences.
  • IOS XR : micro-noyau, préemptif, MMU, processus redémarrables, distribué, paquets.
  • Générations XR : cXR (QNX 32 bits) → XR 64 bits / eXR (LXC, admin séparé) → XR7 / LNT (pas d’admin, pas d’ISSU).
  • Paquets : PIE (fonctions), SMU (correctif sans changer de version), RPM / GISO.
  • Cycle : add → activate → commit ; retrait : deactivate → commit → remove.
Commandes XR
  • commit · commit label X · commit confirmed · commit replace
  • show configuration (target) · show commit changes diff
  • show configuration commit list · … commit changes last 1
  • rollback configuration last N (mode EXEC) · … to <ID|label>
  • show configuration failed
  • abort (annule et sort) · clear (annule et reste)
  • pwd · root · do
  • IOS XE : archive, configure replace, configure terminal revert timer + configure confirm

9. Quiz d’auto-évaluation

1. Citer deux caractéristiques d’IOS XR absentes d’IOS classique.
Par exemple : ordonnancement préemptif, protection mémoire entre processus, commit en deux étapes, processus redémarrables individuellement, logiciel en paquets.
2. Dans quel processus tournent les protocoles de routage sur IOS XE ?
Dans IOSd, un processus qui s’exécute au-dessus du noyau Linux.
3. Qu’est-ce qu’un ordonnanceur run-to-completion, et quel est son principal risque ?
Chaque tâche s’exécute jusqu’au bout avant de rendre la main. Risque : un processus qui part en boucle monopolise le CPU et déstabilise le système.
4. Quelles sont les trois étapes pour mettre un paquet en service durablement sur XR ?
Add (copier), activate (activer), commit (rendre persistant au redémarrage).
5. À quoi sert un SMU ?
À corriger un bug précis rapidement tout en restant sur la même version logicielle.
6. Quelle commande annule les deux derniers changements de configuration sur XR, et dans quel mode ?
rollback configuration last 2, en mode EXEC (invite #, pas en config).
7. Quelle est la différence entre abort et clear ?
Les deux jettent les changements non commités ; abort sort en plus du mode configuration, clear y reste.
8. Tu configures une ACL de management à distance. Quel commit utiliser ?
commit confirmed (avec un délai) : si tu perds l’accès, le changement est annulé automatiquement ; sinon tu confirmes avec un nouveau commit.
9. Pourquoi « copy startup-config running-config » ne permet-il pas de revenir proprement en arrière sur IOS XE ?
Parce que la copie fusionne les deux configurations au lieu de remplacer : les lignes ajoutées par erreur restent. Il faut utiliser configure replace.
10. Quelle commande indique où tu te trouves dans la hiérarchie de configuration XR ?
pwd (et root pour remonter au sommet).

10. Glossaire

TermeDéfinition courte
Commit en deux étapesModèle XR : on prépare une target config, puis on la valide de façon atomique.
Target configurationEnsemble des changements non encore validés d’une session de configuration XR.
RollbackRetour à un état antérieur de la configuration à partir de la base des commits.
IOSdProcessus qui exécute IOS (routage, CLI) sur IOS XE.
Micro-noyauNoyau minimal ; les services tournent comme des processus isolés.
Ordonnancement préemptifLe système peut interrompre une tâche pour en exécuter une plus prioritaire.
PIE / SMUPaquet de fonctions / correctif ciblé (XR classique).
GISOGolden ISO : image XR personnalisée incluant paquets et correctifs.
ISSUIn-Service Software Upgrade : mise à jour sans interruption de service.
SDRSecure Domain Router : partition d’un châssis XR en routeurs logiques (abandonné).
Classic XR / eXR / XR7 (LNT)Générations successives d’IOS XR (QNX, Linux + conteneurs, Linux natif).
Task ID / taskgroup / usergroupBriques du modèle d’autorisation d’IOS XR.
Revert timerRetour arrière automatique d’IOS XE si le changement n’est pas confirmé.

11. Sources et pour aller plus loin

  • Programme officiel de l’examen Cisco 350-501 SPCOR (objectifs 1.2.a à 1.2.c).
  • CCNP SPCOR 350-501 Official Cert Guide, Cisco Press, chapitre 2 (référence de révision ; cet article est une synthèse rédigée indépendamment, les exemples de configuration sont propres à la série).
  • Cisco : guides « System Management Configuration » et « System Setup and Software Installation » d’IOS XR ; guide « Configuration Replace and Configuration Rollback » d’IOS XE.
  • Pour approfondir les différences de syntaxe : IP Routing on Cisco IOS, IOS XE, and IOS XR, Cisco Press.

Article rédigé pour Les Z’héros du Réseau dans le cadre de la série de préparation au CCNP Service Provider (350-501 SPCOR). Chapitre précédent : les architectures des réseaux opérateurs. Prochain chapitre : les architectures de virtualisation (NFV, VNF, conteneurs).

Leave a Reply 0

Your email address will not be published. Required fields are marked *