2 Configurare un sistema operativo di rete

2.0 Introduzione

Ogni computer richiede un sistema operativo. Questo vale anche per i computer su cui si basa la rete: switch, router, accessp point, firewall. Questi network device sono dotati di un network operating system

I network operating system gestiscono il funzionamento dell’hardware e forniscono l’interfaccia con cui l’utente può interagire.

È necessario saper configurare per l’utilizza in rete sia gli end device (PC) che gli intermediary device.

Il sistema operativo di rete Cisco si chiama Cisco Internetwork Operating System, abbreviato in Cisco IOS

2.1 Cisco IOS bootcamp

Sistema operativo. Il kernel è la porzione di sistema operativo che interagisce direttamente con l’hardware. La shell invece è la parte di sistema operativo che interfaccia applicazioni e utenti.

Un utente può interagire con la shell utilizzando una interfaccia a linea di comando (CLI: command-line interface) o una interfaccia grafica (GUI: graphical user interface*).

Una CLI impegna meno il sistema, ma richiede che l’utente conosca la struttura dei comandi che controllano il sistema.

Una GUI permette l’interazione dell’utente tramite strumenti grafici, quali icone, finestre, menù. Ma è più impegnativa per il sistema, e a volte è limitata rispetto una CLI. Per questi motivi usualmente gli intermediay device di rete utilizzano sistemi operativi con interfacce utente di tipo CLI.

Un caso a parte sono i router per uso domestico. Questi usualmente vengono configurati tramite GUI web based.

Scopo del sistema operativo. Il Cisco IOS permette all’utente:

  • di usare una tastiera per far girare tramite CLI programmi di rete;
  • tramite tastiera inviare comandi;
  • visualizzare l’otput su monitor.

Tutti i device di rete Cisco sono dotati di Cisco IOS, in versioni diverse a seconda del device e delle funzionalità richieste. I diversi sistemi sono upgradabili.

In questo ambito si considera l’uso di Cisco IOS ver.15.x.

Metodi di accesso. Uno switch non ha bisogno di configurazione iniziale per essere operativo. Ma è comunque una attività raccomandata. A questo scopo vi sono più sistemi per accere alla CLI:

  • Console è una porta fisica che fornisce accesso out-of_band [1] al device;
  • SSH (Secure Shell) usa la rete per stabilire una connessione remota sicura [2] con il device; a differenza della console richede un servizio di rete attivo nel device, inclusa una interfaccia di rete attiva e configurata con un indirizzo di rete;
  • Telnet usa la rete per stabilire una connessione remota non sicura; questa non cripta quanto inviato via rete [3].

Alcuni device, in particolare i router, possono supportare una porta seriale legacy (AUX port) utilizzabile per stabilire una connessione da remoto tramite modem. Analogamente alla console anche la AUX port lavora fuori banda e non richiede la presenza di servizi di rete configurati nel device.

Programmi di emulazione di terminale. Per la connessione seriale tramite console port, o tramite SSH/Telnet, è possibile usare un emulatore di terminale.

Tra questi: PuTTY, Tera Term, SecureCRT, OS X Terminal. I primi due sono open source, il terzo è proprietario, come il quarto, che è un componente del macOS.

Modalità di comando primarie. Cisco IOS ha due modalità di comando principali:

  • User EXEC Mode (view-only mode), solo comandi di monitoraggio, non permette configurazioni; prompt: switch>; comando disable da privileged EXEC mode;
  • Privileged EXEC Mode, tutti i comandi; prompt: switch#; si attiva con il comando enable da user EXEC mode.

Configuration command mode (global config mode). Da questa modalità si configura il device. Si attiva con il comando configure terminal da privileged EXEC mode. Prompt: switch(config)#.

Vi sono delle modalità di sub-configuration:

  • line configuration mode, per configurare gli accessi tramite console, SSH, Telnet o AUX port; prompt: switch(config-line)#
  • interface configuration mode, per configurare una porta di uno switch o l’interfaccia di rete di un router; prompt: switch(config-if)#.

Navigazione tra le modalità.

_images/02_ios_modes.svg

Struttura di base dei comandi: il comando è seguito da:

  • parole chiave, che sono termini definiti nel sistema operativo, vanno digitati come previsto dal sistema;
  • oppure argomenti, valori non predefiniti

La sintassi dei comandi è riportata nel Cisco IOS Command Reference (vedi [CISCR])

