RetiComputer I

554
Corso di Laurea in Informatica Università degli Studi di Perugia Facoltà di Scienze Matematiche Fisiche e Naturali Osvaldo Gervasi [email protected] Cristian Dittamo Reti di Computer

Transcript of RetiComputer I

Page 1: 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

Page 2: RetiComputer I

2

TCP/IPTCP/IP

Page 3: RetiComputer I

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.

Page 4: RetiComputer I

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

Page 5: RetiComputer I

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

Page 6: RetiComputer I

6

IP v4 Header

Page 7: RetiComputer I

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.

Page 8: RetiComputer I

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)

Page 9: RetiComputer I

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.

Page 10: RetiComputer I

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.

Page 11: RetiComputer I

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

Page 12: RetiComputer I

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

Page 13: RetiComputer I

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

Page 14: RetiComputer I

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

Page 15: RetiComputer I

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

Page 16: RetiComputer I

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

Page 17: RetiComputer I

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

Page 18: RetiComputer I

18

Protocolli TCP/IP

I PARP RARP

ICMP IGMP BGP OSPFRIP

T C P U D P

Page 19: RetiComputer I

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

Page 20: RetiComputer I

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

Page 21: RetiComputer I

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.

Page 22: RetiComputer I

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

Page 23: RetiComputer I

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

Page 24: RetiComputer I

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.

Page 25: RetiComputer I

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

Page 26: RetiComputer I

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

Page 27: RetiComputer I

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

Page 28: RetiComputer I

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

Page 29: RetiComputer I

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………………......

Page 30: RetiComputer I

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

Page 31: RetiComputer I

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

Page 32: RetiComputer I

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.

Page 33: RetiComputer I

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

Page 34: RetiComputer I

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

Page 35: RetiComputer I

35

Configurazione Win95

Page 36: RetiComputer I

36

Configurazione Win95 (i)

Page 37: RetiComputer I

37

Configurazione Win95 (ii)

Page 38: RetiComputer I

38

Configurazione NT workstation

Page 39: RetiComputer I

39

Configurazione NT workstation (i)

Page 40: RetiComputer I

40

Configurazione NT workstation (ii)

Page 41: RetiComputer I

41

Configurazione NT workstation (iii)

Page 42: RetiComputer I

42

Configurazione Linux

netcfg

Page 43: RetiComputer I

43

Configurazione Linux (i)

Page 44: RetiComputer I

44

Configurazione Linux (ii)

Page 45: RetiComputer I

45

Configurazione Linux (iii)

Page 46: RetiComputer I

46

RoutingRouting

Page 47: RetiComputer I

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

Page 48: RetiComputer I

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

Page 49: RetiComputer I

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

Page 50: RetiComputer I

50

End System

(ES)

End System

(ES)

Intermediate Systems

(IS)

Page 51: RetiComputer I

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.

Page 52: RetiComputer I

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

Page 53: RetiComputer I

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

Page 54: RetiComputer I

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

Page 55: RetiComputer I

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

Page 56: RetiComputer I

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

Page 57: RetiComputer I

57

Page 58: RetiComputer I

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.

Page 59: RetiComputer I

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

Page 60: RetiComputer I

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

Page 61: RetiComputer I

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.

Page 62: RetiComputer I

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)

Page 63: RetiComputer I

63

Autonomous System (3)

AS 6664 AS 9209

OSPF, RIP, IBGPOSPF, RIP, IBGP

Sessione BGP

OSPF, RIP, IBGP

Sessione BGP

AS 1274

INTERNET

Page 64: RetiComputer I

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

Page 65: RetiComputer I

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)

Page 66: RetiComputer I

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

Page 67: RetiComputer I

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

Page 68: RetiComputer I

68

Page 69: RetiComputer I

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

Page 70: RetiComputer I

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

Page 71: RetiComputer I

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)

Page 72: RetiComputer I

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

Page 73: RetiComputer I

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

Page 74: RetiComputer I

74

OSPF: esempio

DLCI

Rete Frame Relay

Page 75: RetiComputer I

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

Page 76: RetiComputer I

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

Page 77: RetiComputer I

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

Page 78: RetiComputer I

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

