Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è...

23
17/03/2012 1 Corso TECNICO DI RETE MODULO 1 dimensionamento architettura di rete Docente: ing.Andrea Sarneri [email protected] 1 ANDREA SARNERI - CORSO CESCOT 2010 Lezione 6 livello di rete e trasporto Saturazione degli indirizzi IPv4 e introduzione su IPv6 Protocolli di livello 3: ARP, ICMP Funzione del livello di trasporto Porte e “socketsModello “connection-oriented” e “connectionless” Frame TCP e UDP NAT e port forwarding, Firewall, DMZ Applicazioni: Ping, Tracert 2 ANDREA SARNERI - CORSO CESCOT 2010

Transcript of Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è...

Page 1: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

1

Corso TECNICO DI RETE

MODULO 1 –dimensionamento architettura di rete

Docente: ing.Andrea Sarneri [email protected]

1 ANDREA SARNERI - CORSO CESCOT 2010

Lezione 6 – livello di rete e trasporto •Saturazione degli indirizzi IPv4 e introduzione su IPv6 •Protocolli di livello 3: ARP, ICMP •Funzione del livello di trasporto •Porte e “sockets” •Modello “connection-oriented” e “connectionless” •Frame TCP e UDP •NAT e port forwarding, Firewall, DMZ •Applicazioni: Ping, Tracert

2 ANDREA SARNERI - CORSO CESCOT 2010

Page 2: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

2

Il LIVELLO DI RETE – Internet Protocol

Caratteristiche di IPv6 Problema della saturazione degli indirizzi Aumenta lo spazio di indirizzi: da 32 bit a 128 bit Esistono tre tipi di indirizzi globali IPv6: •UNICAST Indirizzi assegnati ad una singola interfaccia. Un pacchetto inviato ad un indirizzo unicast viene consegnato solo alla interfaccia di rete identificata da quel particolare indirizzo. •ANYCAST Indirizzi assegnati ad un insieme di interfacce (tipicamente su nodi differenti). Un pacchetto inviato ad un indirizzo anycast viene consegnato ad una sola delle interfacce identificata da quel particolare indirizzo, solitamente la più vicina in termini di distanze di routing. •MULTICAST Indirizzi assegnati ad un insieme di interfacce (tipicamente su nodi differenti). Un pacchetto inviato ad un indirizzo multicast viene consegnato a tutte le interfacce identificate da quell'indirizzo. È importante notare che non esistono indirizzi di tipo broadcast in IPv6, in quanto essi sono stati sostituiti dagli indirizzi di tipo multicast.

3 ANDREA SARNERI - CORSO CESCOT 2010

Il LIVELLO DI RETE – Internet Protocol

4 ANDREA SARNERI - CORSO CESCOT 2010

Page 3: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

3

Il LIVELLO DI RETE – Internet Protocol

5 ANDREA SARNERI - CORSO CESCOT 2010

Il LIVELLO DI RETE – Internet Protocol

Caratteristiche di IPv6 Tipologie di indirizzi

6 ANDREA SARNERI - CORSO CESCOT 2010

Page 4: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

4

Il LIVELLO DI RETE – Internet Protocol

Caratteristiche di IPv6 Autoconfiigurazione stateless

7 ANDREA SARNERI - CORSO CESCOT 2010

Il LIVELLO DI RETE – Internet Protocol

Caratteristiche di IPv6

8 ANDREA SARNERI - CORSO CESCOT 2010

Page 5: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

5

Il LIVELLO DI RETE – Internet Protocol

Caratteristiche di IPv6

9 ANDREA SARNERI - CORSO CESCOT 2010

Protocolli di livello 3

ANDREA SARNERI - CORSO CESCOT 2010 10

Page 6: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

6

11 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di rete

Address Resolution Protocol (ARP)

è un protocollo che fornisce la "mappatura" tra l'indirizzo IP a 32bit (4byte) e il suo MAC address, l'indirizzo fisico a 48bit (6 byte), per tutti i nodi della sottorete. Per non dover ricostruire tale relazione ad ogni invio di un pacchetto IP, ARP mette a disposizione delle funzioni e un database locale ( ARP CACHE) . L’ARP cache viene popolata attraverso le richieste (ARP REQUEST) che un host manda in broadcasting sulla sottorete per conoscere il MAC associato a un certo IP. L’IP interessato risponde restituendo il proprio MAC address. Ogni voce della cache può essere statica o dinamica, in questo caso ha una durata limitata (max 10min) poi viene rimossa.

