Cisco IOS - Cisco IOS

Cisco IOS
Développeur Systèmes Cisco
État de fonctionnement Actuel
Modèle source Source fermée
Dernière version 15.9(3)M / 15 août 2019 ; il y a 22 mois ( 2019-08-15 )
Disponible en Anglais
Plateformes Routeurs Cisco et commutateurs Cisco
Interface utilisateur par défaut Interface de ligne de commande
succédé par Cisco IOS XE
Site officiel Cisco IOS

Cisco Internetwork Operating System ( IOS ) est une famille de systèmes d' exploitation réseau utilisés sur de nombreux routeurs Cisco Systems et sur les commutateurs réseau Cisco actuels . Auparavant, les commutateurs Cisco exécutaient CatOS . IOS est un ensemble de fonctions de routage, de commutation, d'interconnexion et de télécommunications intégrées dans un système d' exploitation multitâche . Bien que la base de code IOS comprenne un noyau multitâche coopératif , la plupart des fonctionnalités IOS ont été portées sur d'autres noyaux tels que QNX et Linux pour être utilisées dans les produits Cisco.

Tous les produits Cisco n'exécutent pas IOS. Les exceptions notables incluent les produits de sécurité ASA , qui exécutent un système d'exploitation dérivé de Linux, les routeurs d'opérateur qui exécutent IOS-XR et les commutateurs Nexus et FC de Cisco qui exécutent Cisco NX-OS .

Histoire

Le système d'exploitation réseau IOS a été développé dans les années 1980 pour les routeurs qui n'avaient que 256 Ko de mémoire et une faible puissance de traitement du processeur . Grâce à des extensions modulaires, IOS a été adapté à l'augmentation des capacités matérielles et aux nouveaux protocoles de mise en réseau. Lorsque IOS a été développé, la principale gamme de produits de Cisco Systems était les routeurs . La société a acquis un certain nombre de jeunes entreprises axées sur les commutateurs réseau , comme l'inventeur du premier commutateur Ethernet Kalpana , et par conséquent les commutateurs Cisco n'exécutaient pas l'IOS. La série Cisco Catalyst fonctionnerait pendant un certain temps sous CatOS . Dans les premiers commutateurs réseau à châssis modulaire de Cisco, les modules dotés de fonctionnalités de routage de couche 3 étaient des périphériques distincts qui exécutaient IOS, tandis que les modules de commutateur de couche 2 exécutaient CatOS. Cisco a finalement introduit le mode natif pour les châssis, de sorte qu'ils n'exécutent qu'un seul système d'exploitation. Pour les commutateurs Nexus, Cisco a développé NX-OS , qui est similaire à IOS, sauf qu'il est basé sur Linux.

Interface de ligne de commande

L' interface de ligne de commande (CLI) IOS fournit un ensemble fixe de commandes à plusieurs mots . L'ensemble disponible est déterminé par le "mode" et le niveau de privilège de l'utilisateur actuel. Le "mode de configuration global" fournit des commandes pour modifier la configuration du système, et le "mode de configuration d'interface" fournit des commandes pour modifier la configuration d'une interface spécifique. Toutes les commandes se voient attribuer un niveau de privilège , de 0 à 15, et ne sont accessibles qu'aux utilisateurs disposant du privilège nécessaire. Grâce à la CLI, les commandes disponibles pour chaque niveau de privilège peuvent être définies.

La plupart des versions d'IOS incluent un interpréteur Tcl . À l'aide de la fonction de gestionnaire d'événements intégré , l'interpréteur peut être scripté pour réagir aux événements au sein de l'environnement réseau, tels qu'une défaillance de l'interface ou des minuteries périodiques.

Les modes de commande disponibles incluent :

  • Mode d'exécution utilisateur
  • Mode d'exécution privilégié
  • Mode de configuration globale
  • Mode moniteur ROM
  • Mode de configuration
  • Plus de 100 modes et sous-modes de configuration.

Architecture

Cisco IOS a une architecture monolithique , en raison des ressources matérielles limitées des routeurs et des commutateurs dans les années 1980. Cela signifie que tous les processus ont un accès matériel direct pour économiser le temps de traitement du processeur. Il n'y a pas de protection de la mémoire entre les processus et IOS dispose d'un planificateur d'exécution jusqu'à la fin , ce qui signifie que le noyau ne préempte pas un processus en cours d' exécution . Au lieu de cela, le processus doit faire un appel au noyau avant que les autres processus n'aient la possibilité de s'exécuter. IOS considère chaque processus comme un seul thread et lui attribue une valeur de priorité, de sorte que les processus à haute priorité soient exécutés sur le CPU avant les processus à faible priorité mis en file d'attente, mais les processus à haute priorité ne peuvent pas interrompre l'exécution des processus à faible priorité.