Page 79: RetiComputer I

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

Page 80: RetiComputer I

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

Page 81: RetiComputer I

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

Page 82: RetiComputer I

82

RIP packet format

Page 83: RetiComputer I

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.

Page 84: RetiComputer I

84

RIP: esempio

Page 85: RetiComputer I

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

Page 86: RetiComputer I

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

Page 87: RetiComputer I

87

Inserimento di una dorsale OSPF in

RIP

Page 88: RetiComputer I

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

Page 89: RetiComputer I

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

Page 90: RetiComputer I

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]

Page 91: RetiComputer I

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)

Page 92: RetiComputer I

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

Page 93: RetiComputer I

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)

Page 94: RetiComputer I

94

Page 95: RetiComputer I

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

Page 96: RetiComputer I

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

Page 97: RetiComputer I

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

Page 98: RetiComputer I

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.

Page 99: RetiComputer I

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

Page 100: RetiComputer I

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.

Page 101: RetiComputer I

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

Page 102: RetiComputer I

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

Page 103: RetiComputer I

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.

Page 104: RetiComputer I

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

Page 105: RetiComputer I

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.

Page 106: RetiComputer I

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

Page 107: RetiComputer I

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

Page 108: RetiComputer I

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

Page 109: RetiComputer I

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

Page 110: RetiComputer I

110

eBGP e iBGP

Si può distinguere tra eBGP (peers appartenenti ad AS diversi) e iBGP (peers appartenenti allo stesso AS):

Page 111: RetiComputer I

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

Page 112: RetiComputer I

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

Page 113: RetiComputer I

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

Page 114: RetiComputer I

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

Page 115: RetiComputer I

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

Page 116: RetiComputer I

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)

Page 117: RetiComputer I

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

Page 118: RetiComputer I

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

Page 119: RetiComputer I

119

Servizi di ReteServizi di Rete

Page 120: RetiComputer I

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)

Page 121: RetiComputer I

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

Page 122: RetiComputer I

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

Page 123: RetiComputer I

123

Svantaggio

• account e password di solito sono trasmessi in chiaro

Soluzione

• Uso di SSH (Secure Shell)

Es: putty (Windows) , telnet/ssh (Linux)

TelnetTelnet

Page 124: RetiComputer I

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)

Page 125: RetiComputer I

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)

Page 126: RetiComputer I

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

Page 127: RetiComputer I

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)

Page 128: RetiComputer I

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)

Page 129: RetiComputer I

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)

Page 130: RetiComputer I

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

Page 131: RetiComputer I

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

Page 132: RetiComputer I

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

Page 133: RetiComputer I

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

Page 134: RetiComputer I

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

Page 135: RetiComputer I

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

Page 136: RetiComputer I

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

Page 137: RetiComputer I

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

Page 138: RetiComputer I

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

Page 139: RetiComputer I

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

Page 140: RetiComputer I

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

Page 141: RetiComputer I

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

Page 142: RetiComputer I

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

Page 143: RetiComputer I

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

Page 144: RetiComputer I

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

Page 145: RetiComputer I

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

Page 146: RetiComputer I

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

Page 147: RetiComputer I

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

Page 148: RetiComputer I

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

Page 149: RetiComputer I

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

Page 150: RetiComputer I

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

Page 151: RetiComputer I

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)

Page 152: RetiComputer I

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

Page 153: RetiComputer I

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

Page 154: RetiComputer I

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

Page 155: RetiComputer I

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

Page 156: RetiComputer I

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

Page 157: RetiComputer I

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

Page 158: RetiComputer I

158

Formato: nickname [ttl] IN CNAME host

CNAME (Canonical NAME): definisce un alias per il nome di un host

CNAMECNAME

DNSDNS

Page 159: RetiComputer I

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

Page 160: RetiComputer I

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

Page 161: RetiComputer I

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

Page 162: RetiComputer I

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

Page 163: RetiComputer I

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

Page 164: RetiComputer I

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

Page 165: RetiComputer I

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

Page 166: RetiComputer I

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

Page 167: RetiComputer I

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

Page 168: RetiComputer I

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

Page 169: RetiComputer I

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