12 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di rete

Questo è il formato del pachetto ARP che viene generato al livello IP e “passato” al datalink sottostante.

Page 7: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

7

13 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di rete

PROXY ARP E’ un metodo per rendere raggiungibili fra di loro hosts appartenenti a segmenti fisici diversi (collegati da un router) ma appartenenti alla stessa sottorete IP. Questo metodo evita di dover creare due sottoreti diverse a livello IP comunicanti tra loro attraverso routing a livelle o IP, ma riesce a stabilire nel router di collegamento delle regole a livello di tabella ARP.

Host A su segmento fisico A genera un arp request per individuare il MAC di Host B, Il broadcast però si ferma al router R , il quale però conosce il MAC di B per cui mappa sulla propria tabella arp anche l’IP di host B e restituisce il proprio mac a Host A come arp reply.

14 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di rete

REVERSE ARP (RARP) E’ la funzione inversa a ARP ovvero dato un MAC address , trovare il corrispondente IP

RARP presuppone che sul segmento di rete vi sia un server in grado di rispondere alle richieste RARP, ovvero che contenga il database di tutte le associazioni MAC<>IP. Caso tipico sono i terminali senza disco rigido, che al bootstrap non hanno assegnato un indirizzo IP, per cui devono avere almeno un microcodice in grado di implementare uno stack IP minimale in grado poi, tramite RARP , di rendere la macchina correttamente indirizzabile in rete e poter scaricare il codice relativo. RARP è in disuso per via del più recente protocollo BOOTP che opera però a livello di applicazione tramite trasporto UDP.

Page 8: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

8

15 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di rete

IL COMANDO ARP E’ la applicazione che utilizza il protocollo “arp” e consente di gestire la arp cache

A volte può essere necessario ripulire la cache arp con il comando <arp –d *> . Se si generano sulla rete situazioni conflittuali sui MAC address, in particolare il comando –d elimina anche tutte le entry di tipo “static” , per poi ricostruirle automaticamente quando serve accedere a un determinato IP

16 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di rete

