Cisco IOS: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Folto82 (discussione | contributi)
Nessun oggetto della modifica
Funzionalità collegamenti suggeriti: 2 collegamenti inseriti.
 
(17 versioni intermedie di 13 utenti non mostrate)
Riga 1:
In [[informatica]] '''Cisco IOS''' (originariamente '''Internetwork Operating System''') è un [[sistema operativo]] per [[dispositivi di rete]] [[Router|instradatori (router)]] e [[Switch|commutatori (switch)]] della dittadell'azienda [[Cisco Systems]], [[installazione (informatica)|installato]] attualmente su tutti igli commutatoriswitch e sulla maggior parte deglidel instradatorirouter della stessaazienda dittastessa, che costituiscono circa l'80% dei commutatorirouter della [[Internet|rete mondiale]]. Si tratta di un sistema molto semplice senza [[interfaccia grafica]] bensì a [[riga di comando]].
 
Si tratta di un sistema molto semplice senza [[interfaccia grafica]] bensì a [[riga di comando]]. A seconda dei diritti di lettura, scrittura ed esecuzione dell'operatore e della modalità con cui egli ha avuto accesso (permessi), il sistema mette a disposizione una serie di [[istruzione (informatica)|comandi]] predefiniti: nella modalità di [[configurazione (informatica)|configurazione]] globale si può configurare l'intero sistema, mentre per configurare una singola [[interfaccia (informatica)|interfaccia]] di rete si accede con la modalità di configurazione d'interfaccia; per quanto riguarda invece i diritti ci sono 16 livelli – dallo 0 al 15 – che garantiscono una certa protezione del sistema.
 
== Storia ==
La prima versione del sistema operativo fu pubblicata nel [[1984]] anno della fondazione stessa della Cisco, ma il suo sviluppo iniziò nel [[1980]] ad opera di un impiegato della Scuola di Medicina di [[Università di Stanford|Standford]], tale Bill Yaeger che aveva scritto un programma per collegare instradatori di diversi tipi di rete. In seguito lavorò fino al 1984 assieme ai fondatori della Cisco, Sandra Lerner e Len Boseck per migliorare il programma stesso. L'ultima versione del sistema operativo è del 20112019 ed è indicizzata come la 15.19.
 
== Descrizione ==
All'accensione dei dispositivi di rete più moderni lo IOS viene caricato nella memoria [[RAM]] da una [[memoria non volatile]] e decompresso, mentre neglinei instradatorirouter più datati come il Cisco 2500 esso viene eseguito direttamente nella memoria non volatile.
Dopo l'avvio mette subito a disposizione le funzioni fondamentali di [[instradamento]] e commutazione.
A seconda delle prestazioni supporta protocolli di instradamento vari come il [[Border Gateway Protocol|BGP]], [[Open Shortest Path First|OSPF]], [[Enhanced Interior Gateway Routing Protocol|EIGRP]] e [[Routing Information Protocol|RIP]], ma anche [[protocolli di rete]] come [[IPv4]], [[IPv6]], [[Internetwork Packet Exchange|IPX]] e l'[[AppleTalk]].
 
Inoltre mette a disposizione varie funzioni di filtro dei pacchetti in base ada una [[Lista di controllo degli accessi|lista di controllo]] (''access-list'') e dei diritti nella modalità con cui si accede al sistema operativo. Si distingue fra la configurazione base d'avvio (''startup-config''), conservata nella memoria non volatile e caricata automaticamente all'accensione e la configurazione corrente (''running-config''). Le immagini del sistema operativo hanno una denominazione normalizzata per esempio ''c3000-js-l_121-3.bin'', in cui ''3000'' si riferisce al modello dell'instradatore.
 
Per operare con il sistema e configurarlo si usa la semplice riga di comando attraverso i programmi/protocolli di comunicazione da remoto [[Telnet]] e/o [[Secure Shell|SSH]], oppure tramite console, ovvero connettendosi direttamente alla [[porta (informatica)|porta]] seriale del dispositivo. I parametri di [[default (informatica)|default]] per la comunicazione via console sono 96008N1. Attualmente ci sono anche delle interfacce grafiche e la possibilità di configurazione e monitoraggio del sistema tramite il [[protocollo di rete]] [[Simple Network Management Protocol|SNMP]], per quanto limitato ad alcune funzioni.
Si distingue fra la configurazione base d'avvio (''startup-config''), conservata nella memoria non volatile e caricata automaticamente all'accensione e la configurazione corrente (''running-config'').
 
