Cisco IOS: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
→Generalità: fix |
Funzionalità collegamenti suggeriti: 2 collegamenti inseriti. |
||
(33 versioni intermedie di 22 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)]]
== 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.
==
All'accensione dei dispositivi di rete più moderni lo IOS viene caricato nella memoria [[RAM]] da una [[memoria non volatile]] e decompresso, mentre
Dopo l'avvio mette subito a disposizione le funzioni fondamentali di [[instradamento]] e commutazione.▼
▲All'accensione dei dispositivi di rete più moderni lo IOS viene caricato nella memoria [[RAM]] da una memoria non volatile e decompresso, mentre negli instradatori 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
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
Esiste anche un programma clone dello IOS per normali calcolatori, [[Quagga (software)|Quagga]], che gira su [[Linux]], ne imita
=== Architettura ===
▲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.
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
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.▼
Su instradatori con inoltro elettronico invece, tipo quelli della serie Cisco 12000, lo IOS calcola via hardware la tabella di inoltro FIB grazie ai circuiti elettronici
▲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.
Lo IOS ha
Le versioni sono denominate secondo lo schema A.B.(C.D.)E in cui▼
* A è il numero principale della versione▼
* B è il numero secondario▼
* C è il numero dell'edizione particolare della serie ed 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 ed 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à etc. 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 eseempio 12.3(1.2)T è la seconda compilazione provvisoria della serie 12.3(1)T.▼
La memoria viene inoltre usata fin quando non viene occupata completamente, dato che il kernel non la svuota prima
Ricompilazioni - Spesso una ricompilazione viene messa a disposizione per risolvere un singolo problema od 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 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
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.▼
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.▼
Versioni di manutenzione - Si tratta di versioni di provata correttezza che contengono sviluppi sostanziali ed emendate da errori di programmazione. La Cisco consiglia di aggiornare il sistema a tali versioni ove possibile.▼
Nel 2005 la Cisco ha introdotto lo IOS-XR sulla piattaforma per la serie Cisco 12000, estendendo
== Serie ==▼
Le varie serie del sistema operativo si distinguono per le loro potenzialità e rispecchiano necessità, possibilità e prospettive di sviluppo dei sistemi di rete locali e geografici per come le vede la ditta Cisco a livello di mercato.▼
La serie principale è progettata per essere la più stabile ed avanzata che la Cisco può offrire in un certo momento e le sue potenzialità non vengono estese per tutto il suo ciclo di vita. I relativi aggiornamenti rappresentano semplici correzioni degli eventuali errori presenti. L’ultima serie più avanzata, cosiddetta tecnologica (serie T) viene presa come base di partenza per la realizzazione della versione principale successiva: per esempio la versione tecnologica 12.1T è la base per la 12.2 principale. Per questo per determinare le potenzialità di una certa versione basta guardare alla serie T precedente.▼
La serie T è invece quella in cui vengono aggiunte sempre nuove potenzialità ed è parimenti la più esposta a falle, le cui correzioni vengono aggiunte durante tutto il ciclo di vita della versione. Prima della versione 12.0 la serie avanzata veniva indicata con una P.▼
La serie S è indirizzata ai fornitori di accesso alla rete (Service provider), funziona solo sui dispositivi più affermati della Cisco ed è altamente adattata a questo tipo di utenza.▼
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.▼
=== Distribuzioni e potenzialità ===
Le differenti potenzialità si riferiscono a protocolli di rete aggiuntivi, funzioni di criptazione, protocolli di instradamento, funzioni supplementari (per esempio funzioni di telefonia),
Per la maggior parte dei dispositivi di rete Cisco su cui gira lo IOS sono disponibili vari pacchetti di funzionalità, di solito 8 per gli instradatori e 5 per i commutatori. Per esempio varie sono le versioni dello IOS destinate a commutatori della Catalyst disponibili: quella base che fornisce solo funzioni di instradamento base di protocollo di rete IP; la versione migliorata, che supporta pienamente il protocollo di instradamento IPv4; la versione avanzata che supporta anche il protocollo IPv6.
Riga 62 ⟶ 44:
* sicurezza e reti private (''[[Virtual Private Network]]'', VPN)
===
▲Le versioni sono denominate secondo lo schema A.B.(C.D.) E in cui
▲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 ed 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'').
▲* A è il numero principale della versione
▲* B è il numero secondario
▲* C è il numero dell'edizione particolare della serie
▲* 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
▲Ricompilazioni - Spesso una ricompilazione viene messa a disposizione per risolvere un singolo problema
▲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.
▲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.
▲Su instradatori con inoltro elettronico invece, tipo quelli della serie Cisco 12000, lo IOS calcola via hardware la tabella di inoltro FIB grazie ai circuiti elettronici dell’instradatore stesso e la trasmette alla parte del dispositivo preposta all’inoltro vero e proprio dei pacchetti, quale un processore di rete o un ASIC.
▲Versioni di manutenzione - Si tratta di versioni di provata correttezza che contengono sviluppi sostanziali ed emendate da errori di programmazione. La Cisco consiglia di aggiornare il sistema a tali versioni ove possibile.
▲Lo IOS ha un’architettura monolitica, ossia basata su una singola immagine dello stesso, contenuta nella memoria, nella quale operano tutti i processi. La memoria è quindi condivisa fra i processi e non c’è alcuna forma di protezione dei loro singoli campi di memoria; se per un errore di programmazione un processo sconfina nel campo di memoria dell’altro, si può avere un’alterazione dei dati da trasmettere.
▲=== Serie ===
▲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.
▲Le varie serie del sistema operativo si distinguono per le loro potenzialità e rispecchiano necessità, possibilità e prospettive di sviluppo dei sistemi di rete locali e geografici per come le vede la ditta Cisco a livello di mercato.
▲La serie principale è progettata per essere la più stabile ed avanzata che la Cisco può offrire in un certo momento e le sue potenzialità non vengono estese per tutto il suo ciclo di vita. I relativi aggiornamenti rappresentano semplici correzioni degli eventuali errori presenti.
▲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).
▲La serie T è invece quella in cui vengono aggiunte sempre nuove potenzialità ed è parimenti la più esposta a falle, le cui correzioni vengono aggiunte durante tutto il ciclo di vita della versione. Prima della versione 12.0 la serie avanzata veniva indicata con una P.
▲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.
▲La serie S è indirizzata ai fornitori di accesso alla rete (Service provider), funziona solo sui dispositivi più affermati della Cisco ed è altamente adattata a questo tipo di utenza.
▲Nel 2005 la Cisco ha introdotto lo IOS-XR sulla piattaforma per la serie Cisco 12000, estendendo l’architettura a microsistema degli instradatori CRS-1 a quelli maggiormente diffusi. Ancora più recentemente (nel 2006) la Cisco ha messo a disposizione una certa modularità di programmazione dello IOS, estendendo il microsistema QNX in un ambiente operativo più tradizionale pur rimanendo inalterata la possibilità di aggiornamento richieste dal mercato; il commutatore per grandi aziende Catalyst 6500 ne fa uso.
▲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.
=== Sistema di allocazione dati ===
Il sistema di allocazione dati viene chiamato brevemente IFS (IOS [[File System]]) e può sia accedere che allocare vari tipi di dati con varie modalità:
* Bootflash
* Flash: si usa per allocare immagini complete del sistema ovvero per farne una copia
* Flh
* Nvram: è uno dei componenti di configurazione interna dei dispositivi e si usa per allocare la configurazione base
* RCP
* Disk0
Riga 90 ⟶ 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
Router(config)#username jdoe password 7 0832585B1910010713181F▼
La parola chiave può essere facilmente decriptata con il programma getpass, disponibile già dal 1995,
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 (?).
Tipici comandi base sono i seguenti:
* Messaggio base (“pronto al
Router>
(per la modalità utente)
Riga 119:
* Indicazione della versione del sistema, del modello di instradatore, delle sue potenzialità etc.:
show version
* Indicazione di informazioni dettagliate
show interface
* Breve panoramica degli indirizzi di rete (IP) e dello stato delle interfacce del dispositivo:
Riga 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 145 ⟶ 136:
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* [
*
*
*
* {{cita web|https://www.cisco.com/en/US/products/ps6350/products_command_reference_book09186a008042df75.html|Sommario dei comandi dello IOS 12.4 (Cisco)}}
*
*
* [http://www.zebra.org/ GNU Zebra] – Un gestore di instradamento per Linux e la Berkeley Software Distribution, la cui interfaccia richiama chiaramente lo IOS
*
*
*
*
*
*
*
*
*
*
*
*
*
*
{{Portale|Telematica}}
|