Il protocollo ICMP (Internet Control Message Protocol

L'Internet Control Message Protocol (ICMP) è un protocollo di servizio che si preoccupa di trasmettere informazioni riguardanti malfunzionamenti, informazioni di controllo o messaggi tra i vari componenti di una rete di calcolatori. ICMP è incapsulato direttamente in IP (è parte del protocollo di livello 3 della pila ISO/OSI), e non è quindi garantita la consegna a destinazione dei pacchetti. Viene utilizzato da molti programmi, tra cui ping e traceroute. D’altra parte ICMP è incapsulato in IP come se fosse un protocollo di livello superiore Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’applicazione PING e TRACEROUTE

Page 9: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

9

17 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di rete

Il protocollo ICMP (Internet Control Message Protocol

ANDREA SARNERI - CORSO CESCOT 2010 18

Il livello di rete

Il Comando PING

L’applicazione disponibile sia sotto windows che Unix/linux è PING. E’ una applicazione del protocollo ICMP ed è il comando più utilizzato per la diagnostica

misura il tempo, espresso in millisecondi, impiegato da uno o più pacchetti ICMP a raggiungere un altro computer o server in rete (sia essa Internet o LAN) ed a ritornare indietro all'origine. È prettamente utilizzato per verificare la presenza e la raggiungibilità di un altro computer connesso in rete e per misurare le latenze di trasmissione di rete. Tecnicamente ping invia un pacchetto ICMP di tipo echo request e rimane in attesa di un pacchetto ICMP di tipo echo response in risposta. Solitamente infatti la parte di sistema operativo dedicata alla gestione delle reti (stack di rete) è programmata per rispondere automaticamente con un pacchetto di tipo echo response alla ricezione di un pacchetto di tipo echo request.

Page 10: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

10

ANDREA SARNERI - CORSO CESCOT 2010 19

Il livello di rete

Il Comando TRACERT Utilizzabile da Windows come <tracert yourdomain.com> Consente di visualizzare il percorso (hops) del pacchetto fino alla destinazione

Utility on line utilizzabile per verifiche tramite ICMP http://tracert.com/

20 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di rete

Il protocollo IGMP (Internet Group Management Protocol

L'Internet Group Management Protocol è un protocollo per la gestione dei gruppi multicast all’interno dei quali si richiede di utilizzare flussi multimediali (streaming video audio). IGMP consente ad un host di informare il router ad esso collegato che un'applicazione che funziona nell'host vuole unirsi a uno specifico gruppo multicast per poter condividere ad es un flusso multimediale. IGMP opera fra un host e il router ad esso collegato direttamente tramite switch. I messaggi scambiati sono: 1. Membership query: il router interroga gli host per conoscere a quale multicast group

appartengono; 2. Membership report: generato dall’ host quando si unisce a un gruppo; 3. Leave group: generato dall’ host quando lascia a un gruppo.

Page 11: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

11

LIVELLO DI TRASPORTO

22 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di Trasporto

Page 12: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

12

23 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di Trasporto

4) Livello di trasporto: garantire la consegna complessiva del messaggio costituito dai vari frame, ottimizzando l’uso delle risorse di rete

5) Livello di sessione: garantire sincronizzazione end-to-end tra applicativi

Il Transport Control Protocol (TCP) riassume le funzionalità dei livelli 4 e 5 OSI: •Fornire il supporto affinchè due applicazioni siano in grado di scambiarsi flussi di bytes E quindi •Creare una connessione affidabile attraverso la quale sia garantita la consegna del messaggio senza errori, e sia gestita la congestione del traffico tra applicazione “produttore” e “consumatore” •Fornire gli strumenti per consentire applicazioni client server in ambiente multitasking/multiutente

Lo User Datagram Protocol (UDP) fornisce meno funzionalità rispetto al TCP, non aggiunge molto rispetto allo strato IP se non la possibilità di multiplexing, ovvero un meccanismo di commutazione per “sottoselezionare” processi sorgente e destinatari all’interno dello stesso host IP (porte), e un checksum.

24 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di Trasporto

Come avviene la comunicazione tra processi (IPC):

Nei sistemi operativi moderni, un socket è un'astrazione software progettata per poter utilizzare delle API standard e condivise per la trasmissione e la ricezione di dati attraverso una rete oppure come meccanismo di IPC. È il punto in cui il codice applicativo di un processo accede al canale di comunicazione per mezzo di una porta, ottenendo una comunicazione tra processi che lavorano su due macchine fisicamente separate. Dal punto di vista di un programmatore, un socket è un particolare oggetto sul quale leggere e scrivere i dati da trasmettere o ricevere. Ci sono due tipi fondamentali di socket: •i socket tradizionali su protocollo IP, usati in molti sistemi operativi per le comunicazioni attraverso un protocollo di trasporto (quali TCP o UDP); •gli Unix domain socket (detti anche socket locali o socket in dominio Unix), usati nei sistemi operativi POSIX per le comunicazioni tra processi residenti sullo stesso computer.

Page 13: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

13

25 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di Trasporto

Una comunicazione di tipo connection-oriented (TCP) richiede di passare attraverso tre fasi: 1) Apertura della connessione tra i due peer, ovvero la allocazione di

adeguate risorse (buffers, contatori,ecc.) sia dallato sorgente che destinazione

2) Trasmissione dei dati con garanzia della consegna e gestione della congestione

3) Chiusura della connessione e liberazione delle risorse

Una comunicazione “connectionless” (UDP) non richiede le fasi 1) e 3) e nella fase 2) si limita alla trasmissione senza alcuna verifica

In entrambi i casi i processi utilizzatori delle connessioni possono essere più

di uno grazie alla possibilità di sottoselezione offerta dalle “porte”

26 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di Trasporto

Page 14: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

14

27 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di Trasporto

28 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di Trasporto

Standardizzazione e codifica delle porte TCP in relazione alle applicazioni

I numeri di porta sono a 16 bit e sono classificabili in tre gruppi: 1. Le porte conosciute sono assegnate dall'Internet Assigned Numbers Authority

(IANA), sono quelle inferiori a 1024, e sono generalmente utilizzate a livello di sistema operativo o di processi di sistema. In genere rimangono in ascolto su queste porte applicazioni con funzioni di server. Alcuni esempi possono essere le applicazioni che utilizzino protocolli FTP (21), SSH (22), TELNET (23), SMTP (25) e HTTP (80). Sono dette porte “well known”.

2. Le porte registrate invece sono spesso utilizzate come riferimento fra applicazioni, come una specie di accordo.

3. Le porte dinamiche invece sono tutte le altre, liberamente utilizzabili da tutte le applicazioni utente, salvo l'occupazione contemporanea da parte di qualche altro processo.