Page 170: RetiComputer I

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

Page 171: RetiComputer I

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

Page 172: RetiComputer I

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

Page 173: RetiComputer I

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

Page 174: RetiComputer I

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

Page 175: RetiComputer I

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

Page 176: RetiComputer I

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

Page 177: RetiComputer I

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

Page 178: RetiComputer I

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

Page 179: RetiComputer I

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

Page 180: RetiComputer I

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

Page 181: RetiComputer I

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

Page 182: RetiComputer I

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

Page 183: RetiComputer I

183

SNMPSNMP

Page 184: RetiComputer I

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

Page 185: RetiComputer I

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

Page 186: RetiComputer I

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

Page 187: RetiComputer I

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

Page 188: RetiComputer I

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

Page 189: RetiComputer I

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

Page 190: RetiComputer I

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

Page 191: RetiComputer I

191

SNMPSNMP

Page 192: RetiComputer I

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

Page 193: RetiComputer I

193

SNMPSNMP

Page 194: RetiComputer I

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

Page 195: RetiComputer I

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

Page 196: RetiComputer I

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

Page 197: RetiComputer I

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

Page 198: RetiComputer I

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

Page 199: RetiComputer I

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

Page 200: RetiComputer I

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

Page 201: RetiComputer I

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

Page 202: RetiComputer I

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.

Page 203: RetiComputer I

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

Page 204: RetiComputer I

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);

Page 205: RetiComputer I

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)

Page 206: RetiComputer I

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

Page 207: RetiComputer I

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

Page 208: RetiComputer I

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)

Page 209: RetiComputer I

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 )

Page 210: RetiComputer I

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 )

Page 211: RetiComputer I

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

Page 212: RetiComputer I

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

Page 213: RetiComputer I

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;

Page 214: RetiComputer I

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

Page 215: RetiComputer I

215

Posta elettronicaPosta elettronica

Page 216: RetiComputer I

216

Posta elettronica

Simple Mail Transfer Protocol (SMTP)

Post Office Protocol (POP)

Interactive Mail Access Protocol (IMAP)

SommarioSommario

Page 217: RetiComputer I

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

Page 218: RetiComputer I

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

Page 219: RetiComputer I

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

Page 220: RetiComputer I

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

Page 221: RetiComputer I

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

Page 222: RetiComputer I

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

Page 223: RetiComputer I

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

Page 224: RetiComputer I

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

Page 225: RetiComputer I

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

Page 226: RetiComputer I

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

Page 227: RetiComputer I

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

Page 228: RetiComputer I

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

Page 229: RetiComputer I

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

Page 230: RetiComputer I

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

Page 231: RetiComputer I

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

Page 232: RetiComputer I

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

Page 233: RetiComputer I

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

Page 234: RetiComputer I

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

Page 235: RetiComputer I

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

Page 236: RetiComputer I

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

Page 237: RetiComputer I

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

Page 238: RetiComputer I

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

Page 239: RetiComputer I

239

Posta elettronica

Simple Mail Transfer Protocol (SMTP)

Post Office Protocol (POP)

Interactive Mail Access Protocol (IMAP)

SommarioSommario

Page 240: RetiComputer I

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

Page 241: RetiComputer I

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

Page 242: RetiComputer I

242

Utente

File System

senderSMTP

receiverSMTP

File System

SMTPCommands

/Replies

and Mail

SMTPSMTP

Page 243: RetiComputer I

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

Page 244: RetiComputer I

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

Page 245: RetiComputer I

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

Page 246: RetiComputer I

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

Page 247: RetiComputer I

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

Page 248: RetiComputer I

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

Page 249: RetiComputer I

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

Page 250: RetiComputer I

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

Page 251: RetiComputer I

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

<[email protected]>

S: VRFY GourzenkyinplatzR: 553 User ambigous.

SMTPSMTP

Page 252: RetiComputer I

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

Page 253: RetiComputer I

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

Page 254: RetiComputer I

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

Page 255: RetiComputer I

255

Posta elettronica

Simple Mail Transfer Protocol (SMTP)

Post Office Protocol (POP)

Interactive Mail Access Protocol (IMAP)