Le noyau monolithique Cisco IOS n'implémente pas de protection de la mémoire pour les données des différents processus. La mémoire physique entière est mappée dans un espace d'adressage virtuel. Le noyau Cisco IOS n'effectue aucune pagination ou permutation de mémoire . Par conséquent, la mémoire adressable est limitée à la mémoire physique du périphérique réseau sur lequel le système d'exploitation est installé. IOS prend cependant en charge l'aliasing du contenu de la mémoire virtuelle dupliquée vers la même mémoire physique. Cette architecture a été mise en œuvre par Cisco afin d'assurer les performances du système et de minimiser les frais généraux d'exploitation du système d'exploitation.

L'inconvénient de l'architecture IOS est qu'elle augmente la complexité du système d'exploitation, la corruption des données est possible car un processus peut écraser les données d'un autre, et un processus peut déstabiliser l'ensemble du système d'exploitation ou même provoquer un plantage forcé du logiciel . En cas de plantage de l'IOS, le système d'exploitation redémarre automatiquement et recharge la configuration enregistrée.

Routage

Dans toutes les versions de Cisco IOS, le routage et le transfert de paquets ( commutation ) sont des fonctions distinctes. Le routage et d'autres protocoles s'exécutent en tant que processus Cisco IOS et contribuent à la base d'informations de routage (RIB). Ceci est traité pour générer la table de transfert IP finale (FIB, Forwarding Information Base), qui est utilisée par la fonction de transfert du routeur. Sur les plates-formes de routeur avec transfert uniquement logiciel (par exemple, Cisco 7200), la plupart du traitement du trafic, y compris le filtrage et le transfert des listes de contrôle d'accès , est effectué au niveau de l'interruption à l'aide de Cisco Express Forwarding (CEF) ou dCEF (Distributed CEF). Cela signifie que l'IOS n'a pas à effectuer de changement de contexte de processus pour transférer un paquet. Les fonctions de routage telles que OSPF ou BGP s'exécutent au niveau du processus. Dans les routeurs avec transfert basé sur le matériel, tels que la gamme Cisco 12000, IOS calcule le FIB dans le logiciel et le charge dans le matériel de transfert (tel qu'un ASIC ou un processeur réseau), qui exécute la fonction de transfert de paquets réelle.

Bloc descripteur d'interface

Un bloc de descripteur d'interface, ou simplement IDB, est une partie de la mémoire ou de la structure de données interne de Cisco IOS qui contient des informations telles que l'adresse IP, l'état de l'interface et les statistiques de paquets pour les données de mise en réseau. Le logiciel IOS de Cisco gère un IDB pour chaque interface matérielle dans un commutateur ou un routeur Cisco particulier et un IDB pour chaque sous-interface. Le nombre d'IDB présents dans un système varie selon le type de plate-forme matérielle Cisco.

Packages et ensembles de fonctionnalités

IOS est expédié sous la forme d'un fichier unique qui a été compilé pour des périphériques réseau Cisco spécifiques. Chaque image IOS comprend donc un ensemble de fonctionnalités, qui déterminent les commandes et fonctionnalités de l'interface de ligne de commande (CLI) disponibles sur différents périphériques Cisco. La mise à niveau vers un autre ensemble de fonctionnalités implique donc l'installation d'une nouvelle image IOS sur le périphérique réseau et le rechargement du système d'exploitation IOS. Des informations sur la version IOS et l'ensemble de fonctionnalités s'exécutant sur un périphérique Cisco peuvent être obtenues avec la commande show version .

La plupart des produits Cisco qui exécutent IOS ont également un ou plusieurs "ensembles de fonctionnalités" ou "packages", généralement huit packages pour les routeurs Cisco et cinq packages pour les commutateurs réseau Cisco . Par exemple, les versions Cisco IOS destinées à être utilisées sur les commutateurs Catalyst sont disponibles en versions « standard » (fournissant uniquement un routage IP de base), des versions « améliorées », qui fournissent une prise en charge complète du routage IPv4 , et des versions « services IP avancés », qui fournissent les fonctionnalités améliorées ainsi que la prise en charge d' IPv6 .