IOS help. Vi sono due possibilità di aiuto:

  • sensibile al contesto (context-sensitive help), si attiva digitando un punto interrogativo;
  • controllo della sintassi del comando (command syntax check), questo è automatico: tutte le volte che l’interprete non comprende un comando, indica dove ritiene vi sia un errore.

Hotkeys e abbreviazioni, comandi e parole chiave possono essere abbreviati al numero minimo di lettere che li identificano univocamente.

Riguardo gli hotkeys, per interrompere, usare Ctrl-C, Ctrl-Z, Ctrl-Shift-6 [4]. Gli altri tasti sono i soliti in ambito Unix/Linu per il comando more per l’editing di riga e per il richiamo di comandi precedenti (history). Ricordare il fatto che in scrittura dei comandi si può essere interrotti da eventi asincroni che effettuano output nella CLI. In questi casi è utile il comando di redisplay the line, ovvero Ctrl-R.

2.2 Configurazioni di base del dispositivo

Nome del dispositivo (device name). Ogni device deve avere un hostname univoco, se non altro per distinguerlo quando ci si collega. Lunghezza max 64 caratteri, solo lettere, cifre e trattini, no spazi, primo carattere una lettera.

A differenza della maggioranza dei device in Internet, Cisco distingue per gli hostname tra lettere maiuscole e minuscole.

Configurare l’hostname, si esegue in global configuration mode con il comando:

switch(config)# hostname SW-01
SW-01(config)#

Per rimuovere l’hostname:

SW-01(config)# no hostname
switch(config)#

Configurare l’accesso al device per metterlo in sicurezza è fondamentale, e si compone delle seguenti attività:

  • assegnare una password per l’accesso al privileged EXEC mode;
  • assegnare una password per l’accesso al user EXEC mode;
  • assegnare una password per l’accesso tramite remote Telnet;
  • criptare tutte le password:
  • impostare la notifica legale.

Riguardo le politiche da seguire per scegliere le password:

  • lunghe oltre gli 8 caratteri;
  • presenxa di lettere minuscole e maiuscole, cifre, caratteri speciali, sequenze numeriche;
  • usare password diverse per i diversi device;
  • non utilizzare parole d’uso comune.

Configurare le password si fa da global config mode come segue.

Per l’accesso al privileged EXEC mode:

SW-01(config)# enable secret chosen_password

Per l’accesso allo user EXEC mode è necessario configurare la linea della console:

SW-01(config)# line console 0
SW-01(config-line)# password chosen_password
SW-01(config-line)# login                     # enable user EXEC access
SW-01(config-line)# exit
SW-01(config)#

Per l’accesso tramite remote Telnet è necessario configurare le linee di terminale virtuale (virtual terminal lines: VTY) che sono utilizzate per SSH e per Telnet:

SW-01(config)# line vty 0 15
SW-01(config-line)# password chosen_password
SW-01(config-line)# login                     # enable user EXEC access
SW-01(config-line)# exit
SW-01(config)#

Criptare le password. Di default, le password sono registrate in chiaro nei file di configurazione (startup-config e running-config). Per evitare questo problema è necessario dare il seguente comando in global config mode:

SW-01(config)# service password-encryption

Per verificare se le password sono criptate, si può visualizzare la configurazione corrente, come segue:

SW-01# show running-config

Messaggi di avviso. Cisco enfatizza la necessità di carattere legale di dichiarare che l’accesso al device è permesso solo al personale autorizzato. Per questo scopo va utilizzato un avviso, e si rivela utile il message of the day (motd) che è sempre visualizzato quando ci si collega.

Il motd si crea da global config mode come segue:

SW-01(config)# banner motd #message_content#

i caratteri # sono delimitatori del messaggio. Possono essere diversi dal cancelletto, purché non compaiano nel messaggio.

Salvataggio delle configurazioni. Come accennato vi sono due file di sistema per memorizzare la configurazione:

  • startup-config memorizzato in NVRAM (NonVolatile Random Access Memory) [5], contiene tutti i comandi usati dal device all’avvio o in caso di reboot.
  • running-config questo è memorizzato in RAM (Random Access Memory) e riporta la configurazione corrente. La sua modifica ifluisce immediatamente sul comportamento del device. Il contenuto della RAM è perso se il device viene spento o riavviato.

Per visualizzare la configurazione:

SW-01# show running-config       # visualizza la config.corrente
SW-01# show startup-config       # visualizza la config.d'avvio