SommarioSommario

Page 256: RetiComputer I

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

Page 257: RetiComputer I

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

Page 258: RetiComputer I

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

Page 259: RetiComputer I

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

Page 260: RetiComputer I

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

Page 261: RetiComputer I

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

Page 262: RetiComputer I

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

Page 263: RetiComputer I

263

Posta elettronica

Simple Mail Transfer Protocol (SMTP)

Post Office Protocol (POP)

Interactive Mail Access Protocol (IMAP)

SommarioSommario

Page 264: RetiComputer I

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

Page 265: RetiComputer I

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

Page 266: RetiComputer I

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

Page 267: RetiComputer I

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

Page 268: RetiComputer I

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

Page 269: RetiComputer I

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

Page 270: RetiComputer I

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

Page 271: RetiComputer I

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

Page 272: RetiComputer I

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

Page 273: RetiComputer I

273

Posta elettronica privata

PGP

News

NNTP

SommarioSommario

Page 274: RetiComputer I

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

Page 275: RetiComputer I

275

Il software più popolare è Pretty Good Privacy (PGP)

Esiste GnuPG, che è la versione GPL che implementa questa funzione

Posta elettronica privataPosta elettronica privata

Page 276: RetiComputer I

276

Requisiti essenziali

Accesso al server: Firewall

Autenticazione (Server <=> Browser)

Confidenzialità (Encryption)

Integrità (Checksum, codici di autenticazione dei

messaggi)

Non ripudiabilità (firma elettronica)

Page 277: RetiComputer I

277

Autenticazione via HTTPAutenticazione via HTTP

Page 278: RetiComputer I

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)

Page 279: RetiComputer I

279

Shared key encryption

Page 280: RetiComputer I

280

Public key encryption

Page 281: RetiComputer I

281

Public key encryption

• Confidentiality: Yes• Authentication: Yes• Non repudiation: No

Page 282: RetiComputer I

282

Public key encryption (digital

signatures)

• Confidentiality: No• Authentication: No• Non repudiation: Yes

Page 283: RetiComputer I

283

Public key encryption (digital

signatures and confidentiality)

• Confidentiality: Yes• Authentication: Yes• Non repudiation: Yes

Page 284: RetiComputer I

284

Posta elettronica privata

PGP

News

NNTP

SommarioSommario

Page 285: RetiComputer I

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

Page 286: RetiComputer I

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

Page 287: RetiComputer I

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

Page 288: RetiComputer I

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

Page 289: RetiComputer I

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

Page 290: RetiComputer I

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

Page 291: RetiComputer I

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

Page 292: RetiComputer I

292

Posta elettronica privata

PGP

News

NNTP

SommarioSommario

Page 293: RetiComputer I

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!

Page 294: RetiComputer I

294

News

Page 295: RetiComputer I

295

Gruppo comp

Page 296: RetiComputer I

296

Gruppo comp.database

Page 297: RetiComputer I

297

Gruppo comp.database.oracle

Page 298: RetiComputer I

298

Messaggio in comp.database.oracle

Page 299: RetiComputer I

299

Ricerca nei newsgroup

Ricerca delle

parole Globus

e Grid

Page 300: RetiComputer I

300

Messaggio in comp.parallel

Page 301: RetiComputer I

301

Accesso con un software specifico

News server

Page 302: RetiComputer I

302

MS Outlook

Page 303: RetiComputer I

303

MS Outlook

Page 304: RetiComputer I

304

MS Outlook lettura

messaggio da comp.windows.x.kde

Page 305: RetiComputer I

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)

Page 306: RetiComputer I

306

Fino qui

Page 307: RetiComputer I

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

Page 308: RetiComputer I

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

Page 309: RetiComputer I

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

Page 310: RetiComputer I

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à

Page 311: RetiComputer I

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.

Page 312: RetiComputer I

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)

Page 313: RetiComputer I

313

Posta elettronica privata

PGP

News

NNTP

SommarioSommario

Page 314: RetiComputer I

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

Page 315: RetiComputer I

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

Page 316: RetiComputer I

316

World Wide WebWorld Wide Web

Page 317: RetiComputer I

317