À partir des séries 1900, 2900 et 3900 de routeurs ISR, Cisco a révisé le modèle de licence d'IOS. Pour simplifier le processus d'élargissement de l'ensemble de fonctionnalités et réduire le besoin de recharger le système d'exploitation réseau, Cisco a introduit des images IOS universelles, qui incluent toutes les fonctionnalités disponibles pour un périphérique et les clients peuvent déverrouiller certaines fonctionnalités en achetant une licence logicielle supplémentaire . L'ensemble de fonctionnalités exact requis pour une fonction particulière peut être déterminé à l'aide du navigateur d'ensembles de fonctionnalités Cisco . Les routeurs sont livrés avec IP Base installé, et des licences de packs de fonctionnalités supplémentaires peuvent être installées en tant qu'ajouts boulonnés pour étendre l'ensemble de fonctionnalités de l'appareil. Les packs de fonctionnalités disponibles sont :

  • Les données ajoutent des fonctionnalités telles que BFD, IP SLA, IPX, L2TPv3, Mobile IP, MPLS, SCTP .
  • La sécurité ajoute des fonctionnalités telles que VPN, pare-feu, IP SLA, NAC.
  • Unified Comms ajoute des fonctionnalités telles que CallManager Express, Gatekeeper, H.323, IP SLA, MGCP, SIP, VoIP, CUBE (SBC).

Les images IOS ne peuvent pas être mises à jour avec des correctifs de bogues logiciels . Pour corriger une vulnérabilité dans un IOS, un fichier binaire avec l'ensemble du système d'exploitation doit être chargé.

Gestion des versions

Cisco IOS est versionné à l'aide de trois chiffres et de quelques lettres, sous la forme générale ab(cd)e , où :

  • a est le numéro de version principal.
  • b est le numéro de version mineure.
  • c est le numéro de version, qui commence à un et s'incrémente au fur et à mesure que de nouvelles versions sont publiées de la même manière qu'un train ab . « Train » est le langage Cisco pour « un véhicule permettant de fournir des logiciels Cisco à un ensemble spécifique de plates-formes et de fonctionnalités ».
  • d (omis des versions générales) est le numéro de build intermédiaire.
  • e (zéro, une ou deux lettres) est l' identifiant du train de version du logiciel , tel que none (qui désigne la ligne principale, voir ci-dessous), T (pour Technology), E (pour Enterprise), S (pour Service provider), XA as un train de fonctionnalités spéciales, XB en tant que train de fonctionnalités spéciales différent, etc.

Reconstructions – Une reconstruction est souvent compilée pour résoudre un problème ou une vulnérabilité spécifique pour une version IOS donnée. Par exemple, 12.1(8)E14 est une reconstruction, le 14 désignant la 14e reconstruction de 12.1(8)E. Les reconstructions sont produites soit pour réparer rapidement un défaut, soit pour satisfaire les clients qui ne souhaitent pas passer à une révision majeure ultérieure, car ils peuvent exécuter une infrastructure critique sur leurs appareils et préfèrent donc minimiser les changements et les risques.

Les versions intermédiaires – Sont généralement produites sur une base hebdomadaire et constituent un récapitulatif des efforts de développement en cours. Le site Web de conseil Cisco peut répertorier plus d'une solution provisoire possible pour résoudre un problème associé (la raison en est inconnue du grand public).

Versions de maintenance – Versions rigoureusement testées qui sont mises à disposition et incluent des améliorations et des corrections de bogues. Cisco recommande la mise à niveau vers les versions de maintenance dans la mesure du possible, par rapport aux versions provisoires et de reconstruction.

Les trains

Cisco déclare : « Un train est un véhicule permettant de livrer des logiciels Cisco à un ensemble spécifique de plates-formes et de fonctionnalités.

Jusqu'au 12.4

Avant la version 15 de Cisco IOS, les versions étaient divisées en plusieurs trains , chacun contenant un ensemble différent de fonctionnalités. Les trains correspondent plus ou moins à des marchés distincts ou à des groupes de clients ciblés par Cisco.

  • Le train principal est destiné à être la version la plus stable que la société puisse offrir, et son ensemble de fonctionnalités ne s'étend jamais au cours de sa durée de vie. Les mises à jour sont publiées uniquement pour corriger les bogues du produit. Le train technologique précédent devient la source du train de ligne principale actuel - par exemple, le train 12.1T devient la base de la ligne principale 12.2. Par conséquent, pour déterminer les fonctionnalités disponibles dans une version principale particulière, consultez la version précédente du train T.
  • Le train TTechnology bénéficie de nouvelles fonctionnalités et de corrections de bugs tout au long de sa vie, et est donc potentiellement moins stable que la ligne principale. (Dans les versions antérieures à la version 12.0 de Cisco IOS, le train P servait de train technologique.) Cisco ne recommande pas l'utilisation du train T dans les environnements de production, sauf s'il est urgent d'implémenter la nouvelle fonctionnalité IOS d'un certain train T.
  • Le train SFournisseur de services , ne fonctionne que sur les principaux produits de routeur de l'entreprise et est fortement personnalisé pour les clients des fournisseurs de services.
  • Le train E - Enterprise, est personnalisé pour une mise en œuvre dans des environnements d'entreprise.
  • Le train Bhaut débit prend en charge les fonctionnalités haut débit basées sur Internet.
  • Le train X* (XA, XB, etc.) – Versions spéciales, contient des versions uniques conçues pour corriger un certain bogue ou fournir une nouvelle fonctionnalité. Ceux-ci sont finalement fusionnés avec l'un des trains ci-dessus.