Per caricare la configurazione corrente in caso di spegnimento o riavvio, è necessario copiarla in startup-config come segue:

SW-01# copy running-config  startup-config     # running-config -> startup-config
Destination filename [statup-config]?          # ENTER to accept default
Building configuration...
[OK]
SW-01# dir nvram:                               # flash:, nvram:, <cr>
Directory of nvram:/
  238  -rw-        1205         <no date>  startup-config
1205 bytes total (237588 bytes free)
SW-01#

Il comando dir nvram: ci permette di controllare la presenza del file startup-config in NVRAM.

Il comando di riavvio è reload. Questa operazione che può causare un breve periodo di caduta della rete, ad es. se si effettua il reload di uno switch.

SW-01# reload
Proceed to reload? [confirm]           # ENTER to accept default
...

Per cancellare la startup-config (ripristina la configurazione di fabbrica):

SW-01# erase startup-config
Erasing the nvram filesystem will remove all configuration files!
Continue? [confirm]                    # ENTER to accept default
[OK]
....

Per cancellare la running-config (in caso si vogliano eliminare delle modifiche running), copiare su di essa la startup-config:

SW-01# copy startup-config running-config     # startup-config -> running-config
Destination filename [running-config]?        # ENTER
Building configuration...
[OK]

in questo modo non è necessario riavviare il device [6].

Cisco suggerisce di utilizzare la funzionalità di logging dell’emulatore di terminale, ad es. putty, per registrare su file di testo i comandi per la configurazione del device visualizzato con show running-config o con show setup-config. I file di logging possono essere editati per lasciare i soli comandi, togliendo eventuale output in eccesso, per poi fare cut & paste in una sessione di lavoro dell’emulatore di terminale.

2.3 Schemi di indirizzamento

La localizzazione di un device, per stabilire una comunicazione, avviene tramite l’uso di indirizzi IP.

La struttura di un IPv4 [7] è detta dotted decimal notation (notazione decimale con punti), ed è rappresentata da 4 numeri decimali di valori compresi tra 0 e 255.

Oltre l’indirizzo, è necessaria anche una subnet mask. Questo è un valore a 32 bit che va usato congiuntamente all’indirizzo IPv4 per suddividere la porzione d’indirizzo che identifica la sottorete rispetto la porzione che identifica l’host nella sottorete.

Tipicamente un device avrà un indirizzo IPv4, relativa subnet mask, e un indirizzo IPv4 di default gateway, ovvero il sistema da indirizzare se il destinatario del messaggio non è nella stessa sottorete del mittente.

Gli indirizzi IP possono essere assegnati nei device sia a porte fisiche, che ad interfacce virtuali, ovvero programmi che rispondono all’indirizzo senza avere un NIC associato.

Interfacce e porte. La comunicazione in rete dipende dalle interfacce fisiche dei device (end e intermedi), e dei cavi che le collegano.

Ogni interfaccia fisica ha delle specifiche (standard) che la definiscono. Un cavo che la collega deve aderire allo standard dell’interfaccia.

I media di rete tipici sono: cavi di rame intrecciati (twisted-pair copper cable), cavi in fibra ottica, wireless.

Un media può essere appropriato o meno in funzione delle caratteristiche richieste per:

  • distanza su cui i segnali possono essere trasmessi;
  • ambiente in cui installare il media;
  • quantità di dati e velocità a cui devono essere trasmessi;
  • costo del media e dell’installazione.

Un link, oltre il media opportuno, richiede anche una tecnologia di rete opportuna.

Ad esempio, oggi Ethernet è la tecnologia di rete più diffusa nelle LAN.

Uno switch layer 2 lavora a livello di data link: ovvero solo MAC addresses. Di consequenza non necessita di indirizzo IP per svolgere la sua funzione.

Gli switch Cisco di layer 2 hanno un indirizzo IP per poter essere gestiti da remoto. La interfaccia SVI (switch virtual interface) che presentano, serve a questo scopo.

Di default la SVI è sulla VLAN 1.

Gli switch layer 2 sono detti access layer switch. Il 2960 è un access layer switch.

Configurazione manuale degli indirizzi IP degli end device. Un indirizzo IP può essere assegnato manualmente a un end device, oppure automaticamente tramite DHCP.

Ad esempio, per configurare manualmente in Windows, si può utilizzare la GUI in Control Panel > Network sharing center > change adapter settings, mentre in MS Windows 10: Pannello di controllo\Tutti gli elementi del Pannello di controllo\Connessioni di rete