HTTP (Hyper Text Transfer Protocol)

Linguaggio Java e il web

Commercio elettronico

Secure Web

SommarioSommario

Page 318: RetiComputer I

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!

Page 319: RetiComputer I

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

Page 320: RetiComputer I

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

Page 321: RetiComputer I

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.

Page 322: RetiComputer I

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).

Page 323: RetiComputer I

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

Page 324: RetiComputer I

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>

Page 325: RetiComputer I

325

HTTP

Esempio di comunicazione tramite HTTP tra un client e un server Web

Page 326: RetiComputer I

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.

Page 327: RetiComputer I

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.

Page 328: RetiComputer I

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.

Page 329: RetiComputer I

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

Page 330: RetiComputer I

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

Page 331: RetiComputer I

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à.

Page 332: RetiComputer I

332

Server Web e Scripting

server side

AppendiceAppendice

Page 333: RetiComputer I

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.

Page 334: RetiComputer I

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

Page 335: RetiComputer I

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&agrave; 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>&nbsp;</td> <td>&nbsp;</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>

Page 336: RetiComputer I

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

Page 337: RetiComputer I

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

Page 338: RetiComputer I

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)

Page 339: RetiComputer I

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)

Page 340: RetiComputer I

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)

Page 341: RetiComputer I

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)

Page 342: RetiComputer I

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

Page 343: RetiComputer I

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

Page 344: RetiComputer I

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

Page 345: RetiComputer I

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

Page 346: RetiComputer I

346

HTTP (Hyper Text Transfer Protocol)

Linguaggio Java e il web

Commercio elettronico

Secure Web

SommarioSommario

Page 347: RetiComputer I

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

Page 348: RetiComputer I

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

Page 349: RetiComputer I

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

Page 350: RetiComputer I

350

HTTP (Hyper Text Transfer Protocol)

Linguaggio Java e il web

Commercio elettronico

Secure Web

SommarioSommario

Page 351: RetiComputer I

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

Page 352: RetiComputer I

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

Page 353: RetiComputer I

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)

Page 354: RetiComputer I

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

Page 355: RetiComputer I

355

Page 356: RetiComputer I

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

Page 357: RetiComputer I

357

How to

Page 358: RetiComputer I

358

How to

Page 359: RetiComputer I

359

How to

Scelta tra:

• Outsourcing

• Intranet/Extranet

Sicurezza

• trasporto (SSL)

• dati (firma digitale)

Integrità

Disponibilità

Page 360: RetiComputer I

360

Page 361: RetiComputer I

361

Page 362: RetiComputer I

362

Page 363: RetiComputer I

363

19/04/11

Page 364: RetiComputer I

364

HTTP (Hyper Text Transfer Protocol)

Linguaggio Java e il web

Commercio elettronico

Secure Web

SommarioSommario

Page 365: RetiComputer I

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

Page 366: RetiComputer I

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

Page 367: RetiComputer I

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.

Page 368: RetiComputer I

368

Sicurezza di reteSicurezza di rete

Page 369: RetiComputer I

369

La sicurezza di rete

Attacco ad un sistema informatico

Esempi di attacchi

Secure Socket Layer (SSL)

Firewall

SommarioSommario

Page 370: RetiComputer I

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

Page 371: RetiComputer I

371

Fonte: D.Steinauer, S. Katzke, S.Radack: Basic Intrusion Protection, the first line of defense, ITPro, Jan-Feb 1999

Sicurezza (2/5)

Page 372: RetiComputer I

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

Page 373: RetiComputer I

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

Page 374: RetiComputer I

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

Page 375: RetiComputer I

375

La sicurezza di rete

Attacco ad un sistema informatico

Esempi di attacchi

Secure Socket Layer (SSL)

Firewall

SommarioSommario

Page 376: RetiComputer I

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

Page 377: RetiComputer I

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

Page 378: RetiComputer I

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)

Page 379: RetiComputer I

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

Page 380: RetiComputer I

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

Page 381: RetiComputer I

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

Page 382: RetiComputer I

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

Page 383: RetiComputer I

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)

Page 384: RetiComputer I

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

Page 385: RetiComputer I

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

Page 386: RetiComputer I

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