Le immagini del sistema operativo hanno una denominazione normalizzata per esempio ''c3000-js-l_121-3.bin'', in cui ''3000'' si riferisce al modello dell'instradatore.
 
Per operare con il sistema e configurarlo si usa la semplice riga di comando attraverso i programmi/protocolli di comunicazione da remoto [[Telnet]] e/o [[Secure Shell|SSH]], oppure tramite console, ovvero connettendosi direttamente alla [[porta (informatica)|porta]] seriale del dispositivo. I parametri di [[default (informatica)|default]] per la comunicazione via console sono 96008N1.
 
Attualmente ci sono anche delle interfacce grafiche e la possibilità di configurazione e monitoraggio del sistema tramite il [[protocollo di rete]] [[Simple Network Management Protocol|SNMP]], per quanto limitato ad alcune funzioni.
 
Esiste anche un programma clone dello IOS per normali calcolatori, [[Quagga (software)|Quagga]], che gira su [[Linux]], ne imita l'interfaccia a riga di comando e svolge funzioni di instradamento.
 
=== Architettura ===
In tutte le versioni di IOS le funzioni di instradamento e commutazione sono nettamente separate. I protocolli di instradamento ed altri protocolli sono processi specifici del sistema operativo ede integrano la tabella di instradamento per quanto riguarda la topologia della rete di prossimità (RIB, ''Routing Information Base''). Questa tabella viene elaborata per generare la tabella finale di inoltramento (FIB, ''Forwarding Information Base'').
 
Su instradatori tipo il Cisco 7200 che hanno funzioni di inoltro basate solo su programmi e non su un instradamento “fisico” (elettronico, non informatico), la gestione del traffico, compreso il filtraggio della lista di controllo degli accessi ma anche la funzione di inoltro, viene eseguita con segnali di interruzione ([[interrupt]]) usando una funzione di inoltro rapido (CEF, ''Cisco Express Forwarding'') o distribuito (dCEF, ''distributed CEF''). Questo significa che lo IOS per inoltrare un pacchetto non ha bisogno di iniziare un processo fisico di commutazione. I protocolli di routing come OSPF o BGP girano a livello di processo utente.
Riga 34 ⟶ 28:
La memoria viene inoltre usata fin quando non viene occupata completamente, dato che il kernel non la svuota prima dell'inizio dell'esecuzione di un nuovo processo: il singolo processo deve effettuare una chiamata al kernel stesso prima che altri processi possano avere la possibilità di venir eseguiti.
 
Per i prodotti Cisco che offrivano una grossa disponibilità di tempo macchina, tipo il Cisco CRS-1, queste limitazioni erano inaccettabili e che mancava nei sistemi operativi della concorrenza emersi dalla metà degli anni novanta ad oggi, tipo lo JunOS della [[Juniper Networks|Juniper]]. La risposta della Cisco fu quella di sviluppare una nuova versione dello IOS chiamata IOS-XR, che offriva sia modularità che protezione di memoria fra i processi, istruzioni alleggerite, presvuotamento della memoria prima di ogni processo e capacità di riavvio indipendente dei singoli processi bloccatisi. Lo IOS-XR usa un microsistema operativo di base a risposta immediata (in tempo “reale”, ossia in brevissimo tempo utile) importato da un'altra ditta ([[QNX]]) cui si è dovuto riadattare gran parte del codice attuale dello IOS con un'opera massiccia di riprogrammazione. Questo microsistema operativo di base rimuove tutti i processi base che non siano effettivamente fondamentali, primari (e quindi non degni di girare sul microsistema operativo di base) e li esegue come semplici processi secondari (applicativi).
 
Grazie a queste caratteristiche lo IOS-XR è capace di raggiungere i livelli di disponibilità di tempo-macchina necessari per la nuova piattaforma di instradatori. Per questi motivi lo IOS e lo IOS-XR sono sistemi molto differenti, sebbene si abbia una certa correlazione fra le loro funzionalità ed il progetto complessivo.
Riga 56 ⟶ 50:
* C è il numero dell'edizione particolare della serie: inizia con 1 e viene incrementato di edizione in edizione
* D è il numero di compilazione provvisoria, che viene di solito omesso nell'indicazione dell'edizione generale
* E può essere una combinazione di zero, una o due lettere ede identifica il proposito della versione, per esempio T per la cosiddetta serie tecnologica, E per grandi aziende, S per fornitori di accesso alla rete, XA per un gruppo di funzionalità speciali, XB per altre funzionalità ecc. mentre la mancanza di lettere indica la versione generale della serie. Le compilazioni provvisorie sono spesso destinate a divenire le future versioni stabili e vengono messe a disposizione perché contengono soluzioni provvisorie ad errori o mancanze delle precedenti versioni: per esempio 12.3(1.2) T è la seconda compilazione provvisoria della serie 12.3(1) T.
 