http://www.iana.org/assignments/port-numbers

Page 15: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

15

29 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di Trasporto

Porta Descrizione Porta Descrizione

1/tcp TCP Multiplexor 104/tcp Dicom - Digital Imaging and Communications in Medicine

2/tcp compressnet Management Utility 110/tcp POP3 Post Office Protocol (E-mail)

3/tcp compressnet Compression Process 113/tcp ident vecchio sistema di identificazione dei server

7/tcp Echo Protocol 119/tcp NNTP usato dai newsgroups usenet

7/udp Echo Protocol 123/udp NTP usato per la sincronizzazione degli orologi client-server

9/tcp Discard Protocol 139/tcp NetBIOS

9/udp Discard Protocol 143/tcp IMAP4 Internet Message Access Protocol (E-mail)

13/tcp Daytime Protocol 161/udp SNMP Simple Network Management Protocol (Agent)

17/tcp Quote of the Day 162/udp SNMP Simple Network Management Protocol (Manager)

19/tcp Chargen Protocol 389/tcp LDAP

19/udp Chargen Protocol 411/tcp Direct Connect Usato per gli hub della suddetta rete

20/tcp FTP - Il file transfer protocol - data 443/tcp HTTPS usato per il trasferimento sicuro di pagine web

21/tcp FTP - Il file transfer protocol - control 445/tcp Microsoft-DS (Active Directory, share di Windows, Sasser-worm)

22/tcp SSH - Secure login, file transfer (scp, sftp) e port forwarding 445/udp Microsoft-DS SMB file sharing

23/tcp Telnet insecure text communications 465/tcp SMTP - Simple Mail Transfer Protocol (E-mail) su SSL

25/tcp SMTP - Simple Mail Transfer Protocol (E-mail) 514/udp SysLog usato per il system logging

53/tcp DNS - Domain Name Server 563/tcp NNTP Network News Transfer Protocol (newsgroup Usenet) su SSL

53/udp DNS - Domain Name Server 591/tcp FileMaker 6.0 Web Sharing (HTTP Alternate, si veda la porta 80)

67/udp

BOOTP Bootstrap Protocol (Server) e DHCP Dynamic Host

Configuration Protocol (Server) 631/udp

IPP / CUPS Common Unix printing system (Il server di stampa sui

sistemi operativi UNIX/Linux)

68/udp

BOOTP Bootstrap Protocol (Client) e DHCP Dynamic Host

Configuration Protocol (Client) 636/tcp LDAP su SSL

69/udp TFTP Trivial File Transfer Protocol 666/tcp Doom giocato in rete via TCP

70/tcp Gopher 993/tcp IMAP4 Internet Message Access Protocol (E-mail) su SSL

79/tcp finger Finger 995/tcp POP3 Post Office Protocol (E-mail) su SSL

80/tcp HTTP HyperText Transfer Protocol (WWW)

88/tcp Kerberos Authenticating agent

104/tcp Dicom - Digital Imaging and Communications in Medicine

30 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di Trasporto

Source port [16 bit] - Identifica il numero di porta sull'host mittente associato alla connessione TCP. Destination port [16 bit] - Identifica il numero di porta sull'host destinatario associato alla connessione TCP. Sequence number [32 bit] - Numero di sequenza, indica lo scostamento (espresso in byte) dell'inizio del segmento TCP all'interno del flusso completo, a partire dall' Initial Sequence Number (ISN), negoziato all'apertura della connessione. Acknowledgment number [32 bit] - Numero di riscontro, ha significato solo se il flag ACK è settato a 1, e conferma la ricezione di una parte del flusso di dati nella direzione opposta, indicando il valore del prossimo Sequence number che l'host mittente del segmento TCP si aspetta di ricevere. Data offset [4 bit] - Indica la lunghezza (in word da 32 bit) dell'header del segmento TCP; tale lunghezza può variare da 5 word (20 byte) a 15 word (60 byte) a seconda della presenza e della lunghezza del campo facoltativo Options.

HEADER TCP

Page 16: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

16

31 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di Trasporto