Nota: nella GUI di Windows è impostabile anche l’indirizzo IP del DNS, ovvero del servizio che risolve nomi di dominio in indirizzi IP e viceversa.

Configurazione automatica degli indirizzi IP degli end device. Di solito i PC usano DHCP (Dynamic Host Configuration Protocol) di default.

DHCP assegna automaticamente un indirizzo IP a ogni end device configurato per chiederlo. Questo permette di risparmiare il tempo necessario alla configurazione manuale e diminuisce le possibilità di errore.

In un PC Windows, si può controllare l’indirizzo IP, la relativa subnet mask, e altri parametri ricevuti dal DHCP utilizzando il comando ipconfig nel command prompt.

Configurazione della Switch Virtual Interface. Per effettuare l’accesso da remoto [8] ad uno switch è necessario utilizzare la SVI, che deve essere configurata con indirizzo IP e subnet mask da global configuration mode:

SW-01(config)# interface vlan 1                         # setting vlan 1
SW-01(config-if)# ip address chosen_ip chosen_subnet    # set ip address and subnet mask
SW-01(config-if)# no shutdown                           # enable vlan

Di default la SVI è sulla VLAN 1. Normalmente anche tutte le porte fisiche dello switch sono assegnate a VLAN 1. Quindi ci si può collegare da remoto tramite una qualunque porta dello switch.

Come usuale, è possibile controllare la configurazione usando il comando show running-config. Inoltre si può controllare la sola configurazione IP delle interfacce tramite privileged EXEC mode:

SW-01# show ip interface brief
....
GigabitEthernet0/2       unassigned            YES  manual  down     down
Vlan1                    192.168.1.10          YES  manual  up       down

dove il parametro up indica che è fisicamente pronta, perchè abbiamo dato in comando no shutdown. Mentre il parametro down indica che logicamente non è pronta perché nessuna delle porte fisiche Ethernet assegnate alla VLAN è configurata fisicamente up, ovvero: nessuna ha un cavo collegato ad una porta Ethernet di un end device. Se si collega un cavo Ethernet da un end device ad una qualunque porta dello switch, la Vlan1 andrà up anche logicamente.

Con la Vlan1 configurata, lo switch sarà anche in grado di rispondere al ping.

Verifica dell’assegnazione dell’indirizzo dell’interfaccia. Come accennato nel precedente paragrafo, si può controllare la configurazione delle interfacce tramite privileged EXEC mode:

SW-01# show ip interface brief
....
GigabitEthernet0/2       unassigned            YES  manual  down                   down
Vlan1                    192.168.1.2           YES  manual  administratively down  down

dove la voce administratively down ci dice che la Vlan1 è ancora shutdowned.

Test di connessione end-to-end. Si può usare il comando ping. Ed è bene utilizzarlo in entrambi i sensi di percorrenza dei dati per verificare che la comunicazione sia bidirezionale.

Se il ping non funziona, verificare che non venga bloccato da un firewall. Questa è la condizione tipica quando il ping funziona in un senso e non nell’altro.


[1]Out-of-band: canale di gestione dedicato.
[2]Sicura: significa che i dati trasmessi/ricevuti sono criptati.
[3]Si consideri che anche eventuali utenza e password sono trasmesse in chiaro.
[4]In particolare Ctrl-Shift-6 è particolarmente utile perché è in grado di interrompere anche le sequenze di ricerca DNS, oltre traceroute e ping. Per omprendere l’utilità: se si sbaglia a digitare un comando, IOS tenta di interpretarlo come nome a dominio, lanciando il DNS lookup e inchiodando l’operatore per una congrua quantità di tempo.
[5]La NVRAM non si cancella quando il sistema viene spento.
[6]Una risposta di assesment recita: «The technician does not want to make any mistakes trying to remove all the changes that were done to the running configuration file. The solution is to reboot the router without saving the running configuration. The copy startup-config running-config command does not overwrite the running configuration file with the configuration file stored in NVRAM, but rather it just has an additive effect». Quindi sembra che la copia del setup su running non sia una vera copia, ma una aggiunta (? con quali criteri?).
[7]IPv4 è la versione più comune, e piu anziana, di indirizzamento. Esiste IPv6 che è più recente ed è in fase di diffusione.
[8]Da remoto: ovvero via LAN, non con cavo console.