Ricompilazioni - Spesso una ricompilazione viene messa a disposizione per risolvere un singolo problema odo una falla di vulnerabilità. Per esempio la versione 12.1(8) E14 è la quattordicesima ricompilazione della serie 12.1(8) E. Le ricompilazioni sono distribuite per correggere velocemente degli errori o per venire incontro a quei clienti che gestiscono reti strategiche e per ridurre il rischio di interruzione non aggiornano il sistema ada una versione successiva.
 
Versioni provvisorie - Sono di solito pubblicate con frequenza settimanale e tengono conto degli sviluppi attualmente in atto. Il sito della Cisco in cui vengono annunciate può metterne a disposizione più uscite per singole correzioni.
Riga 74 ⟶ 68:
 
La serie E è destinata alle imprese (Enterprise).
La serie B è pensata per dispositivi di una rete per [[banda larga]] (Broadband).
La serie X* (XA, XB, …) si riferisce a funzioni speciali (Xpecial) ed è progettata per usi specifici, come per esempio la 12.0AA che conteneva nuove linee di codice necessarie per il dispositivo AS5800.
 
Riga 88 ⟶ 82:
* System
* TFTP
 
=== Sicurezza e vulnerabilità ===
Lo IOS è risultato vulnerabile a sconfinamenti di memoria cuscinetto oltre a falle di altro genere che hanno pregiudicato sia il buon funzionamento del sistema operativo stesso che delle applicazioni. La Cisco risponde in genere molto velocemente, mettendo a disposizione correzioni in tempi brevi, prova ne è la frequenza con cui escono le nuove versioni di aggiornamento. Ciononostante persiste una ben nota falla nella sicurezza sin dal 1995 riferita alla criptazione delle parole chiave nell'interfaccia a riga di comando e che non viene riparata per motivi di compatibilità. Le parole chiave d'accesso sono cifrate secondo un algoritmo cosiddetto di tipo 7 (una versione modificata da tale Williams dell'algoritmo di compressione dati di tali Lempel e Zev su cui è basato il comando unix “arc”). Si supponga di intercettare per esempio il comando:
 
Router(config)#username jdoe password 7 0832585B1910010713181F
 
La parola chiave può essere facilmente decriptata con il programma getpass, disponibile già dal 1995, nell'esempio si ottiene come risultato “stupidpass”. Questa falla è documentata in molti siti in rete ed è addirittura riportata sul sito della Cisco nella sezione Consigli dei lettori (Technical Services News / Reader Tips) ed ivi riferita alla procedura per decriptare una chiave di rete ([[Pre-Shared Key|pre-shared key]]). Comunque sia il programma getpass decripta solo parole chiave generate nella semplice modalità utente, ma non può nulla se si abilita la modalitamodalità di cifratura con il comando “secret”. In realtà non si tratta di una vera e propria falla dovuta alla Cisco, perché il tipo di cifratura è noto all'utente (cliente) e non viene pubblicizzato come più sicuro di quello che è. Piuttosto questo caso ha svelato che non è lo IOS ad essere insicuro ma l'uso che gli utenti, ossia i gestori di rete ne fanno, fidandosi erroneamente di una presunta invulnerabilità di tale cifratura.
 
In ogni caso la Cisco raccomanda di implementare il modello di sicurezza delle 3 A (Authentication, Authorization and Accounting, AAA). Questo modello può essere combinato con basi di dati locali, modalità di prossimità (RADIUS) e TACACS+.
 
== Comandi ==
L'[[interfaccia a riga di comando]] è simile a quella di altri sistemi operativi quali [[MS-DOS]] e [[Unix]] e come questi ha una funzione che completa il comando riconosciuto (''autocompletameto'') durante la digitazione tramite il tasto [[Tabulatore|TAB]]. In generale si distinguono due grandi tipologie di comandi: i comandi di ''analisi'' (es. comandi di ''show'') e i comandi di ''configurazione''. Una notevole semplificazione delle operazioni si deve ai suggerimenti automatici e contestualizzati che si ottengono digitando il punto interrogativo (?).
Una notevole semplificazione delle operazioni si deve ai suggerimenti automatici e contestualizzati che si ottengono digitando il punto interrogativo (?).
Tipici comandi base sono i seguenti:
* Messaggio base (“pronto al comando”):
Riga 126 ⟶ 128:
show ipx route
show appletalk route
 
== Sicurezza e vulnerabilità ==
Lo IOS è risultato vulnerabile a sconfinamenti di memoria cuscinetto oltre a falle di altro genere che hanno pregiudicato sia il buon funzionamento del sistema operativo stesso che delle applicazioni. La Cisco risponde in genere molto velocemente, mettendo a disposizione correzioni in tempi brevi, prova ne è la frequenza con cui escono le nuove versioni di aggiornamento. Ciononostante persiste una ben nota falla nella sicurezza sin dal 1995 riferita alla criptazione delle parole chiave nell'interfaccia a riga di comando e che non viene riparata per motivi di compatibilità. Le parole chiave d'accesso sono cifrate secondo un algoritmo cosiddetto di tipo 7 (una versione modificata da tale Williams dell'algoritmo di compressione dati di tali Lempel e Zev su cui è basato il comando unix “arc”). Si supponga di intercettare per esempio il comando:
 
Router(config)#username jdoe password 7 0832585B1910010713181F
 
La parola chiave può essere facilmente decriptata con il programma getpass, disponibile già dal 1995, nell'esempio si ottiene come risultato “stupidpass”. Questa falla è documentata in molti siti in rete ed è addirittura riportata sul sito della Cisco nella sezione Consigli dei lettori (Technical Services News / Reader Tips) ed ivi riferita alla procedura per decriptare una chiave di rete (pre-shared key). Comunque sia il programma getpass decripta solo parole chiave generate nella semplice modalità utente, ma non può nulla se si abilita la modalita di cifratura con il comando “secret”. In realtà non si tratta di una vera e propria falla dovuta alla Cisco perché il tipo di cifratura è noto all'utente (cliente) e non viene pubblicizzato come più sicuro di quello che è. Piuttosto questo caso ha svelato che non è lo IOS ad essere insicuro ma l'uso che gli utenti, ossia i gestori di rete ne fanno, fidandosi erroneamente di una presunta invulnerabilità di tale cifratura.
 
In ogni caso la Cisco raccomanda di implementare il modello di sicurezza delle 3 A (Authentication, Authorization and Accounting, AAA). Questo modello può essere combinato con basi di dati locali, modalità di prossimità (RADIUS) e TACACS+.
 
== Voci correlate ==
Riga 143 ⟶ 136:
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* [http://www.cisco.com/en/US/products/sw/iosswrel/tsd_products_support_category_home.html Assistenza tecnica per lo IOS (Cisco)] (Versioni dalla 12.0 alla 12.4)
* {{cita web|http[https://www.cisco.com/en/US/products/sw/iosswrel/ps1828/products_white_paper09186a008018305etsd_products_support_category_home.shtml|Guidahtml alleAssistenza versionitecnica delloper lo IOS (Cisco)}}] (Versioni dalla 12.0 alla 12.4)
* {{cita web|httphttps://www.cisco.com/en/US/products/products_security_advisories_listingsw/iosswrel/ps1828/products_white_paper09186a008018305e.htmlshtml|AvvertenzeGuida alle versioni sulladello sicurezzaIOS (Cisco)}}
* {{cita web|httphttps://www.cisco.com/en/US/products/ps6350/products_configuration_guide_book09186a008043360aproducts_security_advisories_listing.html|GuidaAvvertenze alla configurazione della versione 12.4sulla dellosicurezza (Cisco)}}
* {{cita web|httphttps://www.cisco.com/en/US/products/ps6350/products_command_reference_book09186a008042df75products_configuration_guide_book09186a008043360a.html|SommarioGuida deialla comandiconfigurazione dellodella IOSversione 12.4 dello (Cisco)}}
* {{cita web|httphttps://www.cisco.com/univercden/ccUS/tdproducts/doc/product/softwareps6350/products_command_reference_book09186a008042df75.html|TuttiSommario idei comandi dello IOS 12.4 documenti(Cisco)}}
* {{cita web|httphttps://www.cisco.com/enunivercd/UScc/productstd/swdoc/iosswrelproduct/software/products_ios_cisco_ios_software_category_home.html|Il sistemaTutti operativoi stessodocumenti}}
* {{cita web|https://www.cisco.com/en/US/products/sw/iosswrel/products_ios_cisco_ios_software_category_home.html|Il sistema operativo stesso}}
* [http://www.zebra.org/ GNU Zebra] – Un gestore di instradamento per Linux e la Berkeley Software Distribution, la cui interfaccia richiama chiaramente lo IOS
* {{cita web | 1 = http://wiki.networkdictionary.com/index.php/Cisco_IOS | 2 = Spiegazione dello IOS della Cisco sul Dizionario di rete | accesso = 9 maggio 2008 | urlarchivio = https://web.archive.org/web/20130403075938/http://wiki.networkdictionary.com/index.php/Cisco_IOS | dataarchivio = 3 aprile 2013 | urlmorto = sì }}
* {{cita web |http 1 = https://www.pantz.org/os/ios/ioscommands.shtml | 2 = Comandi dello IOS | accesso = 30 aprile 2019 | urlarchivio = https://web.archive.org/web/20081120003211/http://www.pantz.org/os/ios/ioscommands.shtml | dataarchivio = 20 novembre 2008 | urlmorto = sì }}
* {{cita web|http://cosi-nms.sourceforge.net|Comunità per codice di programmazione libero dedicata al sistema della Cisco}}
* {{cita web|http://www.sins.com.au/nmis/|NMIS – Informazioni sulla gestione di rete (Network Management Information System)}}
* {{cita web | 1 = http://www.geocities.com/nonlinearphysics/cisco_ios_qos.html | 2 = Comandi dello IOS per evitare congestioni al traffico dati | accesso = 9 maggio 2008 | urlarchivio = https://web.archive.org/web/20071029191340/http://www.geocities.com/nonlinearphysics/cisco_ios_qos.html | dataarchivio = 29 ottobre 2007 | urlmorto = sì }}
* {{cita web |1=http://www.ipflow.utc.fr/index.php/Cisco_7200_Simulator |2=Simulatore di dispositivi Cisco 7200/3600 che usa immagini del sistema IOS |accesso=12 giugno 2008 |urlarchivio=https://web.archive.org/web/20080612002528/http://www.ipflow.utc.fr/index.php/Cisco_7200_simulator |dataarchivio=12 giugno 2008 |urlmorto=sì }}
* {{cita web|httphttps://www.cisco.com/warp/public/10/wwtraining/certprog/testing/simulation/demo_sim.html|Il simulatore della Cisco}}
* {{cita web|httphttps://www.cisco.com/en/US/products/sw/iosswrel/ps5460/index.html|Funzioni di gestione pacchetti nello IOS (Cisco)}}
* {{cita web |1=http://ciscointernals.com/ |2=Questioni interne riguardo al sistema IOS (Cisco) |accesso=15 gennaio 2012 |urlarchivio=https://web.archive.org/web/20120115070151/http://ciscointernals.com/ |dataarchivio=15 gennaio 2012 |urlmorto=sì }}
* {{cita web | 1 = http://www.internetworkpro.org/wiki/IOS | 2 = Guida allo IOS (wiki) | accesso = 9 maggio 2008 | urlarchivio = https://web.archive.org/web/20080514112128/http://www.internetworkpro.org/wiki/IOS | dataarchivio = 14 maggio 2008 | urlmorto = sì }}
* {{cita web|httphttps://www.cisco.com/en/US/products/sw/iosswrel/ios_software_collateral_library_listing.html|Libreria di programme associate allo IOS}}
* {{cita web|httphttps://www.cisco.com/public/news_training/itsnews/tech/readertips/200801.html|Falla di criptamento come riportata sul sito stesso della Cisco}}
* {{cita web | 1 = http://www.gianrico.com/ANNO2009/librorouting2009_parteI.pdf | 2 = Come funziona la tabella di routing in Cisco IOS | urlmorto = sì }}
* {{cita web | 1 = http://www.gianrico.com/ANNO2009/librorouting2009_parteII.html | 2 = La qualità del servizio con Cisco IOS | urlmorto = sì }}
 
{{Portale|Telematica}}