Il y avait de temps en temps d'autres trains, conçus pour des besoins spécifiques — par exemple, le train 12.0AA contenait le nouveau code requis pour le produit AS5800 de Cisco.

Depuis 15,0

À partir de la version 15 de Cisco IOS, il n'y a qu'un seul train, le train M/T . Ce train comprend à la fois des versions de maintenance étendues et des versions de maintenance standard. Les versions M sont des versions de maintenance étendues et Cisco fournira des correctifs de bogues pendant 44 mois. Les versions T sont des versions de maintenance standard et Cisco ne fournira des correctifs de bogues que pendant 18 mois.

Sécurité et vulnérabilités

Étant donné qu'IOS a besoin de connaître le mot de passe en clair pour certaines utilisations (par exemple, l' authentification CHAP ), les mots de passe saisis par défaut dans l'interface de ligne de commande sont faiblement chiffrés en tant que texte chiffré « Type 7 », tel que « ». Ceci est conçu pour empêcher les attaques de "surfing" lors de la visualisation des configurations de routeur et n'est pas sécurisé - ils sont facilement déchiffrés à l'aide d'un logiciel appelé "getpass" disponible depuis 1995, ou "ios7crypt", une variante moderne, bien que les mots de passe puissent être décodés par le routeur utilisant la commande "key chain" et entrant le mot de passe de type 7 comme clé, puis émettant une commande "show key" ; l'exemple ci-dessus décrypte en "stupidpass". Cependant, le programme ne déchiffrera pas les mots de passe de « Type 5 » ou les mots de passe définis avec la commande, qui utilise des hachages MD5 salés . Router(config)#username jdoe password 7 0832585B1910010713181Fenable secret

Cisco recommande que tous les périphériques Cisco IOS implémentent le modèle de sécurité d'authentification, d'autorisation et de comptabilité (AAA). AAA peut utiliser des bases de données locales, RADIUS et TACACS+ . Cependant, un compte local est généralement toujours requis pour les situations d'urgence.

Lors de la conférence Black Hat Briefings en juillet 2005, Michael Lynn, qui travaillait pour Internet Security Systems à l'époque, a présenté des informations sur une vulnérabilité dans IOS. Cisco avait déjà publié un correctif, mais a demandé que la faille ne soit pas divulguée. Cisco a déposé une plainte, mais réglé après qu'une injonction a été émise pour empêcher de nouvelles divulgations.

Train IOS XR

Pour les produits Cisco nécessitant une très haute disponibilité, tels que Cisco CRS-1 , les limitations d'un noyau monolithique n'étaient pas acceptables. En outre, les systèmes d'exploitation de routeur concurrentiel qui a émergé 10-20 ans après IOS, tels que Juniper de JUNOS , ont été conçus pour ne pas avoir ces limites. La réponse de Cisco a été de développer une arborescence de Cisco IOS qui offrait une modularité et une protection de la mémoire entre les processus, des threads légers, une planification préemptive et la possibilité de redémarrer indépendamment les processus défaillants. Le train de développement IOS XR utilisait le micronoyau du système d'exploitation en temps réel ( QNX ), donc une grande partie du code source IOS a été réécrite pour tirer parti des fonctionnalités offertes par le noyau. En 2005 , Cisco a présenté le Cisco IOS XR système d'exploitation de réseau sur les 12000 série de réseau routeurs , l' extension de l'architecture micronoyau des routeurs CRS-1 à largement déployé Cisco des routeurs de cœur . En 2006, Cisco a introduit la modularité logicielle IOS, qui étend l'architecture du micronoyau dans l'environnement IOS, tout en fournissant les capacités de mise à niveau logicielle.

Voir également

Les références

Liens externes