Académique Documents
Professionnel Documents
Culture Documents
UNIT DIDATTICA 5
INOLTRO D I PACCHETTI
SULLA RETE: NAT, PAT E I C M P
Premessa
Nel TCP/IP le applicazioni operano a livello 4 e, come per ogni altro livello, quando si vuole trasferire una o pi TPDU (Transport Protocol Data Unit) da una sorgente a una destinazione, occorre
specificare mittente e destinatario.
Come vedremo nel seguito del corso, i l protocollo di livello 4 utilizza un indirizzo detto TSAP address (Transport Service Access Point address) diverso da quello di livello 3.
Infatti, poich sullo stesso host possono girare diverse applicazioni, ogni host pu offrire pi servizi
e, contemporaneamente, pi host possono offrire gli stessi servizi sulla rete; quindi necessario
aggiungere all'indirizzo IP un'ulteriore informazione supplementare, i l cosiddetto NSAP address
(Network Service Access Point address), che permetta di individuare in modo univoco uno specifico host e, in particolare, un servizio offerto da quell'host.
Per questo motivo i protocolli di livello 4 tipicamente definiscono come indirizzo una c o p p i a , formata da un indirizzo di livello network che identifica l'host (indirizzo IP) e da un'altra informazione
che identifica un punto di accesso in quell'host: i l numero d i porta.
Il numero di porta non un indirizzo fisico, in quanto gli host generalmente hanno solo una porta
fisica (interfaccia NIC) di connessione alla LAN, bens una "porta logica", ossia un valore numerico
univoco memorizzato i n un campo a 16 bit, che quindi pu assumere un valore tra 0 e 65535.
Per esempio, in TCP/IP un TSAP address (ossia un indirizzo TCP o UDP) ha la seguente forma:
IP address : port number
405
Modulo 6
I.,
I valori da 1 a 1024 sono riservati ai servizi pi diffusi, alcuni dei quali sono riportati
nella tabella riportata a lato.
Per esempio, la coppia (127.104.69.16 : 23)
indica la porta 23 dell'host xyx di indirizzo
IP 127.104.69.16, cio i l punto di accesso
all'applicazione che permette a u n utente di
collegarsi mediante i l servizio telnet (porta
23) all'host xyz.
Lo s t u d i o del livello 4 e d i t u t t i i servizi
Servizio
Ping
Porta
Servizio
Porta
DNS
53
ftp
21
Web
80
Ssh
22
Pop3
110
telnet
23
Imap
143
smtp
25
UUCP
540
s e g u i t o d e l corso.
STUB DOMAIN
La rete interna, che c o m e t a l e usa i soli indirizzi
i n t e r n i , viene definita a n c h e s t u b d o m a i n o s t u b n e t w o r k ( l e t t e r a l m e n t e , " d o m i n i o t r o n c o " o " t r o n c o n e di r e t e " ) .
I l NAT viene posto "al confine" di uno stub domain, i n uscita da una rete locale verso Internet: dato
che ogni macchina della rete interna ha un indirizzo IP privato non annunciabile all'esterno e unico
solo all'interno di quella sottorete, affidiamo al NAT i l compito di convertire tale indirizzo i n u n
indirizzo pubblico unico, che comparir come indirizzo sorgente all'interno dei pacchetti verso la
destinazione stabilita su Internet.
La traduzione degli indirizzi effettuata dal NAT server pu essere di due tipi:
statica (static NAT), che avviene mediante mappatura statica uno-a-uno tra indirizzi interni ed
esterni;
dinamica (IP masquerading): i n tal caso la corrispondenza tra indirizzo interno e indirizzo esterno definita solo all'occorrenza.
Mappatura .statica
Si opta per la mappatura statica, per esempio, quando si vuole rendere raggiungibile un server della rete interna; necessario introdurre una entry statica nella tabella del router
(static NAT) con i l rischio di abbassare i l livello di sicurezza
della rete interna.
1192.168.1.100
Il92.168 1.254
406
192.168.1.100 80/TCP
HMHMMHI
Unit 5
Con la traduzione dinamica, che non risente della traduzione di indirizzo e di porta effettuati dal
router, un client della rete interna pu connettersi a qualunque server della rete Internet; la tabella
NAT viene creata solo i n caso d i richiesta di connessione.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
La tecnica utilizza anche i l meccanismo PAT (Port Address Translation)
e prende i l nome di IP
Overloading o NAPT (Network Address and Port Translation),
i n quanto vengono modificati non
solo gli indirizzi IP ma anche le porte TCP e UDP delle connessioni i n transito per individuare i l
reale mittente/destinatario del pacchetto.
I l router (o i l server) tiene traccia della corrispondenza tra gli indirizzi reali e gli indirizzi "traslat i " i n una tabella, la Dynamic NAT table, che viene appunto creata dinamicamente, aggiungendo
una riga alla prima richiesta effettuata da ogni client e inserendovi i suoi dati, indirizzo IP e n u mero d i porta.
Il caso tipico di utilizzo del IP masquerading quello delle reti aziendali; i n quest'ambito infatti permette a pi calcolatori presenti nell'intranet di condividere una singola connessione a Internet (un
solo indirizzo IP pubblico) e viene utilizzato nel caso degli accessi xDSL e ISDN per piccole LAN.
Alcuni sistemi operativi offrono tale funzionamento in m o d o nativo
( W i n d o w s X p e Seven, Linux).
192.168.1.1
158.109.1.253
192.168.1.2
Indirizzi privati
Traslation
(PAT) v a n n o da
Vediamo ora un esempio di funzionamento, dove indichiamo con SPort la porta sorgente usata dal
mittente dal protocollo TCP e con DPort la porta del destinatario.
O Supponiamo che l'host 192.168.1 debba contattare un server web su Internet: i l client invia al
default router un pacchetto IP avente:
mittente
SIP 192.168.1.1
S P o r t 30231/TCP
destinatario
D I P 62.41.244.2
D P o r t 80/TCP
I l router, prima di inoltrarlo, sostituisce ai dati del mittente i propri, cio cambia:
indirizzo IP
: S I P 192.168.1.1
in 158.109.1.253
numero porta
: S P o r t 30231/TCP
i n 1024/TCP
407
e per conservare memoria d i questa sostituzione aggiorna la Dynamic NAT table inserendo u n
record i n modo da tenere traccia del flusso di dati uscente e associando i n modo univoco mittente e numero d i porta:
Dynamic NAT table
Int address
192.168.1.1
Int port
Ext address
Ext port
Age
Il router inoltra quindi i l pacchetto modificato dapprima al next hop router e poi al server web.
NEXT HOP ROUTER
Il next h o p router un c o n t a t o r e p r e s e n t e a l l ' i n t e r n o d e l p a c c h e t t o che viene i n c r e m e n t a t o da ciascun router o g n i volta che il p a c c h e t t o stesso viene trasmesso, in m o d o da
ricordare q u a n t i n o d i q u e s t o ha attraversato sulla rete.
Una volta che i l pacchetto arriva a destinazione, i l server risponde al client con u n pacchetto
avente:
mittente
SIP 62.41.244.2
S P o r t NO/TCP
destinatario
D I P 158.109.1.253
D P o r t 1024/TCP
dove i l destinatario non l'host sorgente, ma i l router " d i confine" dell'ultranet.
Quando i l pacchetto arriva al router, quest'ultimo consulta la Dynamic NAT table alla ricerca di
eventuali regole di traduzione da applicare a ritroso, individua i l record analizzando i dati della
porta e infine si prepara all'inoltro, sostituendo IP e porta di destinazione:
indirizzo IP
: 158.109.1.253
in S I P 192.168.1.1
numero porta
: 1024/TCP
i n S P o r t 30231/TCP
0
PAT
Il servizio PAT (Port Address Translation)
traduce non solo gli indirizzi IP, ma anche i numeri delle
porte TCP e UDP e permette quindi di avere molti host "dietro" a un singolo indirizzo IP; effettua
inoltre u n servizio complementare al PAT per rendere accessibili, anche da Internet, i servizi realizzati su calcolatori collocati nella rete privata.
ESEMPIO 13
I server web rispondono sulla porta 80 e quando noi indichiamo l'indirizzo di un server, per esempio
www.itisXYZ.it, sottintendiamo che vogliamo accedere alla porta 80 del server www.itisXYZ.it.
Un server web su rete Internet con un IP fisso i n grado di rispondere a tutte le interrogazioni che arrivano su queste porte (vedremo i n seguito come opera): i l problema nasce quando i l server si trova i n
una rete privata e possiede quindi un indirizzo nascosto, non accessibile da quella pubblica. necessario perci disporre di un meccanismo come i l PAT, i n grado di intercettare tutte le richieste che giungono su una specifica porta e reinstradarle verso u n server della rete nascosta. In questo caso il dispositivo
che esegue i l PAT deve essere accessibile dalla rete pubblica e quindi avere un indirizzo pubblico.
Vediamo, di seguito, u n esempio nel quale i l PAT viene eseguito da un host con indirizzo pubblico
101.32.12.1.
Tabella PAT
192.168.1.1
192.168.1.2
Porta
Indirizzi
80
192.168.1.1
192.168.1.2
25
20
192.168.1.3
101.32.12.1 internet
192.168.1.1j80h
1192.168.1.3
rete privata -
PAT
101.32.12.1 80
rete pubblica-
Xella rete privata sono presenti tre server che offrono tre diversi servizi rispettivamente sulle loro
porte 80, 25 e 20: la tabella di reinstradamento del PAT una tabella statica che contiene i numeri
di porta e i corrispondenti indirizzi IP dei tre server.
Il PAT, dopo aver acquisito un pacchetto di dati proveniente dalla rete pubblica e destinato all'indirizzo IP
della rete privata, esamina la tabella "entrando" con la porta del servizio a cui era destinato per ricavarne
una corrispondenza tra il numero di porta e l'indirizzo IP del server sulla rete privata; effettua poi il cambio di indirizzo, sostituendo ITP privato al proprio indirizzo e inoltrando il pacchetto sulla rete privata.
Il percorso inverso, dal server sulla rete privata alle m a c c h i n e su Internet, c o m e a b b i a m o visto
viene c o m p i u t o in c o l l a b o r a z i o n e c o n il NAT: infatti, NAT e PAT s o n o s e m p r e c o n t e m p o r a n e a m e n t e presenti.
Utilizzando i l meccanismo NAT/PAT per accedere all'esterno da una rete privata con u n solo indirizzo vengono utilizzate sempre porte non privilegiate, con valori maggiori o uguali a 1024.
Il protocollo ICMP, descritto i n RFC 792, svolge funzioni di controllo per IP, quindi incluso i n tutte
le implementazioni IP come u n protocollo a basso livello che si appoggia direttamente su IP: risiede
su ogni elaboratore, host o router, come protocollo abbinato all'IP e i pacchetti ICMP sono incapsulati all'interno di datagrammi IP.
'Quando si verifica u n errore o un malfunzionamento che impedisce la consegna del datagramma,
viene generato un messaggio che comunica all'host che i l suo destinatario irraggiungibile.
I messaggi viaggiano nel campo dati del datagram IP
ungono manipolati dal software IP, non da applicaDatagramma
tivi utente.
Frame Strato 2
Pacchetto ICMP
IP Stato 3
Quando u n messaggio ICMP viene imbustato i n IP
.ne posto al valore 1 i l campo protocol.
409
Modulo 6
Descrizione
Tipo
Descrizione
Echo Reply
13
Timestamp Request
Destination Unreachable
14
Timestamp Reply
Source Quench
15
Information Request
16
Information Reply
Echo Request
17
11
18
12
9 codice: viene usato i n alcuni messaggi IGMP per descrivere i l tipo di errore e ulteriori dettagli; nella tabella seguente sono riportate le possibili situazioni del tipo = 3, cio del caso di destinazione
irraggiungibile (Destination Unreachable).
Tipo
Codice
Descrizione
RFC
DESTINATION UNREACHABLE
792
Net Unreachable
792
Host Unreachable
792
Protocol Unreachable
792
Port Unreachable
792
792
1812
1812
1812
1812
1812
10
1812
11
1812
12
1812
13
1812
20 - 60 bytes
Message type
1 byte
Message code
1 byte
Checksum
2 bytes
variabile
Data
variabile
La figura successiva mostra u n pacchetto d i ICMP, del tipo error message, i n cui nella parte di dati
sono inclusi l'intestazione IP e altri 64 bit del pacchetto che ha generato l'errore:
410
Checksum
Codice
Checksum
Zoom su...
TIPI DI MESSAGGI PREVISTI DA ICMP
I m e s s a g g i ICMP s o n o classificati nei t i p i elencati d i s e g u i t o .
0-8
Richiesta di eco e relativa risposta (Echo Request/Reply): serve a determinare lo stato di una
rete; viene inviato a qualsiasi indirizzo IP che deve restituire una risposta al trasmittente.
Rallentamento della sorgente (Source Quence): viene utilizzato da un router se non possiede
memoria sufficiente per accodare i datagrammi in arrivo.
11
Superamento del tempo massimo di durata del datagramma (Time Exceeded for a Datagram): viene inviato da un router quando scarta un datagramma giunto alla scadenza del
tempo massimo di durata.
12
Parametro inintelligibile (Parameter Problem for a Datagram): questo il messaggio di errore che viene inviato dall'host o dal router che incontra problemi nell'elaborare parte di un'intestazione IP.
13-14
15-16
17-18
Richiesta di maschera di indirizzi e relativa risposta (Address-Mask Request/Reply): vengono utilizzati da un host per ottenere la maschera di sottorete a cui appartiene.
Pine
SORG
DEST
411
Con i l comando
ping DEST
l'host mittente invia uno o pi pacchetti di tipo 0 "echo request" verso una determinata destinazione e, se l'host DEST raggiungibile da SORG, DEST risponde restituendo u n pacchetto ICMP di tipo
8 "echo reply": viene effettuata contestualmente la misurazione del Round Trip Time (RTT), cio
del tempo necessario affinch u n pacchetto compia i l percorso d i andata e ritorno.
C:N>
C:\>ping
192.168.1.3
Esecuzione
R
R
R
R
i
i
i
i
s
s
s
s
p
p
p
p
o
o
o
o
s
s
s
s
t
t
t
t
a
a
a
a
di
da
da
da
da
Ping
1
1
1
1
9
9
9
9
2
2
2
2
.
.
.
.
1
1
1
1
6
6
6
6
192.168.1.3
8
8
8
8
.
.
.
.
1
1
1
1
.
.
.
.
3
3
3
3
:
:
:
:
con
byte=32
byte=32
byte=32
byte=32
32
byte
d i
dati:
durata=3ms
TTL=128
durata=2Vms
TTL=128
dui-ata=S0ns
TTL=128
durata=74ms
TTI,=128
Statistiche
P i n g pei- 1 9 2 . 1 6 8 . 1 . 3 :
Pacchetti:
Trasmessi = 4,
R i c e v u t i = 4,
Persi = 0 <
p e r s i ) .
Tempo a p p r o s s i m a t i v o
percorsi
andata/ritorno
in millisecondi:
Minimo = 3ms,
Massimo =
7 4 n s , Medio =
3 8 iris
Nome-d63aed4db3
one
a
a
a
a
da
da
da
da
di
1
1
1
1
Ping
9
9
9
9
2
2
2
2
.
.
.
.
1
1
1
1
6
6
6
6
Nome-d63aed4db3
8
8
8
8
.1.3:
.1.3:
.1.3:
.1.3:
byte=32
byte=32
byte=32
byte=32
[192.168.1.3]
con
32
byte
di
dati:
durata"77ms
TTL=128
durata=lms
TTL=128
durata=22ms
TTL=128
durata=45ms
TTL=128
Non sempre possibile servirsi del ping per verificare la connessione tra due host: per esempio, se la
destinazione protetta da u n sistema che filtra gli ingressi i n base alle porte interessate e agli applicativi coinvolti oppure se siamo i n una situazione di IP masquerading, il comando ping non utilizzabile.
Inoltre la mancanza di una risposta da parte del destinatario non permette di individuare n la
natura n la posizione nella quale presente u n problema; pertanto, di fatto, ping non u n buon
mezzo diagnostico.
Zoom su.
OPZIONI COMANDO PING
Il c o m a n d o p i n g ha diverse o p z i o n i ,
riportate
nella t a b e l l a s e g u e n t e .
Opzione
Descrizione
-n N
-1 M
-t
esegue ping finch non viene interrotto premendo la combinazione di tasti Ctrl+C
-a
-f
-iT
setta time-to-Hve = T
-w Tout
M a g g i o r i i n f o r m a z i o n i si o t t e n g o n o c o n s u l t a n d o d i r e t t a m e n t e l'help c o n il c o m a n d o : p i n g / ?
Traceroute
Con ping si pu valutare solo la raggiungibilit di una certa destinazione, mentre l'applicativo TRACEROUTE permette d i conoscere i l percorso seguito dai pacchetti inviati da u n mittente SORG e
diretti verso una destinazione DEST.
SORG
DEST
Con i l comando
tracert DEST
l'host SORG invia a DEST una serie di pacchetti ICMP d i tipo "echo request" con un Time-To-Live
(TTL) che inizia da un valore massimo (255 per det'ault) per poi venire decrementato fino a 0.
Ciascun nodo intermedio all'atto della rispedizione del pacchetto decrementa T T L e se un nodo rileva che tale valore
divenuto T T L = 0 invia a
SORG un pacchetto ICMP
::S>tracert 74.125.232.120
di tipo "time exceeded"
t i l e u a z i o n e instrattamento uerso n i l 0 1 s 0 7 - i n - f 2 4 . l e l 0 0 . n e t [ 7 4 . 1 2 5 . 2 3 2 . 1 2 0 ]
tu un massimo d i 30 p u n t i d i p a s s a g g i o :
che indica i l fallimento
<1 ms
<1 ms
<1 ms 1 9 2 . 1 G 8 . 1 . 2 5 4
1
della consegna a destina2
52 ms
51 ms
35 ms 2 1 2 . 1 5 1 . 1 8 1 . 2 3 3
3
32 ms
31 ms
31 ms 2 1 2 . 1 5 1 . 2 0 0 . 5 4
zione del pacchetto nel
4
32 ms
33 ms
50 ms 1 0 . 2 2 7 . 1 8 . 2 4 2
5
35 ms
31 ms
34 ms 1 0 . 2 2 7 . 1 9 . 3 4
suo "tempo di vita utile".
33 ms
33 ms
33 ms 1 0 . 2 2 7 . 1 9 . 7 4
e
7
39 ms
33 ms
31 ms 1 0 . 2 2 7 . 1 9 . 1 1 4
Tutti i nodi attraversati da
8
31 ms
33 ms
33 ms 1 0 . 2 2 7 . 1 9 . 1 5 4
M
9
33 ms
10.227.0.17
SORG a DEST vengono i n 10
33 ms
33 ms
33 ms 1 0 . 2 2 7 . 0 . 6 2
11
35 ms
35 ms
35 ms 8 5 . 2 0 5 . 2 6 . 1 5 7
seriti i n una lista insieme
12
34 ms
32 ms
33 ms 7 2 . 1 4 . 2 2 3 . 1 6 9
13
33 ms
33 ms
35 ms 2 0 9 . 8 5 . 2 4 9 . 5 4
ai tempi d i percorrenza
14
38 ms
34 ms
35 ms 7 2 . 1 4 . 2 3 2 . 6 3
15
33 ms
37 ms
33 ms m i l 0 1 s 0 7 - i n - f 2 4 . l e l 0 0 . n e t [ 7 4 . 1 2 5 . 2 3 2 . 1 2 0 ]
dei vari segmenti:
[Rilevazione
completata.
413
L'output mostra i l TTL, i l nome -4 D N S (ove possibile) e l'indirizzo IP dei nodi intermedi e i l Round
Trip Time (RTT).
(L'indirizzo "pingato" quello del motore di ricerca Google all'indirizzo www.google.it.)
DNS II DNS (Domain Name System) un sistema utilizzato per la risoluzione di nomi degli host in
indirizzi IP e viceversa: consiste in un insieme di database c o m p o s t o da tabelle di corrispondenza tra
indirizzo IP e indirizzo simbolico.
Vediamo per esempio (nella schermata sottostante) i l percorso da compiere per arrivare all'universit d i Cambridge (www.cam.ac.uk).
Il comando tracert
414
pc-toshiha
7 ns
2 ns
2 ns
[192.168.1.3]
192.168.1.3
Rilevazione completata.
Anche i l traceroute, come i l ping, non ha una buona capacit diagnostica: cerchiamo di raggiungere
il nodo 6 nella rete rappresentata nella figura seguente:
Ipotizziamo un guasto al nodo 8: se i percorsi di andata e ritorno sono diversi per motivazioni d i
traffico sulla rete, per esempio
9 andata 1-2-3-5-6
9 ritorno 6-5-3-4-8-1,
un guasto sul nodo 8 impedisce l'identificazione del percorso d i andata oltre i l nodo 2 i n quanto gli
unici messaggi di ritorno vengono inviati dai nodi 1 e 2; i l messaggio d i ritorno dal nodo 3 viene i n stradato verso i l nodo 8 guasto, anche se i n realt i l percorso di andata perfettamente funzionante.
415