Flags [8 bit] - Bit utilizzati per il controllo del protocollo: CWR (Congestion Window Reduced) - se settato a 1 indica che l'host sorgente ha ricevuto un segmento TCP con il flag ECE settato a 1 (aggiunto all'header in RFC 3168). ECE (ECN-Echo) - se settato a 1 indica che l'host supporta ECN (Explicit Congestion Notification) durante il 3-way handshake (aggiunto all'header in RFC 3168). URG - se settato a 1 indica che nel flusso sono presenti dati urgenti alla posizione (offset) indicata dal campo Urgent pointer; ACK - se settato a 1 indica che il campo Acknowledgment number è valido; PSH - se settato a 1 indica che i dati in arrivo non devono essere bufferizzati ma passati subito ai livelli superiori dell'applicazione; RST - se settato a 1 indica che la connessione non è valida; viene utilizzato in caso di grave errore; SYN - se settato a 1 indica che l'host mittente del segmento vuole aprire una connessione TCP con l'host destinatario e specifica nel campo Sequence number il valore dell' Initial Sequence Number (ISN); ha lo scopo di sincronizzare i numeri di sequenza dei due host. L'host che ha inviato il SYN deve attendere dall'host remoto un pacchetto SYN/ACK. FIN - se settato a 1 indica che l'host mittente del segmento vuole chiudere la connessione TCP aperta con l'host destinatario. Il mittente attende la conferma dal ricevente (con un FIN-ACK). A questo punto la connessione è ritenuta chiusa per metà: l'host che ha inviato FIN non potrà più inviare dati, mentre l'altro host ha il canale di comunicazione ancora disponibile. Quando anche l'altro host invierà il pacchetto con FIN impostato la connessione, dopo il relativo FIN-ACK, sarà considerata completamente chiusa.

Advertise Window [16 bit] - Indica la dimensione della finestra di ricezione dell'host mittente, cioè il numero di byte che il mittente è in grado di accettare a partire da quello specificato dall'acknowledgment number. Checksum [16 bit] - Campo di controllo utilizzato per la verifica della validità del segmento. Urgent pointer [16 bit] - Puntatore a dato urgente, ha significato solo se il flag URG è settato a 1 ed indica lo scostamento in byte a partire dal Sequence number del byte di dati urgenti all'interno del flusso.

32 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di Trasporto

Scenario client server multiutente: In una architettura client server, il server normalmente è predisposto ad accettare richieste di dati da parte dei client, ovvero dovrà avere dei processi che sono continuamente in ascolto (socket in stato LISTEN) e si attivano con le necessarie azioni quando arriva una richiesta da soddisfare. Il processo client dialoga con il processo server su una porta specifica. Se si vuole una connessione affidabile si deve usare il protocollo TCP, si deve creare una connessione (socket in stato ESTABLISHED), dopodichè il socket verrà chiuso. La affidabilità della connessione TCP è affidata ad un protocollo handshaking con controllo di sequenza, e finestra scorrevole (sliding window). Più socket possono essere attivi contemporaneamente, ogni socket è identificato da <protocollo, indirizzo IP, porta>

Page 17: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

17

33 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di Trasporto

Scenario client server multiutente:

34 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di Trasporto

Apertura della connessione TCP

La procedura utilizzata per instaurare in modo affidabile una connessione TCP tra due host è chiamata three-way handshake (stretta di mano a 3 vie), indicando la necessità di scambiare 3 messaggi tra host mittente e host ricevente affinché la connessione sia creata correttamente. Consideriamo ad esempio che l'host A intenda aprire una connessione TCP con l'host B; i passi da seguire quindi sono: 1.A invia un segmento SYN a B - il flag SYN è impostato a 1 e il campo Sequence number contiene il valore x che specifica l' Initial Sequence Number di A; 2.B invia un segmento SYN/ACK ad A - i flag SYN e ACK sono impostati a 1, il campo Sequence number contiene il valore y che specifica l' Initial Sequence Number di B e il campo Acknowledgment number contiene il valore x+1 confermando la ricezione del ISN di A; 3.A invia un segmento ACK a B - il campo Acknowledgment number contiene il valore y+1 confermando la ricezione del ISN di B.

Page 18: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

18

35 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di Trasporto

Chiusura della connessione TCP

Dopo che è stata stabilita, una connessione TCP non è considerata una singola connessione bidirezionale, ma piuttosto come l'affasciamento di due connessioni monodirezionali. Pertanto, ognuna delle parti deve terminare la sua connessione, e possono esistere anche connessioni aperte a metà, in cui solo uno dei due terminali ha chiuso la connessione e non può più trasmettere, ma può (e deve) ricevere i dati dall'altro terminale. Di conseguenza, la chiusura della connessione si può effettuare in due modi: con un handshake a tre vie, in cui le due parti chiudono contemporaneamente le rispettive connessioni, o con uno a quattro vie, in cui le due connessioni vengono chiuse in tempi diversi.

