Relazione Laboratorio di reti telematiche

Transcript

Relazione Laboratorio di reti telematiche
Relazione
Laboratorio di reti telematiche
Djatsa Yota Eric
Matricola n. 140360
Fiandrino Claudio
Matricola n. 138436
Giacchè Diego
Matricola n. 125292
Nfonte Mandje Fouapon Abdou Cassimou
Matricola n. 151351
Ricci Marco
Matricola n. 140653
Indice
1 Configurazione
3
2 Protocollo ARP
2.1 Tabella di arp . . . . . . . . . . . . . .
2.2 Aggiornamento della tabella di arp . .
2.3 Host Inesistente ma nella stessa subnet
2.4 Host inesistente e in subnet diversa . .
2.5 Durata delle entry nella tabella . . . .
3
3
4
5
5
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Consegna diretta e risoluzione di indirizzi: il protocollo
ARP
6
3.1 Diagramma temporale . . . . . . . . . . . . . . . . . . . . . .
6
3.2 Round Trip Time . . . . . . . . . . . . . . . . . . . . . . . . .
7
3.3 Commando ping con dimensione applicativa piccola . . . . .
7
3.4 Comportamenti in caso di perdità di connetività . . . . . . .
8
3.5 Perdità temporanea di connetività . . . . . . . . . . . . . . .
8
3.6 Velocità di collegamento . . . . . . . . . . . . . . . . . . . . .
8
3.7 Grafici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
4 Cattura e analisi di protocollo di livello trasporto/applicazione
4.1 Analisi sequence number, receiver window e lunghezza segmenti trasmessi . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1 Sequence number . . . . . . . . . . . . . . . . . . . . .
4.1.2 Receiver window . . . . . . . . . . . . . . . . . . . . .
4.1.3 Lunghezza segmenti trasmessi . . . . . . . . . . . . . .
5 Misure di prestazioni
6 Operazioni verso internet
6.1 Comando Ping . . . . . . .
6.2 Comando Traceroute . . . .
6.2.1 Output comando . .
6.2.2 Cattura con ethereal
6.3 Prova con il browser . . . .
14
14
14
16
18
20
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
22
22
23
23
26
28
7 Protocollo RIP
31
7.1 Comportamenti in caso di guasti . . . . . . . . . . . . . . . . 33
2
1
Configurazione
Abbiamo configurato la nostra rete con indirizzi privati di classe B nel
seguente modo:
. indirizzo di rete 172.16.0.0;
. netmask 255.255.255.128;
. indirizzo di broadcast IP 172.16.0.127;
. indirizzo host A 172.16.0.1;
. indirizzo host B 172.16.0.2;
. indirizzo host C 172.16.0.3.
2
2.1
Protocollo ARP
Tabella di arp
L’output del comando arp, permette di visualizzare la tabella di arp (tabella delle associazioni fra indirizzi IP e indirizzi MAC) dell’host sul quale si
esegue il comando.
Riportiamo di seguito un esempio:
Address
172.16.0.1
172.16.0.2
HWtype
ether
ether
HWaddress
Flags Mask
00:E0:4C:A0:1B:F2
C
00:50:FC:09:6C:28
C
la composizione dei campi è:
. Address: indirizzo IP destinatario;
. HWType: collegamento di livello 2 (Ethernet nel nostro caso);
. Hwaddress: indirizzo MAC destinatario;
. Flag mask;
. Iface: l’interfaccia di rete verso il destinatario.
3
Iface
eth1
eth1
2.2
Aggiornamento della tabella di arp
Nel caso in cui ci sia uno scambio di pacchetti ICMP tra un host sorgente
(A) e un destinatario (B) e vi siano presenti nella subnet altri host, solo A
e B aggiornano le proprie tabelle di ARP.
Quando l’host sorgente ha dati da inviare controlla, innanzitutto, se è presente nella propria tabella di ARP l’entry del destinatario; se esiste, i pacchetti
vengono inoltrati nella rete mentre in caso contrario A inoltra a livello 3 una
ARP request in broadcast per conoscere la corrispondenza IP-MAC di B.
B, se è connesso alla subnet e operativo, riconosce il suo IP e risponde in
unicast ad A con una ARP-reply con il proprio indirizzo MAC quindi A
completa nella ARP table l’entry relativa a B.
Inoltre, poichè si suppone che vi sia uno scambio di pacchetti tra i due host,
anche B aggiorna la propria ARP-table con l’entry relativa ad A.
Nel caso in cui in una tabella di arp ci sia un’entry incompleta o obsoleta
relativa ad un host e arrivi da quello stesso host un’ARP-request il destinatario provvede ad aggiornare la propria tabella di arp.
Un’altra possibilità nella gestione delle arp tables è la seguente: tutti gli
host che ricevono un’arp request, anche se non indirizzata a loro a livello
IP, la processano e inseriscono o aggiornano l’entry relativa all’host sorgente
nella propria tabella di arp.
Vantaggio
. Le tabelle di arp di tutti gli host della subnet contengono un maggior
numero di informazioni questo permette di avere un minor numero di
richieste di arp sulla rete.
Svantaggi:
. questo metodo non è scalabile in quanto all’aumentare delle dimesioni
della subnet aumenterà il numero di arp request che ogni host dovrà
elaborare e di conseguenza il tempo di elaborazione;
. sarà necessaria più memoria visto che il numero di entry sarà maggiore;
. la tabella di arp contiene informazioni che potrebbero non essere utilizzate.
Per i punti seguenti 3, 4 e 5 ipotizziamo che la tabella di arp del mittente
sia vuota.
4
2.3
Host Inesistente ma nella stessa subnet
Se si prova a contattare un host ipoteticamente appartenente alla sottorete,
ma inesistente, il risultato che si ha a video all’esecuzione del comando ping
è il messaggio di errore host unreachable.
Nella tabella di arp si ha il campo indirizzo IP con l’IP corretto dell’ipotetico host destinatario mentre il campo indirizzo MAC destinatario avrà la
dicitura incomplete che indica che l’host mittente non ha ricevuto risposta.
2.4
Host inesistente e in subnet diversa
Se si prova a contattare un host ipoteticamente non appartenente alla sottorete e inesistente, il risultato che si ha all’esecuzione del comando ping è
il seguente: A controllando nella routing table vede che il destinatario è al
di fuori della subnet e invia l’ARP-request al default gateway, non riceve
nessuna risposta neanche host unreachable perchè i pacchetti non vengono
elaborati da nessun host.
Nella tabella di arp sarà presente l’entry con il campo indirizzo MAC destinatario incomplete.
Riportiamo un output del comando ping per questo esempio:
PING 172.16.0.4 (172.16.0.4): 56 data bytes
— 172.16.0.4 ping statistics —
2 packets transmitted, 0 packets received, 100% packet loss
e la relativa tabella di arp:
Address
172.16.0.4
2.5
HWtype
HWaddress
(incomplete)
Flags Mask
Iface
eth1
Durata delle entry nella tabella
Dalle misure effettuate sull’host A risulta che la durata delle entry nella
tabella di arp è:
. host raggiungibile: 3 minuti e 31 secondi (ven mag 8 15:35:46 CEST
2009 / ven mag 8 15:39:17 CEST 2009);
. host non raggiungibile: 2 minuti e 21 secondi (ven mag 8 16:19:11
CEST 2009 / ven mag 8 16:21:32 CEST 2009).
5
3
3.1
Consegna diretta e risoluzione di indirizzi: il
protocollo ARP
Diagramma temporale
Figura 1: diagramma temporale
6
Indirizzi MAC di destinazione:
. ARP-REQUEST
. ARP-REPLY
3.2
−→
−→
broadcast (FF:FF:FF:FF:FF:FF);
unicast, verso il mittente dell’ARP-REQUEST.
Round Trip Time
Il round trip time (RTT) è dato da:
RT T = TelabA + TpropA + TT X + TelabB + TpropB + TT X + TelabA ∼
= 2TT x (1)
Telab : tempo
Tprop : tempo
della luce e d
TT X : tempo
di elaborazione (ipotizziamo trascurabile);
di propagazione (trascurabile in quanto è pari a dc , c velocità
distanza dell’ordine dei metri);
di trasmissione legato alla capacità del canale TT X = P ayload
VT X .
Il motivo per cui il primo pacchetto ICMP inviato ha un RTT chiaramente
superiore rispetto a quello calcolato per i successivi pacchetti è dovuto alla
necessità di ottenere il MAC del destinatario con ARP.
Esempio di output:
64
64
64
64
PING 172.16.0.2 (172.16.0.2): 56 data bytes
bytes from 172.16.0.2: icmp seq=0 ttl=64 time=1.4 ms
bytes from 172.16.0.2: icmp seq=1 ttl=64 time=0.3 ms
bytes from 172.16.0.2: icmp seq=2 ttl=64 time=0.3 ms
bytes from 172.16.0.2: icmp seq=3 ttl=64 time=0.3 ms
— 172.16.0.2 ping statistics —
4 packets transmitted, 4 packets received, 0% packet loss
3.3
Commando ping con dimensione applicativa piccola
Nel caso in cui si esegua il comando ping utilizzando l’opzione -s e si setti la
grandezza del pacchetto a 1 Byte, nella risposta non verranno visualizzate
tutte le informazioni.
Il dato che non viene visualizzato a causa della dimensione esigua del pacchetto è il Round Trip Time (RTT); questo accade perchè tra le informazioni
contenute nel pacchetto questa è quella meno rilevante.
7
3.4
Comportamenti in caso di perdità di connetività
Se si perde connettività durante un’operazione di ping esistono 2 possibilità:
1. nel caso in cui un certo numero di pachetti siano già arrivati all’host destinatario e che quest’ultimo abbia mandato le risposte corrispondenti
prima della perdita di connettività la tabella di arp viene comunque
aggiornata con l’entry corretta dell’ultimo pacchetto andata a buon
fine;
2. Nel caso, invece, che si perda la connettività prima dello scambio di
pacchetti gli host non sono in grado di aggiornare le proprie tabelle di
arp e l’entry risulterà incomplete nel caso di host interni alla subnet e
sarà vuota in caso di host esterni.
3.5
Perdità temporanea di connetività
Se si perde connettività tra 2 host a causa del cambiamento temporaneo di
un’indirizzo o di un guasto sulla rete durante un ping si hanno le seguenti
possibilità:
. meno di 5 secondi: la sorgente continua a mandare ICMP echo request,
che non avranno risposta, finchè non si recupera la connettività;
. più di 5 secondi: dopo aver inviato un certo numero di ICMP echo
request che non avranno risposta la sorgente invia ARP-REQUEST
in unicast all’indirizzo del destinatario per accertarsi che sia operativo. Quando la connettività è ripristinata il destinatario risponderà
all’ARP request e alle successive echo request;
. più di 60 secondi: come nel caso precedente la sorgente invia ARP
request, per un certo periodo, in unicast che non ricevendo risposta
vengono successivamente mandate in broadcast.
3.6
Velocità di collegamento
È possibile calcolare la velocità del collegamento di 2 host appartenenti alla
stessa subnet tramite il comando ping con l’utilizzo della seguente formula:
VT X =
S
TT X
con S dimensione Payload applicativo e TT X tempo di trasmissione.
Poichè sappiamo dalla (1) che RT T ∼
= 2 · TT X deduciamo:
VT X ∼
=
S
RT T
2
8
=
2·S
RT T
Per quanto riguarda i tempi di trasmissione della PDU l’unico legato alla
capacità del canale è il tempo è il tempo di trasmissione, come abbiamo già
evidenziato nel punto 3.2.
3.7
Grafici
grafico RTT(Payloadapp)
120
100
RTT[ms]
80
60
40
20
0
0
1
2
D
3
[Byte]
4
5
app
Figura 2: grafico RTT in funzione del Payload applicativo
Come si evince dalle formule:
Dapp
RT T ∼
= 2 · TT X =
VT X
le due grandezze sono direttamente proporzionali tra loro linearmente.
9
6
4
x 10
grafico RTT(Payload
)
app
3
2.8
RTT[ms]
2.6
2.4
2.2
2
1200
1300
1400
D
1500
[Byte]
1600
1700
1800
app
Figura 3: zoom sul punto critico di frammentazione del pacchetto
Dal grafico possiamo notare che quando il payload supera i 1472 byte
(1500 Maximum Transmission Unit - 20 intestazione ip - 8 ICMP) il livello
IP frammenta i pacchetti.
Se i dati utili nel secondo pacchetto sono pochi in rapporto all’ header c’è
un’inefficienza nel tempo di trasmissione e dunque nel RTT.
In generale la frammentazione avviene quando al livello 3 arrivano segmenti
(payload + intestazione ICMP) di dimensione superiore a 1472 byte.
Nel caso in cui siano inferiori a 2952 (1472 + 1480) il segmento viene diviso
in due pacchetti, altrimenti i frammenti saranno di più ogni volta che si
superano:
1472 + κ · 1480
con κ = 2, 3, 4...
10
grafico Ttx(Payload
)
app
60
50
Ttx[ms]
40
30
20
10
0
0
1
2
3
Dapp[Byte]
4
5
6
Figura 4: grafico TT X in funzione del Payload applicativo
Questo grafico è analogo al precedente a meno di un fattore 2 dovuto a:
RT T ∼
= 2 · TT X
11
4
x 10
grafico v (Payload
tx
)
app
10
9
8
7
vtx[Mb/s]
6
5
4
3
2
1
0
0
1
2
3
Dapp[Byte]
4
5
6
4
x 10
Figura 5: grafico Vtx in funzione del Payload applicativo
La velocità è anche calcolabile in
VT X =
byte
secondo
come:
8
2 · Dapp
·
RT T
1000
Si può osservare che inizialmente con valori di Dapp piccoli la crescita è
molto alta in quanto la dimensione del payload è confrontabile con quella
degli header. È possibile notare una serie di discontinuità in corrispondenza
delle frammentazioni, in particolar modo la prima avviene con dimensione
del payload pari a 1472 bytes.
Per valori di Dapp grandi la velocità tende al goodput massimo, inferiore al
limite teorico di 10 Mbit/s.
12
grafico v (Payload )
tx
fis
10
9
8
7
vtx[Mb/s]
6
5
4
3
2
1
0
0
1
2
3
4
5
Dfis[Byte]
6
7
4
x 10
Figura 6: grafico Vtx in funzione del Payload fisico
Questo grafico è analogo al precedente ad eccezione del limite a cui la curva
tende per valori di Df is alti, ovvero al throughput, che risulta essere maggiore del goodput in quanto il Df is a differenza del Dapp tiene conto degli
header.
13
4
Cattura e analisi di protocollo di livello trasporto/applicazione
Lo scopo di questa esercitazione è l’analisi delle caratteristiche del protocollo
TCP mediante l’applicativo chargen.
Questo servizio ha lo scopo di trasmettere una sequenza infinita di caratteri
finchè la sorgente non chiude la connessione.
4.1
4.1.1
Analisi sequence number, receiver window e lunghezza
segmenti trasmessi
Sequence number
Figura 7: numero sequenza client
Poichè il client non deve inviare dati al server, il sequence number resta
costante per tutta la durata della connessione.
In realtà si possono notare 2 salti sul grafico, essi sono relativi ai pacchetti
di apertura e chiusura della connessione TCP (SYN e FIN).
14
Figura 8: numero sequenza server
Quando la connessione è stata instaurata, il server comincia a inviare pacchetti in slow start raddoppiando sempre la finestra di trasmissione finché
non si riempie la receiver window del client. A questo punto il client limita
la finestra di invio; ciò spiega la non linearità presente all’inizio del grafico;
durante il resto della connessione il sequence number cresce linearmente.
Quando si digita il comando CT RL+] il client blocca il server dunque il
sequence number si mantiene costante, come si può notare nella parte finale
del grafico.
15
4.1.2
Receiver window
Figura 9: receiver window del client
La receiver window del client inizialmente è massima quindi il server può
mandare un numero elevato di pacchetti.
Quando il client inizia ad elaborare le informazioni ricevute attiva il controllo
di flusso per limitare il server nell’invio dei pacchetti in funzione dello spazio
disponibile nella sua receiver window.
Si può chiaramente vedere che, dopo gli istanti iniziali, essa presenta un
comportamento altalenante dovuto al fatto che il server invia una mole di
dati superiore a quella che il client riesce ad elaborare. Il client è dunque
obbligato a fermare ad intervalli costanti il server dichiarando una receiver
window pari a zero.
Quando l’utente digita il comando CTRL+] si interrompe il flusso di dati in
ricezione imponendo la finestra a 0.
Il picco finale è dovuto al fatto che, una volta ripresa la comunicazione, il
client può annunciare alla sorgente receiver window con valore massimo.
16
Figura 10: receiver window del server
Il server inizialmente dichiara una receiver window di una determinata
dimensione, anche grande; poichè però non riceve nessun pacchetto di dati
dal client annuncia un valore costante per tutta la durata della connessione.
17
4.1.3
Lunghezza segmenti trasmessi
Figura 11: lunghezza pacchetti trasmessi dal client
Poichè il client non invia dati alla sorgente la lunghezza dei segmenti
trasmessi sarà sempre pari a 0.
18
Figura 12: lunghezza pacchetti trasmessi dal server
Per quanto riguarda il server inizialmente osserviamo un transitorio in
cui la dimensione dei segmenti inviati e piccola e successivamente si manterrà
costante ad un valore pari alla MTU privata della lunghezza degli header.
Digitando CTRL+] si interrompe il flusso dei dati quindi la lunghezza risulta nulla.
19
5
Misure di prestazioni
Prova
Tipo
A
A
B
B
C
C
C
C
D
D
D
E
E
E
F
F
F
G
G
G
H
H
H
I
I
L
L
TCP
UDP
TCP
UDP
TCP→TCP 1
UDP→UDP
UDP→TCP
TCP→UDP
TCP-TCP
UDP-UDP
TCP-UDP
TCP-TCP
UDP-UDP
TCP-UDP
TCP-TCP
UDP-UDP
TCP-UDP
TCP-TCP
UDP-UDP
TCP-UDP
TCP-TCP
UDP-UDP
TCP-UDP
TCP-TCP
UDP-UDP
TCP-TCP
UDP-UDP
Goodput
Prev.
Oss.
9.03
7,2736
9.57
9.6824
94.9 94.9082
95.7 96.7632
4.52
3.6378
4.79
5.5448
4.52
4.1732
4.67
8.6175
90.3 78.0428
95.7 90.2728
91.1 77.2788
4.52
4.8355
4.79
5.4663
4.67
4.9324
47.5 59.6868
47.9 18.2753
47.5 84.8056
4.52
5.2322
4.79
4.9145
4.63
6.3942
47.5 40.1441
47.7 42.2910
47.5 47.5325
1.5
4.0806
1.6
3.7190
45.2 75.6799
47.9 84.0814
Collisioni
Prev. Oss.
SI
2004
NO
0
NO
0
NO
0
SI
3259
SI
470
SI
2389
SI
2116
NO
0
NO
0
NO
0
SI
3551
NO
3
SI
2008
NO
0
NO
0
NO
0
SI
4497
SI
470
SI
2416
NO
0
NO
0
NO
0
SI
3861
SI
418
NO
0
NO
0
Perdite
Prev. Oss.
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
SI
SI
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
SI
SI
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
SI
NO
NO
NO
SI
SI
Tabella 1: riassunto prestazioni, valori espressi in Mbit/s
1
L’host A della configurazione è il trasmettitore.
Come si può notare nei casi A,B e C dove sono presenti solo 2 hosts, il
goodput ottenuto con UDP è leggermente superiore a quello che si ha con
TCP; questo è dovuto al fatto che TCP è un protocollo orientato alla connessione perciò prevede un traffico aggiuntivo di segnalazione e quindi degli
overhead piu grandi che diminuiscono il goodput.
Si può notare che con UDP il goodput peggiora significativamente nel caso
20
in cui si imposti, come parametro L (lunghezza del paccheto), un valore di
poco superiore a 1472 byte o in generale una dimensione che generà un frammento di dimensioni paragonabili a quella degli header Ethernet+IP+TCP
come spiegato nel punto 3.6.1 in figura 3.
Con TCP non c’è questo problema in quanto TCP offre a IP uno stream
di byte, ed è TCP stesso che fa la segmentazione in base alla MSS(Maximu
Segment Size).
Nel caso D, con l’uso di TCP, si ha un goodput elevato perché lo switch
permette di avere due canali in paralello, uno usato per i paccheti da trasmettere e l’altro usato per gli ACK.
Nelle configurazioni con 2 trasmettitori ed un ricevitore, con uso di switch,
come il caso F, si nota che il goodput di UDP è elevato mentre quello di TCP
è piutosto basso (vicino al 50%); questo è dovuto al fatto che non c’è un’utilizzo equo delle risorse,infatti appena un pacchetto viene perso a causa dello
riempimento della coda dello switch,TCP attiva il controllo congestione che
riduce il goodput,mentre UDP continua a trasmettere senza interuzioni.
Avevamo previsto perdite nel caso I con UDP poichè nella tipologia ad anello l’hub, che può essere considerato come un unico canale, non è in grado di
supportare tre flussi di informazione contemporanei. Tuttavia in una rete
come quella creata da noi CSMA risulta molto affidabile quindi risolve questa possibilità.
È stato verificato che, con UDP, si inviano come minimo 5 pacchetti. Infatti
il goodput tende ad annullarsi al diminuire della dimensione dei pacchetti
fino a diventare pari a zero con num. pacchetti < 5.
21
6
Operazioni verso internet
Connettendo le diverse isole a internet esterna abbiamo provato ad eseguire alcune operazioni verso i siti internet www.polito.it , www.google.it,
www.gazzetta.it e www.sun.com.
6.1
Comando Ping
Riportiamo la cattura dei primi pacchetti sniffati con l’analizzatore di protocolli ethereal verso www.google.it:
No. Time
Source
Destination
Protocol
1
0.000000 192.168.200.11 192.168.200.250 DNS
Info
Standard query A www.google.it
Frame 1 (73 bytes on wire, 73 bytes captured)
Ethernet II, Src: 00:0b:6a:d1:0c:10, Dst: 00:07:95:d9:2d:f7
Internet Protocol, Src Addr: 192.168.200.11 (192.168.200.11), Dst Addr: 192.168.200.250
(192.168.200.250)
User Datagram Protocol, Src Port: 32792 (32792), Dst Port: 53 (53)
Domain Name System (query)
No. Time
Source
Destination
2
0.004263 192.168.200.250 192.168.200.11
Protocol
DNS
Info
*
* Standard query response CNAME www.google.com CNAME www.l.google.com A
74.125.87.103 A 74.125.87.104 A 74.125.87.147 A 74.125.87.99
Frame 2 (409 bytes on wire, 409 bytes captured)
Ethernet II, Src: 00:07:95:d9:2d:f7, Dst: 00:0b:6a:d1:0c:10
Internet Protocol, Src Addr: 192.168.200.250 (192.168.200.250), Dst Addr: 192.168.200.11
(192.168.200.11)
User Datagram Protocol, Src Port: 53 (53), Dst Port: 32792 (32792)
Domain Name System (response)
No. Time
Source
Destination
3
0.004558 192.168.200.11 74.125.87.103
22
Protocol
ICMP
Info
Echo (ping) request
Frame 3 (98 bytes on wire, 98 bytes captured)
Ethernet II, Src: 00:0b:6a:d1:0c:10, Dst: 00:07:95:d9:2d:f7
Internet Protocol, Src Addr: 192.168.200.11 (192.168.200.11), Dst Addr: 74.125.87.103
(74.125.87.103)
Internet Control Message Protocol
No. Time
Source
4
0.034693 74.125.87.103
Destination
192.168.200.11
Protocol
ICMP
Info
Echo (ping) reply
Frame 4 (98 bytes on wire, 98 bytes captured)
Ethernet II, Src: 00:07:95:d9:2d:f7, Dst: 00:0b:6a:d1:0c:10
Internet Protocol, Src Addr: 74.125.87.103 (74.125.87.103), Dst Addr: 192.168.200.11
(192.168.200.11)
Internet Control Message Protocol
6.2
Comando Traceroute
6.2.1
Output comando
. Verso www.polito.it:
- 192.168.3.1 (192.168.3.1) 0.236 ms 0.202 ms 0.200 ms
- 10.0.0.6 (10.0.0.6) 0.825 ms 0.789 ms 0.770 ms
- 192.168.200.250 (192.168.200.250) 2.033 ms 1.921 ms 1.806 ms
- 130.192.77.65 (130.192.77.65) 2.649 ms 2.695 ms 2.651 ms
- 192.168.255.162 (192.168.255.162) 2.615 ms 2.812 ms 2.592 ms
- 192.168.255.21 (192.168.255.21) 2.877 ms 2.883 ms 2.876 ms
- 192.168.255.17 (192.168.255.17) 3.052 ms 3.096 ms 3.023 ms
- 192.168.255.1 (192.168.255.1) 2.607 ms 2.700 ms 2.563 ms
- 130.192.232.2 (130.192.232.2) 2.713 ms 2.588 ms 2.570 ms
23
. Verso www.gazzetta.it:
- 192.168.3.1 (192.168.3.1) 0.280 ms 0.203 ms 0.201 ms
- 10.0.0.6 (10.0.0.6) 0.872 ms 0.793 ms 0.768 ms
- 192.168.200.250 (192.168.200.250) 2.268 ms 2.120 ms 2.051 ms
- 130.192.77.65 (130.192.77.65) 2.969 ms 3.007 ms 2.933 ms
- 192.168.255.162 (192.168.255.162) 9.037 ms 3.070 ms 4.096 ms
- 192.168.255.21 (192.168.255.21) 3.279 ms 3.329 ms 3.041 ms
- 192.168.255.17 (192.168.255.17) 3.231 ms 3.353 ms 3.247 ms
- 192.168.255.1 (192.168.255.1) 2.809 ms 3.014 ms 2.672 ms
- 130.192.232.60 (130.192.232.60) 3.092 ms 3.130 ms 2.897 ms
- 130.192.232.254 (130.192.232.254) 3.794 ms 3.162 ms 3.151 ms
- ru-polito-rt-to1.to1.garr.net (193.206.132.33) 3.560 ms 3.732 ms 4.435 ms
- rt-to1-rt-mi2.mi2.garr.net (193.206.134.41) 6.610 ms 6.407 ms 6.340 ms
- infracomna.mix-it.net (217.29.66.11) 6.824 ms 6.301 ms 6.405 ms
- Milano-1-tge-3-1.ita.tip.net (62.196.4.250) 7.303 ms 6.710 ms 6.600 ms
24
. Verso www.sun.com:
- 192.168.3.1 (192.168.3.1) 0.260 ms 0.202 ms 0.200 ms
- 10.0.0.6 (10.0.0.6) 0.833 ms 0.793 ms 0.771 ms
- 192.168.200.250 (192.168.200.250) 3.012 ms 3.042 ms 2.998 ms
- 130.192.77.65 (130.192.77.65) 16.067 ms 3.645 ms 3.660 ms
- 192.168.255.162 (192.168.255.162) 3.562 ms 3.563 ms 4.623 ms
- 192.168.255.21 (192.168.255.21) 27.576 ms 3.734 ms 3.687 ms
- 192.168.255.17 (192.168.255.17) 10.965 ms 5.127 ms 3.900 ms
- 192.168.255.1 (192.168.255.1) 3.767 ms 3.802 ms 3.865 ms
- 130.192.232.60 (130.192.232.60) 3.927 ms 3.810 ms 3.798 ms
- 130.192.232.254 (130.192.232.254) 4.027 ms 18.509 ms 3.792 ms
- ru-polito-rt-to1.to1.garr.net (193.206.132.33) 4.664 ms 4.555 ms 4.443 ms
- rt-to1-rt-mi2.mi2.garr.net (193.206.134.41) 7.368 ms 7.093 ms 7.389 ms
- 213.248.71.161 (213.248.71.161) 7.556 ms 7.106 ms 7.032 ms
- prs-bb1-link.telia.net (80.91.249.38) 19.906 ms 20.021 ms 19.822 ms
- ash-bb1-link.telia.net (80.91.252.36) 101.194 ms 101.381 ms 102.180 ms
- sl-st22-ash-2-0.sprintlink.net (144.232.19.113) 102.401 ms 101.346 ms 101.515 ms
- sl-bb20-dc-8-0-0.sprintlink.net (144.232.9.120) 103.104 ms 102.879 ms 102.881 ms
- sl-crs1-rly-0-1-5-0.sprintlink.net (144.232.20.15) 110.448 ms 104.730 ms 103.595 ms
- sl-crs2-sj-0-5-0-0.sprintlink.net (144.232.20.186) 164.080 ms 163.078 ms 164.780 ms
- sl-gw19-sj-15-0-0.sprintlink.net (144.232.0.250) 173.301 ms 173.078 ms 178.985 ms
- 144.232.191.202 (144.232.191.202) 173.160 ms 178.413 ms 172.330 ms
- border2.te8-1-bbnet2.sfo002.pnap.net (63.251.63.82) 174.757 ms 174.705 ms 180.140
ms
25
6.2.2
Cattura con ethereal
Riportiamo la cattura dei pacchetti effettuati con l’analizzatore di protocolli
ethereal per l’operazione compiuta verso www.sun.com:
No. Time
Source
Destination
Protocol Info
6
11.010752 192.168.200.12 192.168.200.250 DNS
*
*Standard query A www.sun.com
Frame 6 (71 bytes on wire, 71 bytes captured)
Ethernet II, Src: 00:0b:6a:cf:04:c6, Dst: 00:07:95:d9:2d:f7
Internet Protocol, Src Addr: 192.168.200.12 (192.168.200.12), Dst Addr: 192.168.200.250
(192.168.200.250)
User Datagram Protocol, Src Port: 32840 (32840), Dst Port: 53 (53)
Domain Name System (query)
No. Time
Source
Destination
Protocol Info
7
11.184463 192.168.200.250 192.168.200.12 DNS
*
* Standard query response A 72.5.124.61
Frame 7 (223 bytes on wire, 223 bytes captured)
Ethernet II, Src: 00:07:95:d9:2d:f7, Dst: 00:0b:6a:cf:04:c6
Internet Protocol, Src Addr: 192.168.200.250 (192.168.200.250), Dst Addr: 192.168.200.12
(192.168.200.12)
User Datagram Protocol, Src Port: 53 (53), Dst Port: 32840 (32840)
Domain Name System (response)
No. Time
Source
Destination Protocol Info
8
11.185605 192.168.200.12 72.5.124.61 UDP
*
*Source port: 38090 Destination port: 33435
Frame 8 (52 bytes on wire, 52 bytes captured)
Ethernet II, Src: 00:0b:6a:cf:04:c6, Dst: 00:07:95:d9:2d:f7
Internet Protocol, Src Addr: 192.168.200.12 (192.168.200.12), Dst Addr: 72.5.124.61
(72.5.124.61)
User Datagram Protocol, Src Port: 38090 (38090), Dst Port: 33435 (33435)
Data (10 bytes)
26
No Time
Source
Destination
Protocol
9 11.186743 192.168.200.250 192.168.200.12 ICMP
Info
*
* Time-to-live exceeded (Time to live exceeded in transit)
Frame 9 (70 bytes on wire, 70 bytes captured)
Ethernet II, Src: 00:07:95:d9:2d:f7, Dst: 00:0b:6a:cf:04:c6
Internet Protocol, Src Addr: 192.168.200.250 (192.168.200.250), Dst Addr: 192.168.200.12
(192.168.200.12)
Internet Control Message Protocol
No. Time
Source
Destination
Protocol
10 11.187036 192.168.200.12 192.168.200.250 DNS
Info
*
* Standard query PTR 250.200.168.192.in-addr.arpa
Frame 10 (88 bytes on wire, 88 bytes captured)
Ethernet II, Src: 00:0b:6a:cf:04:c6, Dst: 00:07:95:d9:2d:f7
Internet Protocol, Src Addr: 192.168.200.12 (192.168.200.12), Dst Addr: 192.168.200.250
(192.168.200.250)
User Datagram Protocol, Src Port: 32840 (32840), Dst Port: 53 (53)
Domain Name System (query)
No. Time
Source
Destination
Protocol
11 11.188034 192.168.200.250 192.168.200.12 DNS
Info
*
* Standard query response PTR AZIMUT2K
Frame 11 (138 bytes on wire, 138 bytes captured)
Ethernet II, Src: 00:07:95:d9:2d:f7, Dst: 00:0b:6a:cf:04:c6
Internet Protocol, Src Addr: 192.168.200.250 (192.168.200.250), Dst Addr: 192.168.200.12
(192.168.200.12)
User Datagram Protocol, Src Port: 53 (53), Dst Port: 32840 (32840)
Domain Name System (response)
Commenti:
inizialmente l’host richiede al DNS (192.168.200.250) la traduzione del nome
logico nel relativo indirizzo ip; la prima volta questa operazione è di tipo A
mentre successivamente le traduzione sono di tipo PTR (pointer).
Osserviamo che vengono ricevuti pacchetti Time-to-live exceeded per determinare i router intermedi attraversati, inoltre come implementato dal
27
sistema operativo (Knoppix) di default il comando traceroute utilizza pacchetti UDP con porte di destinazione comprese tra 33434 e 33534.
6.3
Prova con il browser
In questa sezione riportiamo la cattura di pacchetti effettuata connettendoci
al sito www.polito.it tramite browser:
No. Time
Source
Destination
3
11.290911 00:0b:6a:cf:04:c6 ff:ff:ff:ff:ff:ff
Protocol
ARP
Info
*
* Who has 192.168.200.250? Tell 192.168.200.12
Frame 3 (42 bytes on wire, 42 bytes captured)
Ethernet II, Src: 00:0b:6a:cf:04:c6, Dst: ff:ff:ff:ff:ff:ff
Address Resolution Protocol (request)
No. Time
Source
Destination
Protocol
4
11.291374 00:07:95:d9:2d:f7 00:0b:6a:cf:04:c6 ARP
*192.168.200.250 is at 00:07:95:d9:2d:f7
Frame 4 (60 bytes on wire, 60 bytes captured)
Ethernet II, Src: 00:07:95:d9:2d:f7, Dst: 00:0b:6a:cf:04:c6
Address Resolution Protocol (reply)
28
Info
*
I pacchetti 3 e 4 rappresentano la richiesta ARP dell’indirizzo ip del dns e la
risposta. I pacchetti successivi (5, 6, 7 e 8) invece contengono la richiesta di
traduzione del nome logico www.polito.it nell’indirizzo ip e la risposta del dns.
No. Time
Source
Destination
Protocol
5 11.291399 192.168.200.12 192.168.200.250 DNS
Info
*
* Standard query A www.polito.it
Frame 5 (73 bytes on wire, 73 bytes captured)
Ethernet II, Src: 00:0b:6a:cf:04:c6, Dst: 00:07:95:d9:2d:f7
Internet Protocol, Src Addr: 192.168.200.12 (192.168.200.12), Dst Addr: 192.168.200.250
(192.168.200.250)
User Datagram Protocol, Src Port: 32768 (32768), Dst Port: 53 (53)
Domain Name System (query)
No. Time
Source
Destination
Protocol
6 11.291405 192.168.200.12 192.168.200.250 DNS
Info
*
* Standard query AAAA www.polito.it
Frame 6 (73 bytes on wire, 73 bytes captured)
Ethernet II, Src: 00:0b:6a:cf:04:c6, Dst: 00:07:95:d9:2d:f7
Internet Protocol, Src Addr: 192.168.200.12 (192.168.200.12), Dst Addr: 192.168.200.250
(192.168.200.250)
User Datagram Protocol, Src Port: 32769 (32769), Dst Port: 53 (53)
Domain Name System (query)
Il segmento catturato num. 6 è un pacchetto ipv6.
No. Time
Source
Destination
Protocol
7 11.294271 192.168.200.250 192.168.200.12 DNS
Info
*
* Standard query response A 130.192.73.1
Frame 7 (102 bytes on wire, 102 bytes captured)
Ethernet II, Src: 00:07:95:d9:2d:f7, Dst: 00:0b:6a:cf:04:c6
Internet Protocol, Src Addr: 192.168.200.250 (192.168.200.250), Dst Addr: 192.168.200.12
(192.168.200.12)
User Datagram Protocol, Src Port: 53 (53), Dst Port: 32768 (32768)
Domain Name System (response)
29
No. Time
Source
Destination
Protocol
8 11.295864 192.168.200.250 192.168.200.12 DNS
Info
*
* Standard query response CNAME web01.polito.it
Frame 8 (143 bytes on wire, 143 bytes captured)
Ethernet II, Src: 00:07:95:d9:2d:f7, Dst: 00:0b:6a:cf:04:c6
Internet Protocol, Src Addr: 192.168.200.250 (192.168.200.250), Dst Addr: 192.168.200.12
(192.168.200.12)
User Datagram Protocol, Src Port: 53 (53), Dst Port: 32769 (32769)
Domain Name System (response)
I tre pacchetti successivi (9, 10 e 11) rappresentano la three-way handshake.
No. Time
Source
Destination
9 11.296119 192.168.200.12 130.192.73.1
Protocol
TCP
Info
*
* 35614 > 80 [SYN] Seq=0 Ack=0 Win=5840 Len=0 MSS=1460 TSV=4294893864
TSER=0 WS=2
Frame 9 (74 bytes on wire, 74 bytes captured)
Ethernet II, Src: 00:0b:6a:cf:04:c6, Dst: 00:07:95:d9:2d:f7
Internet Protocol, Src Addr: 192.168.200.12 (192.168.200.12), Dst Addr: 130.192.73.1
(130.192.73.1)
Transmission Control Protocol, Src Port: 35614 (35614), Dst Port: 80 (80), Seq: 0, Ack:
0, Len: 0
No. Time
Source
10 11.297401 130.192.73.1
Destination
Protocol
192.168.200.12 TCP
Info
*
* 80 > 35614 [SYN, ACK] Seq=0 Ack=1 Win=16384 Len=0 MSS=1460 WS=0 TSV=0
TSER=0
Frame 10 (78 bytes on wire, 78 bytes captured)
Ethernet II, Src: 00:07:95:d9:2d:f7, Dst: 00:0b:6a:cf:04:c6
Internet Protocol, Src Addr: 130.192.73.1 (130.192.73.1), Dst Addr: 192.168.200.12
(192.168.200.12)
Transmission Control Protocol, Src Port: 80 (80), Dst Port: 35614 (35614), Seq: 0, Ack:
1, Len: 0
30
No. Time
Source
Destination
11 11.297430 192.168.200.12 130.192.73.1
Protocol
TCP
Info
*
* 35614 > 80 [ACK] Seq=1 Ack=1 Win=5840 Len=0 TSV=4294893866 TSER=0
Frame 11 (66 bytes on wire, 66 bytes captured)
Ethernet II, Src: 00:0b:6a:cf:04:c6, Dst: 00:07:95:d9:2d:f7
Internet Protocol, Src Addr: 192.168.200.12 (192.168.200.12), Dst Addr: 130.192.73.1
(130.192.73.1)
Transmission Control Protocol, Src Port: 35614 (35614), Dst Port: 80 (80), Seq: 1, Ack:
1, Len: 0
Il pacchetto num. 12 contiene la richiesta (GET) HTTP di connessione
al sito www.polito.it; dalle INFO possiamo dedurre che la connessione è di
tipo persistente (1.1) mentre se fosse stata non persistente avremmo letto 1.0.
No. Time
Source
Destination
12 11.297678 192.168.200.12 130.192.73.1
Protocol
HTTP
Info
GET / HTTP/1.1
Frame 12 (417 bytes on wire, 417 bytes captured)
Ethernet II, Src: 00:0b:6a:cf:04:c6, Dst: 00:07:95:d9:2d:f7
Internet Protocol, Src Addr: 192.168.200.12 (192.168.200.12), Dst Addr: 130.192.73.1
(130.192.73.1)
Transmission Control Protocol, Src Port: 35614 (35614), Dst Port: 80 (80), Seq: 1, Ack:
1, Len: 351
Hypertext Transfer Protocol
7
Protocollo RIP
Per visualizzare mediante ethereal solo i pacchetti di interesse si è provveduto
a inserire come filtro ′′ rip′′ .
La versione utilizzata è stata esclusivamente RIP v2 in cui l’annuncio delle
tabelle di routing viene effettuato con i seguenti indirizzi di destinazione:
. livello mac: 01:00:5E:00:00:09 che è un’indirizzo multicast in quanto
compreso nel range di indirizzi [01:00:5E:00:00:00 ÷ 01:00:5E:7F:FF:FF];
. livello ip: verso 224.0.0.9 che è un indirizzo di multicast, conosciuto solo dai router che implementano RIP v2 , anzichè inviare le informazioni
in broadcast al fine di non far elaborare traffico inutile agli host.
L’aggiornamento delle informazioni avviene ad intervalli regolari di circa 30
secondi.
Riportiamo i campi di un pacchetto RIP catturato:
31
No. Time
Source
Destination
14 9.495861 192.168.200.12 224.0.0.9
Protocol
RIPv2
Info
Response
Frame 14 (106 bytes on wire, 106 bytes captured)
.
Arrival Time: Jun 12, 2009 16:52:27.362838000
.
Time delta from previous packet: 0.487824000 seconds
.
Time since reference or first frame: 9.495861000 seconds
.
Frame Number: 14
.
Packet Length: 106 bytes
.
Capture Length: 106 bytes
.
Protocols in frame: eth:ip:udp:rip
Ethernet II, Src: 00:0b:6a:cf:04:c6, Dst: 01:00:5e:00:00:09
.
Destination: 01:00:5e:00:00:09 (01:00:5e:00:00:09)
.
Source: 00:0b:6a:cf:04:c6 (00:0b:6a:cf:04:c6)
.
Type: IP (0x0800)
Internet Protocol, Src Addr: 192.168.200.12 (192.168.200.12), Dst Addr:
(224.0.0.9)
.
Version: 4
.
Header length: 20 bytes
.
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
.
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.
.... ..0. = ECN-Capable Transport (ECT): 0
.
.... ...0 = ECN-CE: 0
.
Total Length: 92
.
Identification: 0x0000 (0)
.
Flags: 0x04 (Don’t Fragment)
.
0... = Reserved bit: Not set
.
.1.. = Don’t fragment: Set
.
..0. = More fragments: Not set
.
Fragment offset: 0
.
Time to live: 1
.
Protocol: UDP (0x11)
.
Header checksum: 0x10d3 (correct)
.
Source: 192.168.200.12 (192.168.200.12)
.
Destination: 224.0.0.9 (224.0.0.9)
User Datagram Protocol, Src Port: 520 (520), Dst Port: 520 (520)
.
Source port: 520 (520)
.
Destination port: 520 (520)
.
Length: 72
.
Checksum: 0xcc8e (correct)
32
224.0.0.9
Routing Information Protocol
.
Command: Response (2)
.
Version: RIPv2 (2)
.
Routing Domain: 0
.
Authentication: Simple Password
.
Authentication type: Simple Password (2)
.
Password: g3
.
IP Address: 172.16.2.0, Metric: 1
.
Address Family: IP (2)
.
Route Tag: 0
.
IP Address: 172.16.2.0 (172.16.2.0)
.
Netmask: 255.255.255.192 (255.255.255.192)
.
Next Hop: 0.0.0.0 (0.0.0.0)
.
Metric: 1
.
IP Address: 172.16.3.0, Metric: 1
.
Address Family: IP (2)
.
Route Tag: 0
.
IP Address: 172.16.3.0 (172.16.3.0)
.
Netmask: 255.255.255.224 (255.255.255.224)
.
Next Hop: 0.0.0.0 (0.0.0.0)
.
Metric: 1
Commenti:
a differenza di RIP v1 , in questa versione si può notare nel payload del
pacchetto un campo riservato all’autenticazione; essa avviene mediante password che deve essere univoca per tutti i router della subnet.
7.1
Comportamenti in caso di guasti
Una volta scollegato un cavo in modo tale da spezzare l’anello della rete
come si vede in figura 14 e interrompere il ping verso un’interfaccia abbiamo
notato che RIP è in grado di ripristinare la connettività della rete in un
intervallo di tempo superiore a 180 secondi dopo che le tabelle di routing
sono scadute.
33
Quando nel ping compare il messaggio Network unreachable come riportato in figura 13 l’informazione relativa a quella destinazione non è ancora
scaduta tuttavia risulta inutilizzabile; nell’istante in cui la connettività viene ripristinata le informazioni presenti nella routing table sono relative al
nuovo stato della rete.
Riportiamo un esempio di output delle tabelle di routing:
34
Figura 13: output comando ping durante un guasto
35
Figura 14: configurazione rete
36