Page 387: RetiComputer I

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)

Page 388: RetiComputer I

388

CERT (www.cert.org)

L’organismo che vigila in rete, creato dalla Cornegie Mellon University, che ha dato luogo ad analoghe organizzazioni regionali

Page 389: RetiComputer I

389

La sicurezza di rete

Attacco ad un sistema informatico

Esempi di attacchi

Secure Socket Layer (SSL)

Firewall

SommarioSommario

Page 390: RetiComputer I

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/

Page 391: RetiComputer I

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)

Page 392: RetiComputer I

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

Page 393: RetiComputer I

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

Page 394: RetiComputer I

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

Page 395: RetiComputer I

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

Page 396: RetiComputer I

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

Page 397: RetiComputer I

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

Page 398: RetiComputer I

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

Page 399: RetiComputer I

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

Page 400: RetiComputer I

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.

Page 401: RetiComputer I

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

Page 402: RetiComputer I

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

Page 403: RetiComputer I

403

La sicurezza di rete

Attacco ad un sistema informatico

Esempi di attacchi

Secure Socket Layer (SSL)

Firewall

SommarioSommario

Page 404: RetiComputer I

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

Page 405: RetiComputer I

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

Page 406: RetiComputer I

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

Page 407: RetiComputer I

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)

Page 408: RetiComputer I

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

Page 409: RetiComputer I

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

Page 410: RetiComputer I

410

Secure Socket Layer

Stack TCP/IP con SSL

Page 411: RetiComputer I

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

Page 412: RetiComputer I

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

Page 413: RetiComputer I

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

Page 414: RetiComputer I

414

La sicurezza di rete

Attacco ad un sistema informatico

Esempi di attacchi

Secure Socket Layer (SSL)

Firewall

SommarioSommario

Page 415: RetiComputer I

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

Page 416: RetiComputer I

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)

Page 417: RetiComputer I

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.

Page 418: RetiComputer I

418

Site servers

Internet users

rules

Firewall

Page 419: RetiComputer I

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

Page 420: RetiComputer I

420

Untrustedzone

Firewall: schema logico (1/2)

Firewall

Router

INTERNET

L A N

Trustedzone

Page 421: RetiComputer I

421

Firewall: schema logico (2/2)

Exterior Router

Interior Router

Dual homed host

Perimeter Network 1

Internal Network

Perimeter Network 2

INTERNET

Page 422: RetiComputer I

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)

Page 423: RetiComputer I

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

Page 424: RetiComputer I

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

Page 425: RetiComputer I

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)

Page 426: RetiComputer I

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)

Page 427: RetiComputer I

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

Page 428: RetiComputer I

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

Page 429: RetiComputer I

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

Page 430: RetiComputer I

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

Page 431: RetiComputer I

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

Page 432: RetiComputer I

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

Page 433: RetiComputer I

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

Page 434: RetiComputer I

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

Page 435: RetiComputer I

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

Page 436: RetiComputer I

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

Page 437: RetiComputer I

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

Page 438: RetiComputer I

438

Reti locali e geograficheReti locali e geografiche

Page 439: RetiComputer I

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

Page 440: RetiComputer I

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

Page 441: RetiComputer I

441

IBM 3270 Information Display System

Mainframe

Communicationcontroller

Control Unit locale

Control Unit remota

modem modem

terminale

terminale

terminale

terminale

Page 442: RetiComputer I

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

Page 443: RetiComputer I

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à

Page 444: RetiComputer I

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

Page 445: RetiComputer I

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

Page 446: RetiComputer I

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

Page 447: RetiComputer I

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)

Page 448: RetiComputer I

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

Page 449: RetiComputer I

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

Page 450: RetiComputer I

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

Page 451: RetiComputer I

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)

Page 452: RetiComputer I

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

Page 453: RetiComputer I

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

Page 454: RetiComputer I

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

Page 455: RetiComputer I

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

Page 456: RetiComputer I

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

Page 457: RetiComputer I

457

OSI Reference Model (ii)

Protocollo di livello N-1

Servizi erogati

Servizi fruiti

Page 458: RetiComputer I

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

Page 459: RetiComputer I

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.

