RetiComputer I
Transcript of RetiComputer I
Corso di Laurea in Informatica
Università degli Studi di Perugia
Facoltà di Scienze Matematiche Fisiche e Naturali
Osvaldo [email protected]
Cristian Dittamo
Reti di Computer
2
TCP/IPTCP/IP
3
Internet Protocol, IP
L’utente considera un’internet come una singola rete virtuale che interconnette tutti gli host e attraverso cui è possibile comunicare
Il software dell’internet è progettato intorno a tre servizi di rete disposti su scala gerarchica:
Servizio di consegna del pacchetto senza connessioneServizio di trasporto inaffidabileServizi di applicazione
Consegna senza connessione: ogni pacchetto è consegnato indipendentemente dagli altri
Servizio inaffidabile: i pacchetti possono andar persi o fuori sequenza Consegna best-effort: si fa di tutto per consegnare i pacchetti:
l’inaffidabilità si verifica solo per malfunzionamenti hardware. E’ compito dei servizi di più alto livello provvedere a garantire l’affidabilità della trasmissione reinviando i pacchetti persi e ristabilendo la giusta sequenza tra i pacchetti.
4
Internet Protocol, IP (II)
L’IP definisce l’esatto formati dei dati, mentre attraversano l’internet TCP/IP
L’IP svolge la funzione di routing scegliendo il percorso che dovranno seguire i dati
Definisce un insieme di regole che inglobano i concetti di • consegna non affidabile dei pacchetti
• elaborazione dei pacchetti da parte di host e gateway
• generazione dei messaggi di errore
• determinazione delle condizioni in cui occorre scartare i pacchetti
5
Internet Protocol, IP (III)
L’unità fondamentale di trasferimento è detta datagram IP, il quale è diviso in area di intestazione e campo di controllo dell’header, ed il blocco dei dati.
header data
6
IP v4 Header
7
Formato dell’header del datagram
Nell’header del datagram IP sono presenti i seguenti campi:• VERS un campo di 4 bit che indica laversione IP del datagram.
La versione attualmente in uso è la 4 (IPv4), si sta introducendo la 6 (IPv6) che potenzia l’indirizzo IP a 64 bit e ne potenzia i servizi e le potenzialità
• HLEN un campo si 4 bit che indica la lunghezza dell’header del datagram in parole da 32 bit.
• LUNGHEZZA TOTALE campo lungo 16 bit che indica la lunghezza totale del datagram in ottetti, compresa l’area dati. La massima dimensione possibile per un datagram è 2 16=65535 ottetti
• TIPO DI SERVIZIO un campo di 8 bit che indica come deve essere gestito il datagram. E’ diviso in 5 sottocampi: 3 bit di PRECEDENZA che consentono al trasmettitore di specificare l’importanza del datagram (valori da 0 a 7). Il software dell’host e dei gateway ignora questo tipo di informazione, altrimenti sarebbe possibile implementare algoritmi di controllo della congestione. Se fosse gestito questo campo sarebbe anche possibile attivare servizi basati sul Quality of Service (QoS). Questa anomalia è risolta con IPv6.
8
Formato dell’header di un datagram
3 bit suddivisi in campi D T e R specifica il tipo di trasporto desiderato per il datagram. Se attivi, il bit D chiede un basso ritardo, il bit T richiede un alto throughput, il bit R alta affidabilità. Naturalmente una internet non garantisce il trasporto richiesto. Quindi questo campo va interpretato come una indicazione agli algoritmi di routing.
• IDENTIFICAZIONE, FLAG e OFFSET DEL FRAMMENTO: sono campi che controllano la frammentazione e il riassemblaggio dei datagram a seguito dell’incapsulamento dei datagram nelle trame a livello fisico. Frammentazione e riassembleggio dei datagram sono funzioni svolte dai protocolli a livello fisico della rete in cui si opera.
• TTL: indica la durata in secondi concessa al datagram per restare nel sistema internet.
• PROTOCOL: indica quale protocollo di più alto livello ha generato la porzione DATI trasportata dal datagram (es: 1=ICMP, 2=IGMP, 16=TCP, 17=UDP)
9
Formato dell’header di un datagram
• CHECKSUM: garantisce il controllo dell’integrità dell’header del datagram, mediante calcolo di un algoritmo Cyclic Redoundancy Check (CRC) sui bit dell’header
• IP ADDRESS DI PROVENIENZA: indirizzo IP a 32 bit dell’host che ha generato l’informazione contenuta nel datagram
• IP ADDRESS DI DESTINAZIONE: indirizzo IP a 32 bit dell’host al quale è destinata l’informazione contenuta nel datagram. Anche se il datagram è istradato attraverso diversi gateway questi campi non cambiano mai.
• DATI: contiene i dati trasportati dal datagram• OPZIONI IP: un campo opzionale usato per funzioni di test e
debugging della rete.• RIEMPIMENTO: un’area che viene riempita di bit a 0 per
garantire che la lunghezza del datagram sia multipla di 32 bit.
10
Indirizzo IPv4
Un indirizzo IP su 32 bit (4 byte) permette di identificare univocamente una rete ed uno specifico host appartenente alla rete:
x.y.z.w (Es: 141.250.1.7) L’indirizzo si divide in due parti:
• rete• host
Esistono 5 tipi di classi di indirizzi IP.
11
subnet mask associata: Classe A: con x < 128 rete host 255.0.0.0
Classe B: con 128 <= x <= 191 255.255.0.0
Classe C: con 192<= x <= 223 255.255.255.0
Classe D: con x > 223 multicast
Classe E con x > 240 (riservata per usi futuri)
Classi di indirizzi IP
0
10
110
1110
11110
12
Connessione alla rete
Dato che le tre classi primarie (A, B,C) sono identificabili in base ai primi due bit, è molto agevole per i router estrarre la parte rete e la parte host di un indirizzo IP.
L’indirizzo IP identifica la connessione di un host alla rete (non l’host in sé)
Macchine (quali i router) con più connessioni alla rete hanno più indirizzi IP: uno per ogni connessione alla rete
13
Indirizzi di rete e broadcast
Gli indirizzi IP possono far riferimento a reti oppure a host
Per convenzione l’hostid 0 non è mai assegnato ad un singolo host: un indirizzo IP ove i bit che indicano la parte host siano pari a 0 denota la rete stessa ed è chiamato indirizzo di rete
Gli indirizzi IP possono essere usati per specificare indirizzi broadcast (riservati a tutti gli host della rete) ponendo i bit della parte host dell’indirizzo IP a 1
14
Indirizzi speciali
Indirizzi speciali:• 0.0.0.0 (default route)
• 127.0.0.1 (loopback address)
Indirizzi di rete e indirizzi broadcast:• 255.255.255.255 broadcast locale
• x.0.0.0 e x.255.255.255 “ per una rete di classe A
• x.y.0.0 e x.y.255.255 “ per una rete di classe B
• x.y.z.0 e x.y.z.255 “ per una rete di classe C
15
Address Resolution Protocol (ARP)
Un host Internet può comunicare con un altro host solo se conosce il suo indirizzo fisico di rete (ad es.: l’indirizzo ethernet) che è anche fondamentale per il funzionamento dei gateway al fine di definire il percorso dei pacchetti.
I programmi applicativi in genere conoscono solo il nome dell’host o il suo indirizzo IP
Risoluzione dinamica e a basso livello degli indirizzi: ARP L’host che ha bisogno dell’indirizzo fisico di un altro host della
rete, invia un pacchetto broadcast di richiesta dell’indirizzo al destinatario, il quale risponde includendo l’indirizzo di rete
Esiste in ciascuna macchina una cache che memorizza gli indirizzi richiesti via ARP
Il legame tra indirizzo IP e indirizzo fisico del trasmettitore è inclusa in ogni richiesta ARP trasmessa in broadcasting; i riceventi aggiornano i dati in cache
16
ARP
L’ARP è un protocollo a basso livello che nasconde il tipo di indirizzamento fisico usato nella rete, consentendo all’utente di usare direttamente gli indirizzi IP scelti per le macchine.
E’ composto funzionalmente da:• determinazione degli indirizzi fisici quando si trasmette un
pacchetto• risposta a richieste ARP di altre macchine
Nel primo caso occorre considerare che il meccanismo di richiesta via broadcast può generare problemi (metodo best-effort di ethernet, errori hardware, etc)• aggiornamento dei dati in cache allo scadere di un Time To Live
(TTL) • operatività degli altri protocolli in presenza di richieste ARP
pendenti
17
Reverse Address Resolution Protocol (RARP)
Le workstation diskless hanno bisogno di caricare il sistema operativo e la configurazione da uno o più server mediante effettuazione di una richiesta broadcast che utilizza il protocollo TCP/IP denominato RARP • l’host spedisce la richiesta RARP al server ed attende da questo
una risposta (IP address)• Se la richiesta è ripetuta, rispondono anche i server secondari
L’identificatore unico è l’indirizzo fisico della macchina Richiesta e risposta ARP differiscono per il campo tipo
della frame Il server nel risponde scambia gli indirizzi mittente-
destinatario, cambia il contenuto del campo tipo e trasmette l’indirizzo IP
18
Protocolli TCP/IP
I PARP RARP
ICMP IGMP BGP OSPFRIP
T C P U D P
19
Il protocollo ICMP (1)
Il protocollo Internet Control Message Protocol (ICMP) è stato progettato per riportare anomalie che accadono nel routing dei pacchetti IP e per verificare lo stato della rete.
I vari tipi di messaggi ICMP sono:Codice Messaggio Codice Messaggio
0 Echo Reply 13 Timestamp Request
3 Destination Unreachable 14 Timestamp Replay
4 Source Quence 15 Information Request
5 Redirect 16 Information Replay
8 Echo Request 17 Address Mask Request
11 Time Exceeded for a Datagram 18 Address Mask Replay
12 Parameter Problem on a Datagram
messaggi che riportano anomalie
messaggi di verifica della raggiungibilità di un nodo
20
Il protocollo ICMP (2)
Il messaggio Redirect indica una condizione di stimolo per un instradamento migliore dei pacchetti, in quanto un router è stato attraversato inutilmente (ha dovuto ritrasmettere il messaggio sulla stessa rete da cui lo ha ricevuto). Quando un host riceve un pacchetto di routing redirect associa un router diverso da quello di default a quella destinazione.
I messaggi Mask Request e Address Mask Reply sono stati introdotti per permettere ad una interfaccia di scoprire automaticamente la netmask usata in quella rete
21
IP multicasting
IP multicasting è definito come la trasmissione di un datagram ad un gruppo di host: un insieme di host identificato da un indirizzo IP di destinazione
Un datagram multicast è inviato a tutti i membri del suo gruppo di host di destinazione con la stessa affidabilità best effort di un datagram unicast: il datagram non è garantito che arrivi a tutti i membri del gruppo di destinazione o nello stesso ordine rispetto ad altri datagram.
Gli appartenenti al gruppo possono cambiare dinamicamente: gli host possono aggiungersi o uscire dal gruppo senza limitazioni, anche se è possibile definire una chiave di accesso che renda l’ingresso nel gruppo selettivo.
22
IP multicasting
Un gruppo di host può essere permanente (in questo caso ha un indirizzo IP ben noto ed assegnato amministrativamente) o transitorio.
La creazione di gruppi transitori ed il mantenimento delle informazioni relative alla composizione dei gruppi è responsabilità dei multicast agents, che sono entità che girano sui routers o su host speciali.
I multicast agents sono responsabili anche dell’invio in Internet dei datagram multicast. Se un host di destinazione è in una rete diversa rispetto a quella degli altri host, il multicast agent diventa esso stesso destinatario del datagram e lo consegna ad altri agenti fino alla consegna all’host destinatario
23
Internet Group Management Protocol (IGMP)
IGMP è il protocollo che supporta le funzioni di IP multicasting, consentendo ad un host di creare, unirsi ad un gruppo multicast o di abbandonarlo.
IGMP provvede anche all’invio di datagram IP ad un gruppo di host
Esso richiede l’implementazione di IGMP e l’estensione di servizi IP e della rete locale al fine di gestire IP multicast.
E’ definito negli RFC966, RFC1112, RFC1122, RFC1812, RFC2236, RFC2715, RFC2933, RFC3228
24
User Datagram Protocol (UDP)
Per consentire la identificazione del processo al quale destinare il datagram viene introdotto il concetto di portnumber: un numero intero positivo che rappresenta diversi punti di destinazione astratti che vengono indirizzati dagli host internet per implementare i diversi servizi ed accedere alle diverse applicazioni. Il sistema operativo degli host si fa carico di fornire dei meccanismi di interfaccia che i processi utilizzeranno per specificare una porta o per accedervi.
Per comunicare con una porta esterna l’host che trasmette deve conoscere l’indirizzo IP del destinatario e il numero di porta del protocollo della destinazione all’interno di tale host.
25
UDP
UDP fornisce un servizio di consegna non affidabile e senza connessione, utilizzando l’IP per trasportare i messaggi tra le macchine. Esso offre la capacità di distinguere tra più destinazioni all’interno di un certo host
Un protocollo applicativo che impieghi l’UDP accetta l’intera responsabilità di gestire il problema dell’affidabilità, che comprende la perdita di messaggi, la loro duplicazione, il ritardo, la consegna fuori ordine e la perdita di connettività.
UDP è un protocollo a livello di trasporto responsabile della differenziazione tra le varie provenienze e destinazioni all’interno di un singolo host, ed è posto sopra al livello IP (responsabile della consegna delle informazioni tra una coppia di host in internet) e sotto ai protocolli applicativi
Applicazioni che usano UDP funzionano bene in ambito locale e falliscono quando utilizzati attraverso un’internet di dimensioni maggiori
26
Trasmission Control Protocol (TCP)
TCP fornisce un servizio di consegna affidabile delle informazioni con connessione.
TCP è un singolo protocollo di applicabilità generale che contribuisce ad isolare i programmi applicativi dai dettagli del networking e rende possibile la definizione di un’interfaccia uniforme per il servizio di trasferimento di stream.
L’interfaccia tra i programmi applicativi e il servizio di consegna affidabile del TCP/IP può essere descritta da• Orientamento dello stream: quando due programmi applicativi
trasferiscono dati, questi vengono immagazzinati come sequenze di bit (stream) suddivisi in byte. Il servizio di consegna dello stream passa dal mittente al destinatario esattamente la stessa sequenza di ottetti.
• Connessione di circuito virtuale: il trasferimento di stream è analogo ad una chiamata telefonica: solo quando mittente e destinatario hanno verificato la sussistenza delle condizioni necessarie ha inizio il trasferimento
27
TCP
• Trasferimento bufferizzato: anche se il programma applicativo genera le informazioni un ottetto alla volta, il trasferimento accorpa un insieme di ottetti, in modo da otttimizzare la trasmissione. Se il programma genera invece grandi blocchi di dati, il trasferimento potrebbe avvenire a blocchi più piccoli per ottimizzare la trasmissione stessa.
• Stream non strutturata: il servizio di stream del TCP non rispetta eventuali strutture presenti in dati strutturati. Sono i programmi che usano il servizio di trasferimento di stream che devono comprendere la struttura dei dati trasmessi
• Connessione full-duplex: Le connessioni fornite dal servizio di stream consentono il trasferimento simultaneo in entrambe le direzioni
Il TCP garantisce l’affidabilità mediante una tecnica chiamata riscontro positivo con ritrasmissione
Per ottimizzare la trasmissione il TCP usa la tecnica della finestra scorrevole: si continua a trasmettere stream senza verificarne il riscontro sino a che ci si muove all’interno di una finestra predefinita di stream
28
TCP
Anche il TCP usa i portnumber per identificare il flusso di dati tra le varie applicazioni di un host.
Nel caso del TCP il meccanismo di comunicazione è però molto più complesso che nel caso dell’UDP, essendo stato definito un concetto di astrazione di connessione: gli oggetti da identificare sono connessioni virtuali di circuiti, non singole porte.
Il TCP usa una coppia di valori per identificare una connessione: l’indirizzo IP dell’host e la porta dell’applicazione.
L’insieme indirizzo IP - portnumber è chiamato socket Questo approccio fa sì che un certo portnumber possa essere condiviso
contemporaneamente da più host, aumentando molto l’efficienza di Internet
29
Subnets
Un indirizzo IP di una rete può essere gestito come un insieme di sottoreti introducendo una subnet mask più restrittiva che assegni i bit più significativi della parte host alla parte di network, ottenendo da un indirizzo di una certa classe, un insieme di sottoreti di classe inferiore e conseguentemente di dimensioni inferiori.
Es: Rete di classe C 194.143.128
n. bit rete ind. Rete num. Host25 194.143.128.0, 128 12826 194.143.128.0,64,128,192 6427 194.143.128.0,32,64,96,128,160,192,224 32 28 194.143.128 .0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240 1629 194.143.128.0,8,16,24,32,40,48,56,64,72,80,86,96,104,112,120,128,136,144,150,160,168,176,184,192,200,208,216,224,232,240,248 8………………......
30
Esempio: 194.143.128.0/26
11111111 11111111 11111111 11 (Subnet mask:255.255.255.192)
11000010 10001111 10000000 00 (194.143.128.0)
000000 0 111111 63
11000010 10001111 10000000 01 64 000000 64 111111 127
11000010 10001111 10000000 10 128 000000 128 111111 191
11000010 10001111 10000000 11 192 000000 192 111111 255
31
Piano di indirizzamento IP
E’ il documento che il network administrator deve scrivere e tenere aggiornato per descrivere l’utilizzo del proprio spazio di indirizzamento IP. Es:
194.143.128.0 /26 255.255.255.192 rete interna1 194.143.128.64 /26 255.255.255.192 rete interna2 194.143.128.128/25 255.255.255.128 rete interna3 194.143.129.0 /30 255.255.255.252 punto-punto1194.143.129.4 /30 255.255.255.252 punto-punto2194.143.129.8 /29 255.255.255.248 rete lab1194.143.129.16 /28 255.255.255.240 rete lab2194.143.129.32 /27 255.255.255.224 rete lab3194.143.129.64 /26 255.255.255.192 rete lab3194.143.129.128/25 255.255.255.128 rete amm1
32
Subnets
La realizzazione di subnet comporta l’alterazione del comportamento standard della classe primaria IP mediante introduzione di una subnet mask
La decisione di creare una sottorete dipende da aspetti topologici ed organizzativi.• ragioni topologiche:
superamento limiti di distanza: alcuni componenti hw hanno limiti sulla distanza, per es. la rete Ethernet, in cui i cavi “thick” possono avere una lungh. max di 500m e i cavi “thin” di 300m, non appena si superano queste distanze occorre inserire un router IP per collegare una serie di cavi. Nota che la lungh. della rete è data dalla somma di tutti i cavi, non dal cavo più lungo.
connessione di reti fisiche diverse: router IP possono essere usati per collegare reti che hanno una diversa tecnologia (token ring a ethernet).
filtro del traffico fra reti: il traffico locale rimane nella sottorete locale, solo il traffico verso altre reti è inviato al gateway.
33
Subnetting e supernetting
La realizzazione di subnet comporta l’alterazione del comportamento standard della classe primaria IP mediante introduzione di una subnet mask che va applicata all’indirizzo IP e ne modifica il significato primario
La subnet mask altera le informazioni standard relative alla rete ed all’host presente nell’indirizzo primario
Mediante subnetting si suddivide una rete primaria in più sottoreti differenti che diventano entità autonome dal punto di vista del routing e del TCP/IP
Mediante supernetting si accorpano più reti fisiche primarie diverse in un’unica rete per semplificare le informazioni di routing da trasmettere ai router
34
Subnetting: perché?
• Ragioni organizzative:amministrazione: le sottoreti possono essere usate per
delegare la gestione degli indirizzi, diagnostica, ecc. a piccole entità.
visibilità di strutture: singole strutture (es. dipartimenti universitari) necessitano di esternare la propria autonomia al fine di meglio organizzare i servizi
isolamento del traffico: per motivi di sicurezza è preferibile isolare il traffico locale in modo tale da renderlo inaccessibile all’esterno.
• Ragioni tecniche:ottimizzazione dell’uso dello spazio di indirizzamento
IP limitazione del dominio di broadcast IP limitazione degli effetti di eventuali malfunzionamenti
35
Configurazione Win95
36
Configurazione Win95 (i)
37
Configurazione Win95 (ii)
38
Configurazione NT workstation
39
Configurazione NT workstation (i)
40
Configurazione NT workstation (ii)
41
Configurazione NT workstation (iii)
42
Configurazione Linux
netcfg
43
Configurazione Linux (i)
44
Configurazione Linux (ii)
45
Configurazione Linux (iii)
46
RoutingRouting
47
Routing
Il routing è l’azione di scambiare informazioni in una rete da una sorgente ad una destinazione, incontrando almeno un nodo intermedio
Il routing coinvolge due attività di base:• determinare il percorso ottimale di routing• trasportare gruppi di informazioni (chiamati
pacchetti) attraverso una rete La prima attività può risultare molto complessa Il routing riguarda il livello 3 del modello di
riferimento ISO/OSI
48
Routing
Si introduce il concetto di metric per indicare una modalità standard di misura, come la lunghezza di un percorso in termini di gateway attraversati, per stabilire il percorso ottimale da calcolare da parte di un protocollo di routing
Un router considera l’associazione destination/next_hop per calcolare quale sistema intermedio rappresenta il miglior percorso
Ricevuto un pacchetto il router calcola in base alle sue informazioni il next hop
49
Routing
I router comunicano tra loro e mantengono aggiornate le routing tables mediante la trasmissione di vari messaggi
Il messaggio routing update è uno di questi e consiste in un messaggio contenente tutta o parte di una routing table. Analizzando i routing update un router è in grado di costruire un disegno dettagliato della topologia della rete
Il messaggio link-state advertisement è un altro esempio di messaggio tra router e serve ad informare gli altri router dello stato del link del mittente, oltre che a consentire agli stessi il calcolo del miglior percorso da seguire per una determinata destinazione
50
End System
(ES)
End System
(ES)
Intermediate Systems
(IS)
51
Routing algorithms
Gli algoritmi di routing devono possedere uno o più dei requisiti seguenti:• ottimali deve scegliere la migliore strada
• semplici e con basso overhead deve farlo consumando meno risorse possibile
• robusti e stabili devono comportarsi correttamente in condizioni inusuali e mai viste prima.
• rapidi nella convergenza la scelta del percorso ottimale deve avvenire subito e con il minor sforzo possibile.
• Flessibili devono adattarsi facilmente a diverse condizioni.
52
Routing algorithms
Gli algoritmi di routing vengono classificati in base al comportamento rispetto alle classi seguenti:• statici vs. dinamici• single-path vs. multi-path• piatti vs. gerarchici• Host-intelligent vs. router-intelligent• Intradomain vs. interdomain• Link state vs. distance vector
53
Routing metrics
Gli algoritmi di routing usano una o diverse delle seguenti caratteristiche per determinare il percorso ottimale:• Path Length• Reliability• Delay• Bandwidth• Load• Communication Cost
54
Routing table
I gateway instradano i dati tra diverse reti Gli host prendono decisioni di instradamento
nel modo seguente:• Se l’host di destinazione è sulla rete locale, i dati
vengono spediti all’host di destinazione;• Se l’host di destinazione è su una rete remota, i dati
vengono mandati al gateway locale. Il protocollo IP basa le sue decisioni di
instradamento sulla parte rete dell’indirizzo IP
55
Routing table
Analisi dell’indirizzo IP fatta dall’host:• determina il tipo di classe dell’indirizzo IP (bit più
significativi)• controllo rete di destinazione, se è locale (sottorete)
applica all’indirizzo di destinazione la subnet mask• cerca la rete di destinazione nella routing table • instrada i pacchetti di dati seguendo il percorso indicato
nella tabella di routing (interfaccia). In ambiente Unix il comando per visualizzare la
tabella di routing è:netstat -nr
56
Routing table (host Unix)
Destination Gateway Flags Refcnt Use Interface127.0.0.1 127.0.0.1 UH 1 298 lo0default 128.66.12.1 UG 2 50360 en0128.66.12.0 128.66.12.2 U 40 98379 en0128.66.2.0 128.66.12.3 UG 4 1179 en0128.66.1.0 128.66.12.3 UG 10 1113 en0128.66.3.0 128.66.12.3 UG 2 1379 en0128.66.4.0 128.66.12.3 UG 4 1119 en0
dove: Destination = rete o host di destinazioneGateway = gateway da usare per la specifica
destinazioneFlags = U : route in linea e attiva
H : route per host spec. (non per una rete) G : route che usa un gateway D : route aggiunta da una ICMP redirect
Refcnt = n.ro di volte che la route è stata usataUse = n.ro pacchetti trasmessi su quella routeInterface = nome dell’interf. di rete usata per la route
57
58
Routing table
Esistono tre tipi di definizione di routing:• minimale: le operazioni minime di aggiornamento della
tabella di routing che vengono effettuate al momento della definizione di una interfaccia
• statico: L’instradamento viene gestito mediante informazioni di routing predefinite e costanti. Può essere sufficiente in configurazioni ove la topologia è molto semplice (rete connessa in un solo modo al backbone)
• dinamico: L’instradamento viene gestito via software da protocolli di routing che si adattano le informazioni di routing a tutti i cambiamenti della rete. I protocolli di routing utilizzano dei pacchetti per lo scambio delle informazioni necessarie all’aggiornamento delle informazioni in tabella.
59
Routing table
Ovviamente in un dato istante di tempo e a seconda della complessità della configurazione, le informazioni attuali potranno provenire da tutti e tre i tipi di definizione
Le informazioni assunte mediante protocolli di routing dinamici prendono il sopravvento su quelle statiche, qualora tra queste informazioni esistano contraddizioni
In un router possono essere eseguiti contemporaneamente diversi protocolli di routing
In alcuni casi (cfr CISCO) è possibile iniettare delle informazioni da un protocollo di routing dinamico all’altro, in modo da controllare la distribuzione delle informazioni di routing
60
Comandi per routing statiche
Cisco:per inserire una route statica:
ip route network subnet gateway distance
ip route 141.250.4.0 255.255.255.0 141.250.9.3 2
per visualizzare la routing table:sh ip route [network]
Linux:per inserire una route statica:
route add network subnet gateway
route add 141.250.4.0 255.255.255.0 141.250.9.3
per visualizzare la routing table:netstat -nr
61
Autonomous System
Le reti e gli Intermediate System (IS) si suddividono in• interni ad un routing domain• esterni ad un routing domain
Per routing domain si intende un insieme di reti che sono soggette all’amministrazione ed al controllo di una stessa organizzazione
Il routing domain prende il nome di Autonomous System o AS
L’AS condiziona il routing delle internetwork, prendendo in esame diverse metric.
62
AS
Gli AS sono identificati da un numero intero, univoco a livello mondiale, assegnato dalla stessa autorità che rilascia gli indirizzi Internet.
I router che instradano messaggi all’interno dello stesso AS sono detti Interior Router, mentre quelli che instradano messaggi anche tra AS diversi sono detti Exterior Router.• Gli Interior Router eseguono un Interior Gateway Protocol
(IGP) per determinare il percorso ottimale• Gli Exterior Router eseguono un Exterior Gateway Protocol
(EGP)
63
Autonomous System (3)
AS 6664 AS 9209
OSPF, RIP, IBGPOSPF, RIP, IBGP
Sessione BGP
OSPF, RIP, IBGP
Sessione BGP
AS 1274
INTERNET
64
Protocolli di routing (1)
IS-ISIntermediate System to Intermediate System
CIDRClassless Inter Domain Routing
EGP Exterior Gateway Protocol
BGPBorder Gateway
Protocol
RIP Routing Information Protocol
IGRPInterior Gateway Routing Protocol
OSPFOpen Shortest Path First
EGPIGP
65
Open Shortest Path First (OSPF)
Sviluppato nel 1988 dall’IGP working group di IETF, standard nel 1990 (RFC1247) per routing all’interno di un AS
OSPF:• è aperto • è basato sull’algoritmo Shortest Path First (Dijkstra
algorithm) • supporta subnet variabili• implementa routing dinamico• supporta routing in base al tipo di servizio• esegue il bilanciamento del carico• supporta sistemi gerarchici (aree)
66
OSPF
E’ un link-state routing protocol così chiamato perché invia link-state advertisements (LSA) a tutti i router di una stessa area gerarchica
Nell’ LSA invia informazioni relative alle interfaccie attive, alle metric usate, ed altre variabili
Un router OSPF accumula LSA e calcola il percorso ottimale mediante l’algoritmo SPF
E’ computazionalmente relativamente pesante
67
OSPF
I router di una stessa area hanno lo stesso topological database
La suddivisione in aree riduce il traffico di routing nell’AS
L’introduzione delle aree genera due tipi di traffico di routing• Inter-area routing• Intra-area routing
L’OSPF backbone è responsabile di distribuire informazioni di routing tra aree
68
69
OSPF
Le aree possono essere definite in modo tale che il backbone non sia continuo: in tal caso la continuità può essere realizzata mediante virtual-links
I virtual-links vengono definiti tra i backbone router che condividono link con aree non-backbone e funzionano come se fossero link diretti
OSPF può apprendere informazioni da altri exterior gateway protocol, interior gateway protocol, o mediante istruzioni di configurazione
70
OSPF
OSPF può operare all’interno di una gerarchia la maggiore entità gerarchica è l’AS OSPF è un intra-AS (IGP) routing protocol, anche se
può inviare e ricevere route verso o da altri AS Un AS può essere diviso in diverse aree, che è bene
riguardino host in gruppi di reti contigue per semplificare la routing table.
Router con diverse interfaccie possono appartenere a più aree e prendono il nome di Area Border Router (ABR). Essi mantengono diversi topological database per ogni area
71
OSPF
OSPF distingue 4 tipi di router:• Internal router: interni ad un’area• Area Border router: che connettono 2 o più aree• Backbone router: che appartengono alla dorsale (area 0)• Border AS router: router di confine tra AS
Quando un router viene avviato mediante messaggi di tipo HELLO inviati su tutte le interfaccie, si costruisce la mappa topologica ed in particolare definisce:• i router adiacenti • il designed router (DR)• il backup designed router (BDR)
72
OSPF packets
Router che non sono adiacenti non scambiano tra loro informazioni
I pacchetti OSPF sono:Hello usato per scoprire i neighbors
Link state update fornisce i propri criteri per la selezione del cost
del link
Link state ack conferma un LS update
Database description comunica gli aggiornamenti che conosce
Link state request richiesta di informazioni di stato ai neighbors
73
OSPF packet format
Version number: identifica la versione del software OSPF usatoType:identifica il tipo di pacchetto OSPF tra i seguenti possibili: Hello:stabilisce e mantiene le relazioni con i neighbor routers Database Description: descriv i contenuto del topological database, che varia con lo stabilirsi di adjacencies con altri routers: Link-State-Request: Richiede porzioni del topological database dai router neighbors Link-State-Update: rispone a pacchetti Link-State-Request Link-State-Acknowledgment: risposta di conferma a pacchetti Link-State-UpdatePacket length:specifica la lunghezza del pacchetto, inclso l’header, in bytesRouter ID: identifica la sorgente del pacchettoAreaID: identifica l’area a cui appartiene il pacchettoChecksum: verifica l’integrità dell’intero pacchetto dopo la trasmissioneAuthentication type: contiene il tipo di autenticazione. Lo scambio di dati in OSPF tra i vari protocolli è sempre autenticato in base all’areaAuthentication: contiene le informazioni per l’autenticazioneData: contiene informazioni relative a protocolli di più alto livello incapsulati
74
OSPF: esempio
DLCI
Rete Frame Relay
75
OSPF: esempio
hostname Matt ! interface serial 1 ip address 10.0.0.2 255.0.0.0 ip ospf network point-to-multipoint encapsulation frame-relay frame-relay map ip 10.0.0.1 201 broadcast frame-relay map ip 10.0.0.3 202 broadcast frame-relay map ip 10.0.0.4 203 broadcast ! router ospf 1 network 10.0.0.0 0.0.0.255 area 0
76
OSPF: esempio
hostname Wayne ! interface serial 0 ip address 10.0.0.1 255.0.0.0 ip ospf network point-to-multipoint encapsulation frame-relay frame-relay map ip 10.0.0.2 101 broadcast frame-relay map ip 10.0.0.4 102 broadcast ! router ospf 1
network 10.0.0.0 0.0.0.255 area 0
77
OSPF: esempio
hostname Robin ! interface serial 3 ip address 10.0.0.4 255.0.0.0 ip ospf network point-to-multipoint encapsulation frame-relay clockrate 1000000 frame-relay map ip 10.0.0.1 401 broadcast frame-relay map ip 10.0.0.2 402 broadcast ! router ospf 1 network 10.0.0.0 0.0.0.255 area 0
78
OSPF: esempio
hostname Ben ! interface serial 2 ip address 10.0.0.3 255.0.0.0 ip ospf network point-to-multipoint encapsulation frame-relay clockrate 2000000 frame-relay map ip 10.0.0.2 301 broadcast ! router ospf 1 network 10.0.0.0 0.0.0.255 area 0
79
RIP
RIP è il più popolare algoritmo di routing, definito negli RFC 1058 e 1023.
Si basa sull’algoritmo di Bellman-Ford, detto anche vettore-distanza
RIP ha il limite di 15 hops: reti più distanti sono considerate irraggiungibili
RIP v1 non supporta subnet variabili Un router che implementa RIP invia tutta la routing
table o una porzione di essa ai router vicini (neighbor) (distanti 1 hop) ad intervalli di tempo regolari
80
RIP
RIP converge meno rapidamente di OSPF: ciò lo rende più fragile per quanto attiene la possibilità di generare routing loops
RIP ha bisogno di meno risorse di OSPF, in quanto l’algoritmo è più leggero
RIP è disponibile per default sui sistemi Unix/Linux (daemon routed)
E’ più semplice da implementare e gestire rispetto a OSPF
81
RIP
Routing updates: RIP invia questi messaggi a intervalli regolari o quando cambia la topologia della rete ai router confinanti.
RIP timers: RIP mantiene i timer routing-update timer(30 sec, in genere), route timeout, route-flush timer
RIP mantiene solo le informazioni relative a best routes
RIP usa il protocollo UDP e la porta 520
82
RIP packet format
83
RIP 2 packet format
Command: indica se il pacchetto è un comando oppure una rispostaVersion number: identifica la versione del software RIP usatoUnused: valore posto a zeroAddress-Family-Identifier: identifica la famiglia di protocolli utilizzata. RIP è concepito per trasportare informazioni relative a diversi protocolli. La famiglia di indirizzi per l’IP è 2.Route tag: fornisce un metodo per distinguere fra routing interno ed esterno (appreso da alti protocolli)IP Address: specifica l’IP address relativa all’informazione di routingSubnet-Mask: specifica la subnet mask relativa all’informazione di routingNext-Hop: Specifica il next-hop al quale deve essere indirizzata l’informazione di routingmetric: indica quanti router intermedi devono essere attraversati fino alla rete di destinazione. Questo valore va da 1 a 15. Un valore uguale o maggiore di 16 indica network unreachable.
84
RIP: esempio
85
RIP: schema di indirizzamento
Network Number Subnets Subnet Masks
130.10.0.0 Site A: 8 through 15 255.255.255.0
130.10.0.0 Site B: 16 through 23 255.255.255.0
130.10.0.0 Site C: 24 through 31 255.255.255.0
130.10.0.0 Serial Backbone: 62->64 255.255.255.0
86
RIP: esempio di configurazione
Router A:
interface serial 0ip address 130.10.62.1 255.255.255.0interface serial 1ip address 130.10.63.1 255.255.255.0interface ethernet 0ip address 130.10.8.1 255.255.255.0 interface tokenring 0ip address 130.10.9.1 255.255.255.0router ripnetwork 130.0.0.0
Router B:
interface serial 0ip address 130.10.62.2 255.255.255.0interface serial 1ip address 130.10.63.2 255.255.255.0interface ethernet 0ip address 130.10.17.2 255.255.255.0 interface tokenring 0ip address 130.10.16.2 255.255.255.0router ripnetwork 130.0.0.0
Router C:interface serial 0ip address 130.10.63.3 255.255.255.0interface serial 1ip address 130.10.64.3 255.255.255.0interface ethernet 0ip address 130.10.24.3 255.255.255.0 router ripnetwork 130.0.0.0
87
Inserimento di una dorsale OSPF in
RIP
88
Esempio di configurazione
Router A:router rippassive-interface serial 0passive-interface serial 1
ridistribuzione:router ospf 109redistribute rip subnets
router ripredistribute ospf 109 match internal external 1 external 2default-metric 10
alternativa:router ospf 109redistribute rip subnetdistribute-list 11 out ripaccess-list 11 permit 130.10.8.0 0.0.7.255access-list 11 deny 0.0.0.0 255.255.255.255
Alle informazioni
OSPF propagate via RIP viene assegnata la metric 10
89
Unicast updates
E’ possibile in RIP 2 ridurre le informazioni di routing mediante invio di routing update a selezionati router (neighbor) invece che in modalità broadcast:
router rip
network 10.109.0.0
passive-interface ethernet 1
neighbor 10.109.20.4
90
Modifica delle informazioni di routing
E’ possibile alterare localmente le informazioni di routing apprese tramite RIP o da propagare all’esterno, in modo da alterarne volutamente l’effetto:
offset-list [acl_num|name] in|out offset [type_number]
91
timers
timers basic update invalid holddown flush
Intervallo di aggiornamento in sec (30)
Intervallo in sec oltre il quale la route è dichiarata non valida. Deve essere
almeno il triplo di update (180)
Intervallo in sec, in cui viene soppresso l’aggiornamento riguardo il ‘better path’ . Una route entra in questo stato quando il router riceve un pacchetto che informa che la route non è più raggiungibile. La
route viene etichettata come inaccessibile ed annunciata come irraggiungibile. Deve essere almeno il triplo di update (180)
Lasso di tempo in sec trascorso dall’ultimo aggiornamento oltre il quale
la route è cancellata dalla routing table. L’intervallo deve essere
maggiore della somma di holddown e update (240)
92
Autenticazione (RIP 2)
router RAkey chain ka1key 1key-string 234interface loopback0ip address 70.70.70.70 255.255.255.255interface serial0 ip address 141.108.0.10 255.255.255.252ip rip authentication mode md5ip rip authentication key-chain ka1
router rip version 2 network 141.108.0.0 network 70.0.0.0
router RBkey chain ka1key 1key-string 234interface loopback0ip address 80.80.80.1 255.255.255.0interface serial0 ip address 141.108.0.9 255.255.255.252ip rip authentication mode md5ip rip authentication key-chain ka1
router rip version 2 network 141.108.0.0 network 80.0.0.0
93
Border gateway Protocol (BGP)
BGP effettua interdomain routing in reti TCP/IP. E’ un Exterior Gateway Protocol (EGP) usato per la
comunicazione tra AS Si basa su un algoritmo vettore-distanza evoluto Si occupa del transito di dati di terze parti su una
certa rete. Le reti vengono suddivise in: reti stub (unica connessione al grafo BGP) reti multiconnesse (usate per il traffico in
transito) reti di transito (sono disponibili al transito di
traffico di terze parti, sono spesso reti di tipo backbone)
94
95
BGP
Diversi sono i documenti RFC relativi a BGP, tra i quali:• RFC 1771—Descrive BGP4, la versione corrente di
BGP• RFC 1654—Descrive la prima specifica di BGP4• RFC 1105, RFC 1163, e RFC 1267—Descrivono le
versioni precedenti di BGP rispetto a BGP4
96
BGP
BGP effettua:inter-autonomous system routing:
• avviene tra due o più router BGP appartenenti ad AS diversi. • Router vicini (neighbors) usano BGP per mantenere una vista
omogenea della topologia della rete. • Internet rappresenta un esempio che usa questo tipo di
routing, essendo costituita da entità che appartengono a diversi AS
• BGP è utilizzato in questi casi per calcolare il percorso che fornisca il routing migliore attraverso Internet
97
BGP
intra-autonomous system routing:• avviene tra due o più router BGP appartenenti allo stesso AS. • Router vicini usano BGP per mantenere una vista omogenea
della topologia del sistema. • BGP identifica quale router serve da punto di connessione
ottimale per l’interconnessione con specifici AS esterni.• Internet rappresenta ancora un esempio di questo tipo di
routing: un’organizzazione può usare BGP per fornire il routing ottimale tra i suoi AS.
• BGP può fornire servizi di routing sia inter- che intra- autonomous system
98
BGP
pass-through autonomous system routing:• avviene tra due o più router BGP che scambiano traffico attraverso
un AS che non esegue BGP. • In un ambiente pass-through il traffico BGP non origina dentro l’AS
in questione e non è destinato a nessun nodo interno dell’AS stesso.
99
BGP
BGP usa la porta TCP 179 Due router BGP formano tra loro una connessione
TCP (peer o neighbor routers) e scambiano messaggi per aprire e confermare i parametri di connessione
Due neighbor all’inizio si scambiano tutta la loro routing table
Successivamente vengono scambiati messaggi contenenti gli aggiornamenti sui percorsi modificati
100
BGP routing
BGP mantiene le routing tables, trasmette routing update e basa le decisioni di routing sulla base delle routing metric
Le funzioni primarie sono lo scambio di informazioni network reachability, inclusa la lista dei percorsi per gli AS con altri sistemi BGP
Ogni router BGP mantiene una lista di tutti i percorsi fattibili verso una particolare rete. Il router non aggiorna le tabelle fino a che non riceve un aggiornamento incrementale.
101
BGP routing
I dispositivi BGP scambiano informazioni di routing sulla base di uno scambio iniziale e successivi aggiornamenti.
Quando un router si collega per la prima volta riceve l’intera tabella di routing. Similmente quando le informazioni cambiano, vengono spedite in forma di insieme di aggiornamenti periodici, ma non sulla base di aggiornamenti predefiniti regolari
L’aggiornamento propaga solo il routing ottimale per una certa rete
102
BGP routing
BGP mantiene un numero di versione della routing table che deve essere lo stesso per tutti i suoi peers BGP
Il numero di versione cambia ogni volta che BGP aggiorna la routing table attraverso aggiornamenti
pacchetti di tipo keepalive sono inviati per verificare l’integrità della sessione BGP tra i peers
pacchetti di tipo notification sono inviati in risposta a condizioni di errore o in situazioni speciali
103
BGP routing
BGP usa una routing metric singola, che consiste in un numero in unità arbitrarie che specifica il grado di preferenza per quel dato link.
Viene assegnato dal Network Administrator ad ogni link
Il numero assegnato può basarsi su ogni tipo di criterio possibile, incluso il numero di AS che devono essere attraversati, la scalabilità, la velocità, il ritardo della comunicazione, il costo.
104
BGP: tipi di messaggi
L’RFC 1771, A Border Gateway Protocol 4 (BGP-4), definisce 4 tipi di messaggio:open message: apre una sessione BGP tra peers ed è il primo
messaggio inviato da ciascuna parte dopo l’attivazione della sessione TCP. Questo messaggio è confermato da un messaggio keep-alive del peer e deve essere confermato prima che abbia luogo lo scambio di messaggi ordinario.
update message: è usato per effettuare l’aggiornamento del routing ad ogni sistema BGP, consentendo ai router di effettuare un disegno consistente della topologia di rete. Gli aggiornamenti sono inviati usando TCP per ragioni di affidabilità. Il messaggio di update può cancellare route irrangiungibili dalla routing table
105
BGP: tipi di messaggi (2)
notification message: è inviato quando si evidenzia una
condizione di errore. Il messaggio notification è utilizzato per
chiudere una sessione attiva e per avvisare i router connessi
del perché la sessione viene chiusa
keep-alive message: informa ogni sistema peer BGP che un
dispositivo è attivo. I messaggi keep-alive sono inviati con
una frequenza tale da prevenire che la sessione BGP si
esaurisca.
106
BGP: formato dei pacchetti - Header
Ciascun pacchetto BGP contiene un header la cui funzione principale è quella di identificare lo scopo del pacchetto in questione.
Contiene un valore di autenticazione che può essere predetto dal ricevente
Contiene la lunghezza del messaggio in bytes
Open NotificationUpdate Keep-aliveData
107
BGP: Open message
Un open message BGP è costituita da un header e da:
BGP version number
AS number del mittente
Numero max di secondi di attesa senza ricevimento di messaggi dal trasmettitore
identificativo BGP del mittente (IP address), identico per tutti i peer BGP
Lunghezza del campo parametri opzionali. (se presente)
Lista dei parametri opzionali. Attualmente è definito solo il parametro authentication information
108
BGP: Update message
Un update message BGP è costituita da un header e da:
Indica la lunghezza del campo withdrawn routes
Lista di IP riferiti a route irrangiungibili
Lunghezza del campo Path Attribute
Descrive le caratteristiche del percorso annunciato:OriginAS pathNext HopMulti Exit DiscLocal PrefAtomic aggregateAggregator
Contiene la lista di prefissi IP riferiti alle route annunciate
109
BGP: Notification message
Un notification message BGP è costituita da un header e da:
Indica il tipo di errore:
Message Header Error,
Open Message Error,
Update Message Error,
Holt Time Expired,
Finite State Machine Error, Cease
Fornisce ulteriori informazioni sulla natura dell’errore riportato
Contiene dati relativi all’errore e ai sottocodici di errore. E’ un campo usato per diagnosticare la ragione del messaggio
110
eBGP e iBGP
Si può distinguere tra eBGP (peers appartenenti ad AS diversi) e iBGP (peers appartenenti allo stesso AS):
111
BGP: esempio
RTA#
router bgp 100
neighbor 129.213.1.1 remote-as 200
RTB#
router bgp 200
neighbor 129.213.1.2 remote-as 100
neighbor 175.220.1.2 remote-as 200
RTC#
router bgp 200
neighbor 175.220.212.1 remote-as 200
112
BGP: esempio
#show ip bgp neighbors BGP neighbor is 129.213.1.1, remote AS 200, external link BGP version 4, remote router ID 175.220.12.1
BGP state = Established, table version = 3, up for 0:10:59 Last read 0:00:29, hold time is 180, keepalive interval is 60 seconds
Minimum time between advertisement runs is 30 seconds
Received 2828 messages, 0 notifications, 0 in queue
Sent 2826 messages, 0 notifications, 0 in queue
Connections established 11; dropped 10
113
BGP: esempio con loopback interf.
RTA#
router bgp 100
neighbor 190.225.11.1 remote-as 100
neighbor 190.225.11.1 update-source int loopback 1
RTB#
router bgp 100
neighbor 150.212.1.1 remote-as 100
114
eBGP multihop
RTA#
router bgp 100
neighbor 180.225.11.1 remote-as 300
neighbor 180.225.11.1 ebgp-multihop
RTB#
router bgp 300
neighbor 129.213.1.2 remote-as 100
115
Esempio su router Cisco
show ip bgp summary
gw>sh ip bgp summaryBGP router identifier 194.143.143.15, local AS number 9209BGP table version is 16505373, main routing table version 16505373123080 network entries and 244183 paths using 21706080 bytes of memory67847 BGP path attribute entries using 4078320 bytes of memory60703 BGP AS-PATH entries using 2019624 bytes of memory0 BGP route-map cache entries using 0 bytes of memory0 BGP filter-list cache entries using 0 bytes of memoryBGP activity 886376/6976543 prefixes, 3005036/2760853 paths, scan interval 60 s.
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd151.99.49.1 4 6664 5402219 568616 16505003 0 0 3w0d 122224192.94.212.209 4 1267 3035284 4825672 16505003 0 0 15w0d 121958
116
Esempio su router Cisco (i)
show ip bgp neighbors
gw> sh bgp neighborsBGP neighbor is 151.99.49.1, remote AS 6664, external link Description: INTERBUSINESS BGP version 4, remote router ID 151.99.49.5 BGP state = Established, up for 3w0d Last read 00:00:07, hold time is 180, keepalive interval is 60 seconds Neighbor capabilities: Route refresh: advertised and received(old & new) Address family IPv4 Unicast: advertised and received Received 5399978 messages, 0 notifications, 0 in queue Sent 568441 messages, 4 notifications, 0 in queue Default minimum time between advertisement runs is 30 seconds
For address family: IPv4 Unicast BGP table version 16498361, neighbor version 16498339 Index 1, Offset 0, Mask 0x2 Route refresh request: received 0, sent 0 122382 accepted prefixes consume 4895280 bytes Prefix advertised 778940, suppressed 0, withdrawn 678934
Connections established 5; dropped 4 Last reset 3w0d, due to BGP Notification sent, hold time expired External BGP neighbor may be up to 4 hops away.Connection state is ESTAB, I/O status: 1, unread input bytes: 0Local host: 194.143.128.3, Local port: 12275Foreign host: 151.99.49.1, Foreign port: 179
Enqueued packets for retransmit: 0, input: 0 mis-ordered: 0 (0 bytes)
117
Esempio su router Cisco (ii)(continua)
Event Timers (current time is 0x21F0442EC):Timer Starts Wakeups NextRetrans 89727 865 0x0TimeWait 0 0 0x0AckHold 150348 75280 0x0SendWnd 0 0 0x0KeepAlive 0 0 0x0GiveUp 0 0 0x0PmtuAger 0 0 0x0DeadWait 0 0 0x0
iss: 3215576441 snduna: 3221188905 sndnxt: 3221188905 sndwnd: 16163irs: 3508386839 rcvnxt: 3563173331 rcvwnd: 16249 delrcvwnd: 135
SRTT: 332 ms, RTTO: 527 ms, RTV: 195 ms, KRTT: 0 msminRTT: 20 ms, maxRTT: 1828 ms, ACK hold: 200 msFlags: higher precedence, nagle
Datagrams (max data segment is 536 bytes):Rcvd: 279978 (out of order: 2), with data: 193154, total data bytes: 54786491Sent: 246410 (retransmit: 865, fastretransmit: 0), with data: 89340, total data
bytes: 5612463
118
Internet routing tablegw>sh ip routeCodes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route
Gateway of last resort is 194.143.128.34 to network 0.0.0.0
B 216.102.190.0/24 [20/0] via 151.99.49.1, 3w0dB 208.221.13.0/24 [20/0] via 151.99.49.1, 3w0dB 206.51.253.0/24 [20/0] via 151.99.49.1, 3w0dB 205.204.1.0/24 [20/0] via 151.99.49.1, 3w0dB 204.255.51.0/24 [20/0] via 151.99.49.1, 08:18:22B 204.238.34.0/24 [20/0] via 151.99.49.1, 3w0dB 204.153.85.0/24 [20/0] via 151.99.49.1, 2w6dB 204.17.221.0/24 [20/0] via 151.99.49.1, 3w0dB 203.238.37.0/24 [20/0] via 151.99.49.1, 3w0dB 203.34.233.0/24 [20/0] via 151.99.49.1, 3w0dB 200.68.140.0/24 [20/0] via 151.99.49.1, 3w0dB 198.17.215.0/24 [20/0] via 151.99.49.1, 3w0dB 192.68.132.0/24 [20/0] via 151.99.49.1, 10:08:06 170.170.0.0/16 is variably subnetted, 3 subnets, 3 masksB 170.170.0.0/19 [20/0] via 151.99.49.1, 3w0dB 170.170.224.0/20 [20/0] via 151.99.49.1, 3w0dB 170.170.254.0/24 [20/0] via 151.99.49.1, 3w0dB 216.239.54.0/24 [20/0] via 151.99.49.1, 2w0dB 216.103.190.0/24 [20/0] via 151.99.49.1, 3w0dB 213.239.59.0/24 [20/0] via 151.99.49.1, 3w0dB 212.205.24.0/24 [20/0] via 151.99.49.1, 3w0dB 205.152.84.0/24 [20/0] via 151.99.49.1, 3w0dB 203.254.52.0/24 [20/0] via 151.99.49.1, 3w0dB 203.1.203.0/24 [20/0] via 151.99.49.1, 3w0dB 202.1.202.0/24 [20/0] via 151.99.49.1, 3w0dB 198.205.10.0/24 [20/0] via 151.99.49.1, 3w0dB 198.69.130.0/24 [20/0] via 151.99.49.1, 14:43:27B 192.35.226.0/24 [20/0] via 151.99.49.1, 5d22h 170.171.0.0/16 is variably subnetted, 4 subnets, 2 masksB 170.171.0.0/16 [20/0] via 151.99.49.1, 3w0dB 170.171.251.0/24 [20/0] via 151.99.49.1, 3w0d
119
Servizi di ReteServizi di Rete
120
SommarioSommario
Telnet
File Transfer Protocol (FTP)
Name service (DNS)
Network Information Server (NIS)
Network File System (NFS)
Simple Network Management Protocol (SNMP)
Dynamic Host Configuration Protocol (DHCP)
121
servizio di emulazione di terminale attraverso la rete si basa sul protocollo TCP -> connessione affidabile è strutturato secondo il paradigma client/server
• client Telnet, si connette con un server Telnet in esecuzione su un altro host in ascolto sulla porta 23
• appena connesso l'utente può eseguire comandi come se il terminale fosse locale
Questo servizio si basa su 3 aspetti:
1. Network Virtual Terminal (NVT) terminale virtuale con caratteristiche generali; ogni server o client traduce i controlli nativi in quelli del NVT; permette di eliminare l'uso di specifici tool client e server per sfruttare questo servizio;
TelnetTelnet
122
2. Opzioni negoziate tra client e server per aumentare le funzionalità della sessione Telnet da aprire
3. Viste Simmetriche la negoziazione delle opzioni può generare cicli di opzioni senza fine (errata interpretazione)
Funzioni di controllo standard
• Essendo un servizio funzionante su sistemi eterogenei, i client e server possono essere implementati in modo diverso
• Sono state standardizzate le definizioni di 7 funzionalità di controllo (Interrupt process, abort output, break, erase character, erase lane, syncronize, are you there)
TelnetTelnet
123
Svantaggio
• account e password di solito sono trasmessi in chiaro
Soluzione
• Uso di SSH (Secure Shell)
Es: putty (Windows) , telnet/ssh (Linux)
TelnetTelnet
124
SommarioSommario
Telnet
File Transfer Protocol (FTP)
Name service (DNS)
Network Information Server (NIS)
Network File System (NFS)
Simple Network Management Protocol (SNMP)
Dynamic Host Configuration Protocol (DHCP)
125
FTP (File Transfer Protocol)
Protocollo per il trasferimento di file tra host in una rete TCP/IP (RFC 959)
Essendo basato sul protocollo di trasporto TCP è orientato alla connessione ed affidabile
In ogni trasferimento dati intervengono 2 processi
• Il Data Transfer Process (DTP) che si occupa del trasferimento vero e proprio tra un client e un server FTP
• Il Protocol Interpreter che si occupa di trasmettere comandi fra il client e il server FTP (dà inizio al processo FTP)
126
FTP
Una sessione FTP si compone di 2 sessioni/connessioni (bidirezionali):
1. la prima (detta di controllo) viene creata tra i processi PI server e client; lato client viene stabilita una connessione verso il server attraverso la porta 21 (del server);
2. alla richiesta di trasferimento dati, il DTP server apre una apposita connessione (porta 20) con il DTP client (durante questa, la sessione di controllo rimane attiva)
Sessione anonima
• account usato è anonymous, la password in genere è l'email
• i client hanno il solo diritto di lettura, il che evita il download sul server di dati non autorizzati
IP211. comandi/risposte FTP
CLIENT SERVER
IP
2. trasferimento datiDTP DTP20
127
FTP
Comandi FTP per• controllo dell'accesso
utilizzati per stabilire e terminare una sessione FTP– OPEN nomehost– USER nomeutente (utente che esegue i comandi FTP)– PASS password– QUIT
• configurare i parametri del trasferimentopermettono di modificare i valori di default
– PORT indirizzIP+numero_porta– PASV (server passivo, il client da inizio alla
connessione)• trasferimento dei file
– TYPE (ascii o binario)– RECV file_remoto file_locale (o GET)– SEND file_locale file_remoto (o PUT)
128
FTP
• gestione di directory e filecomandi usati dal client ed operanti sul server
– DELETE file_remoto– CD ( per cambiare directory corrente )– MKDIR / RMDIR ( crea / elimina directory )– LS / DIR
ad ogni comando inviato dal client FTP, il server risponde con appositi codici di risposta
Sicurezza e FTP• Nelle versioni iniziali FTP prevedeva il trasferimento in chiaro
delle password• Con RFC 2228 sono stati introdotti nuovi comandi per
aumentare la sicurezza– AUTH (il client specifica quale meccanismo intende
usare per il trasferimento protetto delle informazioni)
129
FTP
– PROT , livello di protezione che verrà usato » Clear» Safety ( richiesta la verifica sull'integrità dei dati )» Confidential ( trasmissioni cifrate )» Private ( trasmissioni cifrate e verifica integrità )
– MIC , comando per il trasferimento dati con livello di sicurezza Safety
– CONF , comando per il trasferimento dati con livello di sicurezza Confidential
– ENC , comando per il trasferimento dati con livello di sicurezza Private
Es. psftp e winscp (Windows) , scp (Linux)
130
Telnet
File Transfer Protocol (FTP)
Name service (DNS)
Network Information Server (NIS)
Network File System (NFS)
Simple Network Management Protocol (SNMP)
Dynamic Host Configuration Protocol (DHCP)
SommarioSommario
131
E’ possibile associare ad ogni interfaccia di rete (su reti di tipo TCP/IP, ad ogni IP address) un nome (hostname).
Perché? I nomi sono più facili da ricordare e da scrivere correttamente rispetto agli indirizzi numerici.
• Es: 141.250.1.4 oppure egeo.unipg.it
DNSDNS
132
Quasi sempre gli indirizzi numerici e i nomi sono intercambiabili, ma in tutti i casi prima di effettuare una connessione il sistema converte l’hostname in un IP address.
L’amministratore di rete è responsabile dell’assegnazione dei nomi e degli indirizzi e della loro memorizzazione.
La traduzione di nomi in indirizzi deve essere nota a tutti gli host della rete
DNSDNS
133
Risoluzione nome-indirizzoIP statica l’associazione (mapping) tra indirizzo IP e hostname
viene stabilito una volta per tutte tramite una host table
host table è memorizzata un semplice file ASCII /etc/hosts, ad esempio:
Indirizzo IP Hostname Alias
192.168.130.1 moe.unipg.it moe
192.168.132.2 larry.unipg.it Larry
192.168.130.40 omniw.unipg.it omniw
192.168.132.20 pserver.unipg.it pserver
192.168.132.45 powerbook.unipg.it powerbook
DNSDNS
134
Risoluzione nome-indirizzoIP dinamica
l’associazione (mapping) tra indirizzo IP e hostname viene stabilito dinamicamente
ogni host all'avvio richiede a server DNS le informazioni sui nomi da assegnare alle proprie interfacce
attraverso appositi file di configurazione ogni host sa quali server interrogare e i server quali nomi assegnare
DNSDNS
135
In ambiente UNIX esiste una implementazione dei protocolli del Domain Name System (DNS): il Berkeley Internet Name Domain (BIND)
BIND è un package di software comprendente:• i principali componenti del DNS, tra cui:
un server DNS (named); una libreria di risoluzione di DNS (resolver);
• strumenti per la verifica del corretto funzionamento del server DNS (nslookup);
La release corrente è la BIND 9.2.x
DNSDNS
136
Il resolver (BIND client) è una libreria di funzioni che permette di generare e inviare al server le richieste di informazioni sui nomi dei domini;
Il named (BIND server) è un processo demone in grado di servire le richieste del resolver e che deve essere in esecuzione sul host locale;
La configurazione del BIND (sia lato client che server) avviene tramite specifici file di testo che ne descrivono il tipo di servizio fornito.
DNSDNS
137
Configurazione del resolver (BIND client)• le funzioni del resolver sono configurate nel file /etc/resolv.conf/etc/resolv.conf (ascii file)• contiene una serie di istruzioni per l’esecuzione delle richieste.• viene letto all’avvio del processo che usa il resolver
Le voci da inserire nel file sono:• nameserver address
le richieste vengono inviate all’indirizzo IP address specificato. Si possono specificare più nameserver fino ad un max di 3
(valore dipendente dal sistema): se il primo non risponde entro un tempo prestabilito, la richiesta viene passata al secondo e così via.
DNSDNS
138
• domain name definisce il nome di dominio di default. Il resolver aggiunge name a qualsiasi nome host che non contiene il carattere punto.
Esempio: se il dominio è definito come dipmat.unipg.it per accedere un servizio dell’host cartesio.dipmat.unipg.it basta specificare il nome cartesio .Il resolver chiede di ottenere l’indirizzo IP di cartesio.dipmat.unipg.it. In caso di fallimento richiede l’IP di cartesio.unipg.it e così a salire nella gerarchia.
• search domain1, domain2, … domain ha la stessa funzione di domain con la possibilità di avere più domini da provare ad aggiungere al nome dell’host. La differenza con domain è che viene aggiunto solo l’intero nome dei domini indicati.
DNSDNS
139
• Esempio del file di configurazione del resolver
# cat /etc/resolv.confsearch dipmat.unipg.it unipg.it nameserver 141.250.1.7nameserver 141.250.1.6
• Verifica del corretto funzionamento
# host egeoegeo.unipg.it is 141.250.1.4
DNSDNS
140
Rispetto al resolver più file sono utilizzati per la configurazione di named:
• named.conf named.conf contiene i parametri generali di configurazione del named ed i puntatori ai file contententi le informazioni dei domini gestiti dal server
• named.canamed.capuntatori ai root domains server
• named.localnamed.local reverse per l’indirizzo loopback
• named.hostsnamed.hosts zone file per la risoluzione diretta
• named.revnamed.rev zone file per la risoluzione inversa
NB: i nomi utilizzati sono del tutto generici ed arbitrali
DNSDNS
141
BIND può essere configurato in 3 diversi modi:
• caching-onlycaching-onlyil processo è in esecuzione ma non esiste nessun nameserver database file. Ogni richiesta (dal resolver) viene rediretta su altri server ed il risultato memorizzato in una cache locale per servire future richieste (necessari solo named.conf e named.ca)
• primaryprimary è il gestore (authoritative server) di informazioni riguardanti specifici domini. Legge le informazioni da appositi file (configurati dall’amministratore) detti zone files.
• secondarysecondaryScarica gli zone file dal primary server e li memorizza localmente in appositi file detti zone file transfer: copia completa di tutte le informazioni sui domini.
DNSDNS
142
named.conf named.conf (1/4)(1/4)
Consente a named di puntare ai file contenenti le informazioni sui domini, sia locali che remoti.
Ci sono appositi comandi per configurare questo file (directory, primary, secondary, cache, …)
DNSDNS
143
named.conf named.conf (2/4)(2/4)
primary 0.0.127.IN-ADDR.ARPA /etc/named.local
cache . /etc/named.ca
Indica a named di memorizzare in una cache locale le risposte ottenute dai nameserver (a cui redirige le richieste dai resolver) e di inizializzare la cache con la lista dei root server contenuta nel file /etc/named.ca
Indica a named che il server locale è primary server per il proprio dominio di loopback e che le relative informazioni sono contenute in /etc/named.local
- caching-only - Vengono omessi i comandi di configurazione del primary e del
secondary server ad eccezione per il dominio di loopback
DNSDNS
144
named.conf named.conf (3/4)(3/4)
directory /etc
primary unipg.it named.hosts
primary 168.192.IN-ADDR.ARPA named.rev
primary 0.0.127.IN-ADDR.ARPA named.local
cache . named.ca
- primary server - Supponendo che il dominio sia unipg.it e che il primary server sia moe:
Dichiara che il server locale è il primary server per unipg.it e il relativo zone file è named.hosts
Puntatore al file named.rev in cui c'è l'associazione tra gli indirizzi IP, nel 192.168.0.0, con i relativi hostnames
Indica inoltre che il server locale è il primary server per il reverse domainreverse domain 168.192.IN-ADDR.ARPA, con le informazioni relative nel file named.rev
DNSDNS
145
named.conf named.conf (4/4)(4/4)
directory /etc
secondary unipg.it 192.168.130.1 unipg.it.hosts
secondary 168.192.IN-ADDR.ARPA 192.168.130.1 192.168.rev
primary 0.0.127.IN-ADDR.ARPA named.local
cache . named.ca
- secondary server - Supponendo che il dominio sia unipg.it e che il primary server sia moe:
Dichiara che il server locale deve scaricare le info. sul dominio unipg.it dal server con indirizzo IP 192.168.130.1 e memorizzarle nel file /etc/unipg.it.hosts
Indica inoltre che il server locale è il secondary server per il reverse domainreverse domain 168.192.IN-ADDR.ARPA, e che i relativi dati vanno scaricati dal server con IP 192.168.130.1 e memorizzati nel file /etc/192.168.rev
DNSDNS
146
3600000 IN NS A.ROOT-SERVERS.NET.A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4; formerly NS1.ISI.EDU. 3600000 NS B.ROOT-SERVERS.NET.B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107; formerly C.PSI.NET. 3600000 NS C.ROOT-SERVERS.NET.C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12; formerly TERP.UMD.EDU. 3600000 NS D.ROOT-SERVERS.NET.D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90; formerly NS.NASA.GOV. 3600000 NS E.ROOT-SERVERS.NET.E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10; formerly NS.ISC.ORG. 3600000 NS F.ROOT-SERVERS.NET.F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241; formerly NS.NIC.DDN.MIL. 3600000 NS G.ROOT-SERVERS.NET.G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4; formerly AOS.ARL.ARMY.MIL. 3600000 NS H.ROOT-SERVERS.NET.H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53; formerly NIC.NORDU.NET. 3600000 NS I.ROOT-SERVERS.NET.I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17; temporarily housed at NSI (InterNIC). 3600000 NS J.ROOT-SERVERS.NET.J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10; housed in LINX, operated by RIPE NCC. 3600000 NS K.ROOT-SERVERS.NET.K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129 ; temporarily housed at ISI (IANA). 3600000 NS L.ROOT-SERVERS.NET.L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12; housed in Japan, operated by WIDE. 3600000 NS M.ROOT-SERVERS.NET.M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33; End of File
named.canamed.ca
puntatori ai root domains server
147
$TTL 86400
@ IN SOA localhost. root.localhost. (
2005030101 ; Serial
10800 ; Refresh after 3 hours
3600 ; Retry after 1 hour
604800 ; Expire after 1 week
86400 ) ; Minimum TTL of 1 day
IN NS localhost.
1 IN PTR localhost.
named.localnamed.local• E' lo zone file per la traduzione del reverse domain
0.0.127.IN-ADDR.ARPA. • Scopo: permette la conversione dell'indirizzo IP 127.0.0.1 (detto
loopback address) nell’hostname localhost.
In sede di analisi del file di configurazione, al carattere @ verrà sostituito il nome del dominio corrispondente a questo file, definito in named.conf
DNSDNS
Utimo numero dell’indirizzo 127.0.0.1 ; i primi 3 numeri sono desunti dalla definizione 0.0.127.IN-ADDR.ARPA
Definisce il nameserver con autorità sul dominio
Hostname associato all’indirizzo 127.0.0.1
148
@ IN SOA moe.unipg.it. root.moe.unipg.it. ( 2005030101 ; Serial 10800 ; Refresh3600 ; Retry604800 ; Expire 86400 ) ; Minimum
unipg.it. IN NS moe.unipg.it.
IN MX 10 moe.unipg.it.
localhost IN A 127.0.0.1
moe.unipg.it. IN A 192.168.130.1
larry.unipg.it. IN A 192.168.132.2
omniw.unipg.it. IN A 192.168.130.40
www IN CNAME moe.unipg.it.
ns133.unipg.it. IN A 192.168.133.1
named.hostsnamed.hosts• E' lo zone file per la conversione diretta • Scopo: permette la conversione di hostname in indirizzi IP. • Contiene la maggior parte delle informazioni sui domini.
Name server
Name to IP mapping
AliasesInterface specific name
Mail server
DNSDNS
149
@ IN SOA moe.unipg.it. root.moe.unipg.it. ( 2005030101 ; Serial 10800 ; Refresh3600 ; Retry604800 ; Expire 86400 ) ; Minimum
192.168.192.in-addr.arpa. IN NS moe.unipg.it.
1.130.168.192.in-addr.arpa. IN PTR moe.unipg.it.
2.132.168.192.in-addr.arpa. IN PTR larry.unipg.it
named.revnamed.rev• E' lo zone file per la traduzione dei reverse domain inseriti nel named.conf.
• Scopo: permette la conversione di indirizzi IP in hostname.
Name server
Addresses point to canonical names
DNSDNS
150
zone files (1/2)zone files (1/2)Semplici ASCII file che contengono records del database DNS. Hanno un formato fisso ed uno stesso metodo per definire i record di un dominio. I principali componenti di un zone file sono detti standard resource record (RR): SOA, NS, A, PTR, MX, CNAME.
Il formato di un resource record (RR) del DNS è:
[name] [ttl] IN type data
name , nome di uno specifico host op di un dominio a cui Il RR si riferisce; generalmente si utilizza il carattere @ per riferirlo al dominio che viene
definito dallo zone file stesso.
DNSDNS
151
ttl , (time-to-live) definisce il tempo massimo (in secondi) oltre cui l'informazione nel RR non
può essere considerata valida in una cache di un sistema remoto
IN , indica che il record successivo è un Internet DNS RR
type , identifica il tipo del RR (SOA, NS, A, PTR, MX, CNAME)
data , informazione specifica del tipo RR
DNSDNS
zone files (2/2)zone files (2/2)
152
Formato: [name] [ttl] IN SOA origin contact (serialrefreshretryexpireminimum
)
originorigin, indica il primary master server per questo dominio; contactcontact, email address dell’amministratore del dominio. A
differenza di un indirizzo email non compare il carattere @, che viene sostituito dal punto. Se [email protected] è
l’amministratore del dominio apparirà postmaster.unipg.it
SOA (Start Of Authority): segna l’inizio di un zone file e generalmente è anche il primo record ad essere utilizzato. Esiste un solo SOA associato ad ogni zone file
SOA (1/3)SOA (1/3)
DNSDNS
153
serialserial,, indica la versione dello zone file. E’ conveniente esprimerlo nella forma yyymmddnn. E’ estremamente importante in quanto permette ai secondary server di stabilire se lo zone file in loro possesso è stato modificato: confrontando questo campo con quello nello zone file nel primary server.
refreshrefresh, , esprime il tempo che deve aspettare il secondary server prima di controllare il SOA sul
primary server. Generalmente un giorno (86400 secondi)
SOA (2/3)SOA (2/3)
DNSDNS
154
retryretry, , indica il tempo che dovrà aspettare il secondary server prima di effettuare una nuova richiesta se la prima fallisce. Generalmente un’ora (3600 secondi).
expire, expire, indica il tempo dopo il quale il secondary server dovrà riprendere lo zone file.
Generalmente 604800 secondi pari a 7 giorni.
minimunminimun, , è il valore di default del Time To Live (TTL) per tutti i record del dominio dove non è espresso.
SOA (3/3)SOA (3/3)
DNSDNS
155
Formato: [domain] [ttl] IN NS server
Estensioni: permette di indicare i server autorizzati a rispondere per il sottodominio
es. dominio unipg.it, sottodominio plant.unipg.it (in named.hosts)
plant 432000 IN NS pack.plant.unipg.it
NS (Name Server): identifica il nome del server che ha l’autorità per il dominio.
NSNS
DNSDNS
156
Formato: [hostname] [ttl] IN A addresshostname, nome che si vuol assegnare all'indirizzo IP
address
address, l’indirizzo IP corrispondente
Estensioni: uso di @ come name per indicare il dominio corrente
A (Address record): utilizzato per associare un hostname in indirizzo IP
AA
DNSDNS
157
Formato: [name] [ttl] IN MX preference hostname, di host o dominio a cui le email verrando indirizzate
preference, permette di stabilire un ordine di preferenza se sono presenti più mail server; Più è basso, maggiore sarà la priorità. I valori partono da 0 e sono multipli di 5.
host, nome del mail server
Estensioni: uso di @ come name per indicare il dominio corrente
MX (Mail eXchanger): definisce il server che gestisce la posta per un singolo host o un intero dominio; tutta la posta viene rediretta sul server specificato
MXMX
DNSDNS
158
Formato: nickname [ttl] IN CNAME host
CNAME (Canonical NAME): definisce un alias per il nome di un host
CNAMECNAME
DNSDNS
159
Formato: [name] [ttl] IN PTR hostname, numero che identifica n-esimo indirizzo IP
nella rete
host, nome completo del host
PTR (domain name PoinTR): permette di associare indirizzi IP ad un nome di host.
PTRPTR
DNSDNS
160
named (1/3)named (1/3)Comando utilizzato per avviare il servizio DNS.
Sintassi: named [-c configfile
-d level -p port -n ncpus -t directory -u user ]
-c configfile : utilizzato per specificare la posizione del file named.conf se diversa da /etc/named.conf
-d level : utilizzato per attivare il debug (maggiore level, maggiore il dettaglio) salvando le informazioni nel file $dir/named.run
DNSDNS
161
named (2/3)named (2/3)
-p port : per default il servizio risponde alla porta 53 (TCP/UDP), con questa opzione si può specificare una porta diversa.
-n ncpus : il kernel istanzia ncpus thread per sfruttare i sistemi multiprocessore
-t directory : il processo esegue un cambio di directory appena letto il file di configurazione.
-u user : il processo named viene eseguito dall’utente specificato, invece che da root
DNSDNS
162
/etc/rc.d/init.d/functions case "$1" in start) # Start daemons. echo -n "Starting BIND Name Server Daemon: " daemon /usr/local/sbin/named echo ;; stop) # Stop daemons. echo -n "Shutting Down BIND Name Server Daemon: " killproc named echo ;; *) echo "Usage: $0 start|stop" exit 1 esac exit 0
named (3/3)named (3/3)Script per la gestione di named: /etc/rc.d/inetd.d/named
Per attivare il programma del DNS si deve dare il comando:
/etc/rc.d/init.d/named start
DNSDNS
163
nslookupnslookupTool di debugging compreso nel package BIND. Consente di interrogare direttamente un nameserver per ottentere informazioni sul DNS disponibile: per verificare se un nameserver è attivo, se è correttamente configurato.
Sintassi: nslookup hostname
Es (modalità non interattiva):
% nslookup omniw.unipg.it Server: moe.unipg.it Address: 192.168.130.1
Name: omniw.unipg.it Address: 192.168.130.40
nameserver interrogato
DNSDNS
164
Telnet
File Transfer Protocol (FTP)
Name service (DNS)
Network Information Server (NIS)
Network File System (NFS)
Simple Network Management Protocol (SNMP)
Dynamic Host Configuration Protocol (DHCP)
SommarioSommario
165
E’ un servizio che permette di definire delle risorse (di amministrazione) comuni ad un insieme di host (grandi comunità di utenti), in modo tale che l’utente possa "spostarsi" da un host all’altro mantenendo le stesse caratteristiche fondamentali: login, password, home directory, autorizzazioni possedute.
realizza un database di amministrazione che permette un controllo centralizzato e la condivisione automatica di risorse.
Fondamentale anche per applicazioni parallele e distribuite e per la creazione di cluster di computer, poiché consente di usare una notazione semplificata per l’accesso a file e risorse, a prescindere dal singolo nodo di elaborazione.
NISNIS
166
Converte i principali file UNIX (file ASCII) in un formato databasedatabase (detto NIS map) che può essere interrogato per rendere le informazioni disponibili attraverso la rete
Il vantaggio nell’uso di NIS è quello di avere un controllo centralizzato degli administrative files in un singolo server contattabile da ogni altro host in rete.
L’utilizzo di NIS è completamente trasparente per l’utente finale
NISNIS
167
I database creati dai file ASCII sono chiamati NIS map e vengono creati dai seguenti file di sistema:• /etc/passwd definisce login, password, shell e home directory passwd.byname e passwd.byaddr
• /etc/group, definisce i gruppi di utenti, elencando i nomi di login di ogni gruppo group.byname e group.byaddr
• /etc/netgroup definisce le autorizzazioni da assegnare ad host ed utenti per l’accesso alle risorse locali (influenza i permessi dichiarati in hosts.equiv, NFS, .rhosts) netgroup.byname e netgroup.byaddr
• /etc/auto.home definisce la posizione assoluta delle home directory associate agli utenti passwd.byname e passwd.byaddr
• /etc/ethers informazioni usate da RARP per la conversione da ethernet address a IP address ethers.byaddr e ethers.byname
NISNIS
168
• /etc/hosts, ascii file che associa un indirizzo IP ad un nome => hosts.byname e hosts.byaddr
• /etc/networks, ascii file per mappare i network address in network name => networks.byname e network.byaddr
• /etc/netmasks, utilizzato per definire la subnet mask. E’ una tabella con 1 sola riga contentente indirizzo della rete e netmask relativa => netmasks.byaddr
• /etc/protocols, una tabella contenente il nome del protocollo, il numero ed il nome => protocols.byname e rotocols.byaddr
• /etc/services, contenente l’elenco dei servizi e relativa porta utilizzata con specificato il protocollo => services.byname
• /etc/aliases, contiene gli alias agli indirizzi e-mail => mail.byname e mail.byaddr
• /etc/netgroup, definisce dei gruppi di host e utenti che possono accedere ai servizi del sistema => netgroup.byname e netgroup.byaddr
NISNIS
169
Le NIS map vengono memorizzate nel master server che le rende disponibili ai client tramite il processo ypserv.
I client possono aggiornare le loro informazioni ricevendo i database tramite il demone ypbind.
Sia il NIS server che i clients fanno parte del NIS domain il cui nome può essere verificato o stabilito con il comando:
# domainname domain Per visualizzare l’indirizzo del server da cui sono prese le mappe
si utilizza :# ypwhich
Nei client, per ciascuna tabella che si vuol utilizzare dal server occorre inserire i caratteri:+::::::
NISNIS
170
Le stesse informazioni del
NIS server si trovano nei client
Con una singola modifica nelle mappe
aggiorno l’informazione in tutti
i client
NIS Master Server
domain name nisdomain
ypserv
Client A
domain name nisdomain
ypbind
Client B
domain name nisdomain
ypbind
NIS Slave Server
domain name nisdomain
ypserv
ypbind
Client C
domain name nisdomain
ypbind
NISNIS
171
Generalmente le informazioni NIS sono memorizzate nella directory /var/yp e vanno ridistribuite ogni volta che viene effettuata una modifica al Master Server (la rigenerazione delle mappe NIS viene effettuata mediante l’utility makefile).
Servizi condivisi attraverso NIS:• Autenticazione (login, passwd)• Home directory• Accesso a stampanti, via lpr• NFS• Risorse di rete
NISNIS
172
Telnet
File Transfer Protocol (FTP)
Name service (DNS)
Network Information Server (NIS)
Network File System (NFS)
Simple Network Management Protocol (SNMP)
Dynamic Host Configuration Protocol (DHCP)
SommarioSommario
173
Il Network File System (NFS) permette di condividere su una rete directory e file.
Con NFS utenti e programmi possono accedere file memorizzati su sistemi remoti come se fossero file locali.
I vantaggi di NFS sono:• riduzione spazio disco locale (una singola copia per
directory)• semplificazione dei task di supporto
(aggiornamento centralizzato dei file, ma accessibili da tutta la rete)
• manipolazione dei file remoti con comandi UNIX locali (es. cp)
NFSNFS
174
Esistono due componenti fondamentali di NFS• il client utilizza le directory remote come se fossero parte del
filesystem locale;• il server mette a disposizione le proprie directory per l'uso da
parte dei client Lato client, l’inserimento di una directory di un host remoto nel
filesystem locale è detto mounting e viene realizzato mediante il comando
# mount Lato server, la condivisione di una directory locale ad host
specifici per l'accesso remoto è detta sharing (il file system locale diventerà parte del filesystem remoto) e viene realizzata mediante il comando
# export
NFSNFS
175
Demoni NFS
• nfsd [nservers] demone che gestisce le richieste NFS nservers indica il numero di processi da eseguire; è
presente solo nel server.
• biod [nservers] demone che gestisce I/O dal lato client
• rpc.lockd gestisce i lock file (server - client)
• rpc.statd controlla lo stato della rete (server - client)
• rpc.mountd esegue le richieste di mount del client (server)
NFSNFS
176
Esempio di script per avvio NFS:
if [ -f /usr/sbin/biod -a -f /usr/sbin/rpc.statd -a -f /usr/sbin/rpc.lockd ]; then
biod 8; echo -n ‘biod’
rpc.statd & echo -n ‘statd’
rpc.lockd & echo -n ‘lockd’
Fi
if [ -f /etc/export ]; then
> /etc/xtab
exportfs -a
nfsd 8 & echo -n ‘nfsd’
rpc.mound
fi Server
Client
NFSNFS
177
Export filesystems
exportfs
mountd
/etc/exports
/etc/xtab
Definisce le directory da esportare e le condizioni
Rende le directory disponibili per il mount e aggiorna il file /etc/xtab
Contiene le informazioni delle directory esportate
Esamina le richieste di mount dei clients leggendo /etc/xtab
NFSNFS
178
Exporting filesystems
sul server NFS (nfsserver) configurare: /etc/exports, un file ASCII che contiene le directory da esportare e l’elenco degli host che hanno accesso a questi file. Esempio:
/usr/public /usr/man -rw=mailhost:dnsserver /usr/local -ro /u1 - access=netgrp1,root=mailhost:dnsserver,rw
/home/research -access= mailhost:dnsserver:netgrp2
NFSNFS
179
Il formato è : directory [-option][,option]…
directory : nome della directory o file che si vuol esportare
-ro : read-only non permette di poter modificare le directory exportate
-rw [=hostname][:hostname]… : permette la lettura e scrittura delle directory. Se presente hostname restringe questa possibilità all’elenco specificato
-access=hostname[:hostname]… : limita l’accesso ai soli host nell’elenco. Si può anche utilizzare con un netgroup
NFSNFS
180
Mounting Remote Filesystems via NFSshowmount -e [hostname] : per visualizzare l’export list dell’host
specificatomount hostname:remote-directory local-directory :
hostname identifica l’NFS server a cui si richiede la remote directory e che sarà disponibile nel sistema nella local directory
Esempio:mkdir /home/ricerca
mount nfsserver:/home/ricerca /home/ricerca
umount /home/ricerca
umount nfsserver:/home/ricerca• Per effettuare il mount nfs automatico ad ogni reboot del client
NFS occorre aggiungere un record al file /etc/fstab del tipo : nfsserver:/home/research /home/research nfs rw 0 0
NFSNFS
181
Telnet
File Transfer Protocol (FTP)
Name service (DNS)
Network Information Server (NIS)
Network File System (NFS)
Simple Network Management Protocol
Dynamic Host Configuration Protocol (DHCP)
SommarioSommario
182
Il problema della gestione delle reti riveste una importanza enorme, ed in continuo sviluppo, data la crescente importanza che le reti e i servizi hanno sia per le aziende che per i singoli e le istituzioni.
In molti contesti oggi avere la rete ferma coincide con il blocco parziale o totale delle attività.
Simple Network Management Protocol (SNMP) è oggi il più potente e diffuso software di gestione di reti, sistemi e applicazioni
Usando SNMP gli amministratori di sistema possono indirizzare richieste e comandi ai nodi della rete, monitorando lo stato delle risorse e delle applicazioni.
SNMPSNMP
183
SNMPSNMP
184
L’architettura di SNMP si compone di:
• Nodi gestiti o Agent: qualsiasi dispositivo in grado di collezionare dati SNMP e di rispondere alle richieste del Manager (host, stampante, router, switch, hub, etc)
• Stazione di gestione o Manager: un programma che interroga e invia comandi agli agent, che consente la gestione intelligenti degli eventi
• Informazioni di gestione o Management Information Base (MIB): un archivio di informazioni di gestione immesse dagli agent, detti oggetti.
• Protocollo di gestione (SNMP): definisce le modalità di interazione tra il Manager e gli Agent
SNMPSNMP
185
SNMP si è evoluto in tre principali versioni:• SNMPv1 (RFC 1157)• SNMPv2p (RFC 1441, RFC 1445, RFC 1446,
RFC 1448, RFC 1449)• SNMPv2 (RFC 1901, RFC 1902, RFC 1903,
RFC 1904 , RFC 1905, RFC 1906, RFC 1907, RFC 1908, RFC 1909, RFC 1910)
• SNMPv3 (RFC 2026, RFC 2200) La grossa limitazione mostrata fino alla versione
SNMPv2 riguarda la sicurezza. SNMPv3 è la versione più recente, che corregge
queste limitazioni
SNMPSNMP
186
IETF http://www.ietf.org/html.charters/snmpv3-charter.html
Simple Times, la rivista che si propone la diffusione di SNMP http://www.simple-times.org/
Numero speciale di Simple Times su SNMPv3: http://www.simple-times.org/pub/simple-times/issues/5-1.html
Homepage di SNMP Technology Inc.: http://www.snmp.com/snmpv3/
Un’interessante pagina su SNMPv3: http://www.ibr.cs.tu-bs.de/projects/snmpv3/
SNMPSNMP
187
Authentication: per proteggere contro modifiche delle informazioni, il mascheramento e la modifica della sequenza dei messaggi;
Privacy: per garantire la riservatezza delle informazioni;
Nuovi strumenti di controllo, inclusi strumenti grafici per la definizione delle regole di accesso
Configurazione remota di sistemi gestibili, mediante un insieme di operazioni sicure
SNMPSNMP
188
Ogni oggetto mantiene una serie di variabili SNMP che descrivono il suo stato
La collezione di tutti i possibili oggetti in una rete è chiamata Management Information Base, MIB
Il Manager comunica con gli Agent mediante il protocollo SNMP che gli consente di conoscere lo stato delle variabili MIB e di modificarle se opportuno
A volte capitano eventi imprevisti: si genera un SNMP trap
La stazione (manager) può chiedere informazioni sullo stato delle variabili mediante messaggi. Se si verificano trap i messaggi si intensificano: questo modo di operare è denominato polling orientato ai trap.
SNMPSNMP
189
Il nucleo dell’SNMP è costituito dagli oggetti gestiti dagli agenti che vengono letti e scritti dal Manager
E’ fondamentale uno standard per la definizione degli oggetti SNMP e per il modo di codificare e trasferire queste informazioni in rete.
SNMP per questa funzione usa un sottoinsieme delle regole definite nell’Abstract Syntax Notation 1 (ASN.1) del protocollo ISO/OSI.
I tipi permessi in SNMP dell’ASN.1 sono: INTEGER, BIT STRING, OCTET STRING, NULL, OBJECT IDENTIFIER
SNMPSNMP
190
OBJECT IDENTIFIER contiene i criteri per definire un oggetto. Si segue una struttura ad albero di standard e si pone qualsiasi oggetto o standard in una regione precisa dell’albero.
La porzione usata da SNMP ha come radici gli organismi di standardizzazione ISO e CCITT (ora ITU) dalla radice si dipartono degli archi che definiscono sottoorganizzazioni, le quali hanno associato sia una etichetta che un numero.
Tutti gli oggetti MIB SNMP vengono identificati da un’etichetta (cammino sull'albero) del tipo:
iso idetified-organization (3) dod (6) internet (1) mgmt (2) mib-2 (1) …
o, alternativamente: 1 3 6 1 2 1 …
SNMPSNMP
191
SNMPSNMP
192
ASN.1 definisce il modo univoco in cui i valori dei tipi ASN.1 sono convertiti senza ambiguità in una sequenza di bytes, che viene detta Basic Encoding Rules (BER).
La codifica è ricorsiva, così che la codifica di un oggetto composto risulta dalla concatenazione delle codifiche degli oggetti componenti.
Ciascun valore trasmesso deve essere costituito dai campi: Identificatore (tipo o estensione) Lunghezza del campo dati in bytes Campo dati
A seguito dell’adozione dell’ASN.1 per SNMP sono state definite 4 macro e 8 tipi di dati che sono usatissimi in SNMP e vengono detti Structure of Management Informations (SMI)
SNMPSNMP
193
SNMPSNMP
194
La collezione degli oggetti gestita da SNMP viene definita nel MIB.
Gli oggetti che appartengono a MIB sono raggruppati in 10 categorie che corrispondono a 10 nodi al di sotto del nodo mib-2 della struttura ad albero descritta prima.
Esse servono per definire le categorie di base per ciò che deve essere compreso dal Manager.
In futuro verranno aggiunte altre categorie e oggetti I produttori di hardware di rete potranno definire
oggetti aggiuntivi per i loro prodotti
SNMPSNMP
195
Group #obj Description
sistema dell’apparecchio 7 nome, locazione e descrizioneinterfacce 23 interfacce di rete e misura del
trafficoAT 3 traduzione di indirizzoIP 42 statistiche di pacchetti IPICMP 26 stat. Sui messaggi ICMP rcvd
TCP 19 algoritmi, parametri e stats TCPUDP 6 stats di traffico UDPEGP 20 stats sui protocolli di routing
Exterior Gateway ProtocolSNMP 29 stats sul traffico SNMP
SNMPSNMP
196
• Il gruppo sistema consente di capire il tipo di dispositivo chiamato, chi lo ha chiamato, hardware e
software che contiene, persona da contattare. Se un’azienda appalta la gestione, i gestori sapranno chi contattare in caso di guasti o malfunzionamenti
• Il gruppo interfacce contiene i Network Interface Controller (NIC, le schede di rete) che tengono traccia dei pacchetti e byte inviati e ricevuti, il numero di quelli rifiutati, il numero di broadcast e la
dimensione della coda di uscita
• Il gruppo AT teneva traccia delle conversioni indirizzo Ethernet – indirizzo Internet, ora è vuoto, in quanto questi oggetti sono stati spostati negli specifici protocolli in SNMPv2
SNMPSNMP
197
• Il gruppo IP si occupa del traffico a livello Rete, dell’Internet Protocol (IP), dal nodo e al nodo. E’ ricco di
contatori che tengono traccia dei pacchetti persi per diversi motivi. Tiene traccia del riassembraggio e della frammentazione dei pacchetti IP
• Il gruppo ICMP riguarda i messaggi di errore IP, perché l’Internet Control Message Protocol (ICMP) è un
protocollo di gestione dell’IP. Aggiorna contatori per i vari tipi di messaggio ICMP, registrandone il numero.
• Il gruppo TCP riguarda il traffico a livello Trasporto, del Trasmission Control Protocol. Aggiorna contatori riguardo alle connessioni aperte, in totale e attuali, segmenti inviati e ricevuti e altre statistiche.
SNMPSNMP
198
Il gruppo EGP tiene conto del traffico di tipo Exterior Gateway Protocol (EGP), protocolli di routing esterni agli Autonomous System (AS). Tiene traccia di quanti pacchetti sono stati inviati e ricevuti, delle eventuali anomalie.
Il gruppo trasmissione contiene i MIB specifici di dispositivo. Per es. qui vengono mantenute le statistiche specifiche per il protocollo Ethernet.
Il gruppo SNMP colleziona statistiche sul protocollo Simple Network Management Protocol (SNMP) stesso: quanti sono i messaggi inviati, di che tipo, etc
MIB II è definito nell’RFC1213. Nel documento sono definiti 175 oggetti appartenenti ai gruppi visti, con gli oggetti suddivisi per gruppo. Per ciascun oggetto viene descritta la funzione.
SNMPSNMP
199
Il modello SNMP prevede un Manager che invia richieste agli Agent, interrogando le 175 variabili di MIB II più quelle create dai singoli produttori hardware.
Il protocollo che Manager e Agent utilizzano, l’SNMP vero e proprio, è codificato nell’RFC1448.
Il Manager invia all’Agent richiesta di informazioni o un aggiornamento di un suo stato secondo la sintassi dell’ASN.1
Possono essere riportati errori SNMP definisce 7 tipi di messaggi per svolgere
queste funzioni: 6 di query ed 1 di risposta
SNMPSNMP
200
Messaggio Descrizione
Get-request Richiede il valore di una o più variabili MIB
Get-next-request Richiede il valore della variabile MIB successiva
Get-bulk-request Richiede una grande tabella
Set-request Aggiorna una o più variabili
Inform-request Messaggio da un Manager a un altro
Manager che descrive quali variabili sono gestite dallo stesso Manager Snmpv2-trap. Segnalazione di SNMP trap dall’Agent al Manager
SNMPSNMP
201
Telnet
File Transfer Protocol (FTP)
Name service (DNS)
Network Information Server (NIS)
Network File System (NFS)
Simple Network Management Protocol
Dynamic Host Configuration Protocol
SommarioSommario
202
DHCPDHCP
Il Dynamic Host Configuration Protocol (DHCP, RFC 2131) fornisce il supporto per lo scambio tra host di informazioni di configurazione degli stessi host in una rete TCP/IP.
DHCP è realizzato da 2 componenti: • un protocollo per la trasmissione dei parametri di
configurazione specifici di un host da un DHCP server all’host interessato
• un meccanismo per assegnare gli indirizzi di rete agli host
DHCP non è utilizzato per configurare i router;
si basa sul paradigma client-server: gli host designati (dall'amministratore) ad essere server DHCP assegnano indirizzi di rete e comunicano i relativi parametri di configurazione ai client.
203
DHCPDHCP DHCP estende il protocollo Bootstrap (BOOTP, RFC 1534) con:
• l'automatic allocation di indirizzi di rete (riusabili);• opzioni di configurazione aggiuntive.
BOOTP è un meccanismo di trasporto per la raccolta delle informazioni di configurazione di host:
• utilizza il protocollo di trasporto UDP sulla porta 67 (lato server) e 68 (lato client).
• sfrutta gli indirizzi di broadcast, sia lato client che server, per permettere l'assegnamento degli indirizzi IP
Uno dei limiti del BOOTP è l'uso degli indirizzi di broadcast che ne comporta l'uso solo in segmenti di rete
Limite superato (RFC 1542) configurando un router (o un host) (detto DHCP/BOOTP Relay Agent) per riconoscere il traffico BOOTP e permettere al server di distribuire indirizzi IP a più sottoreti
204
DHCPDHCP
Il processo che consente di assegnare gli indirizzi IP agli host prevede 4 fasi (a cui corrispondono altrettanti messaggi del DHCP):
1. Discovering, il messaggio DHCP Discover viene inviato dal client per richiedere l'assegnamento di un indirizzo
2. Offering, il messaggio DHCP Offer viene inviato da un qualunque server (con un indirizzo a sua disposizione) che ha ricevuto la richiesta inviata da un client nella fase 1 (più offerte possono avvenire);
205
DHCPDHCP
3. Requesting, il messaggio DHCP Request viene inviato dal client (ancora in broadcast) per comunicare quale offerta ha accettato
4. Acknowledgment, il messaggio DHCP Acknowledgment viene inviato dal server per conferma (se non ci sono errori) dell'assegnamento dell'indirizzo al particolare client. In caso di errori (es. client richiede un indirizzo non valido) viene inviato DHCP NACK (negative acknowledgement)
206
DHCPDHCP
Con il meccanismo di assegnamento dinamico il rinnovo dell'indirizzo IP avviene quando:
• al riavvio del client DHCP;
• a metà durata dell'assegnamento il client;
• in prossimità dello scadere dell'assegnamento
207
DHCPDHCP
Configurazione di un server DHCP1. Installazione del software
dipende dal SO usato nel host server
1. Configurazione di un pool di indirizzi IPdefinizione di un pool di indirizzi da assegnare ai client: indirizzo iniziale e finale del pool eventuali intervalli da escludere (quelli già assegnati staticamente come quello del server DHCP e dei router) durata della validità degli indirizzi assegnati
Tempo finito (es. un giorno quando il numero di client è prossimo a quello degli indirizzi disponibili)
Tempo illimitato • un server DHCP può avere configurati più pool di indirizzi
208
DHCPDHCP
3. Opzioni di configurazione dei client DHCP vengono applicate a tutti i client DHCP che ottengono un
indirizzo IP nel pool definito al punto 2 possono essere configurate opzioni globali in server con
più pool Es. opzioni di base (per un client in una certa sottorete)
Pad ( permette l'allineamento dei campi successivi a multipli di parole da 32 bit)
Subnet mask (maschera della sottorete) Router (elenco di indirizzi IP di router) DNS server (elenco indirizzi IP di server accessibili) Host name Domain name End (fine opzioni nel pacchetto)
209
DHCPDHCP
Es. opzioni livello IP (per ogni host) IP layer forwarding ( abilita o meno il forward dei pacchetti
al client ) Default Time-To-Live ( definisce il TTL per i datagram in
uscita dal client )
Es. opzioni livello IP (per ogni interfaccia di un host) interface MTU ( stabilisce la dimensione del Maximum
Transmission Unit ) Broadcast address ( indirizzo di bradcast per la sottorete )
Es. opzioni livello Link ( per ogni interfaccia di un host )
Ethernet encapsulation ( indica se il client deve usare l'incapsulamento Ethernet )
210
DHCPDHCP
Es. opzioni livello TCP Default Time-To-Live ( definisce il TTL per i segmenti in
uscita dal client ) Keepalive interval ( in secondi, il tempo che il client deve
attendere prima di inviare il messaggio Keepalive attraverso la connessione
TCP )
Es. opzioni livello Applicazione NIS domain name ( stringa ASCII ) NIS server ( lista di indirizzi IP di server NIS raggiungibili )
211
DHCPDHCP
DHCP Client Reservation È possibile riservare un particolare indirizzo IP ad un client; si
associa l'indirizzo IP con quello MAC di una interfaccia di rete del client
• Server DHCP in una rete con più segmenti è necessario un DHCP server per ogni sottorete? per ogni segmento di rete si può configurare un DHCP Realy
Agent che monitorizza i broadcast DHCP se rileva un pacchetto Discovery o Request lo inoltra verso i
server DHCP aggiungendo al pacchetto il proprio indirizzo
212
DHCPDHCP
Esistono diverse implementazioni di DHCP sotto Unix (commerciali e non)
dhcpd è una implementazione non commerciale del Internet Software Consortium (ISC) compatibile con diverse versioni di Unix
213
DHCPDHCPNel file ASCII /etc/dhcpd.conf vanno inserite le istruzioni di configurazione quali le sottoreti e gli host client, quali informazioni di configurazioni deve fornirgli; il seguente esempio prevede l'assegnamento dinamico degli indirizzi ai client nella sottorete con supporto a client BOOTP
# impostazioni ed opzioni globali
default-lease-time 86400; # tempo medio (in secondi) di
# assegnamento di un indirizzo
max-lease-time 604800; # max tempo di assegnamento
option subnet-mask 255.255.255.0;
option domain "unipg.it";
option domain-name-servers 192.168.12.1 192.168.3.5;
#impostazioni ed opzioni per ogni sottorete servita
subnet 192.168.12.0 netmask 255.255.255.0
option routers 192.168.12.1;
option broadcast-address 192.168.12.255;
range 192.168.12.64 192.168.12.192;
range 192.168.12.200 192.168.12.250;
214
DHCPDHCP
#impostazioni per i BOOTP client
group # applica il seguente parametro a tutti gli
# host appartenenti a questo qruppo
use-host-decl-names true
host moe
hardware ethernet 00:80:c7:aa:a8:04
fixed-address 192.168.12.4
host larry
hardware ethernet 08:80:20:01:59:c4
fixed-address 192.168.3.16
215
Posta elettronicaPosta elettronica
216
Posta elettronica
Simple Mail Transfer Protocol (SMTP)
Post Office Protocol (POP)
Interactive Mail Access Protocol (IMAP)
SommarioSommario
217
La posta elettronica, o email, è il servizio più importante e più antico di Internet. Ha consentito di stravolgere la produttività e il modo di lavorare di chi la usa.
Le mailing-list, un servizio basato sulla posta elettronica, costituiscono una delle principali forme, insieme alle USENET NEWS, di agora telematica, villaggio globale, etc: uno strumento rivoluzionario di comunicazione che serve per parlare di qualsiasi argomento dai prodotti software, agli hobbies, alla politica e al sociale.
Oggi la posta elettronica è equiparata ai principali strumenti di comunicazione, come la posta scritta.
Posta elettronicaPosta elettronica
218
La Posta Elettronica è un servizio che coinvolge due diversi programmi: il Mail User Agent (elm, pine, eudora, microsoft outlook, etc) ed il programma di trasporto (sendmail, mmdf, etc).
Il Mail User Agent è l’interfaccia dell’utente verso l’applicazione e svolge le seguenti funzioni:
• Composizione, si riferisce ai processi di composizione vera e propria del messaggio, rispettando la
sintassi definita per questa applicazione nell’RFC822, mediane un opportuno editore di testi;
gestione degli strumenti di agenda elettronica e quanto utile per gestire l’indirizzario dei corrispondenti
Gestione, quanto più automatica possibile, dei campi dell’intestazione (prendere direttamente il destinatario di una risposta dal messaggio originario, predisporre il subject, etc)
Posta elettronicaPosta elettronica
219
• Visualizzazione, si riferisce ai processi di visualizzazione vera e propria del messaggio,
separando gli header dello stesso dal corpo e gestendo eventuali allegati
fornire degli strumenti di archiviazione dei messaggi prevedendo dei meccanismi di archiviazione e classificazione
interazione con il sistema in modo da operare le conversioni quando necessario oppure invocando le applicazioni di sistema per gestire tipi di file speciali (Postscript, PDF, PNG, etc)
• Eliminazione, una volta processati i messaggi o automatica-mente (filtri) o manualmente, l’utente deve poter cancellare i messaggi non interessanti dal server per evitare che la mailbox raggiunga dimensioni che danneggiano il server di posta
Posta elettronicaPosta elettronica
220
Il programma di trasporto (Sendmail) svolge invece le restanti funzioni:• Trasferimento: quando il Mail User Agent spedisce il
messaggio dell’utente, questo viene passato al programma di trasporto, il quale interpreta l'indirizzo di posta elettronica e provvede al trasferimento del messaggio. Questo comporta l’attivazione di una sessione con il server di destinazione o qualche macchina intermedia (qualora il server sia congestionato o irrangiungibile e sia disponibile il servizio di mail relay).
• Notifica all’utente: qualora il messaggio non sia stato inviato, occorre che l’utente mittente ne sia informato (possono esserci ritardi dovuti a congestione, o errori di sintassi). Alcuni prodotti gestiscono la ricevuta di ritorno, la quale però non è stata standardizzata, anche se aumenta la sua importanza per gli usi nella pubblica amministrazione.
Posta elettronicaPosta elettronica
221
Il programma di trasporto è completamente trasparente all'utente finale
Sendmail effettua le seguenti operazioni:• riceve e spedisce posta secondo il protocollo SMTP (Simple Mail
Transfer Protocol) • fornisce alias di posta (del tipo alias-->utente reale, oppure alias--
>insieme di utenti) che permettono anche la creazione di mailing list prototipali (per l’implementazione di mailing-list efficienti occorrono dei programmi di listserver, tipo majordomo)
Il programma popper (POP3) consente di interagire con il programma di trasporto direttamente da un PC connesso in rete, in modo da consentire la manipolazione della posta direttamente dal PC client. Anche il protocollo IMAP svolge analoga funzione ed è più versatile e sicuro poiché prevede una autenticazione più forte
Posta elettronicaPosta elettronica
222
Gli indirizzi di posta elettronica sono del tipo:[email protected]
oppure:user@domain
Abbiamo visto nella descrizione del DNS quali sono le informazioni necessarie affinché la posta elettronica sia attivata correttamente (definizione del mailhost con il record MX, preferibili definizioni multiple per creare dei server di backup, variante del record A per assegnare l’IP al dominio).
Anche Sendmail necessita di particolari parametri di configurazione quando si voglia gestire la posta per un dominio Internet invece che per il singolo host.
Posta elettronicaPosta elettronica
223
Quando un dominio di posta elettronica è importante occorre definire un gestore di posta secondario, possibilmente in una rete esterna e lontana, in modo che in caso di malfunzionamenti questi sia in grado di salvare temporaneamente i messaggi in transito e facente le veci del server di destinazione. In questo modo eventuali anomalie non hanno conseguenze su chi invia posta al dominio.
Posta elettronicaPosta elettronica
224
Questa funzione si chiama Mail Relay. E’ stata la più usata dagli spammer finché è stata tenuta aperta indiscriminatamente (fino a Sendmail v8). Lo spammer si presentava con un certo indirizzo e diceva a Sendmail "questo è un mail per te che io ho temporaneamente accettato"
Dalla versione 9 gli host da cui si accetta relaying sono espressamente elencati in una speciale tabella
Posta elettronicaPosta elettronica
225
RFC822 definisce una serie di campi di intestazione obbligatori che sono importantissimi per il corretto funzionamento della posta elettronica:
Received: elenca i server che ha attraversatoMessage-ID: identificativo del messaggio
([email protected])Date: data Wed, 23 Oct 2000 10:22:00 +0100From: utente mittenteSubject: soggettoTo: utente destinatarioCc: utenti destinatari in carbon copyBcc: utenti destinatari in Blind Carbon CopyMime-Version: intestazioni MIME
Posta elettronicaPosta elettronica
226
La configurazione di Sendmail è una funzione abbastanza complessa, che viene semplificata mediante l’uso di uno pseudolinguaggio denominato M4, che consente di attivare delle funzioni mediante invocazione di macro:
VERSIONID(`@(#)version.m4 8.9.1.1 (Berkeley) 7/2/98')OSTYPE(linux) tipo di sistemaMASQUERADE_AS(`miodominio.it') nome del dominio di postadefine(`confCONNECTION_RATE_THROTTLE', `2') max livello di carico accettato
sul serverdefine(`confMAX_DAEMON_CHILDREN', `200') max numero di demoni contemporaneidefine(`confMAX_MESSAGE_SIZE',`5000000') max dimensione msg define(`confMIN_FREE_BLOCKS',`100') max dimensione libera accettata
per /var/spool/mailFEATURE(`smrsh') usa una shell con funzionalità limitate FEATURE(`use_cw_filè) elenca i domini di posta accettati nel file
/etc/mail/sendmail.cwFEATURE(`always_add_domain') aggiungi il dominio agli indirizzi che ne sono priviFEATURE(`relay_entire_domain') effettua relaying per l’intero dominioFEATURE(`relay_based_on_MX') “ “ “ “ basandoti sull’MX recordFEATURE(`access_db', `hash /etc/mail/access') accetta oggetti solo dagli host
elencati nel file
sendmailsendmail
227
/etc/mail/access
cyberspammer.com 550 We don't accept mail from spammers
[email protected] 550 We don't accept mail from spammers
150.10.1.13 REJECT
151.20.0.0 OK
193.133.108.0 OK
210.205.1.2 550 We don't accept mail from spammers
sendmailsendmail
228
/etc/mail/relay-domains
miodominio.it dominio principalevhost1.it dominio di cui si fa virtualhost
vhost2.it dominio di cui si fa virtualhost
193.12.12.212 server secondario di posta
libero.it da qui le definizioni servono per POP3iol.it
tiscalinet.it
tin.it
tim.it
infinito.it
email.it
sendmailsendmail
229
/etc/mail/sendmail.cw
miodominio.it dominio principalevhost1.it dominio di cui si fa virtualhost
vhost2.it dominio di cui si fa virtualhost
...
sendmailsendmail
230
# Alias for mailer daemon
MAILER-DAEMON: [email protected]
# Aliases to handle mail to msgs and news
nobody: /dev/null
# Alias for mailer daemon
MAILER-DAEMON: postmaster@ mydom.it
# Aliases to handle mail to msgs and news
nobody: /dev/null
# Following alias is required by the new mail protocol, RFC 822
postmaster: [email protected],[email protected]
netman: [email protected], [email protected]
cert: [email protected], [email protected]
abuse: [email protected],[email protected]
# ADMIN
help: [email protected]
support: [email protected]
info: [email protected]
staff: [email protected], [email protected], [email protected], [email protected], [email protected]
/etc/aliases
sendmailsendmail
231
/etc/mail/Makefile
# Makefile per generazione db di Sendmail
#
# Osvaldo Gervasi on Apr 11, 1998
all: access.db
access.db : access
/usr/sbin/makemap hash $@ < access
clean:
@rm -f *.db *~
sendmailsendmail
232
Rispetto alle caratteristiche iniziali della posta elettronica oggi abbiamo delle importanti novità:• I messaggi vengono trasmessi in lingue diverse
dall’inglese:messaggi in lingue con character set ricco di
lettere accentate (italiano, francese, tedesco)messaggi in alfabeti non latini (ebraico, russo)messaggi in lingue prive di alfabeto (cinese,
giapponese)• molti messaggi trasportano informazioni non testuali
(come audio, video, file compressi, etc)
MIMEMIME
233
Per poter gestire queste nove esigenze è stato introdotto un nuovo standard di codifica, denominato Multipurpose Internet Mail Extensions, introdotto negli RFC1341 e RFC1521.
MIME introduce dei nuovi criteri rispetto a quelli definiti nell’RFC822, che rimane lo strumento per la definizione delle modalità di composizione di un messaggio di posta elettronica.
L’aggiunta di nuovi headers rispetto a quelli dell’RFC822 comporta che per la gestione di MIME basta aggiornare i Mail User Agent, senza intaccare il funzionamento di base della posta elettronica e il meccanismo di trasporto
MIMEMIME
234
Nuovi headers introdotti nell’RFC822 da MIME
header significato
MIME-version identifica la versione MIME
Content-Description descrive il contenuto del messaggio in forma leggibile
Content-Id identificatore del messaggio
Content-Transfer-Encoding tipo di codifica utilizzata per la trasmissione
Content-Type tipo di contenuto del messaggio.
Questo MIME-type è diventato popolarissimo ed utilizzato da altre applicazioni Internet (browser web) per identificare il tipo di contenuto associato ad un certo file, in modo da selezionare l’azione corretta da intraprendere
MIMEMIME
235
Tipi di codifica dei messaggi (1/3)
Il modo con cui viene rappresentato il messaggio di posta elettronica ha una importanza fondamentale, poiché è responsabile del buon esito dell’operazione.
I computer rappresentano le informazioni in base alle caratteristiche hardware e software, ne consegue che la stessa sequenza di informazioni binarie ha significato diverso a seconda della configurazione dell’host
La codifica più diffusa, quella ASCII (American Standard Code for Information Interchange), definito dallo standard ANSI X3.4 rappresenta l’informazione in 7 bit: è usata nei sistemi Unix e nei sistemi Windows (con differenti significati nei caratteri speciali) .
MIMEMIME
236
Tipi di codifica dei messaggi (2/3)
Un’altra codifica è EBCDIC (Extended Binary Coded Decimal Information Code), la quale utilizza 8 bit
Entrambe le codifiche sopracitate sono soggette alla limitazione ulteriore di non eccedere i 1000 caratteri di lunghezza per ciascuna riga del messaggio.
I file binari non hanno struttura basata sul record e non sono trasportabili in questo modo.
La codifica introdotta da MIME è denominata base 64, definita nell’RFC2045, la quale rappresenta una qualsiasi sequenza di bit in base alla sequenza A-Z, a-z, 0-9, +/=
La codifica produce linee lunghe al massimo 76 caratteri, offrendo quindi la massima compatibilità con i programmi di trasporto della posta elettronica.
MIMEMIME
237
Per i messaggi di testo, la codifica base 64 è inefficiente e si preferisce una codifica definita da MIME come quoted-printable encoding che è costituita dalla codifica ASCII standard, accompagnata da un criterio di rappresentazione dei caratteri con codifica superiore a 127 (carattere = seguito da due cifre esadecimali)
L’header Content-Type è definito nell’RFC1521 ed è costituito da sette tipi e da sottotipi. Il sottotipo è separato dal tipo con il carattere /. Ad es:
Content-Type: video/mpeg
Per la lista aggiornata dei MIME-Types :
http://www.isi.edu/in-notes/iana/assignments/media-types/media-types
Tipi di codifica dei messaggi (3/3)
MIMEMIME
238
MIM
E-T
ypes
Tipo Sottotipo Ref.
Text Plain [RFC2646,RFC2046]RichText [RFC2045,RFC2046]html [RFC2854] xml [RFC3023]sgml [RFC1874]
Image Gif [RFC2045,RFC2046]
Jpeg [RFC2045,RFC2046]Audio Basic [RFC2045,RFC2046]Video Mpeg [RFC2045,RFC2046]Application Octet-stream [RFC2045,RFC2046]
Postscript [RFC2045,RFC2046]Message Rfc822 [RFC2045,RFC2046]
Partial [RFC2045,RFC2046]External-body [RFC2045,RFC2046]http [RFC2616]news [RFC1036]
Multipart Mixed [RFC2045,RFC2046]Alternative [RFC2045,RFC2046]Parallel [RFC2045,RFC2046]Digest [RFC2045,RFC2046]
MIMEMIME
239
Posta elettronica
Simple Mail Transfer Protocol (SMTP)
Post Office Protocol (POP)
Interactive Mail Access Protocol (IMAP)
SommarioSommario
240
Il trasporto dei messaggi di posta elettronica avviene utilizzando il Simple Mail Transfer Protocol (SMTP), definito nell’RFC821
Il suo obiettivo è trasferire i messaggi di posta elettronica in modo affidabile e efficiente.
Caratteristica dell’SMTP è la capacità di trasportare mail attraverso diversi ambienti di servizi di trasporto.
Un servizio di trasporto fornisce un interprocess communication environment (IPCE).
L’invio di messaggi di posta elettronica avviene indipendentemente dal tipo di rete: consiste nello scambio di dati tra due IPCE
SMTPSMTP
241
Come risultato di una richiesta di posta dell’utente viene attivato un canale di comunicazione bidirezionale (sul port number 25) tra il server SMTP trasmettitore ed il server SMTP ricevente
Il server SMTP ricevente può essere il destinatario finale o un server intermedio.
I comandi SMTP sono generati dal server SMTP trasmettitore ed inviati al server SMTP ricevente.
Le risposte SMTP sono generate dal ricevente in risposta ai comandi SMTP ed inviate al trasmettitore
SMTPSMTP
242
Utente
File System
senderSMTP
receiverSMTP
File System
SMTPCommands
/Replies
and Mail
SMTPSMTP
243
Una volta attivato il canale trasmissivo, l’SMTP-sender invia il comando MAIL indicando colui che invia il mail. Se il ricevente può ricevere mail risponde con OK
Il sender invia il comando RCPT identificando il recipient del mail; se il ricevente può ricevere mail per quel recipient risponde con OK, altrimenti risponde con un codice di reject del recipient (non della sessione mail). I due SMTP server possono scambiarsi diversi recipient.
Il server SMTP invia i dati del mail, terminando con una sequenza speciale. Se il receiver interpreta correttamente i dati, risponde con OK.
Il dialogo è volutamente a passi bloccanti, uno alla volta.
SMTPSMTP
244
L’argomento del comando MAIL indica chi manda il mail (crea un reverse-path implementando una return route, sulla quale verranno istradati eventuali messaggi di errore)
L’argomento del comando RCPT indica invece chi è il destinatario del mail (crea un forward-path implementando una source route)
Quando un messaggio è inviato a più utenti, viene inviata una sola copia per tutti i destinatari di uno stesso host.
I comandi di mail hanno una sintassi rigida, così come i codici di errore.
SMTPSMTP
245
Comandi SMTP
HELO <SP> <domain> <CRLF>MAIL <SP> FROM:<reverse-path> <CRLF>RCPT <SP> TO:<forward-path> <CRLF> DATA <CRLF>RSET <CRLF>SEND <SP> FROM:<reverse-path> <CRLF>SOML <SP> FROM:<reverse-path> <CRLF> SAML <SP> FROM:<reverse-path> <CRLF> VRFY <SP> <string> <CRLF>EXPN <SP> <string> <CRLF>HELP [<SP> <string>] <CRLF> NOOP <CRLF>QUIT <CRLF>TURN <CRLF>
SMTPSMTP
246
500 Syntax error, command unrecognized [This may include errors such as command line too long]
501 Syntax error in parameters or arguments
502 Command not implemented
503 Bad sequence of commands
504 Command parameter not implemented
211 System status, or system help reply 214 Help message [Information on how to use the receiver or the meaning of a particular non-
standard command; this reply is useful only to the human user] 220 Service ready
221 Service closing transmission channel
421 Service not available, closing transmission channel [This may be a reply to any command if the service knows it must shut down]
250 Requested mail action okay, completed
251 User not local; will forward to
450 Requested mail action not taken: mailbox unavailable [E.g., mailbox busy]
550 Requested action not taken: mailbox unavailable [E.g., mailbox not found, no access]
451 Requested action aborted: error in processing
551 User not local; please try
452 Requested action not taken: insufficient system storage
552 Requested mail action aborted: exceeded storage allocation
553 Requested action not taken: mailbox name not allowed [E.g., mailbox syntax incorrect]
354 Start mail input; end with .
554 Transaction failed
Reply codes
SMTPSMTP
247
Ordine dei comandi
Il primo comando deve essere HELO, tale comando può essere riimmesso anche successivamente. Se l’argomento non è accettabile viene ritornato un errore 501 failure
I comandi NOOP, HELP, EXPN, VRFY possono essere utilizzati ovunque nella sessione
I comandi MAIL, SEND, SOML o SAML iniziano una transazione di mail, per l’invio del messaggio. Deve esserre seguito da uno o più comandi RCPT e dal comando DATA, nell’ordine. Dopo l’immissione del testo del messaggio deve seguire la sequenza <CRLF>.<CRLF> . Una transazione può essere abortita col comando RSET
L’ultimo comando è QUIT, che non può essere usato un nessun altro momento della sessione.
SMTPSMTP
248
Apertura:R: 220 BBN-UNIX.ARPA Simple Mail Transfer Service Ready
S: HELO USC-ISIF.ARPA
R: 250 BBN-UNIX.ARPA
Chiusura:S: QUIT
R: 221 BBN-UNIX.ARPA Service closing transmission channel
SMTPSMTP
249
S: MAIL FROM:<[email protected]>: :R: 250 OK
S: RCPT TO:<[email protected]>: R: 250 OK
S: RCPT TO:<[email protected]>: R: 550 No such user here
S: RCPT TO:<[email protected]>: R: 250 OK S: DATA R: 354 Start mail input; end with <CRLF>.<CRLF> S: Blah blah blah... S: ...etc. etc. etc. S: <CRLF>.<CRLF> R: 250 OK
SMTPSMTP
250
SMTP forward session
S: MAIL FROM:<[email protected]>: :R: 250 OK S: RCPT TO:<[email protected]>: R: 250 OK S: RCPT TO:<[email protected]>: R: 251 User not local; will forward to
<[email protected]> S: RCPT TO:<[email protected]>: R: 551 User not local; please try
<[email protected]>S: DATA R: 354 Start mail input; end with
<CRLF>.<CRLF> S: Blah blah blah... S: ...etc. etc. etc. S: <CRLF>.<CRLF> R: 250 OK
SMTPSMTP
251
SMTP verify examplesS: VRFY Smith :R: 251 User not local;
will forward to <[email protected]>
S: VRFY Jones R: 550 String does not match anything.
S: VRFY Jones :R: 551 User not local; please try
S: VRFY GourzenkyinplatzR: 553 User ambigous.
SMTPSMTP
252
Espansione (expn) di Mailing lists
(alias)
S: EXPN Example-People
R: 250-Jon Postel <[email protected]>
R: 250-Fred Fonebone <[email protected]>
R: 250-Sam Q. Smith <[email protected]>
R: 250-Quincy Smith <@USC-ISIF.ARPA:[email protected]>
R: 250-<[email protected]>
R: 250 <[email protected]>
S: EXPN Executive-Washroom-List
R: 550 Access Denied to You.
SMTPSMTP
253
S: MAIL FROM:<>R: 250 ok S: RCPT TO:<@HOSTX.ARPA:[email protected]>R: 250 ok S: DATA R: 354 send the mail data, end with . S: Date: 23 Oct 81 11:22:33 S: From: [email protected] S: To: [email protected] S: Subject: Mail System Problem S:S: Sorry JOE, your message to [email protected] Lost S: HOSTZ.ARPA said this:S: "550 No Such User" S: .
R: 250 ok
Undeliverable mail notification message
SMTPSMTP
254
Return Path and Received Time Stamps
Return-Path:<@GHI.ARPA,@DEF.ARPA,@ABC.ARPA:[email protected]>
Received: from GHI.ARPA by JKL.ARPA ; 27 Oct 81 15:27:39 PST
Received: from DEF.ARPA by GHI.ARPA ; 27 Oct 81 15:15:13 PST
Received: from ABC.ARPA by DEF.ARPA ; 27 Oct 81 15:01:59 PST
Date: 27 Oct 81 15:01:01 PST
From: [email protected]
Subject: Improved Mailing System Installed
To: [email protected] This is to inform you that ...
SMTPSMTP
255
Posta elettronica
Simple Mail Transfer Protocol (SMTP)
Post Office Protocol (POP)
Interactive Mail Access Protocol (IMAP)
SommarioSommario
256
La diffusione dei PC sia nell’ambiente di lavoro che per uso domestico ha reso popolare l’accesso a server di posta elettronica remoti, mediante un opportuno protocollo che gestisca la comunicazione tra server e client. Post Office Protocol, noto come POP3, definito nell’RFC1225 realizza questa funzione.
E’ un’applicazione client-server che consente al client di ricevere nuovi messaggi, cancellare i messaggi presenti sul server SMTP, mentre l’invio di posta avviene via SMTP
POP3POP3
257
L’interazione del client avviene con il server POP3, il quale dialoga con il server SMTP (chiamato Message Transport System, MTS)
Il server è in ascolto sulla porta 110. Quando un client chiede il servizio, apre una
connessione TCP/IP. A connessione avvenuta il server invia un messaggio di benvenuto.
Client e server si scambiano comandi e risposte, rispettivamente, fino alla chiusura della sessione.
I comandi sono composti da una keyword e da un eventuale argomento e terminano con un doppio CRLF.
POP3POP3
258
Le risposte sono caratterizzate da indicatori di stato e da keyword eventualmente seguite da ulteriori informazioni, terminanti con un doppio CRLF
Ci sono due indicatori: positivo ("+OK") e negativo ("-ERR").
La sessione attraversa diversi stadi:• dopo il messaggio di benvenuto, la sessione entra nella fase
di AUTHORIZATION, nella quale il client fornisce login e password (in chiaro!)
• Superata positivamente questa fase si passa ad una fase di TRANSACTION nella quale il client richiede azioni al server
• Alla fine, la sessione entra nella fase UPDATE, nella quale vengono rilasciate le risorse acquisite e la sessione si chiude.
POP3POP3
259
Comandi TRANSACTION:STAT fornisce numero di msg e dimensione in byte
LIST [msg] elenca msgid e dimensione dei(l) msg
RETR msg riceve msg
DELE msg marca msg come cancellato
NOOP non fa nulla
LAST indica il più alto msgid acceduto
RSET se ci sono msg marcati per essere cancellati, viene tolta detta marcatura
Comandi UPDATE:QUIT chiude la connessione
POP3POP3
260
Esempio di AUTHENTICATION
C: USER mrose
S: +OK mrose is a real hoopy frood
C: PASS secret
S: +OK mrose’s maildrop has 2 messages (320 octets) ...
C: USER mrose
S: +OK mrose is a real hoopy frood
C: PASS secret
S: -ERR unable to lock mrose’s maildrop, file already locked
POP3POP3
261
Esempio di TRANSACTION
C: LIST
S: +OK 2 messages (320 octets)
S: 1 120
S: 2 200
S: . ...
C: LIST 2
S: +OK 2 200 ...
C: LIST 3
S: -ERR no such message, only 2 messages in maildrop
POP3POP3
262
Esempio di TRANSACTIONC: STAT S: +OK 4 320 C: LAST S: +OK 1 C: RETR 3 S: +OK 120 octets S: <the POP3 server sends the entire message here> S: . C: LAST S: +OK 3 C: DELE 2 S: +OK message 2 deleted C: LAST S: +OK 3 C: RSET S: +OK C: LAST S: +OK 1
POP3POP3
263
Posta elettronica
Simple Mail Transfer Protocol (SMTP)
Post Office Protocol (POP)
Interactive Mail Access Protocol (IMAP)
SommarioSommario
264
L’IMAP è definito (v2) nell’RFC1064 e poi (v4) nell’RFC2060.
E’ un metodo per l’accesso dinamico alle mailbox ed alle news di server centrali, da parte di PC e stazioni mobili.
IMAP4 è molto più efficiente di POP3 quando più client accedono al server per la stessa mailbox.
IMAPIMAP
265
IMAP è stato sviluppato nel 1986 presso Stanford University, ma solo dopo una decade ha attratto l’interesse delle Software House.
Il servizio IMAP usa la porta 143 del TCP/IP.
E’ dotato di potenti strumenti di ricerca delle informazioni e di gestione delle informazioni multimediali (MIME)
IMAPIMAP
266
IMAP associa ai messaggi dei System flag, che ne definiscono alcuni attributi:
\Seen Message has been read
\Answered Message has been answered
\Flagged Message is "flagged" for urgent/special attention
\Deleted Message is "deleted" for removal by later EXPUNGE
\Draft Message has not completed composition (marked as a draft).
\Recent Message is "recently" arrived in this mailbox. This session is the first session to have been notified about this message; subsequent sessions will not see \Recent set for this message. This flag can not be altered by the client. If it is not possible to determine whether or not this session is the first session to be notified about a message, then that message SHOULD be considered recent. If multiple connections have the same mailbox selected simultaneously, it is undefined which of these connections will see newly-arrives messages with \Recent set and which will see it without \Recent set.
IMAPIMAP
267
IMAPIMAP
initial connection and server greeting
non-authenticated
authenticated
selected
logout and close connection
(1) (2) (3)
(4)
(5) (6)
(7)
(7)
(1) connection without pre-authentication (OK greeting)
(2) pre-authenticated connection (PREAUTH greeting)
(3) rejected connection (BYE greeting)
(4) successful LOGIN or AUTHENTICATE command
(5) successful SELECT or EXAMINE command
(6) CLOSE command, or failed SELECT or EXAMINE command
(7) LOGOUT command, server shutdown, or connection closed
268
IMAP auth. example
S: * OK KerberosV4 IMAP4rev1 Server
C: A001 AUTHENTICATE KERBEROS_V4
S: + AmFYig==
C: BAcAQU5EUkVXLkNNVS5FRFUAOCAsho84kLN3/IJmrMG+25a4DT +nZImJjnTNHJUtxAA+o0KPKfHEcAFs9a3CL5Oebe/ydHJUwYFd WwuQ1MWiy6IesKvjL5rL9WjXUb9MwT9bpObYLGOKi1Qh
S: + or//EoAADZI=
C: DiAF5A4gA+oOIALuBkAAmw==
S: A001 OK Kerberos V4 authentication successful
IMAPIMAP
269
<message set> Messages with message sequence numbers corresponding to the specified message sequence number set
ALL All messages in the mailbox; the default initial key for ANDing.
ANSWERED Messages with the \Answered flag set.
BCC <string> Messages that contain the specified string in the envelope structurès BCC field.
BEFORE <date> Messages whose internal date is earlier than the specified date.
BODY <string> Messages that contain the specified string in the body of the message.
CC <string> Messages that contain the specified string in the envelope structurès CC field.
DELETED Messages with the \Deleted flag set.
DRAFT Messages with the \Draft flag set.
FLAGGED Messages with the \Flagged flag set.
FROM <string> Messages that contain the specified string in the envelope structurès FROM field.
HEADER <field-name> <string> Messages that have a header with the specified field-name (as defined in [RFC-822]) and that contains the specified string in the [RFC-822] field-body.
IMAPIMAP
270
KEYWORD <flag> Messages with the specified keyword set.
LARGER <n> Messages with an [RFC-822] size larger than the specified number of octets.
NEW Messages that have the \Recent flag set but not the \Seen flag. This is functionally equivalent to "(RECENT UNSEEN)".
NOT <search-key> Messages that do not match the specified search key. OLD Messages that do not have the \Recent flag set. This is functionally equivalent to "NOT RECENT" (as opposed to "NOT NEW").
ON <date> Messages whose internal date is within the specified date.
OR <search-key1> <search-key2> Messages that match either search key.
RECENT Messages that have the \Recent flag set.
SEEN Messages that have the \Seen flag set.
SENTBEFORE <date> Messages whose [RFC-822] Date: header is earlier than the specified date.
SENTON <date> Messages whose [RFC-822] Date: header is within the specified date.
SENTSINCE <date> Messages whose [RFC-822] Date: header is within or later than the specified date.
SINCE <date> Messages whose internal date is within or later than the specified date.
IMAPIMAP
271
SMALLER <n> Messages with an [RFC-822] size smaller than the specified number of octets.
SUBJECT <string> Messages that contain the specified string in the envelope structurès
SUBJECT field. TEXT <string> Messages that contain the specified string in
the header or body of the message. TO <string> Messages that contain the specified string in the envelope structurès
TO field. UID <message set> Messages with unique identifiers
corresponding to the specified unique identifier set. UNANSWERED Messages that do not have the \Answered flag set. UNDELETED Messages that do not have the \Deleted flag set. UNDRAFT Messages that do not have the \Draft flag set. UNFLAGGED Messages that do not have the \Flagged flag set. UNKEYWORD <flag> Messages that do not have the specified
keyword set. UNSEEN Messages that do not have the \Seen flag set.
IMAPIMAP
272
S: * OK SUMEX-AIM.Stanford.EDU Interim Mail Access Protocol II Service 6.1(349) at Thu, 9 Jun 88 14:58:30 PDT
U: a001 login crispin secret S: a002 OK User CRISPIN logged in at Thu, 9 Jun 88 14:58:42 PDT, job 76 U: a002 select inbox S: * FLAGS (Bugs SF Party Skating Meeting Flames Request AI Question Note \XXXX \YYYY \Answered
\Flagged \Deleted \Seen) S: * 16 EXISTS S: * 0 RECENT S: a002 OK Select complete U: a003 fetch 16 all S: * 16 Fetch (Flags (\Seen) InternalDate " 9-Jun-88 12:55: RFC822.Size 637 Envelope ("Sat, 4
Jun 88 13:27:11 PDT" "INFO-MAC Mail Message" (("Larry Fagan" NIL "FAGAN" "SUMEX-AIM.Stanford.EDU")) (("Larry Fagan" NIL "FAGAN" "SUMEX-AIM.Stanford.EDU")) (("Larry Fagan" NIL "FAGAN" "SUMEX-AIM.Stanford.EDU")) ((NIL NIL "rindflEISCH" "SUMEX-AIM.Stanford.EDU")) NIL NIL NIL "<[email protected]>"))
S: a003 OK Fetch completed U: a004 fetch 16 rfc822 S: * 16 Fetch (RFC822 637 S: Mail-From: RINDFLEISCH created at 9-Jun-88 12:55:43 S: Mail-From: FAGAN created at 4-Jun-88 13:27:12 S: Date: Sat, 4 Jun 88 13:27:11 PDT S: From: Larry Fagan <[email protected]> S: To: [email protected] S: Subject: INFO-MAC Mail Message S: Message-ID: <[email protected]> S: ReSent-Date: Thu, 9 Jun 88 12:55:43 PDT S: ReSent-From: TC Rindfleisch <[email protected]> S: ReSent-To: [email protected], [email protected] S: ReSent-Message-ID: <[email protected]> S:S: The file is <info-mac>usenetv4-55.arc ... S: Larry S: ------- S: ) S: pa004 OK Fetch completed U: a005 logout S: * BYE DEC-20 IMAP II server terminating connection S: a005 OK SUMEX-AIM.Stanford.EDU Interim Mail Access Protocol Service logout
IMAPIMAP
273
Posta elettronica privata
PGP
News
NNTP
SommarioSommario
274
Per molte applicazioni è necessario garantire a priori la segretezza dei messaggi di posta elettronica
La crittografia e i certificati digitali consentono di fornire questa possibilità
Vecchi norme restrittive sulla possibilità di esportare algoritmi di crittografazione stanno progressivamente venendo meno
Posta elettronica privataPosta elettronica privata
275
Il software più popolare è Pretty Good Privacy (PGP)
Esiste GnuPG, che è la versione GPL che implementa questa funzione
Posta elettronica privataPosta elettronica privata
276
Requisiti essenziali
Accesso al server: Firewall
Autenticazione (Server <=> Browser)
Confidenzialità (Encryption)
Integrità (Checksum, codici di autenticazione dei
messaggi)
Non ripudiabilità (firma elettronica)
277
Autenticazione via HTTPAutenticazione via HTTP
278
Encryption technology
Private key encryption (DES)
• Stessa chiave per encryption e decryption
• Entrambi i partner devono conoscere la chiave
Public key encryption (RSA)
• Ciascuno ha una coppia di chiavi univoca
• Le chiavi sono collegate nel crypt/decrypt
• una chiave è resa pubblica, l’altra è tenuta
segreta (privata)
279
Shared key encryption
280
Public key encryption
281
Public key encryption
• Confidentiality: Yes• Authentication: Yes• Non repudiation: No
282
Public key encryption (digital
signatures)
• Confidentiality: No• Authentication: No• Non repudiation: Yes
283
Public key encryption (digital
signatures and confidentiality)
• Confidentiality: Yes• Authentication: Yes• Non repudiation: Yes
284
Posta elettronica privata
PGP
News
NNTP
SommarioSommario
285
PGP
Pretty Good Privacy (public key encryption for the masses)
http://www.pgp.comhttp://www.pgp.com
L’algoritmo di cifratura di Philip Zimmermann ha problemi legali: in Europa dobbiamo usare la versione internazionale disponibile a:
http://www.ifi.uio.no/pgphttp://www.ifi.uio.no/pgp
GnuPG è sviluppato nell’ambito del progetto Gnu e soggetto nella licenza GPL
http://www.gnupg.orghttp://www.gnupg.org
286
PGP
E’ un software disponibile in una forma free ed in una versione commerciale (PGP Inc) che consente la crittografazione, la firma digitale e la compressione dei messaggi di posta elettronica
Inventore è Phil Zimmermann E’ multipiattaforma (DOS/Windows, Unix,
MacIntosh) E’ stato il software che più duramente osteggiato
le restrizioni nell’esportazione degli algoritmi di cifratura da parte del governo degli Stati Uniti.
E’ stato accusato di violazione del brevetto dell’RSA
287
PGP
PGP si basa su una coppia di chiavi, denominate pubblica e privata.
La chiave privata deve rimanere nascosta e protetta
Per scambiare posta cifrata occorre conoscere la chiave pubblica del destinatario
E' un sistema di cifratura ibrida
Usa algoritmi di crittografazione esistenti: RSA, IDEA, MD5
288
PGP
Invio del messaggio:• PGP sintetizza il messaggio con MD5• PGP crea una session key, una chiave privata che ha
validità per la sola sessione (one-time-only secret key) dato da un numero generato in maniera random (es. in base al movimento del mouse);
• Il testo in chiaro viene cifrato usando la session key con un algoritmo di cifratura a chiave privata
• La session key viene a sua volta crittografata usando la chiave pubblica del destinatario e aggiunta al testo crifrato in trasmissione verso il destinatario
Ricezione del messaggio• Si effettuano le operazioni in maniera inversa all'invio• Utilizzando la propria chiave privata il destinatario può
decifrare la session key e di conseguenza riottenere il testo del messaggio in chiaro
289
PGP
Anche se qualcuno intercettasse il messaggio e conoscesse la chiave pubblica del mittente, la sintesi MD5 protegge la sicurezza del messaggio stesso.
sintesi e messaggio cifrato sono concatenati e compressi con un algoritmo di ZIP di Ziv-Lempel
Il messaggio viene poi cifrato con IDEA, utilizzando la chiave publica del destinatario (l’operazione inversa lato destinatario, avrà bisogno della sua chiave privata)
Il ridultato è codificato in base64, secondo lo standard MIME
PGP è efficiente anche solo per la firma digitale dei messaggi
290
PGP
Le chiavi utilizzate per la cifratura e la firma digitale sono la parte fondamentale del PGP
Il sistema consente di mantenere queste chiavi in due file chiamati:• pubring: l’insieme delle chiavi pubbliche delle persone con cui si
vuole corrisponedere• privring: le chiavi private associate ciascuna ad un indirizzo di
email Il servizio di condivisione delle chiave pubbliche è
chiamato PKI infrastructure
291
PGP: aspetti politici e legali
Alcuni paesi hanno recentemente siglato un accordo internazionale che va sotto il nome di accordo di Wassenaar che impegna i sottoscrittori a inibire nei propri paesi l’uso della crittografia (es: la Francia)
Echelon, meglio noto come il Grande Fratello: l’infrastruttura anglo-americana per l’intercettazione di tutte le comunicazioni
292
Posta elettronica privata
PGP
News
NNTP
SommarioSommario
293
USENET News
Le USENET News sono organizzate in gruppi di discussione gerarchici (con la radice nella parte più a sinistra del nome, ad es:
comp.unix.aix Un gruppo rappresenta un luogo di discussione su un
dato argomento Chi è interessato ad un dato argomento normalmente si
iscrive al gruppo di discussione, in modo che il client riceva dal server la lista dei messaggi del gruppo.
Il corpo della news viene scaricato sul client solo al momento in cui l’utente lo accede!
Le USENET News vanno lette dall’utente: non si ricevono nella mailbox come l’email!
294
News
295
Gruppo comp
296
Gruppo comp.database
297
Gruppo comp.database.oracle
298
Messaggio in comp.database.oracle
299
Ricerca nei newsgroup
Ricerca delle
parole Globus
e Grid
300
Messaggio in comp.parallel
301
Accesso con un software specifico
News server
302
MS Outlook
303
MS Outlook
304
MS Outlook lettura
messaggio da comp.windows.x.kde
305
News
Le potenzialità che lo strumento ha messo a disposizione degli utenti è assolutamente incommensurabile: nessuna altra tecnologia è stata in grado di produrre una massa così articolata e massiccia come le Usenet News!
Si è sviluppata tutta una serie di modi di dire, originati in questo ambiente:• BTW (By The Way, a proposito)• ROFL (Rolling On The Floor Laughing, rotolarsi dalla
risate)• IMHO (In My Humble Opinion, secondo il mio modesto
parere)• FAQ (Frequently Asked Questions, domande frequenti)
306
Fino qui
307
News smiley o emoticon
standard
:-) Your standard smiley face. User is happy, or just made a mildly sarcastic comment
:-( Sad face
;-) Winky face - expressing a flirtatious or sarcastic remark.
:-> User just made an especially mean or sarcastic comment - more powerful than :-) or ;-)
>:-) Grinning devil - either the user is a Marilyn Manson fan or they just made an extremely devilish comment. More powerful than :->.
>;-> Winking devil - Eep! User just made a very, very mean or evil comment. Strongest of them all.
O:-) User is angelic/just made a sweet and innocent remark
:-O Yelling or shocked. Can be typed in bold for extra impact.
:-I Indifferent
308
:^) Profile smiley. =) Variation on a classic. #-) What a night!/has been staring at a computer screen for 5 hours straight :-$ Put your money where your mouth is! :-P or :-p or :-6 Sticking tongue out (Na, na, na na na!) :-P~~ Blowing a raspberry :-9 Yum! :-@ Screaming/swearing/about to hurl :*) Drunk :-# or :-X An emoticon of many meanings - being smacked in the mouth/wears braces/kiss/my lips are
sealed 8-) or B-) or ::-) Wearing glasses B:-) Wearing glasses on head R-) Broken glasses (:-) Bald/wearing a bike helmet :- Wears lipstick :-) Has a moustache and a toupee @:-) Wears a turban $-) Yuppie/just won a large sum of money :-T Keeping a straight face/tight lipped :-y Said with a smile :'-( or :~-( Crying :-Q or :-! Smoker %-/ Hangover |-O Bored/yawn =:-) Hosehead/punk :-D Big mouth/grinning :+) Big nose [:-) Walkman ;^) Smirking (:-D Blabbermouth :-& Tongue tied :-S Just made a statement that didn't make sense :-/ Skeptical :-C Very, very sad %-/ braindead <:-| Dunce/just made a stupid statement :-8( Condescending 8-# Dead :@ or : What? []:* Hugs & kisses!
News: smiley o emoticon standard
309
News: modalità
Quando un utente invia un messaggio, si dice che effettua un post, in alcuni casi i messaggi vengono inviati a diversi gruppi di discussione: in questo caso si parla di crosspost
I gruppi hanno una principale caratteristica inerente la possibilità di inviare messaggi liberamente o meno: alcuni gruppi sono moderati, il che vuol dire che una volta inviato il messaggio viene inviato al moderatore, il quale lo vaglia ed eventualmente lo pubblica.
Con questa modalità si ottengono dei gruppi con altissima qualità, ma scarsa spontaneità
La Netiquette impone di non inviare materiale al gruppo che non sia coerente con le finalità del gruppo stesso
310
News: modalità
Per l’apertura di un newsgroup serio, occorre attivare una particolare procedura per la raccolta dei consensi (CFV, call for votes) attivata da un messaggio in news.group che definisce le finalità del gruppo di discussione e se deve o no essere moderato. Una volta raccolta la quantità di adesioni necessaria, il newsgroup viene attivato
Non seguono questa procedura i gruppi della gerarchia alt, nella quale ognuno attiva i gruppi che vuole. Questa gerarchia è il posto dove si trova di tutto, spesso con del materiale che è persino al limite della legalità
311
News: funzionamento
I messaggi delle Usenet News vengono inviati dagli utenti ai rispettivi server ai quali si collegano.
Il server che riceve il messaggio invia il messaggio a tutti gli altri server di Internet (con meccanismo di store and forward) trasmettendolo ai suoi server prossimi, i quali lo invieranno ai loro server prossimi, e così via… Questo meccanismo è chiamato newsfeed
I messaggi rimangono archiviati nel server (secondo un’organizzazione ad albero ottenuta mediante directories) fino alla data di scadenza (policy definita localmente), momento nel quale vengono fisicamente cancellati dal server stesso.
312
News: funzionamento
Le Usenet News sono l'applicazione più pesante ancora presente in rete, specie se si ricevono molti gruppi di discussione.
I molti casi vengono usati a questo scopo dei link satellitari, che ben si prestano a questa funzione.
I messaggi Usenet News hanno una struttura molto simile a quella definita dall’RFC822, che definisce la struttura dei messaggi di email.
I messaggi Usenet News vengono scambiati tra i server utilizzando il Network News Transfer Protocol (NNTP)
313
Posta elettronica privata
PGP
News
NNTP
SommarioSommario
314
NNTP
NNTP è definito dal RFC977 Il server News più popolare oggi è INN, scritto
da Rich Salz e mantenuto dall’Internet Software Consortium.
La connessione TCP usa la porta 119. NNTP è modellato sul RFC850, che definisce le
caratteristiche del sistema USENET News. NNTP specifica un protocollo per la distribuzione,
l’interrogazione, l’accesso e l’invio di articoli news, utilizzando un affidabile modello client-server.
Quando un server ha un nuovo messaggio informa tutti gli altri server attraverso il comando IHAVE
315
Principali comandi NNTP
LIST , lista di tutti i gruppi e articoliNEWSGROUP data ora , lista dei gruppi creati dopo la
data specificata.GROUP grp , lista degli articoli in grpNEWNEWS grps data ora , lista degli articoli dai gruppi
specificati dopo la data indicata
ARTICLE id , retrieve dell’articoli indicatoPOST , invio di un articolo IHAVE id , ho l’articolo id : lo vuoi?QUIT , termina la sessione
316
World Wide WebWorld Wide Web
317
HTTP (Hyper Text Transfer Protocol)
Linguaggio Java e il web
Commercio elettronico
Secure Web
SommarioSommario
318
World Wide Web
Il World Wide Web (WWW) è un’architettura software che consente di accedere a documenti tra loro collegati e distribuiti su migliaia di macchine nell’Internet globale.
Per molte persone oggi il WWW è Internet Il principale motivo del successo del WWW è quello di
avere realizzato un’interfaccia grafica facile e piacevole da utilizzare, in grado di consentire l’accesso facile e immediato ai Servizi Internet, prescindendo dalle specificità e dalle complessità dei singoli servizi
Il WWW nasce al CERN (che è situato a Ginevra, in Svizzera) nel 1989, grazie a Tim Berners-Lee
E’ l’unico servizio Internet che nasce al di qua dell’oceano!
319
Browser WWW
Il primo browser, Mosaic, viene sviluppato presso il National Center for Supercomputing Applications (NCSA) nel 1993.
Il successo di Mosaic è tale che nel 1994 Marc Andreessen lascia NCSA e fonda Netscape Corp. per lo sviluppo di servizi per il Web
Nel 1994 CERN e Massachusetts Institute of Technology (MIT) fondano il World Wide Web Consortium (W3C, http://www.w3.org) avente la finalità di coordinare lo sviluppo delle tecnologie Web
Tim Berners-Lee diventa direttore del W3C, che diventa la struttura di riferimento per lo sviluppo del Web
320
Hypermedia
Con l’avvento del World Wide Web i concetti di ipertesto (documenti relazionati tra loro e strutturati in modo da consentire la navigazione attraverso lo spazio informativo, che introducono il concetto di link, che è lo strumento con cui si passa da un documento ad un altro) e multimedialità (diverse tipologie di informazioni integrate tra loro, ed es: suoni immagini, filmati) evolvono in quello di ipermedialità.
Per ipermedialità si intende la multimedialità distribuita nella rete Internet mondiale ed acceduta mediante hyperlinks
La crescita di Internet fa si che gli utenti diventano sempre più abituati al web, alla videoconferenza e alle tecniche ipermediali
Fondamentale per realizzare il telemarketing ed il commercio elettronico
321
Il protocollo HTTP
L’HyperText Transfer Protocol (HTTP) è un protocollo a livello applicativo per realizzare sistemi informativi distribuiti ipermediali e collaborativi.
HTTP è utilizzato dal World Wide Web dal 1990. La versione HTTP/0.9 è stato un semplice protocollo
per il trasferimento di dati grezzi sulla rete Internet La versione HTTP/1.0, definita dall’RFC 1945, ha
migliorato il protocollo, consentendo il trasferimento di messaggi di tipo MIME, introducendo delle varianti nella semantica delle richieste e delle risposte. Questa versione non teneva nel giusto conto gli effetti dei proxy gererchici, del processo di caching, della necessità di connessioni persistenti o dei virtual host.
322
HTTP
La versione HTTP/1.1 costituisce il definitivo consolidamento del protocollo e garantisce una implementazione stabile delle sue caratteristiche.
HTTP fornisce un insieme aperto di metodi per specificare lo scopo di una richiesta e fornisce attraverso la Unified Resource Location (URL) o Identifier (URI) o Name (URN) un modo per identificare la risorsa alla quale il metodo deve essere applicato (es: http://www.unipg.it).
HTTP è utilizzato come protocollo generico per la comunicazione tra agenti, proxy, gateway di altri sistemi informativi (SMTP, NNTP, FTP, Gopher, WAIS).
323
HTTP
Il protocollo HTTP è di tipo richiesta/risposta senza stato.
Un client invia la richiesta ad un server sotto forma di • Metodo di richiesta (URI) • Versione del protocollo • Messaggio di tipo MIME contenente la richiesta • Informazioni del client • Corpo del messaggio
Il server risponde con:• Una linea di stato• Versione del protocollo del messaggio• Codice di errore o successo• Messaggio di tipo MIME contenente le informazioni del
server• Metainformazioni • Corpo del messaggio
324
HTTP
Richiesta del client: GET http://www.unipg.it/pub/test.html HTTP/1.1
Risposta dal server: HTTP/1.1 200 OK
Date: Mon, 16 Dec 2002 07:31:16 GMT Server: Apache/1.3.12 (Unix) tomcat/1.0 Last-Modified: Son, 15 Dec 2002 14:57:00 GMT ETag: "fc00-2b03-3c34713c" Accept-Ranges: bytes Content-Length: 11011 Connection: close Content-Type: text/html
<html> <head> <title> Titolo pagina </title></head> <body bgcolor="#12658E">
... ... </body> </html>
325
HTTP
Esempio di comunicazione tramite HTTP tra un client e un server Web
326
HTTP: requisiti
Il protocollo usa 3 parole per definire il significato di ogni particolare requisito:
• MUST: indica che l’oggetto è un requisito assoluto della specifica
• SHOULD: l’oggetto è raccomandato, ciò vuol dire che anche se esistono circostanze in cui può essere ignorato, la piena implementazione supporta l’oggetto e sono chiare le implicazioni derivanti dal fatto di non supportarlo.
• MAY: indica che l’oggetto è realmente opzionale. Una particolare implementazione del protocollo può implementae l’oggetto, un’altra no.
327
HTTP: terminologia (1/5)
La specifica dell’HTTP/1.1 (RFC 2068) usa una serie di termini che descrivono il ruolo dei partecipanti e gli oggetti di una sessione HTTP:• connection: un circuito virtuale stabilito tra due programmi a livello
di protocollo di trasporto e realizzato con lo scopo di comunicare• message: l’unità di base di una comunicazione HTTP, consistituita da
una sequenza di byte conformi alla sintassi HTTP, trasmessi attraverso la connessione
• request: un messaggio di richiesta HTTP• response: un messaggio di risposta HTTP• resource: un oggetto o un servizio identificabile in rete attraverso
una URI. Le risorse possono essere disponibili in rappresentazioni multiple (diversi linguaggi, formati di dati, dimensioni, risoluzione).
• entity: L’informazione trasferita come carico di una risposta o di una richiesta. L’entity è rappresentata da metainformazioni nella forma o di entity-headers o di entity-body.
328
HTTP: terminologia (2/5)
• representation: una entità inclusa in una risposta, soggetta alla negoziazione di contenuti. Possono esistere diverse rappresentazioni associate con un particolare stato della risposta.
• content negotiation: il meccanismo per selezionare la rappresentazione appropriata, nel momento in cui si serve una richiesta.
• variant: una risorsa può avere una o più di una rappresentazione associata ad essa in un certo istante. Ciascuna rappresentazione è chiamata variante.
• client: un programma che stabilisce una connessione con lo scopo di inviare richieste
• user agent: il client che inizia una richiesta. Sono in genere strumenti dell’utente finale (browser, editor, spider, etc)
• server: un programma applicativo che accetta connessioni con lo scopo di servire delle richieste inviando delle risposte. Ogni programma può essere capace di essere sia client che server; l’uso di questi termini riguarda il ruolo giocato dal programma in una data connessione, invece delle sue capacità in generale.
329
HTTP: terminologia (3/5)
• origin server: il server in cui la risorsa risiede o è creata.• proxy: un programma intermedio che agisce sia da client che da
server con lo scopo di effettuare richieste per terzi. La richiesta può essere servita internamente o girata ad altri server.
• gateway: un server che agisce da intermediario per altri server. Al contrario del proxy, il gateway riceve richieste come se fosse il server di origine per la risorsa richiesta; il client richiedente può non realizzare di comunicare con un gateway.
• tunnel: un programma intermedio che funge da collegamento cieco tra due connessioni. Una volta attivo, il tunnel non è considerato parte attiva della comunicazione HTTP. Il tunnel cessa di esistere quando le connessioni collegate sono chiuse.
• cache: una memoria locale del programma contenete messaggi di risposta ed il sottosistema che controlla la memorizzazione dei messaggi, il loro reperimento e la loro cancellazione. Una cache memorizza le risposte memorizzabili al fine di ridurre i tempi di risposta ed il consumo della banda passante per richieste future equivalenti. Sia client che server possono includere una cache, ad eccezione di un tunnel
330
HTTP: terminologia (4/5)
• cachable: una risposta è cacheable se la cache può memorizzare una copia del messaggio di risposta per utilizzarla nelle risposte a successive richieste. L’uso della copia in cache è soggetto comunque anche ad altri criteri.
• first-hand: Una risposta è first-hand se proviene direttamente dal server di origine, senza passare per proxy.
• explicit expiration time: il tempo a cui il server di origine intende non più valida un’entità in cache, senza che abbiano luogo ulteriori procedure di validazione.
• heuristic expiration time: un tempo assegnato arbitrariamente dalla cache quando non sia disponibile un explicit expiration time.
• age: il tempo intercorso da quando la risposta è stata ricevuta o validata dal server di origine.
• freshness lifetime: la quantità di tempo tra la generazione della risposta ed il suo expiration time.
• fresh: una risposta che non ha ecceduto il freshness lifetime
331
HTTP: terminologia (5/5)
• stale: una risposta che ha ecceduto il suo freshness lifetime.
• semantically transparent: una cache il cui uso non modifica il comportamento del client richiedente e del server di origine. In presenza di una cache di questo tipo il client riceve esattamente lo stesso tipo di risposta (ad eccezione di qualche riga di intestazione) di quando la richiesta è processata direttamente dal server di origine.
• validator: un elemento del protocollo (nome di un’entità o last-modified time) che viene usato per valutare se un oggetto della cache è equivalente ad una entità.
332
Server Web e Scripting
server side
AppendiceAppendice
333
Pagine Web
interazione browser - web server
Browser web richiede una pagina al web server inviandogli un messaggio di richiesta HTTP (HTTP Request).
HTTP request comprende:
• Il nome del file richiesto;
• l'indirizzo Internet del browser e del web server.
Il web server interessato risponde al browser inviando un messaggio di risposta: HTTP response.
HTTP response comprende:
• L'indirizzo Internet del browser e del web server;
• il documento richiesto.
334
Una pagina statica è un documento HTML che ha sempre lo stesso contenuto ogni volta che lo si visualizza
Generalmente le pagine web statiche sono file HTML memorizzati nel web server con estensione .htm o .html
Alla ricezione di HTTP Request di una pagina statica, il web server preleva il file dal disco locale e lo invia verso il browser tramite HTTP Response
Pagine Web statiche
Che cosa fa il web server?
Cristian Dittamo, Osvaldo Gervasi, Università di Perugia 2005 1
Corso di Laurea in Informatica
Facoltà di Scienze Matematiche Fisiche e Naturali
a.a. 2004/2005
Osvaldo [email protected]
Cristian [email protected]
browser 1 - HTTP request Web server
HTML fileinternet
2 - HTTP response
335 335Cristian Dittamo, Osvaldo Gervasi, Università di Perugia 2005
Pagine Web statiche - esempio<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Architettura delle Reti di Computer</title><link href="archreti.css" rel="stylesheet" type="text/css"></head><body><div align="center"> <table width="500" border="0" cellspacing="2" cellpadding="2"> <tr> <td width="492"><div align="center"><img src="./images/titolo.jpg" width="741" height="64"></div></td> </tr> <tr> <td><div align="center"></div></td> </tr> <tr> <td class="title1"><div align="center"><strong>Facoltà di Scienze Matematiche Fisiche Naturali</strong></div></td> </tr> <tr> <td><div align="center"> <div></div> </div></td> </tr> <tr> <td><div align="center"><img src="./images/unipg_logo.gif" width="170" height="170"></div></td> </tr> <tr> <td><div align="center"></div></td> </tr> <tr> <td><div align="center" class="title2">Corso di Laurea in Informatica</div></td> </tr> <tr> <td height="26"><div align="center"></div></td> </tr> <tr> <td><div align="center"> <table width="490" border="0" cellspacing="0" cellpadding="0"> <tr class="title3"> <td><div align="center">Cristian Dittamo </div></td> <td><div align="center">Osvaldo Gervasi </div></td> </tr> <tr class="title3"> <td> </td> <td> </td> </tr> <tr class="title3"> <td><div align="center" class="title4">[email protected]</div></td> <td><div align="center" class="title4">[email protected]</div></td> </tr> </table> </div></td> </tr> </table></div></body>
336
Pagine HTML dinamiche
una pagina web dinamica è un documento HTML generato da una Applicazione Web
il contenuto può cambiare in visualizzazioni successive, in base alle informazioni inviate dal browser alla applicazione web
una applicazione web può essere realizzata mediante un linguaggio di scripting server-side
viene eseguita da un Application Server
337
Pagine HTML dinamicheChe cosa fa il web server? (1/5)
Cristian Dittamo, Osvaldo Gervasi, Università di Perugia 2005 1
Corso di Laurea in Informatica
Facoltà di Scienze Matematiche Fisiche e Naturali
a.a. 2004/2005
Osvaldo [email protected]
Cristian [email protected]
browser 1 - HTTP request Web server
internet
2 - HTTP response
serverApplication
server
ApplicazioneWeb
338
Alla ricezione di una HTTP Request per una pagina web dinamica, il Web server inoltra la richiesta all' application server.
L'application server esegue la applicazione web che genera il documento HTML. Quest'ultimo viene restituito all'application server, che provvede a passarlo indietro al web server. A questo punto il Web server produce ed invia una HTTP Response, con il documento appena generato, verso il browser.
Il browser, ricevuta la HTTP Response, visualizza il documento HTML. A questo punto l'utente può inziare ad utilizzare i controlli presenti nella pagina; alcuni di questi, es. <FORM …>, consentono all'utente di invocare il metodo POST per inviare i dati appena inseriti nella pagina al web server, in modo tale da avviare un'altra elaborazione sui nuovi dati.
Pagine HTML dinamiche
Che cosa fa il web server? (2/5)
339
Le architetture su cui si basano i Web server si suddividono in:
• architetture prefork (es. Apache 1.3.x), ad ogni richiesta ricevuta viene avviato un nuovo processo mediante fork del processo server
miglioramento adottato: non si avvia un unico server ma un pool così da ridurre i tempi di risposta
• architetture threaded (es. Apache 2.x), ad ogni richiesta viene avviato un thread o lightweight process riducendo l'overhead del processo di attivazione.
Pagine HTML dinamiche
Che cosa fa il web server? (3/5)
340
Il web server determina quale application server deve essere invocato per eseguire la richiesta dal browser, attraverso l'estensione del file richiesto e una lista di application mapping;
Ogni application mapping indica quale applicazione va eseguita per eseguire i file che hanno una determinata estensione;
Es. all'estensione
• php, la richiesta viene passata all'application server PHP,
• jsp, la richiesta viene passata all'application server Java;
• aspx, la richiesta viene passata all'ASP.NET
Se l'estenzione non è presente nella lista application mapping, la richiesta ritorna al browser senza alcuna elaborazione;
Pagine HTML dinamiche
Che cosa fa il web server? (4/5)
341
Il processo, lato server, che inizia alla ricezione di una HTTP request e termina all'invio di una HTTP Response è detto round trip.
Al termine di un round trip:
• Termina l’applicazione web e le sue strutture dati dinamiche vengono disallocate;
• Il web server non mantiene traccia della connessione avvenuta: il protocollo HTTP è stateless
Di conseguenza se non si prevedono appositi salvataggi dei dati questi verranno persi: per questo i linguaggi di scripting server-side mettono a disposizione apposite variabili dette di sessione attraverso le quali l'utente indica quali dati vanno salvati tra una connessione e l'altra.
Pagine HTML dinamiche
Che cosa fa il web server? (5/5)
342
Codice HTML (prova.html) <P>Inserire il tuo identificativo</P>
<FORM ACTION="./prova.cgi" METHOD="post"> ID:<INPUT TYPE="text" NAME="IDF" SIZE="20" MAXLENGTH="20"><INPUT TYPE="submit" VALUE="submit"> </FORM>
Codice C (prova.c) #include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) char namep[26] = ""; scanf("%s", namep); printf("Digitato il seguente id: %s\n", namep);return 0;
Compilare prog.c producendo l'eseguibile prova.cgi , richiamato in prova.html
Pagine HTML dinamiche
Scripting server side - CGI
343
browser
1 - HTTP request
internet
7 - HTTP response
server
Application server - mod_cgiWeb server
Inserire il proprio identificativo
ID:
Application mappings…cgi \cgi-bin …
Avvia esecuzione prova.cgi e ne restituisce risultato
prova.cgi
-Interpreta il contenuto del documento ed inse- risce il valore di "ID" in una variabile d'ambiente;-genera una pagina HTML in cui stampa il contenuto della variabile con printf;
Digitato il seguente ID: …
23
45
6
Pagine HTML dinamiche
Scripting server side - CGI
344
Codice HTML (prova.html)<BODY><P>Inserire il proprio identificativo</P> <FORM ACTION="./prova.php" METHOD="post"> ID: <INPUT TYPE="text" NAME="IDF" SIZE="20" MAXLENGTH="20"><INPUT TYPE="submit" VALUE="submit"> </FORM></BODY>
Codice PHP (prova.php) <?php
echo "Digitato il seguente id: " . $_POST["IDF"]; echo "<BR>"; ?>
Nessuna compilazione, ma occorre aggiungere mod_php al Server Web perché il codice PHP venga interpretato
Pagine HTML dinamiche
Scripting server side - PHP
345
browser
1 - HTTP request
internet
7 - HTTP response
server
Application server mod_phpWeb server
Inserire il proprio identificativo
ID:
Application mappings…php /usr/bin/php…
Interpreta lo script in prova.php e ne restituisce risultato
prova.php
-Interpreta il contenuto del documento ed inserisce il valore di "ID" in una variabile d'ambiente;-genera una pagina HTML in cui stampa il contenuto della variabile mediante il comando echo;
Digitato il seguente ID: …
23
45
6
Pagine HTML dinamiche
Scripting server side - PHP
346
HTTP (Hyper Text Transfer Protocol)
Linguaggio Java e il web
Commercio elettronico
Secure Web
SommarioSommario
347
Il linguaggio JAVA ed il Web
Il linguaggio di programmazione Java è sviluppato dalla Sun Microsystem nel 1991.
E’ un linguaggio nato per essere piccolo, semplice, e portabile attraverso piattaforme hardware e sistemi operativi diversi (write once, run everywhere)
E’ un linguaggio basato sui principi moderni della programmazione ad oggetti
Ha stravolto la programmazione dei siti Internet, consentendo l’introduzione di informazioni dinamiche in modo efficiente e sicuro
348
JAVA Applet
L’ambiente di runtime è costituito da una macchina virtuale JAVA (Java Virtual Machine, JVM), specifica per le diverse piattaforme hardware e software, in grado di eseguire programmi (program.class) che possono essere compilati anche in altri ambienti. Possono essere applicazioni o applet da eseguire all’interno del Web
Gli applet vengono eseguiti dai più popolari browser Web, che hanno un proprio ambiente Java e sono programmi che vengono scaricati dal server Web ed eseguiti localmente sul client
349
JAVA
Il linguaggio Java copre tutte le funzionalità di un potente linguaggio di programmazione (dall’Input / Output, alla rete, alla interazione con database)
Fornisce al programmatore un insieme di Application Programming Interfaces (API) con le quali il programmatore costruisce le proprie applicazioni
A volte il programma può risultare poco veloce, ma lo sviluppo di questo ambiente sta procedendo a ritmi serrati anche grazie agli investimenti di altre aziende oltre Sun (prime fra tutte IBM)
E’ coperto da copyright della Sun, ma utilizzabile liberamente nello spirito del free software
350
HTTP (Hyper Text Transfer Protocol)
Linguaggio Java e il web
Commercio elettronico
Secure Web
SommarioSommario
351
Finanza Elettronica
Il Trading on line sta diventando una applicazione molto importante in rete
Possibilità di operare su tutti i mercati anche a Borse chiuse, con speciali incentivi
Questo modo di operare in borsa è vitale soprattutto per chi opera sulle variazioni degli indici
I costi delle transazioni sono enormemente più bassi per via telematica
352
Telemarketing
L’utilizzo di tecnologie ipermediali consente la creazione di siti Web con le seguenti caratteristiche
stile grafico sofisticatoaggiornamento in tempo reale di informazionialtissima capacità di informazioni alta affidabilità e disponibilità interattività e rapporto con l’utente dinamicità mediante interazione con DatabaseGrafica computerizzata, audio, full motion video
Potenziamento del messaggio pubblicitario e promozionale rispetto alle tecnologie convenzionali
353
I banner e le animazioni
Una delle principali fonti di guadagno sulla rete è la pubblicità realizzata mediante banner animati inseriti nei siti web più frequentati
Si usa la tecnica denominata animated GIF che costituisce un’estensione del formato GIF e consente di salvare più immagini nello stesso file per poi visualizzarle in sequenza
Questi si possono arricchire o integrare con animazioni nei formati MOV, MPEG, con elevate compressioni o con documenti acquisiti on-line (RealAudio/RealVideo)
354
Il Commercio Elettronico
In molti contesti sta diffondendosi in modo impressionante l’acquisto e la vendita di beni e informazioni su internet
Rispetto al mondo delle televendite e della vendita per corrispondenza, Internet offre una impressionante immediatezza nello scambio di informazioni, una maggior potenzialità nell’illustrare i prodotti ed una maggior versatilità e sicurezza nelle transazioni
355
356
Commercio Elettronico
Le aziende (PMI) si muovono verso il commercio elettronico per:
Il problema è: come riuscire?
Massimizzare i profitti
Aumentare nuovi affari Massimizzare la sicurezza Minimizzare i costi
357
How to
358
How to
359
How to
Scelta tra:
• Outsourcing
• Intranet/Extranet
Sicurezza
• trasporto (SSL)
• dati (firma digitale)
Integrità
Disponibilità
360
361
362
363
19/04/11
364
HTTP (Hyper Text Transfer Protocol)
Linguaggio Java e il web
Commercio elettronico
Secure Web
SommarioSommario
365
Secure Web
• La crescente diffusione di Internet per usi produttivi impone l’adozione di tecnologie Web sicure. Possibili violazioni: Estensibilità del server: l’aggancio con database
può compromettere la sicurezza del sistema Estensibilità del browser: l’uso di ActiveX, java,
JavaScript, VBScript può estendere le funzionalità del browser e compromettere la sicurezza del sistema
Distruzione del servizio: denial-of-service attacks Supporto complicato: la necessità di ricorrere a
protocolli di più basso livello può compromettere la sicurezza
366
Secure Web
• Un server sicuro necessita di tre interventi fondamentali:sicurezza del server e dei dati: occorre essere
assolutamente certi dell’impossibilità di manipolazione dei dati e del server Web
sicurezza dei dati mentre transitano dal server all’utente. Occorre essere sicuri che le informazioni sensibili (login/password, dati finanziari) non possano essere alterati
sicurezza del computer dell’utente: occorre essere certi che programmi e informazioni scaricate dall’utente non danneggino il suo computer
367
Secure Web
• Ogni volta che l’utente scarica dalla rete programmi da installare sul proprio computer (plug-in, programmi, cookies, etc), si espone a possibili attacchi o a violazioni della privacy (e del copyright)
• Importanza degli strumenti di anonimizzazione (es: firewall e proxy web) che mascherano l’utente finale
• Certificati Digitali emessi da Certification Authorities per l’abilitazione di server e client alla crittografia e all’uso della firma digitale.
368
Sicurezza di reteSicurezza di rete
369
La sicurezza di rete
Attacco ad un sistema informatico
Esempi di attacchi
Secure Socket Layer (SSL)
Firewall
SommarioSommario
370
Sicurezza (1/5)
La sicurezza riveste una importanza crescente
• Aumento degli intrusori
• Aumento degli attacchi
• Esigenza di confidenza sempre crescente nelle tecnologie
ipermediali e di rete
• Le tecniche di protezione devono essere accessibili ai più
• Attenzione ai costi
371
Fonte: D.Steinauer, S. Katzke, S.Radack: Basic Intrusion Protection, the first line of defense, ITPro, Jan-Feb 1999
Sicurezza (2/5)
372
Sicurezza (3/5)
On-line help presso• National Institute od Standards and Technology’s
Information Technology Laboratory (NIST ITL) (US Dept. Of Commerce) http://csrc.nist.gov/
• US Federal Computer Incident Response Capability, FedCIRC http://www.fedcirc.gov
• Computer Emergency Response Team, CERT
http://www.cert.org
• Wheeler Secure Programming How To
373
Sicurezza (4/5)
1. Confidenzialità• le informazioni possono essere lette solo da
chi ne ha diritto2. Integrità
• le informazioni possono essere modificate solo da chi ne ha diritto
3. Disponibilità• le informazioni possono essere lette/scritte
quando necessario; Le risorse devono poter essere usate solo da chi ne ha diritto
374
Sicurezza (5/5)
4. Tracciabilità• individuazione di chi ha invocato una operazione
5. Accountability• quanto è utilizzata una risorsa (billing)
6. Auditability• poter verificare l’efficacia dei meccanismi utilizzati
7. Forensics• poter provare che certi attacchi hanno avuto luogo
8. Privacy• chi/come e se può usare le proprie informazioni personali
375
La sicurezza di rete
Attacco ad un sistema informatico
Esempi di attacchi
Secure Socket Layer (SSL)
Firewall
SommarioSommario
376
Attacco
Definizione• sequenza di azioni eseguite per ottenere il
controllo di un sistema informatico
Conseguenza• è possibile raccogliere informazioni, modificare
informazioni, impedire ad altri di accedere alle informazioni
automatizzabile / non automatizzabile
ogni attacco è in realtà un attacco al SO
377
Fasi di un attacco
1. Raccolta di informazioni [giorni/mesi]
2. Individuazione delle vulnerabilità [giorni/mesi]
3. Ricerca o costruzione di un programma (exploit) che sfrutti la vulnerabilità [giorni/mesi]
4. Esecuzione dell’exploit (attacco) [pochi μs]
5. Installazione di strumenti per il controllo
6. Cancellazione delle tracce dell’attacco
7. Accesso (modifica) ad un sottoinsieme delle informazioni
378
Vulnerabilità (1/2)
Definizione: difetto in un componente del sistema
Conseguenze: sfruttando il difetto riesco a generare un comportamento inatteso del componente; questo comportamento permette di violare le proprietà di sicurezza
Classificazione
• Vulnerabilità procedurale (nel modo in cui si fa)
• Vulnerabilità organizzativa (nelle persone che fanno)
• Vulnerabilità degli strumenti informatici (nello strumento (hardware e/o software) che si usa)
379
Vulnerabilità (2/2)
Vulnerabilità degli strumenti informatici
• Specifica (il componente è, inutilmente, più generale del necessario)
Es. uso una libreria che contiene piú funzioni di quelle richieste
• Implementazione (l’errore è stato commesso nello sviluppo del componente)Es. ipotesi su input (correttezza parziale), mancanza di controlli, su input confusione tra dati e programmi
• Strutturale (l’errore nasce quando si integrano i componenti che costituiscono il sistema complessivo)
Es. affidabilità, prestazioni, controlli
380
Alcuni tipi di attacchi
1. Buffer/stack overflow
2. Lettura di informazioni trasmesse/ ricevute (sniffing)
3. Invio di richieste/messaggi su una connessione aperta da altri
(connection stealing, insertion attack)
4. Ripetizione di richieste/messaggi trasmessi da un utente legittimo
(replay attack)
5. Invocazioni di operazioni in un ordine imprevisto (interface attack)
6. Interposizione tra l’utente ed il sistema (man-in-the-middle)
7. Scoperta di password mediante confronto in un elenco (dictionary
attack)
8. Furto di identità
9. Reverse engineering del codice
10. Scoperta di informazioni mediante ricerca esaustiva
381
Analisi del rischio
cercare di garantire che ci sia una giustificazione ai costi della sicurezza
è importante eliminare quei rischi che possono provocare attacchi dannosi
comprende:1.analisi delle vulnerabilità
2.analisi degli attacchi
3.analisi degli impatti
4.analisi delle minacce
5. individuazione rischio accettabile ed introduzione delle contromisure
382
Analisi delle vulnerabilità
metodologia: "cosa succede se"• vengono cambiati i parametri• vengono immessi input diversi da quelli attesi• vengono rese note informazioni segrete
ricerca:• componenti non standard (per quelli std sono già
noti gli exploit perché ormai note le vulnerabilità)• vulnerabilità strutturali (a causa della composizione
del sistema informatico)• può essere automatizzata per le vulnerabilità più
semplici
383
Analisi degli attacchi
quali attacchi per quali vulnerabilità
per ogni attacco quali informazioni e risorse sono necessarie per la sua esecuzione
per ogni attacco quali informazioni e risorse (competenze) sono necessarie a chi lo vuole eseguire
gli attacchi sono automatizzabili
aumenta la criticità del ritardo tra quando un exploit viene rilevato e quando si rimedia all’errore o alla debolezza strutturale (anche organizzazioni complesse devono avere tempi brevi)
384
Analisi degli impatti
per ogni attacco si deve stabilire la perdita dell’ azienda (ente) dovuta all’attacco in esame
dipende dai:• dati e dalle risorse che possono essere
acceduti a seguito dell’attacco • dai processi aziendali che utilizzano quelle
risorse e dati alcune perdite
• non sono quantificabili, es. le vite umane• sono difficilmente quantificabili, ad esempio i
danni di immagine
385
Analisi delle minacce
per ogni attacco è necessario determinare• chi ha interesse ad eseguire l’attacco; è correlato
con l’impatto dell’attacco• chi dispone delle risorse necessarie per l’attacco
un attacco può essere eseguito solo se l’intersezione tra i due insiemi non è vuota
386
Contromisure
Per ogni vulnerabilità esiste almeno una contromisura in grado di eliminarla
La contromisura può essere di tipo:• tecnico modifico un’applicazione• organizzativo divieto di usare un’applicazione• personale controlli su una persona, formazione
Ogni contromisura ha un costo• tecnico, "prima si risolve un problema minor impatto sui
costi avrà"• organizzativo (più complesso eseguire certe operazioni)
Investire sulla sicurezza?• conviene applicare una contromisura se il rischio della
vulnerabilità è maggiore del costo della contromisura
387
Rischio residuo
scelte le contromisure da applicare può rimanere un certo rischio detto residuo
accettare la presenza del rischio residuo significa accettare l'uso di un sistema anche con rischio non nullo
il rischio residuo può essere trasferito, cioè passato ad altri (es. assicurazione)
388
CERT (www.cert.org)
L’organismo che vigila in rete, creato dalla Cornegie Mellon University, che ha dato luogo ad analoghe organizzazioni regionali
389
La sicurezza di rete
Attacco ad un sistema informatico
Esempi di attacchi
Secure Socket Layer (SSL)
Firewall
SommarioSommario
390
Virus
Il modo per difendersi da questa vera e propria catastrofe che può colpire chiunque ed in qualsiasi momento è solo l’uso di un software antivirus
Il software va costantemente aggiornato, altrimenti perde di efficacia
Siti di riferimento:• EICAR (European Institute for Computer Anti-Virus Research)
http://www.eicar.com/
• ICSA (International Computer Security Association)
http://www.icsa.net
http://www.icsa.net/html/communities/antivirus/
391
Trojan Horse
La difesa contro questo subdolo strumento è solo quella di scaricare software in modo molto attento, cercando ove possibile di verificare l’integrità del codice mediante firma digitale (se disponibile)
Impossibile accorgersi della presenza di Trojan Horses, a meno che ci si tenga informati (mailing lists, siti web, etc)
392
Hoax e catene
Sono pericolosi quanto i virus, anche se sono innocui
minano la fiducia della gente nella rete inducono a comportamente fastidiosi e
scorretti Lista aggiornata in:
• CIAC (Computer Incident Advisory Capability)
http://ciac.llnl.gov/ciac/CIACHoaxes.html
http://ciac.llnl.gov/ciac/CIACChainLetters.html
393
SPAM
L’unica difesa dallo SPAM si ha usando dei mail user agents ch filtrino questi messaggi
E’ importante per chi amministra dei sistemi di posta elettronica di non essere oggetto involontario di invio di SPAM, altrimenti si sprecano importanti risorse (spesso il mail server collassa) o si finisce in liste di prescrizione i cui siti vengono da molti filtrati
394
HTTP e sicurezza
Il World Wide Web è forse il servizio più critico, data la diffusione ed i diversi ambienti applicativi su esso basati
Le principali applicazioni che costituiscono una potenziale esposizione in termini di sicurezza sono:
• Cookies
• uso di programmi esterni
• interfaccie verso databases
395
I cookies
Introdotti con Netscape 2.0, i cookies (RFC 2109) sono stringhe di caratteri ASCII che vengono passate dal server Web all’istanza del Browser utente (Microsoft IE, Netscape). Una volta ricevuto, il client invierà il cookie ogni volta che accede il sito
Servono per tenere traccia delle scelte dell’utente ed orientare al meglio il telemarketing
396
eTrust
I cookies pongono problemi di rispetto della privacy dell’utente
eTrust è il programma messo a punto da Electronic Frontieres Foundation (http://www.eff.org) per definire uno standard per la privacy on-line
I siti con il logo eTrust si dichiarano conformi al progetto per quanto riguarda il trattamento dei dati personali
397
Interazione con database
Mediante le procedure denominate common gateway interfaces (CGI) si possono costruire pagine web il cui contenuto viene costruito dinamicamente mediante interazione con un database
I linguaggi di programmazione o di scripting più popolari per realizzare CGI sono:
• PHP4, Perl, C, Tcl/Tk, Phyton
Sono pericolosi perché comportano l’esecuzione di programmi esterni
398
Sicurezza di telnet e FTP
Presentano l’inconveniente che il traffico attraversa la rete in chiaro, pertanto si presta a violazioni di dati sensibili (login, password, dati sensibili in generale)
Meglio utilizzare le versioni che utilizzano ssh (Secure Shell) e scp (Secure Copy), che scambiano i dati in modo cifrato. Queste procedure generano un maggior carico computazionale sia sul server che sul client. Molti software che implementano ambienti client di questi servizi hanno la possibilità di usare la versione sicura
I socket ssh e scp in genere sono lasciati aperti sui firewall
399
OpenSSH 3.1 released March 7, 2002. Supporta i protocolli SSH1 e SSH2. E’ un versione Free sviluppata nell’ambito del
progetto OpenBSD (http://www.openbsd.org) ed è basata sulla libreria OpenSSL (http://www.openssl.org) per molte delle sue potenzialità crittografiche, la quale non è regolata dalla licenza Gnu Public License (GPL, che definisce un prodotto FreeSoftware)
Il protocollo SSH è disponibile in due versioni, tra loro incompatibili: SSH1 e SSH2.
www.openssh.com
400
OpenSSH
SSH versione 1 è presente in due varianti principali: la 1.3 e la 1.5, entrambe supportate da OpenSSH
Queste versione utilizzano l’algoritmo di crittografia asimmetrica RSA (il cui patent è terminato e pertanto può essere utilizzato da ognuno) per la negoziazione delle chiavi, poi gli algoritmi simmetrici 3DES e Blowfish per mascherare i dati. Alcune implementazioni del protocollo SSH utilizzano l’algoritmo simmetrico IDEA, ma essendo questo coperto da patent in alcuni stati, OpenSSH non supporta IDEA.
OpenSSH usa un semplice algoritmo Cyclic Redundancy Check (CRC) per verificare l’integrità dei dati.
401
OpenSSH
La seconda implementazione del protocollo è SSH 2, introdotta per superare le limitazioni di patent di RSA e per risolvere alcuni problemi legati all’algoritmo CRC di SSH1.
SSH 2 usa gli algoritmi asimmetrici Digital Signature Algorithm (DSA) e Diffie-Helmann (DH), che sono liberi da patent
Al posto dell’algoritmo CRC in SSH2 si usa l’algoritmo Keyed-Hash Message Authentication Code (HMAC)
SSH 2 è ancora allo stato di Draft Document dell’IETF
402
OpenSSH
L’insieme di programmi di OpenSSH comprende:• ssh che sostituisce rlogin e telnet• scp che sostituisce rcp• sftp che sostituisce ftp• sshd daemon per server ssh• ssh-add ssh-agent ssh-keygen
programmi di utilità• sftp-server daemon per server sftp
403
La sicurezza di rete
Attacco ad un sistema informatico
Esempi di attacchi
Secure Socket Layer (SSL)
Firewall
SommarioSommario
404
Secure Socket Layer
SSL è un encryption system a chiave pubblica e privata usato nei server per garantire la privacy durante le trasmissioni attraverso Internet.
SSL permette ai server di criptare le informazioni sensibili in testo cifrato prima dell'invio ai client, evitandone così la lettura da parte di terzi (non autorizzati) anche se in grado di intercettare il traffico tra i server e i client
405
Secure Socket Layer
I Client decriptano il testo cifrato ricevuto dai server riottenento i dati originari
Es. usato con i server web per garantire la risevatezza (privacy) delle informazioni scambiate con i web browser per esempio in autenticazione di un utente in un sito di home-banking
406
Secure Socket Layer
Ogni server deve avere:
• una chiave pubblica e una privata
• un certificato
Il certificato permette al server di "firmare" i dati da inviare/ricevere al/dal client
Il client tramite la chiave publica del server è in grado
• di criptare i dati da inviare a quel server: quest'ultimo decripta i dati ricevuti dal client mediante la propria chiave privata
407
Secure Socket Layer
Ogni server per poter inviare la propria chiave pubblica ai client deve possedere un certificato; ogni certificato contiene:
• chiave pubblica
• distinguished name (nome ed indirizzo) associato con il server
• un numero di serie o data di pubblicazione del certificato
• data di fine validità del certificato (expiration date)
I certificati sono pubblicati dalle certificate authority (CA)
408
Secure Socket Layer
Una certificate authority (CA) è un ente terzo considerato trusted (op. una autorità designata locale all'azienda) che pubblica certificati
Per assegnare un certificato ad un server la CA ne verifica l'identità e se valida firma digitalmente il certificato con la propria chiave pubblica; attraverso poi la propria chiave privata la CA garantisce che il certificato è valido
Con il certificato "firmato" (signed), all'identità di un server viene associata una coppia di chiavi usate per criptare e firmare i dati sensibili
409
Secure Socket Layer
Es. per permettere ad un Web Server di operare con il SSL occorre prima di tutto ottenere un signed certificate da una CA, come per esempio VeriSign che una delle principali compagnie che pubblicano certificati.
A questo punto nella configurazione della connessione sicura basta associare la propria chiave pubblica con il signed certificate ottenuto
410
Secure Socket Layer
Stack TCP/IP con SSL
411
Secure Socket Layer
Nasce (Netscape, 1996) per garantire connessioni sicure tra browser-server web
Fasi di una connessione:
• inizialmente
negoziazione dell'algoritmo di crittografia (DES, IDEA)
autenticazione
– server si autentica al client (sempre)
– client si autentica al server (opzionale)
• a regime
pacchetto criptato con la chiave concordata
412
Secure Socket Layer
Autenticazione del server• Il browser (client):
mantiene una lista delle Certification Autority (CA)
richiede il certificato al server
verifica il certificato con la CA che lo ha emesso
Autenticazione del client• Il browser manda il proprio certificato al server
• Il server controlla il certificato con la CA che lo ha emesso
413
Secure Socket Layer
HTTPS è il protocollo che combina SSL e HTTP; https:// è utilizzato nell'URL di richiesta di documenti SSL-protected
HTTPS e HTTP sono protocolli differenti e usano porte diverse rispettivamente 443 e 80 rispettivamente; ne consegue che possono essere effettuate richieste SSL e non contemporaneamente
Questo consente di differenziare la modalità di fornitura delle informazioni ai client: i dati sensibili solo ai browser che supportano SSL
Es. in un sito di e-commerce mentre la visualizzazione dei prodotti in vendita può essere non controllata, l'acquisto tramite carta di credito richiede necessariamente sicurezza
414
La sicurezza di rete
Attacco ad un sistema informatico
Esempi di attacchi
Secure Socket Layer (SSL)
Firewall
SommarioSommario
415
Firewall
Un firewall è un sistema, nel senso più ampio del termine, che ha lo scopo di controllare il traffico fra due o più reti:
• permettendo solo quello autorizzato dalla politica di sicurezza
• rilevando e segnalando eventuali tentativi di violazione della politica di sicurezza violazione
• svolgendo eventualmente funzioni aggiuntive di auditing e accounting
416
Firewall: funzionalità (1/3)
Abilitazione di una classe di servizi di sicurezza che governano l’accesso alle risorse informative di rete, proteggendo la riservatezza e l’integrità delle comunicazioni di rete attraverso Internet, intranet ed extranet (enterprise security).
Protezione di risorse ed informazioni da accessi dalla rete non autorizzati, sia dall’interno sia dall’esterno della Intranet (access control).
Implementazione di servizi aggiuntivi (controllo antivirus, controllo dei contenuti, affidabilità e scalabilità dei servizi)
417
Firewall: funzionalità (2/3)
Gestione della sicurezza dei router
Bilanciamento del carico
Architettura client/server, altamente scalabile
Controllo della sicurezza dei contenuti (Computer virus screening, Java and ActiveX stripping, URL screening, Mail support, HTTP filtering, FTP support)
Politica di sicurezza unica, che può essere distribuita attraverso diversi firewall, mantenendone la gestione centralizzata.
418
Site servers
Internet users
rules
Firewall
419
Firewall: funzionalità (3/3)
Il firewall suddivide tutti gli utenti della rete in due principali domini: utenti trusted e utenti untrusted
L’accesso dalla rete esterna viene forzato a passare per il firewall e viene sottoposto alle regole del firewall• host e servizi per uscire in rete o per connettersi dalla rete
devono attraversare il firewall Ogni Socket (Indirizzo IP + port_number) che viene
aperto da dentro la rete a fuori e da fuori dalla rete a dentro, viene verificato in base alle regole definite nel firewall
La configurazione vincente è quella che relega i pubblici servizi ad host specifici, rigorosamente sotto controllo, e chiude tutti gli altri servizi agli altri host della rete
420
Untrustedzone
Firewall: schema logico (1/2)
Firewall
Router
INTERNET
L A N
Trustedzone
421
Firewall: schema logico (2/2)
Exterior Router
Interior Router
Dual homed host
Perimeter Network 1
Internal Network
Perimeter Network 2
INTERNET
422
Firewall: limitazioni
Il firewall NON HA EFFICACIA nella parte trusted della rete, quindi non può avere effetto su una macchina compromessa
Più estesa è la porzione di rete, più difficile è mantenere tutti gli host allo stesso livello di sicurezza
Il firewall può fallire per errori umani nella configurazione delle regole, più che per complessi attacchi
Per aumentarne l’efficacia occorre separare il più possibile ambienti diversi (amministrazione da ricerca, etc)
423
Firewall HOWTO
Hardware necessario:– 486-DX66 con 32 MB di memoria o superiore
– 250MB hard disk (500 consigliati) o superiore
– 2 interfacce di rete
– monitor e keyboard
– serial port + modem per il controllo remoto
Disabilitare tutti i servizi Disabilitare l’accesso come root Disabilitare l’accesso da remoto o limitarlo a indirizzi
garantiti
424
Packet filtering
Un filtro di pacchetti è un tool software che analizza l'intestazione dei pacchetti e ne decide il "destino"
In Linux è contenuto nel kernel come modulo o parte integrante
Vedremo il filtro di pacchetti di quarta generazione in Linux iptables introdotti nel 1999 a sostituzione del tool ipchains
425
Packet filtering
Elementi per il filtraggio:• Header IP
mittente destinatario protocollo flag, opzioni (source routing, frammentazione…)
• Header TCP/UDP porta mittente porta destinatario flag TCP (SYN, ACK)
426
Packet filtering
Azioni possibili:• ACCEPT, il pacchetto è accettato e lasciato
proseguire
• DROP, scartare il pacchetto, eliminandolo come non
fosse mai stato ricevuto (mittente non avvisato)
Rifiutare il pacchetto (mittente avvisato es. host unreachable)
427
Packet filtering
Il kernel opportunamente configurato (CONFIG_NETFILTER Y) mantiene una tabella di filtraggio "filter" nella quale il tool iptables inserisce o rimuove le regole di filtraggio.
Dove effettuare il filtraggio• in ingresso
conosco da quale interfaccia arriva il pacchetto proteggo il sistema interno/locale
• in uscita gestisco il traffico generato localmente
428
Packet filtering
Il kernel ha 3 liste di regole (dette catene) di default nella tabella filter• INPUT • OUTPUT• FORWARD
INPUT
input output
OUTPUT
routing FORWARD
processi locali
429
Packet filtering
1. Di ogni pacchetto ricevuto da una interfaccia di rete ne viene esaminata dal kernel la destinazione (fase di routing)
2. Se è arrivato a destinazione viene esaminato dalla catena INPUT2.1 se il pacchetto soddisfa la regola ACCEPT viene
fatto passare e se ci sono processi in attesa riceveranno il pacchetto
2.2 altrimenti se non è attivo il forwarding né il kernel sa come farlo proseguire si effettua il DROP del pacchetto
430
Packet filtering
2.3 altrimenti se è attivo il forwarding e il pacchetto è destinato ad un'altra interfaccia di rete viene inoltrato verso la catena FORWARD
2.3.1 se soddisfa la regola ACCEPT il pacchetto viene inviato in rete
3. i pacchetti inviati da processi locali verso la rete vengono filtrati dalla regola OUTPUT e solo quelli che la soddisfano ACCEPT proseguiranno nella rete
431
Packet filtering
ogni regola specifica• comando relativo alla regola (appendi, cancella, inserisci,
sostituisci)
• condizioni che il pacchetto deve soddisfare
• obiettivo della regola, cosa fare se la soddisfa
es. rifiutare tutti i pacchetti ICMP provenienti dall'indirizzo 127.0.0.1
iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP
es. cancellare la regola appena aggiuntaiptables -D INPUT -s 127.0.0.1 -p icmp -j DROP
432
Packet filtering
specificare le condizioni del filtraggio• indirizzi IP sorgente '-s' e destinazione '-d'
Indirizzo singolo, – hostname
– indirizzo IP
Intervallo di indirizzi– indirizzo_IP_rete/numero_bit_rete
– indirizzo_IP_rete/subnet_mask
• protocollo '-p' (nome op. numero relativo)
• interfaccia '-ì (input, non con la regola OUPUT) e '-ò (output, non con la regola INPUT), entrambi solo con la FORWARD
433
Packet filtering
• frammenti dei pacchetti (trasmessi sottoforma di pacchetti multipli quando un unico è troppo grande), '-f' permette di indicare regole specifiche per il secondo (e successivi) frammento;
es. scartare tutti i frammenti destinati a 192.168.1.1iptables -A OUTPUT -f -d 192.168.1.1 -j DROP
• estensioni TCP (attivate automaticamente indicando '-p tcp')
--tcp-flags per filtrare in base ai flag del TCP, prevede 2 campi:
1. quali flag esaminare 2. quali flag dovrebbero essere impostati
es. esamina tutti i flag, ma solo SYN e ACK devono essere impostati
iptables -A INPUT -p tcp --tcp-flags ALL SYN,ACK -j DROP
434
Packet filtering
--source-port --sport
--destination-port --dport
per indicare una singola porta o un intervallo
• estensione limit per limitare il numero di confronti al secondo ( di default 3) '-m limit'
es. per proteggersi dal syn-floodiptables -A FORWARD -p tcp --syn -m limit 1/s -j ACCEPT
es. per proteggersi dal ping della morteiptables -A FORWARD -p icmp --icmp-type echo-request
-m limit 1/s -j ACCEPT
435
Audit Trails
Audit è la fase di controllo e analisi dei processi di gestione e amministrazione dei sistemi
I record presenti nel sistema e relativi all’attività del sistema operativo, delle applicazioni e degli utenti, sono la fonte primaria per questa attività e per evidenziare attacchi o intrusioni
Le informazioni devono contenere dati sufficienti per identificare quando un fenomeno è accaduto e chi lo ha causato
La granularità con cui gli eventi sono archiviati dipende dal grado di sicurezza che si vuol attivare, dallo spazio disponibile per l’archiviazione dei log, etc
436
Audit
Un’azione associata ad un utente in un’ora inconsueta può diventare la spia che mette in allarme
L’efficienza del processo di audit dipende dai dati disponibili e dal grado di accuratezza posto nella loro analisi
Anche se i sistemi supportano una ampia possibilità nella selezione delle informazioni da archiviare, è responsabilità dell’amministratore di sistema verificarne la corretta attivazione
437
Sistemi automatici
L’identificazione di intrusioni (durante o successivamente l'attacco) può essere delegata a software specializzati che svolgano accuratamente l’analisi dei dati di audit
Alcuni di questi software sono basati sulla conoscenza degli attacchi più comuni
Altri sistemi basano l’identificazione di intrusioni su attività anomale del sistema
In futuro tali sistemi potranno attivare sofisticati metodi di analisi (come le reti neuronali) per operare inferenze ed analizzare accuratamente anomalie nell’attività dei sistemi, nella modificazione di alcuni files, etc
438
Reti locali e geograficheReti locali e geografiche
439
Internetworking
Realizzato mediante:• creazione di reti di reti• Autostrade elettroniche per collegare isole di connettività• Infrastrutture dell’era della comunicazione globale• Interconnessione di sistemi aperti
Fenomeni connessi con l’esplosione dell’interneworking: • Continua crescita esponenziale di Internet• Forte crescita di servizi fruibili on-line tramite Internet• Intranet aziendali e servizi Extranet• Rinascita del software e domanda di applicativi Web-oriented
440
Wide Area Network (WAN): cenni
storici Evoluzione delle Wide Area
Network legata alla prima generazione di computer (II meta ‘50)• elaborazione centralizzata
in pochi centri EDP specializzati
• Accesso con terminali remoti
• Remote Batch Trasmission• enormi investimenti
modem modem
computer
batchterminal
441
IBM 3270 Information Display System
Mainframe
Communicationcontroller
Control Unit locale
Control Unit remota
modem modem
terminale
terminale
terminale
terminale
442
Caratteristiche di una rete WAN
Interconnette due o più reti locali disperse geograficamente mediante linee TD affittate
Usata per collegamenti nazionali ed internazionali Interconnette host collegati a sottoreti costituite da:
• Linee di trasmissione (linee, circuiti, canali, dorsali)• Elementi di commutazione (router)
Complessa gestione del routing Possibilità di utilizzare il collegamento per interconnettere reti
eterogenee Uso di router multiprotocollo e adozione nella WAN di una stessa
politica di routing
443
Metropolitan Area Network (MAN)
Una Metropolitan Area Network (MAN) interconnette un’area caratterizzata da esigenze di elevate prestazioni.
In genere opera il trasporto integrato di dati eterogenei: voce, dati, multimedialità, etc
Sono reti denominate a banda larga, a causa dei protocolli utilizzati nelle prime implementazioni
Viene vista all’esterno come un’unica entità Il gestore provvede a:
• regolare l’accesso alla rete ed ai servizi• definire la politica di routing
Le reti a banda larga aiutano la diffusione di applicazioni innovative e fortemente orientate verso la multimedialità
444
MAN
In Italia si sono diffuse in varie regioni (Piemonte, Friuli, Emilia Romagna e Toscana)
Realizzate con finanziamenti comunitari e di Enti di Ricerca
Alta capacità trasmissiva: fibre ottiche e ATM
Veicolo principale di esperimenti ad alto contenuto innovativo e con forti esigenze di banda• Video on Demand• Telesoccorso• Telemedicina• Teledidattica• Teleconferenza in rete
445
Local Area Network (LAN)
Collega tipicamente uno o più edifici limitrofi E’ in genere specifico di una singola azienda o
organizzazione (o di una parte di organizzazione) E’ regolata da proprie politiche di accesso e di routing E’ alla base della realizzazione delle Intranet Consente la condivisione di risorse hardware e
software Primo prodotto: Attached Resource Computer Network
(ArcNet) prodotto da Datapoint Corp. nel 1977
446
LAN vs. WAN
CaratteristicheLAN WANEstensione geografica Confinata in uno o più edifici
o un campusPuò estendersi da un’areacittadina all’intero globo
Velocità di trasmissione 10 / 100 / 1000 Mbps CDN: da 64Kbps a 2MbpsATM: da 34Mbps a 2.5Gbps
Tasso di Errore 1 in 107 - 1 in 108 bit CDN: 1 in 108 - 1 in 109 bit
Gestione locale Fornitori di servizi nazionali ointernazionali
Routing Normalmente segue un routingstatico
Routing dinamico
Topologia Fisica a stella, logica a bus
a stella
Disegno con capacità diassumere un numero illimitatodi diverse topologie
Tipo di informazioni trasportate
dati Voce, dati e video, normalmenteintegrati
447
Standards
L’importanza degli standards ed il lavoro delle organizzazioni di standardizzazione è stato fondamentale per lo sviluppo delle TLC.
Definiscono le caratteristiche fisiche ed operative degli apparati di rete.
L’adozione di standard aiuta la vendita dei prodotti Il processo di standardizzazione favorisce
l’interconnes-sione e l’integrazione di hardware prodotto da diversi costruttori
Esistono standard de jure (cioè codificati da organismi nazionali o
internazionali) de facto (massiccia adozione da parte degli utenti)
448
Organizzazioni: IEEE
L’Institute of Electrical and Electronic Engineers (IEEE) è molto attivo nello sviluppo di standard di comunicazione.
Il sottocomitato 802 ha iniziato i lavori nel 1980, prima che fosse stabilito un valido mercato per questa tecnologia
Il progetto 802 è concentrato sull’interfaccia fisica degli apparati e sulle procedure richieste per stabilire, mantenere e terminare connessioni tra dispositivi di rete, inclusa • la definizione del formato dei
dati • il controllo dell’errore• attività per il controllo del
flusso dell’informazione
449
CCITT - ITU
Il Consultative Commit-tee for International Telephone and Telegraph (CCITT) è un gruppo dell’International Telecommunications Union (ITU), un’agenzia specializzata dell’ONU
è costituito da 15 gruppi di studio
Il lavoro è articolato in periodi quadriennali, chiamati Study Period, al termine dei quali ha luogo un’assemblea plenaria nel corso della quale vengono emanate le raccomandazioni
450
ISO
L’ International Standards Organization è un organo consulente dell’ONU
Il suo scopo è promuovere lo sviluppo di standards nel mondo, con l’obiettivo di favorire lo scambio internazionale di cose e servizi
Sono membri oltre 100 organizzazioni standard nazionali
Il maggior successo dell’ISO nel campo delle telecomunicazioni è stato il concepimento del modello a sette livelli Open Systems Interconnection (OSI) Reference Model
451
ISO OSI Reference Model
Definisce un impianto concettuale sulla base del quale è possibile definire le modalità di interconnessione di sistemi informatici
Fornisce un modello di riferimento per confrontare diverse implementazioni di protocolli di rete proprietari e non
Rimane fondamentalmente uno strumento teorico e concettuale con uno scarsissimo numero di implementazioni di servizi (es:X.400)
452
ISO OSI Reference Model
OSI introduce il concetto di sistema:• risorse hardware
• risorse software
• periferiche
• programmi
e di applicazione:• programma che elabora i dati ed eroga servizi
OSI si preoccupa dello scambio di informazioni tra sistemi
453
D
Definizioni
La figura illustra una tipica struttura di rete
I cerchi rappresentano i nodi della rete
I nodi sono connessi tra loro mediante dei communication path
I percorsi tra due nodi sono information path
A
B
C E
454
ISO Reference model *
Application Layer 7
Presentation Layer 6
Session Layer 5 Transport Layer 4
Network Layer 3
Data Link Layer 2
Physical Layer 1
*CCITT Recommendation X.200
455
Architettura a livelli
La suddivisione in livelli del modello adotta l’approccio scientifico di dividere un problema complesso in più sottoproblemi, più agevoli da risolvere
Risultano 7 livelli, ciascuno deputato ad uno specifico insieme di servizi, specifici per le finalità del livello
Ad eccezione dei livelli 1 e 7, ciascun livello è collegato ai livelli precedente e successivo
Ciascun livello sfrutta i servizi del livello immediatamente inferiore
Un dispositivo deve potersi connettere con un qualsiasi altro dispositivo in rete
456
ISO OSI Reference Model (i)
Livelli adiacenti comunicano attraverso le loro interfacce
Ogni livello è costituito da una o più entità Entità appartenenti allo stesso livello in sistemi
diversi vengono dette peer entities Le entità usano i servizi del livello inferiore e
forniscono servizi al livello superiore mediante il proprio Service Access Point (SAP).
Le operazioni specifiche di un livello sono realizzate mediante un insieme di protocolli
457
OSI Reference Model (ii)
Protocollo di livello N-1
Servizi erogati
Servizi fruiti
458
Intermediate Systems (IS)
Application
PresentationSessionTransportNetworkData LinkPhysical
Network
Data Link
Physical
Application
PresentationSessionTransportNetworkData LinkPhysical
ROUTER
(Intermediate System)
Physical
Data Link
Mezzo fisico 1 Mezzo fisico 2
End System A End System B
459
Physical layer
Al livello più basso, il livello fisico, è un insieme di di regole che specificano le connessioni elettriche e fisiche tra i dispositivi fisici.
Questo livello specifica le connessioni dei cavi e il tipo di segnale elettrico associato ai vari pin di connessione delle interfacce utilizzate per trasferire dati tra i diversi dispositivi di rete.
Il physical link corrisponde agli standard di interfaccia dei vari dispositivi. Ad esempio appartengono a tale livello le interfacce:
RS232 V.24 V.35 SONET/SDH
Le regole definiscono la trasmissione dati per i terminali, i modem, le schede di rete, etc.
460
Data link layer (NIC, hub, bridge, switch)
Il secondo livello descrive come un dispositivo guadagna l’accesso al mezzo specificato nel physical layer
Definisce il formato dei dati, la frammentazione dei dati in un messaggio trasmesso, le procedure di controllo dell’errore, etc
Appartengono a questo livello le schede di rete (NIC), gli hub, i bridge e dispositivi di switching che operano una divisione del dominio di collisione Ethernet (suddividendo, come vedremo, il traffico in base al MAC address)
è il livello responsabile di un invio affidabile delle informazioni.
Appartengono a questo livello i data link control protocol (DLCP), come il Binary Synchronous Communications (BSC) e High Level Data Link Control (HDLC) utilizzati per la trasmissione su linee CDN.
Appartengono a questo livello anche i sottolivelli LLC e MAC (il quale scende fino a livello 1, come vedremo) di Ethernet
461
Network layer (router, switch liv.3)
è responsabile della realizzazione di una connessione tra due nodi della rete: il nodo sorgente e quello destinatario, inclusa la scelta e la gestione del routing (cioè le regole che permettono l’istra-damento delle informazioni in base all’indirizzo della rete di destinazione) e lo scambio di informazioni tra i due nodi
Appartengono a questo livello i router e gli apparati di commutazione (switch) abilitati a funzioni di routing.
I servizi di questo livello sono associati al movimento dei dati nella rete, inclusi l’indirizzamento, il routing e le procedure di controllo dei flussi.
Sono state qui definite le raccomandazioni CCITT X.25 (data flow) e X.75 (network information flow).
Appartiene a questo livello il protocollo IP.
462
Transport layer (switch liv.4)
è responsabile per la garanzia che il trasferimento delle informazioni avvenga correttamente
Analizza la comunicazione tra due nodi, basandosi sul fatto che il network control layer è in grado di stabilire il cammino ottimale tra i due nodi
Appartengono a questo livelli i dispositivi di commutazione che operano a livello 4, quali ad esempio i proxies
Si occupa principalmente di:• controllare l’errore• verificare la sequenza
delle informazioni• analizzare i fattori di
affidabilità dello scambio di dati tra i due nodi
E’ il primo livello end-to-end
Appartengono a questo livello i protocolli TCP e UDP
463
Session layer
Fornisce le regole per attivare e terminare flussi di dati tra nodi della rete
E’ responsabile dell’organizzazione del dialogo tra programmi applicativi e del relativo scambio di dati
Consente di aggiungere a sessioni end-to-end servizi più avanzati
I servizi che questo livello può fornire sono:• attivazione e
terminazione della connessione tra due nodi
• controllo del flusso di messaggi tra i nodi
• controllo del dialogo• controllo dei dati da
ambo i nodi
464
Presentation layer
I servizi di questo livello sono relativi alla trasformazione dei dati, alla loro formattazione ed alla sintassi (sono previste una rappresentazione astratta, una locale e una per il trasferimento).
Una delle funzioni è quella di convertire i dati ricevuti in modo da essere rappresentati opportunamente nel dispositivo di ricezione
Esempi di trasformazioni che possono essere gestiti da questo livello sono • crittografazione/decrittograf
azione dei dati• compressione/decompressio
ne dei dati
465
Application layer (switch liv.7)
Questo livello comprende tutti i programmi applicativi (di sistema o scritti dall’utente) che consentono l’uso della rete.
L’ultimo livello si comporta come una finestra attraverso la quale l’applicazione accede a tutti i servizi messi a disposizione dal modello.
Appartengono a questo livello i dispositivi di commutazione che operano a livello 7 (accesso selettivo ad applicazioni in base alla disponibilità o meno di abilitazioni o in base alla tipologia del client)
Esempi di funzioni svolte da questo livello:• Terminale virtuale (VT)• file transfer access
management (FTAM)• Posta elettronica, X.400• condivisione di risorse• accesso a database (X.500,
servizio di Directory) Gli ultimi tre livelli possono
differire molto a seconda del tipo di rete nella quale vengono istallati e del protocollo di rete utilizzato
466
OSI Reference Model: conclusioni
Analizzando il flusso di dati dal lato del nodo mittente occorre specificare che il livello superiore appende all’informazione una intestazione che contiene le informazioni specifiche di quel livello. Ciò avviene per ogni livello, tranne il Physical Level.
Per quanto concerne il flusso di dati dal lato del nodo ricevente, ogni livello, tranne il Physical Level, effettuerà il procedimento inverso, rimuovendo l’intestazione dopo averla interpretata, in modo da riavere l’informazione integra.
Al fluire dei dati in un network ISO, il livello n interagisce con il livello n-1
Il punto di comunicazione tra livelli adiacenti è il Neutral Acces Point (NAP)
467
SessionTransportNetworkData LinkPhysical
ApplicationPresentationSessionTransportNetworkData LinkPhysical
data data
data data
data data
data data
data data
data data
data data
Session
Network
Physical
ApplicationPresentationSessionTransportNetworkData LinkPhysical
ah|ph|sh|th|nh|dhdh|nh|th|sh|ph|ah
nh|th|sh|ph|ah
th|sh|ph|ah
ah|ph|sh|th|nh
ah|ph|sh|th
ah|ph|sh
ah|ph
ah
sh|ph|ah
ph|ah
ah
OSI : headers per
comunicazione tra due nodi trasmissione ricezione
468
Il modello OSI e la comunicazione in ambiente
UNIX e TCP/IP
Session
Transport
Network
Data Link
Physical
Application
Presentation
Session
Transport
Network
Data Link
Physical
Berkeley services: rcp, rlogin, rsh, rexec
X.400, ftp, telnet
SMTP, SNMP, NFS, RPC, Socket
IP
TCP, UDP
IEEE802.3, FDDI Media Access Control e Logical Link Control
IEEE802.3 Ethernet 10base2,10base5,10baseTFDDI PHYsical layer protocol e Physical Medium Dependent N
etw
ork
Inte
r-ne
twor
kServ
ice
Appl
icat
ion
469
Local Area Network: topologia ciclica
Il controller usa un metodo di accesso di tipo poll and select
I dispositivi necessitano di una intelligenza minima
Il funzionamento della rete è in mano esclusivamente al controller
Uno scambio eccessivo di dati tra il controller ed un terminale può collassare la rete.
è la topologia tipica dell’architettura IBM 3270 Information Display System
controller
470
Topologia a Bus
Un cavo funge da percorso principale dei dati, al quale sono connesse tutte le stazioni
Tutti i dati trasmessi sono disponibili a tutte le stazioni
Solo la stazione destinataria può leggere l’informazione
Il cavo deve essere terminato in ambo i lati per presentare la corretta impedenza alle stazioni
Il maggior svantaggio è che ogni interruzione del cavo preclude il funzionamento all’intera rete
471
Topologia a Stella
Ciascuna stazione è connessa ad un network controller (hub)
L’hub gestisce la comunicazione con ciascun nodo, indipendentemente dagli altri nodi
Le moderne ethernet hanno connessioni con topologia a stella ma si comportano logicamente come una topologia a bus.
Guasti al cavo si ripercuotono solo sulla stazione
Risolve i problemi dovuti alla presenza di jabbering nodes, nodi che trasmettono pacchetti di lunghezza errata per malfunzio-namenti che vengono interpretati come
HUB
472
Topologia ad AnelloTopologia ad Anello
Nella topologia ad anello si è in presenza di un cavo che interconnette tutte le stazioni ed ha una configurazione logica ad anello
Può essere considerata una topologia a bus chiusa
Il metodo d’accesso richiede che i dati circolino nell’anello
Moderne reti: fisicamente a stella, logicamente ad anello (Token Ring, FDDI)
Più Multistation Access Unit (MAU) vengono interconnesse ad anello
473
Topologia ad Albero
Può essere considerata una forma complessa di topologia a bus
Ciascun nodo o fornisce l’accesso alla stazione ad esso collegata o istrada i dati verso un nodo ad esso collegato
La comunicazione risulta inefficiente quando avviene tra nodi lontani (distanza percorsa >> segmento più lungo)
474
I mezzi trasmissivi: cavo UTP
Unshielded twisted-pair (UTP): è il mezzo più economico
è facile da installare consente di realizzare il
cablaggio strutturato degli edifici La connessione delle stazioni
avviene mediante il connettore RJ45
E’ l’evoluzione del singolo doppino in rame: più doppini vengono torti in maniera molto precisa, in modo da ridurre al minimo le interferenze elettromagnetiche ed affiancati in una guaina.
è fortemente soggetto a disturbi di macchine elettriche e luci fluorescenti
agisce da antenna: più è lungo il segmento, maggiore è il disturbo
Per ridurre i disturbi: Shielded twisted-pair (STP), ma troppo costoso e difficile da stendere
Esistono cavi di diverse categorie: più alta è la categoria (es: cat. 5, cat. 6 , cat. 7), più rigido e più affidabile è il cavo.
475
Doppino e cavo UTP
Doppino in rame:
Cavo STP: Cavo UTP:
476
Cavo coassiale
è il cavo originale usato nelle reti Ethernet e ArcNet
è costituito da un filo di rame centrale, ricoperto da un dielettrico, poi da una calza in rame e infine dalla guaina in polietilene
Esistono due versioni di cavo coassiale per ethernet, entrambi con impedenza 50Ω:
• cavo thick (RG-8) con diametro 0.4”
• cavo thin (RG-58) con diametro 0.25”
Thick ethernet usa il transceiver, collegato con un cavo a 9 fili (lunghezza max 50m) ad un connettore AUI 15 pin
Thin ethernet usa un connettore a T con innesto a baionetta.
477
Cavo coassiale
Schema generale:
Cavo Thick Ethernet:
Cavo thin Ethernet:
478
Fibra ottica
è il mezzo trasmissivo del futuro: economico e relativamente sicuro
è immune da interferenze elettriche
Teoricamente supporta velocità di trasmissione illimitate
Recentemente l’istallazione si è semplificata
Piccoli laser o diodi emittenti convertono il segnale elettrico in segnale ottico mentre la funzione inversa è svolta da un ricevitore dotato di fotodetector
Due tipi di fibre:• multimodali (sorgente:
LED)• monomodali (sorgente:
Laser)
479
Fibra ottica
La fibra può essere usata come mezzo trasmissivo ottico perché:• in determinati materiali l’angolo
di riflessione è uguale all’angolo di incidenza
• la propagazione della luce attraverso mezzi differenti avviene con velocità diverse
la fibra diventa una guida d’onda che intrappola il raggio luminoso
la forma cilindrica regolarizza le proprietà fisiche a seguito di torsioni
La calza esterna è in grado di assorbire tutti i raggi luminosi che dovessero abbandonare il nucleo della fibra
L’assorbimento dei raggi che fuoriescono dal nucleo della fibra è fondamentale quando si hanno cavi con più fibre
n2n1
n3
n3 > n2 > n1
480
Svantaggi:• terminazione del cavo
abbastanza complessa• eventuali interruzioni del
cavo richiedono interventi complessi
Consentono passi di ripetizione dei segnali da alcuni km a decine di km
Sono soggette a dispersione del segnale: vengono prodotte in tre modalità
• fibra multimodale stepped index: ha un’anima centrale grande rispetto alle dimensioni complessive della fibra. Presenta una forte dispersione e una banda di decine di MHz. Distanze e velocità basse.
• fibra multimodale graded index: presenta un indice di rifrazione trasversale che decresce a partire dall’asse centrale della fibra, Banda>GHz
• fibra monomodale: diametro dello stesso ordine di λ. Banda > GHz
Fibra ottica
481
Il secondo aspetto caratterizzante le LAN pertiene a come vengono trasmessi i segnali elettrici nel mezzo fisico
Link layer del modello OSI Nelle reti locali viene
suddiviso nei sottolivelli LLC e MAC
è il livello fisico che ha il compito di fornire quanto necessario per il trasporto dei segnali elettrici o ottici
Nelle LAN le tecniche trasmissive adottate sono:• banda base (comune)• banda larga
(applicazioni particolari).
LAN: metodi di accesso
482
Trasmissione in banda base
è una tecnica trasmissiva in cui il livello fisico del nodo di LAN utilizza l’intera banda
Un solo nodo può trasmettere e lo fa con velocità pari alla capacità della banda
Ne sono esempio lo standard IEEE802.3 ed Ethernet
A seconda del mezzo trasmissivo utilizzato si può avere la trasmissione di dati a velocità superiori a quelli dello standard Ethernet (più reti logiche)
Non avviene modulazione del segnale elettrico: ciò limita le distanze possibili, ma semplifica l’hardware di interfaccia
483
La trasmissione broadband è una tecnica basata sulla modulazione di frequenza del segnale e sulla divisione in sottocanali indipendenti della banda disponibile
Ciascun nodo della rete può trasmettere su una o più sottobande (video, voce, dati...)
è la trasmissione ideale per stazioni multimediali
Le stazioni sono collegate alle LAN con due diverse realizzazioni:• mediante due cavi coax
distinti, uno per la ricezione e uno per la trasmissione.
• Mediante un unico cavo con banda suddivisa in rx-tx (più semplice da realizzare)
Occorre un apparato che indirizzi i canali rx e tx della stazione e del cavo
Trasmissione in banda larga
484
La connessione delle stazioni al bus avviene utilizzando dei modem dinamici progettati per funzionare con frequenze variabili
Sono in grado di gestire più canali contemporaneamente commutando istantaneamente dall’uno all’altro canale
Quando operano in modalità automatica sono gestiti da un’unità logica di comunicazione
L’unità interroga ad intervalli regolari i dispositivi della rete per verificare se ci sono comunicazioni pendenti e semmai si sincronizza sulla giusta frequenza
Questo è il modo di funzionamento dello standard IEEE802.6
Trasmissione in banda larga
485
Recentemente la modalità descritta precedentemente per la banda larga è stata soppiantata dalla tecnologia ATM che prevede diverse interfacce fisiche (per fibra ottica, cavo coassiale, UTP) ed è basato sulla tecnologia di switching
Il traffico viene diviso in celle a lunghezza fissa che vengono commutate ad una velocità elevatissima consentendo velocità superiore al Gbit per secondo
Il protocollo è in grado di associare servizi di rete differenti a seconda dei servizi applicativi, garantendo la migliore qualità
Trasmissione in banda larga
486
banda base e banda larga: confronto
distanza: da alcuni Km (banda base) a decine di Km (banda larga)
ampiezza di banda: nella banda larga è di un ordine di grandezza superiore
costi: molto sostenuti quelli dell’hardware per banda larga
La tecnologia ATM e la diffusione della tecnologia xDSL hanno realizzato una massiccia diffusione della banda larga, anche se i costi di implementazione e di gestione rimangono elevati, il rientro in servizi avanzati ne giustifica la diffusione
487
LAN: metodi di accesso
Come si può consentire ad un computer alla volta di trasmettere in rete? (banda base)
L’accesso alla rete può essere fornito in modo• casuale• deterministico
In un metodo di accesso casuale ogni stazione può parlare in qualsiasi momento
In un metodo di accesso deterministico ogni stazione aspetta il suo turno
Deterministico Non deterministico
CSMA/CD
Ethernet
time slot
token bustoken ring
Metodo di accesso
CSMAtoken
488
Metodi di accesso al bus
Fanno parte integrante del metodo di accesso anche le specifiche:• tempo per il quale una
stazione può usare il bus in modo esclusivo
• modalità di controllo per evitare che due stazioni trasmettano contemporaneamente
Carrier Sense Multiple Access (la variante Carrier Sense Multiple Access with Collision Detection – CSMA/CD - è il metodo di accesso random utilizzato nelle reti Ethernet)
Token-passing è il metodo di accesso deterministico usato nelle reti token-ring, ArcNet e FDDI
489
Metodo di accesso a time slot
è controllato da sequenze di bit, in cui una stazione può inserire i propri dati
è realizzato su reti con topologia fisica ad anello
I time slot si susseguono uno dopo l’altro e sono costituiti da un un header con bit di inizio e dei bit di controllo
Il campo di controllo permette di rilevare ad una stazione che vede passare il time slot se il campo dati è libero o è già occupato da un’altra stazione
Se il campo dati è occupato, la stazione verifica l’indirizzo destinatario e se è il proprio, preleva i dati
490
Metodo di accesso a time slot
Criticità:• Occorre una stazione
master che generi i time slot
• Numero di time slot attivi: dipende dalle dimensione dell’anello e dal relativo tempo di propagazione dei segnali
Vantaggi:• avendo ogni slot un
tempo fisso di percorrenza e una lunghezza fissa del campo dati si presta bene ad applicazioni nelle quali è importante un tempo di trasmissione costante anche in casi di alto traffico
• è inibito ad una stazione un uso infinito del time slot
491
Carrier Sense Multiple Access with Collision Detection (CSMA/CD)
La stazione ascolta il mezzo trasmissivo prima di cercare di trasmettere
Se la stazione percepisce attività, ritarda la trasmissione prima di poter riprovare a trasmettere
Quando sente la linea libera inizia a trasmettere
Occorre considerare che il segnale impiega un certo tempo a percorrere la distanza tra le stazioni e si può verificare che anche se una stazione ha trasmesso un pacchetto, alcune stazioni non l’abbiano percepito.
Il maggiore inconveniente è che due stazioni possono trasmettere allo stesso istante perché hanno entrambe sentito libero il mezzo trasmissivo.
Il risultato è una collisione: entrambe le stazioni inviano il pacchetto, che viene corrotto.
Ethernet implementa Carrier Sense Multiple Action con Collision Detection (CSMA/CD): le collisioni vengono intercettate e si attiva un processo di ritrasmissione ritardata (backoff): nell’algoritmo che calcola il tempo di attesa compare il MAC address che è un dato univoco.
492
OSI e IEEE 802: livelli LLC e MAC
Per problemi realizzativi, nello standard IEEE 802.3 i primi due livelli OSI sono stati suddivisi in tre sottolivelli• livello fisico• livello di gestione
dell’accesso al mezzo trasmissivo, MAC
• livello di gestione logica del link, LLC
Il MAC funge da interfaccia tra livello fisico e LLC
LLC realizza funzioni di gestio-ne del link mediante un proto-collo trasmissivo sostanzial-mente comune alle diverse varianti a livello fisico
MAC è specifico dello standard utilizzato, che è funzione del protocollo (Ethernet, FastEthernet, GigabitEthernet) e del mezzo trasmissivo
Il livello fisico specifica caratteristiche elettriche e modalità di segnali per ogni standard utilizzato
493
Il controllo logico del link
Per LLC è stato sviluppato un unico standard• LLC riceve i dati dal livello
superiore e li invia passandoli al MAC sotto forma di una o più trame LLC
• La trama comprende un campo di controllo indirizzo sorgente indirizzo di destinazione i dati
L’indirizzamento dell’utente è effettuato mediante il Service Access Point (SAP)
Le modalità operative dell’LLC prevedono , la possibilità di multiplare più utenti sul servizio unico offerto da LLC
LLC prevede 3 varianti:LLC1 servizio senza connessione e
senza confermaLLC2 servizio basato su una
connessione logicaLLC3 servizio senza connessione
con conferma
494
Modalità del servizio LLC
LLC1 permette l’invio di frame su base libera (modalità tipo datagram) e non prevede nessuna conferma dei dati trasmessi e ricevuti per verificare la correttezzza dell’invio. è funzione dei protocolli dei livelli superiori assicurare le necessarie funzioni di controllo del flusso informativo
LLC2 richiede che prima dell’inizio della trasmissione venga attivata una connessione logica tra i punti di accesso al servizio dell’utente chiamato e chiamante. LLC controlla che sulla connessione logica il flusso di informazioni proceda in modo corretto.
LLC3 non richiede connessione logica e trasmette le singole trame richiedendo la conferma che la trama sia stata correttamente ricevuta prima di procedere all’invio della trama successiva
La flessibilità operativa degli standard per LLC origina dal fatto che la LAN è soggetta a minori disturbi rispetto ad una WAN e che non sempre sono necessarie robuste procedure di controllo e recupero che appesantiscono il flusso
Es: terminale-terminale: LLC2; se a livello superiore c’è TCP che ha un robusto e sicuro trasporto: LLC1
495
Metodi di gestione del bus: token
è un metodo deterministico in base al quale una stazione ha diritto a trasmettere quando viene in possesso di un messaggio di autorizzazione
La stazione può trasmettere una trama informativa e poi passare il token alla stazione successiva
è utilizzato con diverse modalità (bus, anello, banda base e banda larga)
Più note realizzazioni: Token Ring IBM e IEEE802.5
A seconda della topologia, i metodi differiscono sensibilmente
In Token Ring la trama informativa trasmessa viene rimossa dalla stessa stazione che l’ha trasmessa
In FDDI il token può essere ceduto appena trasmessa la trama informativa
496
Il metodo token su reti a bus
Il metodo Token bus prevede l’uso di un cavo al quale le stazioni sono connesse in parallelo
è un metodo di accesso logicamente sequenziale, anche se tutte le stazioni ricevono quanto viene trasmesso in un certo istante.
La stazione è coinvolta solo quando vuole rispondere ai messaggi
Funzioni di regime permanente• trasferimento di dati• trasferimento di token
funzioni di mantenimento dell’anello logico• iniziazione dell’anello logico• rigenerazione del token
Tra i nodi i messaggi sono trasferiti usando formati e sottocampi specifici
497
Il metodo token su reti a bus
Il campo di controllo specifica la classe del messaggio• trama di controllo generata a
livello MAC• trama dati generale, generata
a livello LLC• trama di utilizzo generale
Token: particolare configurazione dei bit di una trama di controllo MAC e fluisce da una stazione all’altra nell’anello in ordine di indirizzo decrescente
Nel piano degli indirizzi Token bus l’indirizzo di una stazione può rappresentare un indirizzo individuale, di gruppo o broadcast
Oltre alle informazioni degli indirizzi, una stazione dispone di una serie di timer:• timer di bus inattivo• timer per l’identificazione della
finestra temporale di risposta• timer di richiesta del token• timer per cessione token• timer di controllo per la
conservazione del token
498
Fasi del metodo token bus
Le funzioni di regime permanente di una stazione comprendono la fase di trasmissione dei dati e del token.• Una stazione che possiede il
token può trasmettere esclusivamente per il valore del timer di conservazione del token
• Allo scadere il token viene passato alla stazione seguente
• Sull’anello il token passa da una stazione all’altra seguendo un ordine di indirizzo decrescente
Durante il passaggio del token possono verificarsi dei casi che alterano la normale evoluzione della rete• la stazione può non essere
a conoscenza dell’indirizzo della stazione successiva
• è presente sul bus una stazione che vuol essere inserita nell’anello logico e diventare parte attiva della rete locale
499
Fasi del metodo token bus (II)
L’inserzione di nuove stazioni avviene tramite un algoritmo di contesa regolato da messaggi di “richiesta di nuova stazione successiva” abbinati a finestre temporali di opportunità di risposta, le quali identificano l’intervallo durante il quale una risposta è considerata valida
Ci sono due modalità di apertura della finestra di risposta: richiesta di stazione successiva di tipo 1 e 2
Le stazioni che hanno indirizzo inferiore all’indirizzo della stazione richiedente rispondono durante la finestra di tipo 1 mentre quelle che hanno indirizzo superiore durante una finestra di tipo 2
La richiesta di inserzione nell’anello viene fatta dalla stazione interessata mediante spedizione di una frame di stazione successiva che nel campo indirizzo l’indirizzo della stazione che ha il token e nel campo dati il proprio indirizzo
La stazione che ha il token lo trasmette alla nuova stazione che può iniziare a trasmettere
Se la trasmissione del token fallisce viene assunto che la stazione successiva è inoperativa e inizia il processo di identificazione di nuova stazione successiva
500
La rete Ethernet
La rete Ethernet è stata disegnata per una topologia a bus, utilizza il metodo di accesso CSMA/CD
Rappresenta lo standard de-facto descritto nelle caratteristiche essenziali dallo standard de jure IEEE 802.3 (non esiste compatibilità però tra i due standard)
E’ stata inventata da Bob Metcalfe presso Xerox Corp.
Schema di rete Ethernet
fatto da Bob Metcalfe
501
L’interfaccia Ethernet
si occupa delle seguenti funzioni:• incapsulamento e decapsulamento dei
dati• link management• codifica e decodifica Manchester dei
bit: per trasmettere un segnale di clock insieme ai dati: trasmette il clok inalterato se il digit è 0, invertito se il digit è 1
• la codifica Manchester garantisce una transizione del segnale elettrico in ogni bit trasmesso. Ciò permette ad appositi circuiti del ricevitore di agganciare in fase il loro clock a quello del trasmettitore durante la ricezione del preambolo e quindi di ricevere il pacchetto con la giusta temporizzazione
0 | 0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 1 |
1 | 0 | 1 | 0 | 1 |
Periodo di un bit
Esempio di codifica Manchester
502
Lo standard Ethernet
Lo standard Ethernet, identifica una rete locale operante con metodo di accesso CSAM/CD su bus costituito nella sua originale implementazione da un cavo coassiale
Nelle moderne reti Ethernet, il bus è implementato logicamente dagli apparati attivi di rete (Hub, switch)
I due standard non presentano differenze a livello fisico, pertanto gli apparati possono interoperare
la differenza è nel formato della trama
Nello standard Ethernet è il livello applicativo che genera il messaggio che si deve preoccupare di assicurare una lunghezza di almeno 46 byte
Una differenza fondamentale è rappresentata dal campo tipo che viene utilizzato per indicare il tipo di protocollo di trasporto utilizzato dai livelli superiori
503
Switched LAN
Le Switched LAN rappresentano la migliore soluzione per aumentare le prestazioni di una rete Ethernet poiché suddividono il dominio di collisione della rete stessa.
Si basano sull’uso di apparati (Switch) che effettuano una copia “meditata” dei dati trasmessi dai vari host. Viene mentenuto in un buffer locale l’elenco degli indirizzi MAC degli host connessi alla rete suddiviso per porta dello switch. Un pacchetto verrà copiato dalla porta sorgente solo sulla porta alla quale è collegato l’host di destinazione.
Il loro utilizzo è trasparente all’utente I principali problemi del metodo di acceso CSMA/CD sono risolti
definitivamente in quanto le collisioni vengono minimizzate. E’ una tecnologia con bassi costi implementativi L’utente può utilizzare tecnologie miste (10-100-1000baseT)
ottenendo un manutenzione facilitata ed alta flessibilità. La migrazione ad una switched LAN comporta semplicemente la
sostituzione degli apparati attivi, lasciando inalterato il cablaggio (se di tipo 10baseT).
504
Lo standard IEEE 802.3
Le reti locali appartenenti allo standard 802.3 adottano uno schema di accesso al bus di tipo CSMA/CD.
Lo standard 802.3 prevede un discreto numero di varianti a livello MAC, che presentiamo di seguito e che descrivono il funzionamento di un ampio spettro di mezzi trasmissivi utilizzabili per la propagazione del segnale della rete locale
Versione originale: 10base5• prevede l’uso di cavo
coassiale thick da 50Ohm• 10base5:velocità di 10Mbps,
modalità trasmissiva in banda base, lunghezza massima del singolo spezzone di cavo in centinaia di metri, pari a 5
• Aree più ampie possono essere realizzate mediante aggiunta di ripetitori di segnale elettrico con impedenza uguale a quella del cavo
• Vincoli di percorrenza dei segnali sul cavo limitano la distanza massima a 2800m
505
IEEE 802.3 - 10base5 (thick ethernet)
• Distanze superiori richiedono l’uso di bridge locali o remoti che operano, invece che sul livello fisico, sulle trame generate a livello MAC
• Numero masimo di stazioni collegabili ad un segmento: 500
• Numero massimo di stazioni collegabili ad una rete: 1024
• L’uso di bridge innalza il numero massimo di stazioni collegabili in rete
• La connessione delle stazioni avviene mediante un vampire tap ed un transceiver o Medium Access Unit (MAU), il quale converte i segnali da controller a mezzo fisico e viceversa
• La connessione tra controller e transceiver è realizzata mediante un cavo dotato di 8 fili chiamato drop o AUI (Attachment Unit Interface) che può essere lungo 50m al massimo
• Le connessioni permettono il trasferimento dei segnali dal controller al transceiver e viceversa
• Singoli conduttori permettono di comandare l’interruzione della trasmissione o di ricevere dal transceiver la segnalazione che si sta verificando una collisione
• In alcuni casi si usano cavi che possono connettere fino a 8 stazioni
506
Connessione a vampiro
507
IEEE 802.3 - 10base2 (thin ethernet)
Versione 10base2• Creato a seguito delle difficoltà
di manipolazione fisica e dei costi del cavo thick
• Si usa un cavo coassiale sottile noto con la sigla RG58, con notevolmente superiori caratteristiche di flessibilità e curvatura
• Lunghezza massima di un segmento: 185m
• Numero massimo di stazioni collegabili ad un segmento: 30
• Le ridotte dimensioni del cavo semplificano le modalità con cui può essere effettuata la connessione del transceiver al cavo coassiale
• Viene utilizzato un attacco BNC a T che introduce un’attenuazione del segnale
• Un tipico cablaggio della fine degli anni ‘80 era costituito da cablaggi 10base2 al piano e dorsali 10base5
• La limitazione del numero di host è stata superata con l’uso di multiport repeater, connessi ad una dorsale 10base5 dai quali si hanno diramazioni (8/4/2) 10base2
508
IEEE802.3 10base2: componenti
Connettore IEEE802.3 10base2 (innesto a baionetta)
Connettore IEEE802.3 10base2 a T
NIC IEEE802.3 10base2 collegata con terminazione (tappo)
IEEE802.3 10base2 Multiport Repeater
Segmento di rete IEEE 802.3 10base2
509
Problematiche di questo tipo di cablaggio
Ogni difetto sul cavo si ripercuote su tutta la rete
Diventa difficilissimo individuare • contatti difettosi nei connettori• spine rotte• connettori difettosi
cavi piegati troppo o con strozzature generano delle interferenze di tipo elettromagnetico che alterano i dati in rete
Gli effetti in gran parte non sono riproducibili e variano al variare della posizione dei computer nella rete stessa
Tecniche di rilevamento basate sul metodo della riflessometria a domino di tempo:• viene inviato in rete un segnale
di nota intensità• se ci sono ostacoli o la fine del
cavo, viene generato un segnale di eco che tornerà indietro
• misurando con grande precisione i tempi di propagazione del segnale è possibile misurare con alta precisione la posizione che ha originato il segnale di eco
Questi apparecchi sono in grado di fornire con precisione altissima tutte le caratteristiche del cavo
510
IEEE 802.3 - 10baseT (doppino in rame - HUB)
Versione 10baseT• Creato al fine semplificare la
predisposizione fisica delle reti a livello di edifici o di campus e grazie alla definizione di sistemi a cablaggio strutturato
• Definisce l’uso del doppino non schermato (Unshielded Twisted Pair, UTP) come mezzo su cui trasferire i dati
• Ha una struttura fisica a stella, con hub connessi in parallelo dai quali si diramano le connessioni punto-punto con le stazioni
• Lunghezza massima di un segmento UTP: 100m
• La connessione tra controller e mezzo fisico avviene con un connettore RJ45, analogo a quello utilizzato per i telefoni ISDN
• Poiché il doppino utilizzato è quello utilizzato anche per l’impianto telefonico, l’aspetto interessante di questo tipo di cablaggio è che può essere riassegnato a funzioni diverse (fonia o servizi dati) a seconda delle esigenze o a seguito di mutate esigenze di un dato ufficio
511
IEEE 802.3 10baseT: componenti
IEEE802.3 10baseT Stackable HUB/SWITCH
IEEE802.3 10baseT Modular SWITCH
Segmento di rete IEEE802.3 10baseT
Connettore RJ45
512
IEEE 802.3 - 10baseFOIRL (fibra ottica)
Versione 10baseFOIRL• Alternativamente al cavo Thick
ethernet è possibile utilizzare fibra ottica ed un transceiver Fiber Optic MAU (FOMAU)
• Il FOMAU è in grado di ricevere e trasmettere segnali ottici lungo un segmento di fibra ottica di lunghezza massima pari a 1000m
• Il transceiver è costituito da emettitori e ricevitori basati su LED e dai connettori che sono utilizzati per connettere fisicamente la fibra ottica.
• Le caratteristiche della fibra sono specificate nello standard EIA/TIA 568
• Le funzioni principali del transceiver sono: trasmissione ricezione rilevamento della collisione funzione di jabber:quando
riceve una stringa di bit superiore alla lunghezza massima prevista, interrompe la funzione di trasmissione
funzione di low level detection:quando riceve segnali ottici inferiori ad una soglia stabilita, interrompe la ricezione
La trasmissione avviene mediante LED che emettono a λ=850nm
513
IEEE 802.3 - 10baseF (fibra ottica)
Versione 10baseF• E’ la modalità che definisce l’uso
di IEEE802.3 utilizzando come mezzo trasmissivo la fibra ottica
• Si suddivide in tre sottostandard: 10baseFP, 10baseFB, 10baseFL.
• Tutti e tre i sottostandard si uniformano alle specifiche dello standard EIA/TIA 568 ed utilizzano LED che emettono ad una lunghezza d’onda di 850nm
Versione 10baseFP• Le specifiche di questo standard
riguardano le caratteristiche di apparati che trasmettono alla velocità di 10Mb/s e sono basate sul segmento a fibra ottica connesso tramite una stella passiva(Fiber Passive, FP)
• Definisce un’alternativa all’uso del cavo coassiale in cui i soli elementi attivi sono i transceiver ottici.
• La stella passiva consente l’interconnessione di diversi segmenti punto-punto ed opera una ripartizione del segnale ottico
• la distanza massima tra MAU e stella è di 500m e tra due MAU interconnessi mediante stella, di 1000m
514
IEEE 802.3 - 10baseF (fibra ottica) (i)
Versione 10baseFB• E’ la modalità che definisce l’uso di
IEEE802.3 utilizzando come mezzo trasmissivo il segmento in fibra ottica che ha funzioni di dorsale tra due ripetitori (Fiber Backbone, FB)
• Definisce un’alternativa all’uso del cavo coassiale in cui gli elementi attivi sono i transceiver ottici e le stelle attive.
• Questo standard consente ancora oggi la costruzione di transceiver fault-tolerant, poiché sono dotati di due porte in fibra ottica, una principale e una di backup. In caso di guasto della porta main, l’apparato commuta rapidamente su quella di backup.
• La lunghezza massima è di 2000m
Versione 10baseFL• E’ la modalità che definisce l’uso
di IEEE802.3 utilizzando come mezzo trasmissivo il segmento in fibra ottica di tipo link (Fiber Link, FL)
• Lo standard prevede l’interconnessione di ripetitori e stazioni sia in modalità punto-punto sia in modalità stellare .
• La lunghezza massima è di 2000m
• Il MAU 10baseFL è compatile con il MAU FOIRL e quando è connesso a questo la lunghezza del segmento si riduce a 1000m
515
Il transceiver
Il transceiver è l’elemento che consente la trasmissione / ricezione dei pacchetti tra l’interfaccia di rete (Network Interface Controller, NIC) ed il mezzo trasmissivo.
Interfaccia e transceiver sono collegati da un cavo con 4 doppini (alimentazione, RX, TX, rilevazione collisioni)
Il transceiver è costituito principalmente da:• Due driver:
uno trasmette all’interfaccia i dati ricevuti dal mezzo trasmissivo
l’altro invia all’interfaccia un segnale di collisione nel caso si presenti il fenomeno. Inoltre questo driver alla fine di ogni trasmissione invia all’interfaccia un segnale chiamato collision_presence_test (CPT o Heartbeat) il cui scopo è verificare il buon funzionamento del circuito di collisione ed avvisare l’interfaccia di ciò.
• Un receiver che riceve i dati dall’interfaccia e li trasmette mediante opportuni circuiti al mezzo trasmissivo
• Un alimentatore che riceve l’aimentazione dall’interfaccia e genera l’alimentazione per i circuiti interni
516
Il formato delle trame
La struttura della trama, identica tra le diverse versioni dello standard IEEE 802.3 è illustrata di seguito e confrontata con quella dello standard Ethernet
Il campo SFD indica l’inizio trama, seguito dagli indirizzi della stazione destinataria della trama e della stazione origine• Il primo bit del primo
byte di indirizzo vale 0 se la trama ha un solo destinatario, 1 altrimenti
• Se dopo il primo bit a 1 tutti gli altri bit dell’indirizzo destinatario sono a 1, si tratta di una frame di broadcast (“indirizzato a tutte le macchine”)
• è il sottolivello MAC che stabilisce la lunghezza del campo PAD quando forma il messaggio da inviare al livello fisico
ETHERNET
preambolo
destinazione
sorgente
len datiCRC
7 2o6 2o6 2 4
preambolo
destinazione
sorgente
tipo datiCRC
8 6 6 2 46-1500 4
IEEE 802.3
SFD
1 0-150
PAD
lun.var.
517
10/100/1000BaseT
Le varianti a 100Mbps (FastEthernet) e 1Gbps (GigabitEthernet) della specifica Ethernet di base hanno le stesse caratteristiche fondamentali dello standard 10baseT.
Cambia la frequenza del segnale che è:• 100MHz per FastEthernet• 1GHz per GigabitEthernet• 10GHz per 10Gigabit Ethernet
Ciò rende integrabili le diverse tecnologie con costi bassissimi, ottenendo una maggiore flessibilità nella configurazione e nella gestione degli apparati di rete.
518
Lo standard IEEE802.3ae implementa 10Gbit ha effettuato la prima demo di una rete
10Gbit Ethernet su rame usando cavi cat.6 (http://www.keyeye.net/ke_active_web_site/tech/technology.html)
Lo standard IEEE802.3ak (10000baseCX4)
Sono stati prodotti apparati attivi 10000baseCX4 (lunghezza dei cavi 15m estensibili a 25m)
E’ una soluzione di estrema importanza per realizzare dorsali alle quali siano connesse reti a 1Gbit
10Gigabit Ethernet: IEEE802.3ae e IEEE802.3ak
519
Switch Ethernet
Una LAN può implementata con i seguenti apparati switch:• 10baseT Switch (IEEE802.3): ogni porta implementa un
Dominio di Collisione separato• 100baseT Switch (IEEE802.3u): ogni porta implementa un
segmento di rete FastEthernet usando un cavo Unshielded twisted Pair (UTP)
• 1000baseCX Switch (IEEE802.3z, IEEE802.3ab): ogni porta implementa un segmento di rete Gigabit Ethernet usando un cavo in rame Shilded Twisted Pair (STP)
• 1GbaseCX4 Switch(IEEE802.3ae, IEEE802.3ah): ogni porta implementa un segmento di rete 10 Gigabit Ethernet usando un cavo in rame Shilded Twisted Pair (STP)
520
Virtual LANs
Implicit in the Switching LAN concept is the virtual networking whereby workgroups are created on demand from a central location for special projects or projects that require restricted access (software-controlled switching)
Virtual LANs allows to group workstations connected to different hubs throughout the enterprise in workgroups, regardless of their geographical location and the physical LAN infrastructure
521
Virtual LANs (i)
522
Virtual LANs (ii)
The switching software is not protocol-, media-, or hardware-dependent
The bandwidth problem can be controlled by restricting the use of network segments by workgroups
This approach provides security, since packets--broadcast and multicast--will only be seen by authorized users within a workgroup
523
Gigabit Ethernet
Based on the Ethernet technology furnish 1Gb bandwidth on existing network trunk
Over 85% of all installed network are Ethernet: hubs and switches are reliable and cost-effective
Employs CSMA/CD protocol for multiplexing multiple customers onto the transmission medium and for managing the inherent collisions
The migration affect only the Switch engines and the NIC on the user side
524
Gigabit Ethernet (i)
Supports • new full-duplex operating modes for Switch-to-
Switch and Switch-to-endstation connections • half-duplex operating modes for shared connections
using repeaters and the CSMA/CD access method Operates over:
• Optical Fiber (IEEE802.3z)• Category 5 UTP (IEEE802.3ab)
525
Gigabit Ethernet (ii)
526
Gigabit Ethernet
See as reference:
http://www.gigabit-ethernet.org
527
Test case 1
528
Test case 2
529
Lo standard IEEE 802.4 Token Bus
Nel gruppo di lavoro 802.4 ci si è proposto l’obiettivo di coordinare il lavoro di standardizzazione di IEEE ed ISO per una rete a bus con modalità trasmissiva broadband
Lo standard è basato sul Manufacture Automation Protocol (MAP) versione 3
Non ha avuto particolare fortuna a causa dei costi implementativi e per la fortuna delle reti in banda base facenti uso di repeater e fibra ottica
I bridge MAC hanno consentito di risolvere il problema del traffico sulla rete consentendo di realizzare la divisione fisica della rete
Per la tecnologia broadband sono disponibili pochi prodotti hardware e software, la qual cosa ingenera degli elevati costi
C’è scarso interesse applicativo su questa tecnologia
Può riservare un interesse futuro come tecnologia da affiancare all’uso di fibre ottiche
530
Lo standard IEEE 802.5 Token Ring
Diversi standard:• IEEE 802.5• ECMA• IBM
Esistono diverse implementazioni che prevedono l’uso del doppino schermato (IBM) e non, l’uso di fibre ottiche.
Descrive una modalità trasmissiva a token in cui la connesione delle stazioni avviene con dei collegamenti punto-punto tra le stazioni, formando un anello chiuso
Presso ogni nodo della tratta punto punto viene rigenerato il segnale elettrico ed esaminato il contenuto della trama
Per evitare che una connessione guasta blocchi la rete, la interconnessione delle stazioni avviene mediante un Medium Access Unit (MAU)
IBM ha introdotto da poco una nuova versione di protocollo denominata early token passing per ottimizzare l’uso della banda disponibile in anelli particolarmente grandi e con un carico di esercizio costituito da pacchetti piccoli.
531
Lo standard IEEE 802.6 C stato rilasciato di recente dall’IEEE (inizio progetto 1982, pubblicato nel 1991) ed è il primo che nasce per rispondere ad un’esigenza, piuttosto che standardizzare una situazione esistente
L’esigenza principale è stata quella di estendere i servizi della Local Area Network in un’estensione metropolitana
Sono stati considerati vari tipi di interconnessione, quali link via satellite, cavo televisivo, radio broadcast ed infine Distributed Queue Dual Bus (DQDS) che ne è divenuto lo standard (IEEE802.6)
La MAN di base definita dallo standard consiste in 512 nodi, 160Km, 150Mbps dual bus network, ma ciascuno di questi parametri può essere considerevolmente esteso
Lo standard può essere usato come rete privata o pubblica, utilizzando come supporto la fibra ottica resa disponibile dalla compagnia telefonica
Le compagnie telefoniche hanno partecipato attivamente alla definizione del progetto 802.6 MAN e dell’emergente Switched Multi-megabit Data Service (SMDS)
Lo standard IEEE 802.6 Metropolitan Area Network
532
Lo standard ha ricevuto largo consenso in US, Inghilterra, Germanis e Italia (rifiutato dalla Francia)
Le applicazioni iniziali sono costituite da interconnessione di LAN, ma è l’unico ad essere stato riconosciuto dal CCITT ed ad essere ustilizzato su reti pubbliche
Sviluppi successivi riguardano applicazioni orientate a connessioni permanenti e servizi isocroni (es. voce digitalizzata)
E’ l’unico standard IEEE o ANSI concepito dall’inizio per fornire servizi di rete ad alta velocità e a traffico fortemente vincolato da limiti temporali (voce digitalizzata per applicazioni di fonia-dati)
E’ compatibile con le tecnologie Switched Multi-megabit Data Service (SMDS) e Broadband ISDN (B-ISDN), il che assicura un ruolo di importante a SMDS nei sistemi di comunicazione di voce e dati del futuro.
Lo sviluppo di servizi MAN risulta fondamentale per tutte le applicazioni che necessitano di elevate prestazioni in termini di velocità ed alta qualità ed affidabilità.
Lo standard IEEE 802.6
Distributed Queue Dual Bus (DQDB)
533
Il metodo di accesso si basa su di un algoritmo distribuito di accodamento delle richieste di trasmissione, detto anche coda distribuita.
La stazione che trasmette accoda la richiesta che verrà servita quando saranno terminate le richieste precedenti
la coda è unica per tutte l estazioni ed è gestita in modo distribuito.
Una sottorete DQDB è realizzata mediante due bus seriali che trasmettono dati in direzioni opposte
Sui duebus i nodi vengono connessi tramite le Access Unit che realizzano il protocollo DQDB
I nodi che si trovano agli estremi del doppio bus prendono il nome di head-of-bus
Essi sono il punto di generazione del flusso di dati per un bus (start of data flow) ed il punto di terminazione di un flusso di dati per l’altro bus (end of data flow)
Una sottorete DQDB può essere configurata con due topologie• Open bus si tratta di un
doppio bus con le estremità aperte. In caso di guasto la sottorete si divide in due sottoreti che rimangono isolate
• Looped bus: si tratta di un doppio bus richiuso ad anello che offre buone caratteristiche di tolleranza ai guasti
Lo standard IEEE 802.6 - DQDB
534
IEEE 802.9 Integrated Voice & Data LAN
IEEE 802.10 Interoperable LAN Security
IEEE 802.11 Wireless Local Area Network
Altri standard del gruppo 802
535
Reti wireless
In questi ultimi anni si è osservato un enorme sviluppo delle tecnologie wireless
I vantaggi di questa tecnologia sono evidenti:• Non serve più effettuare
lavori di adeguamenti strutturali per il cablaggio: molto importante in edifici di interesse storico-artistico
• Favoriscono la mobilità degli utenti, consentendo l’accesso ai servizi di rete ovunque
• Realizzazione di reti temporanee
• Servizi di roaming: mantenimento del collegamento anche spostandosi fisicamente
• Scalabilità• Gestione immediata di
un’utenza variabile• Estensione di LAN cablate
La maggioranza dei dispositivi mobili (notebook, PDA, Smartphone) sono in grado di scambiare informazioni in rete wireless
Possibilità di implementare la sicurezza a livelli molto elevati (certificati X.509).
536
Reti wireless (i)
537
Sovrapposizione di due celle e roaming
538
Reti wireless: dispositivi
Access Point (AP)• La rete wireless si basa su una
serie di Access Point che mediante antenne comunicano con i client e tra loro.
• Spesso gli AP sono collegati ad uno Switch mediante cavo UTP per ottimizzare le prestazioni
• A seconda delle caratteristiche dell’AP e dell’ambiente la potenza varia tra 20m e 300m
• Gli AP devono essere disposti in modo tale da poter coprire uniformemente l’area della Wireless LAN, mediante sovrapposizione (10-15%) con l’AP adiacente.
• Quando l’utente si sposta viene mantenuta la connessione passando da un AP all’altro
NIC• I client della rete wireless
devono essere dotati di specifico dispositivo che sia in grado di trasmettere e ricevere segnali dall’Access Point
• Esistono diversi tipi di NIC, dalle schede PCMCIA ai dispositive USB.
NIC wireless
Access PointAntenne
539
Reti wireless: tecnologie Powerline e Ottica
Powerline• Usa i fili elettrici all'interno di un
edificio per trasmetter il segnale.• In assenza di interruzioni
(trasformatori) nella rete elettrica è possibile stabilire un link di comunicazione tra chiamante e ricevente mediante onde convogliate.
• A causa del grande rumore presente sui fili e del tipo di mezzo usato per trasmetter la corrente, la velocità di trasmissione è limitata.
• Ha il pregio di essere una tecnologia economica.
Ottica• Usa la tecnologia
dell'Infrarosso per trasmettere l'informa-zione.
• In una wireless LAN a raggi infrarossi ogni stazione è equipaggiata con un transceiver dotato per la trasmissione di un LED che emette luce a raggi infrarossi e, per la ricezione, di un fotodiodo, operanti alla medesima lunghezza d'onda.
• Si hanno tre metodi di radiazione degli IR per l'interscambio di dati tra stazioni: punto-punto, semi-diffusione e diffusione totale.
540
Reti wireless: tecnologia ottica
Nella modalità punto-punto, due transceiver devono essere perfettamente allineati per potersi illuminare reciprocamente con un fascio di luce IR. Lo scambio di dati tra le stazioni avviene modulando il fascio di infrarossi. Questa tecnica va bene per la realizzazione di LAN di tipo Token Ring, realizzando l'anello fisico mediante una sequenza circolare di link punto-punto. Con trasmissione laser-IR unidirezionale si possono coprire distanze anche di alcuni Km.
Nella modalità di radiazione per semi-diffusione, il segnale ottico emesso da una stazione viene captato da tutte le altre, realizzan-do così delle connessioni punto-multipunto o broadcast. Si sfrutta una superficie riflettente sulla quale vanno a collimare i fasci IR provenienti dai transceiver di tutte le stazioni: con questa configura-zione, per il principio di diffusione della radiazione luminosa, il raggio proveniente da una stazione verrà riflesso verso tutte le altre renden-do così possibile una comunica-zione di tipo broadcast.
541
Reti wireless: tecnologia ottica
La superficie riflettente può essere passiva, di solito il soffitto della stanza ove ha sede la LAN, oppure attiva, cioè realizzata mediante un dispositivo, detto satellite, che serve ad amplificare e rigenerare il segnale ottico prima di effettuarne il broadcast (funzio-na praticamente come un repeater). La diffusione passiva richiede più potenza nei transceiver delle stazioni, ma consente una più facile installazione della rete dal momento che non occorre il posizionamento del satellite.
Nella radiazione per diffusione to-tale, la potenza ottica emessa da un transceiver deve essere tale da consentire al raggio di diffondersi per tutto il volume della stanza do-po una serie di riflessioni multiple sui muri. Questo segnale verrà ca-ptato da qualunque altra stazione all'interno dello stesso spazio, senza la necessità di alcun parti-colare orientamento di quest'ulti-ma. La presenza di riflessioni limita la massima velocità di tras-missione a causa dell'interferenza dovuta al fenomeno del multipath (per cui un segnale può essere ricevuto attraverso più cammini caratterizzati da
differenti ritardi).
542
Radiofrequenza (RF)
L'utilizzo delle radiofrequenze è ostacolato dal fatto che la com-plessità dei radio-transceiver cre-sce con il crescere della frequen-za di trasmissione, e il costo è in generale più elevato del corris-pettivo IR, anche se può essere in parte abbattuto sfruttando la componentistica ad alta diffusio-ne (ad esempio la telefonia cellu-lare). Uno dei vantaggi di questa tecnologia risiede nella possibili-tà di coprire aree estese, che su-perano i limiti di un singolo ambi-ente.
Con una trasmissione a bassa potenza (<1W) si possono copri-re distanze di circa 1 Km all'aper-to e 50-100 m al chiuso, a secon-da del numero di pareti da attra-versare. Un ulteriore vantaggio della trasmissione RF consiste nella possibilità di permettere la compresenza di più network iso-late, mediante la variazione della frequenza della portante trasmis-siva. La scelta delle frequenze e della modalità di trasmissione è strettamente legata alle esigenze di progetto e alla regolamenta-zione presente nei diversi Paesi.
543
Modulazione Spread Spectrum (SS)
La tecnica di modulazione Spread Spectrum è nata alla fine della Seconda Guerra Mondiale per scopi militari: serviva per pre-venire l'interferenza durante il controllo di armi telecomandate. Consiste nel distribuire l'energia di un segnale a banda limitata su di una banda molto più ampia al fine di abbassarne notevolmente la densità spettrale di energia. L'idea è quella di ottenere un segnale con un livello energetico al di sotto di quello del rumore ambientale, che, come è noto, è costante e a banda pressoché
illimitata, per renderlo non inter-cettabile. In ambito civile lo sco-po è quello di minimizzare le in-terferenze che inevitabilmente si hanno tra più segnali che condi-vidono la stessa banda.
Esistono due tecniche per ottenere un segnale Spread Spectrum da uno a banda limitata: Direct Sequence Spread
Spectrum (DSSS)
Frequency Hopping Spread Spectrum (FHSS)
544
Direct Sequence Spread Spectrum
il segnale trasmesso è modulato con una sequenza pseudo-casu-ale binaria (chipping sequence). Per trasmettere un 1 si invia la sequenza di chipping affermata, per trasmettere uno zero la sequ-enza negata. La velocità relativa tra frequenza pseudo-casuale e trasmissione (cioè la lunghezza della sequenza di chipping) è, nel caso commerciale, compresa tra 10 e 100, mentre in quello militare tra 1000 e 10000. Il ricevitore per ricostruire l'informa-zione esegue l'EXOR tra segnale e sequenza pseudo-casuale: se
sono in fase, il risultato è il se-gnale trasmesso. Mediante tale tecnica si trasmette ancora con una singola portante a frequenza fissa, come nelle trasmissioni tradizionali, ma, grazie alla se- quenza di cipher e allo schema di modulazione usato, la potenza del segnale si distribuisce su uno spettro più ampio.
Esempio trasmissione DSSS
545
Frequency Hopping Spread Spectrum
tutta la banda disponibile è divisa in un insieme di canali di uguale larghezza. La trasmissione avvi-ene per un certo periodo di tem-po (dwell time) su un canale poi passa su un altro seguendo una precisa sequenza (hopping se-quence). Tale sequenza può es-sere predeterminata o trasmessa essa stessa insieme ai dati, co-munque deve essere tale da ga-rantire un ugual uso di tutti i ca-nali di trasmissione. Quando il dwell time è minore del tempo di bit si parla di fast- frequency hop-ping, mentre quando il dwell time è (molto) maggiore del tempo di
bit di parla di slow-frequency hop-ping. I sistemi basati sul primo tipo sono più costosi e ad alto consu-mo, ma, dal momento che ogni bit di dato viene trasmesso su molti canali, offrono il vantaggio di una maggiore tolleranza alla distorsio-ne selettiva in frequenza. Lo slow-frequency hopping, invece, per-mette una maggiore facilità nel sincronismo dell'hop.
Esempio di Trasmissione FHSS
546
Lo standard IEEE 802.11
Il gruppo di lavoro dell’IEEE 802.11 si occupa della standardizzazione del sottolivello MAC e fisico delle reti wireless (Wireless LAN, WLAN).
E’ suddiviso nei sottogruppi• LLC• MAC• PHY
Un singolo MAC supporta diversi livelli PHY, anche se questi fanno uso di tecnologie diverse.
547
IEEE 802.11
L’entità fondamentale di una rete wireless è chiamata Basic Service Set (BSS), definita come un insieme di stazioni, fisse o mobili, collocate geograficamente all’interno di una cella che possono stabilire connessioni dirette (Independent BSS) o con l’ausilio di strutture intermedie (Infrastructure Network BSS).
Nel secondo caso (rete con infrastruttura) è coinvolto un Access Point (AP), un dispositivo che fa comunicare le stazioni all’interno di una stessa cella.
Normalmente una WLAN è costituita da più celle. L’infrastruttura di interconnessione tra i diversi BSS è denominata Distribution System (DS), indipendente dall’architettura della rete.
548
IEEE 802.11
Il wireless MAC supporta sia servizi connectionless da 1 a 54Mbps, sia servizi di tipo sincrono (per controllo di processi, voce, video)
Interfacce fisiche:• InfraRed PHY lavora in banda base • Radiofrequenza DSSS PHY (DirectSequence Spread Spectrum)• Radiofrequenza FHSS PHY (Frequency Hopping Spread Spectrum)
Frequenze:• 2.4 Ghz (ISM : Industrial Scientific Medical frequency band)• 5 GHz
Velocità:• Fino a 11Mbps (IEEE 802.11b)• Fino a 54 Mbps (IEEE 802.11g)
Metodo di Accesso:• CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance)
Le collisioni vengono evitate invece che evidenziate (IEEE 802.3)
549
CSMA/CA
Una qualunque stazione che vuole trasmettere per prima cosa verifica se un'altra stazione sta trasmettendo (Carrier Sense), e se riconosce la presenza di trasmissioni si mette in attesa.
Quando il mezzo si libera attende che rimanga tale per un intervallo di tempo minimo (Distributed InterFrame Space: DIFS), dopo di che inizia una fase di contesa per l'utilizzo del mezzo (contention window): la stazione sceglie un intervallo casuale (backoff) al termine del quale, se il mezzo è ancora libero, inizia la trasmissione.
L'intervallo di backoff serve a ridurre la probabilità di collisio-ne quando, alla fine di una trasmissione, ci sono molte sta-zioni in attesa che il mezzo si liberi.
550
CSMA/CA
L'intervallo di backoff è scelto tenendo conto di un parametro che oscilla tra un valore massimo ed uno minimo, raddoppiando ogni volta che si deve ripetere la trasmissione di un frame. In questo modo si allunga la finestra di contesa riducendo la probabilità di collisione nel caso di carico elevato della rete.
Quando una stazione, in attesa che termini l'intervallo di backoff, sente che il mezzo non è più libero, congela il tempo di backoff rimasto. Quando poi rileva il mezzo libero per un tempo pari ad un DIFS, non sceglie un nuovo intervallo di attesa, ma termina il precedente. In questo modo si cerca di evitare la "starvation".
Comunque, il mecccanismo di backoff non esclude la possibilità di trasmissio- ni contemporanee, e quindi di collisioni. Per realizzare la "collision avoidance" lo standard prevede un protocollo Request To Send (RTS) - Clear To Send (CTS). Quando una stazione trova libero il mezzo allo scadere del tempo di backoff, non invia subito il dato, bensì un frame di RTS. Se riceve dal destinatario un frame di risposta CTS, allora procede all'invio del messaggio, altrimenti suppone che si sia verificata una collisione e si mette in attesa per riprovare.
551
CSMA/CAL'intervallo di backoff è scelto tenendo conto di un parametro che oscilla tra un valore massimo ed uno minimo, raddoppiando ogni volta che si deve ripetere la trasmissione di un frame. In questo modo si allunga la finestra di contesa riducendo la probabilità di collisione nel caso di carico elevato della rete.
Quando una stazione, in attesa che termini l'intervallo di backoff, sente che il mezzo non è più libero, congela il tempo di backoff rimasto. Quando poi rileva il mezzo libero per un tempo pari ad un DIFS, non sceglie un nuovo intervallo di attesa, ma termina il precedente. In questo modo si cerca di evitare la "starvation".Il mecccanismo di backoff non esclude la possibilità di trasmissioni contemporanee, e quindi di collisioni. Per realizzare la "collision avoidance" lo standard prevede un protocollo Request To Send (RTS) - Clear To Send (CTS). Quando una stazione trova libero il mezzo allo scadere del tempo di backoff, non invia subito il dato, bensì un frame di RTS. Se riceve dal destinatario un frame di risposta CTS, allora procede all'invio del messaggio, altrimenti suppone che si sia verificata una collisione e si mette in attesa per riprovare.
552
Noto anche come High Rate Wireless Ethernet o Wi-FI Offre prestazioni analoghe alla Ethernet tradizionale: 11Mbps Opera alla frequenza di 2.4GHz E’ il più popolare standard per reti Wireless, facile da
configurare e flessibile, che assimila la WLAN ad una rete Ethernet tradizionale (al sottolivello LLC)
Interoperabilità dei dispositivi garantita da Wireless Ethernet Compatibility Alliance (WECA)
Grazie alla diffusione del protocollo e alla interoperabilità dei dispositivi si è giunti in breve tempo ad una positiva competizione che ha reso disponibili i dispositivi a costi sempre più ottimizzati
Responsabile della enorme diffusione che ha avuto in questi ultimi anni il Wireless, sia come offerta commerciale (Aereoporti, stazioni, hotel, conference room, etc) che come enti pubblici (scuole, università, comuni e PA, etc)
Lo standard IEEE 802.11b
553
Altri standard IEEE 802.11
IEEE 802.11a: è uno standard che definisce una banda trasmissiva fino a 54Mbps e 8 canali trasmissivi non sovrapponibili. La frequenza è di 5GHz. La sua grossa limitazione è la completa incompatibilità con gli apparati IEEE 802.11b, che ne ha largamente limitato la diffusione. Un’altra barriera alla sua diffusione è stata la mancata adozione in molti paesi dello standard e la mancanza della certificazione di interoperabilità dei dispositivi di diversi produttori.
IEEE 802.11c: è stato sospeso ed è confluito nell’IEEE802.11d IEEE 802.11d: si occupa della definizione di un livello fisico
che possa operare in qualsiasi paese. IEEE 802.11e: si occupa del QoS in ambiente IEEE 802.11. Il
gruppo sta modificando il sottolivello MAC per gestire proprietà multimediali. I risultati pervaderanno tutti gli standard del gruppo IEEE 802.11 e consentirà l’uso di apparati multimediali con tecnologia wireless.
554
IEEE 802.11g
E’ lo standard che sancisce la nuova generazione del Wireless, garantendo piena interoperabilità con lo standard IEEE 802.11b.
Offre una banda trasmissiva di 54Mbps ed opera alla frequenza di 2.4GHz (ISM: Industrial Scientific Medical frequency band).
Portata del segnale: 300m in condizioni ideali, 45m all’interno di strutture, 90m all’esterno
La migrazione a IEEE 802.11g diventa economicamente interessante anche per le aziende e le organizzazioni perché la compatibilità con IEEE 802.11b rende tale processo personalizzabile al massimo.