L'handshake a 3 vie è omologo a quello usato per l'apertura della connessione, con la differenza che il flag utilizzato è il FIN invece del SYN. Un terminale invia un pacchetto con la richiesta FIN, l'altro risponde con un FIN + ACK, ed infine il primo manda l'ultimo ACK, e l'intera connessione viene terminata. L'handshake a 4 vie invece viene utilizzato quando la disconnessione non è contemporanea tra i due terminali in comunicazione. In questo caso uno dei due terminali invia la richiesta di FIN, e attende l'ACK. L'altro terminale farà poi altrettanto, generando quindi un totale di 4 pacchetti.

36 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di Trasporto

Page 19: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

19

37 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di Trasporto

HEADER UDP

L'UDP è un protocollo stateless, ovvero non tiene nota dello stato della connessione, dunque ha rispetto al TCP informazioni in meno da memorizzare, per cui la latenza di una connessione UDP è molto inferiore. Un server dedicato ad una particolare applicazione che scelga UDP come protocollo di trasporto può supportare molti più client attivi.

38 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di Trasporto

Problema del SYN FLOODING:

Il three-way handshake garantisce la creazione di un socket

Se l’arrivo di un SYN causa l’allocazione di risorse su di un server in attesa della chiusura delle tre fasi, può succedere che il mancato arrivo dell’ACK finale al server lasci “appeso” l’utilizzo delle risorse allocate indefinitamente. Se poi arrivano in maniera fraudolenta tanti SYN senza ACK di chiusura, dal server vengono allocate via via risorse fino alla saturazione e blocco del server.

Page 20: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

20

39 ANDREA SARNERI - CORSO CESCOT 2010

PROTOCOLLO NAT (Network Address Translation Protocol)

NAT è una tecnica che consiste nel modificare gli indirizzi dei pacchetti in transito attraverso un router.

Modifica dell’indirizzo mittente: serve a far apparire i pacchetti provenienti da più host come provenienti da un unico host: consente di “risparmiare” indirizzi IP pubblici. Altro vantaggio è “mascherare” gli host di provenienza garantendone la sicurezza. Questa tecnica è detta anche “IP masquerading” o “NAT dinamico” e sfrutta non solo un remapping dell’IP sorgente ma anche delle porte del pacchetto TCP/UDP

Modifica dell’indirizzo del destinatario: serve a rilanciare il pacchetto su un indirizzo di destinazione diverso da quello dichiarato. In una configurazione “di IP masquerading” si ha il cosiddetto “port forwarding” e il pacchetto destinato all’indirizzo pubblico su una certa porta viene reindirizzato su un host della rete privata

40 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di Trasporto

Applicazione del NAT: NAPT dinamico Unico IP pubblico assegnato al router: lato WAN/Pubblico Pool di indirizzi di classe privata assegnato al router: lato LAN/privato

Page 21: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

21

41 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di Trasporto

Pacchetto in uscita all’host: Mitt. 192.168.1.10:80 Dest. 74.125.39.104:80 Pacchetto in uscita al NAT router Mitt. 80.207.36.251:13000 Dest. 74.125.39.104:80 Pacchetto di ritorno al router: Mitt. 74.125.39.104:13000 Dest. 80.207.36.251:13000 Pacchetto di ritorno all’host: Mitt: 74.125.39.104:80 Dest: 192.168.1.10:80 ………………………… Pacchetto in uscita al secondo host: Mitt. 192.168.1.11:80 Dest. 74.125.39.104:80 Pacchetto in uscita al NAT router Mitt. 80.207.36.251:13001 Dest. 74.125.39.104:80 ……………………..

192.168.1.1

80.207.36.251

74.125.39.104

192.168.1.10

192.168.1.11

42 ANDREA SARNERI - CORSO CESCOT 2010

Il livello di Trasporto: esempio di port forwarding

Pacchetto in entrata verso l’host: Mitt. 74.125.39.104:80 Dest. 80.207.36.251:8080 Pacchetto in entrata dal NAT router Mitt. 74.125.39.10:80 Dest. 192.168.1.10:80 Pacchetto di risposta al NAT router: Mitt. 192.168.1.10:80 Dest. 74.125.39.10:80 Pacchetto di risposta : Mitt: 80.207.36.251:8080 Dest: 74.125.39.10:80 ………………………… Pacchetto in entrata al secondo host: Mitt. 74.125.39.104:80 Dest. 80.207.36.251:8081 Pacchetto in entrata dal NAT router Mitt. 74.125.39.104:80 Dest. 192.168.1.11:80 ……………………..