Page 460: RetiComputer I

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

Page 461: RetiComputer I

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.

Page 462: RetiComputer I

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

Page 463: RetiComputer I

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

Page 464: RetiComputer I

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

Page 465: RetiComputer I

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

Page 466: RetiComputer I

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)

Page 467: RetiComputer I

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

Page 468: RetiComputer I

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

Page 469: RetiComputer I

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

Page 470: RetiComputer I

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

Page 471: RetiComputer I

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

Page 472: RetiComputer I

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

Page 473: RetiComputer I

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)

Page 474: RetiComputer I

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.

Page 475: RetiComputer I

475

Doppino e cavo UTP

Doppino in rame:

Cavo STP: Cavo UTP:

Page 476: RetiComputer I

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.

Page 477: RetiComputer I

477

Cavo coassiale

Schema generale:

Cavo Thick Ethernet:

Cavo thin Ethernet:

Page 478: RetiComputer I

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)

Page 479: RetiComputer I

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

Page 480: RetiComputer I

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

Page 481: RetiComputer I

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

Page 482: RetiComputer I

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

Page 483: RetiComputer I

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

Page 484: RetiComputer I

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

Page 485: RetiComputer I

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

Page 486: RetiComputer I

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

Page 487: RetiComputer I

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

Page 488: RetiComputer I

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

Page 489: RetiComputer I

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

Page 490: RetiComputer I

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

Page 491: RetiComputer I

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.

Page 492: RetiComputer I

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

Page 493: RetiComputer I

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

Page 494: RetiComputer I

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

Page 495: RetiComputer I

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

Page 496: RetiComputer I

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

Page 497: RetiComputer I

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

Page 498: RetiComputer I

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

Page 499: RetiComputer I

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

Page 500: RetiComputer I

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

Page 501: RetiComputer I

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

Page 502: RetiComputer I

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

Page 503: RetiComputer I

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).

Page 504: RetiComputer I

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

Page 505: RetiComputer I

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

Page 506: RetiComputer I

506

Connessione a vampiro

Page 507: RetiComputer I

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

Page 508: RetiComputer I

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

Page 509: RetiComputer I

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

Page 510: RetiComputer I

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

Page 511: RetiComputer I

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

Page 512: RetiComputer I

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

Page 513: RetiComputer I

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

Page 514: RetiComputer I

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

Page 515: RetiComputer I

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

Page 516: RetiComputer I

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.

Page 517: RetiComputer I

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.

Page 518: RetiComputer I

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

Page 519: RetiComputer I

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)

Page 520: RetiComputer I

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

Page 521: RetiComputer I

521

Virtual LANs (i)

Page 522: RetiComputer 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

Page 523: RetiComputer I

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

Page 524: RetiComputer I

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)

Page 525: RetiComputer I

525

Gigabit Ethernet (ii)

Page 526: RetiComputer I

526

Gigabit Ethernet

See as reference:

http://www.gigabit-ethernet.org

Page 527: RetiComputer I

527

Test case 1

Page 528: RetiComputer I

528

Test case 2

Page 529: RetiComputer I

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

Page 530: RetiComputer I

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.

Page 531: RetiComputer I

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

Page 532: RetiComputer I

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)

Page 533: RetiComputer I

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

Page 534: RetiComputer I

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

Page 535: RetiComputer I

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).

Page 536: RetiComputer I

536

Reti wireless (i)

Page 537: RetiComputer I

537

Sovrapposizione di due celle e roaming

Page 538: RetiComputer I

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

Page 539: RetiComputer I

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.

Page 540: RetiComputer I

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.

Page 541: RetiComputer I

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).

Page 542: RetiComputer I

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.

Page 543: RetiComputer I

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)

Page 544: RetiComputer I

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

Page 545: RetiComputer I

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

Page 546: RetiComputer I

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.

Page 547: RetiComputer I

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.

Page 548: RetiComputer I

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)

Page 549: RetiComputer I

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.

Page 550: RetiComputer I

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.

Page 551: RetiComputer I

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.

Page 552: RetiComputer I

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

Page 553: RetiComputer I

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.

Page 554: RetiComputer I

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.