192.168.1.1

80.207.36.251

74.125.39.104

192.168.1.10

192.168.1.11

Page 22: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

22

ANDREA SARNERI - CORSO CESCOT 2010 43

Livello di applicazione Firewall

La funzionalità del Firewall è quella di creare un filtro sulle connessioni entranti ed uscenti, in questo modo il dispositivo innalza il livello di sicurezza della rete e permette sia agli utenti interni che a quelli esterni di operare nel massimo della sicurezza. Il firewall agisce sui pacchetti in transito da e per la zona interna potendo eseguire su di essi operazioni di: controllo,modifica e monitoraggio

ANDREA SARNERI - CORSO CESCOT 2010 44

Livello di applicazione Firewall

Usualmente la rete viene divisa in due sottoreti: una, detta esterna, comprende l'intera Internet mentre l'altra interna, detta LAN (Local Area Network), comprende una sezione più o meno grande di un insieme di computer locali. In alcuni casi è possibile che si crei l'esigenza di creare una terza sottorete detta DMZ (o zona demilitarizzata) adatta a contenere quei sistemi che devono essere isolati dalla rete interna ma devono comunque essere protetti dal firewall.

Il più semplice è il packet filter, che si limita a valutare gli header di ciascun pacchetto, decidendo quali far passare e quali no sulla base delle regole configurate. Ciascun pacchetto viene valutato solamente sulla base delle regole configurate, e per questo un firewall di questo tipo è detto anche stateless. Alcuni packet filter, analizzando i flag dell'header TCP, sono in grado di discriminare un pacchetto appartenente ad una "connessione TCP stabilita (established)" rispetto a quelli che iniziano una nuova connessione, ma non sono in grado di riconoscere un pacchetto malevolo che finga di appartenere ad una connessione TCP stabilita. Molti router posseggono una funzione di packet filter. Un firewall di tipo stateful inspection, tiene traccia di alcune relazioni tra i pacchetti che lo attraversano, ad esempio ricostruisce lo stato delle connessioni TCP. I firewall di tipo deep inspection effettuano controlli fino al livello 7 della pila ISO/OSI, ovvero valutano anche il contenuto applicativo dei pacchetti, ad esempio riconoscendo e bloccando i dati appartenenti a virus o worm noti in una sessione HTTP o SMTP. I cosiddetti Application Layer Firewall sono apparati che intercettano le connessioni a livello applicativo. A questa categoria appartengono i proxy. In tali casi, la configurazione della rete privata non consente connessioni dirette verso l'esterno, ma il proxy è connesso sia alla rete privata che alla rete pubblica, e permette alcune connessioni in modo selettivo, e solo per i protocolli che supporta.

Page 23: Corso TECNICO DI RETE - CESCOT · Lezione 6 – livello di rete ... Il protocollo ICMP è utilizzato per la diagnostica di interface IP e percorsi di routing dall’appli azione PING

17/03/2012

23

ANDREA SARNERI - CORSO CESCOT 2010 45

Livello di applicazione Firewall

La sintassi della configurazione di un firewall in molti casi è basata su un meccanismo di lista di controllo degli accessi (ACL), che possono essere statiche (quindi modificabili solo tramite configurazione esplicita) o dinamiche (cioè che possono variare in base allo stato interno del sistema, come ad esempio nel Port knocking). Una funzione spesso associata al firewall è quella di NAT (traduzione degli indirizzi di rete), che può contribuire a rendere inaccessibili i calcolatori sulla rete interna. Molti firewall possono registrare tutte le operazioni fatte (logging), effettuare registrazioni più o meno selettive (ad esempio, registrare solo i pacchetti che violano una certa regola, non registrare più di N pacchetti al secondo), e tenere statistiche di quali regole sono state più violate.

ANDREA SARNERI - CORSO CESCOT 2010 46

http://www.t1shopper.com/tools/port-scan/ http://tracert.com

Online tools per diagnostica su area WAN:

Comandi a prompt DOS per diagnostica TCP sull’host (disponibilie anche su UNIX/LINUX: <NETSTAT> consente di visualizzare i socket , porte, statistiche