Dispense corso Laboratorio di Internet

Transcript

Dispense corso Laboratorio di Internet
Universitá di Roma Sapienza
Dipartimento di Ingegneria Elettronica e delle
Telecomunicazioni
Dispense corso
Laboratorio di Internet
Luca Chiaraviglio
E-mail: {luca.chiaraviglio}@diet.uniroma1.it
3 marzo 2014
1
Indice
1 Introduzione
1.1 Materiale richiesto . . . . . . . . . . . . . . . . . . . . . . . .
4
4
2 Il sistema operativo Linux
2.1 Scopo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Descrizione dell’esercitazione . . . . . . . . . . . . . . . . . .
2.2.1 Analisi del comando ifconfig . . . . . . . . . . . . .
5
5
5
5
3 Configurazione software e hardware degli host: analisi
livello utente
3.1 Scopo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Documentazione disponibile . . . . . . . . . . . . . . . . . .
3.3 Descrizione dell’esercitazione . . . . . . . . . . . . . . . . .
3.3.1 Configurazione di una rete . . . . . . . . . . . . . .
3.3.2 Verifica connettività a livello rete . . . . . . . . . . .
3.3.3 Verifica modalità di funzionamento consegna diretta
3.3.4 Protocollo ARP . . . . . . . . . . . . . . . . . . . . .
3.3.5 Configurazioni di indirizzamento atipiche e sbagliate
6
6
6
6
6
7
8
8
9
a
.
.
.
.
.
.
.
.
4 Configurazione software e hardware degli host: analisi a
livello rete
4.1 Scopo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Documentazione disponibile . . . . . . . . . . . . . . . . . . .
4.3 Descrizione dell’esercitazione . . . . . . . . . . . . . . . . . .
4.3.1 Analisi di base. . . . . . . . . . . . . . . . . . . . . . .
4.3.2 Consegna diretta e risoluzione di indirizzi: il protocollo ARP . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 Cattura e analisi di protocolli di livello trasporto/applicazione
4.4.1 Protocollo TCP . . . . . . . . . . . . . . . . . . . . . .
4.4.2 Analisi del comando nmap . . . . . . . . . . . . . . . .
5 Misure di prestazioni
5.1 Scopo . . . . . . . . . . . . . . . . . . . .
5.2 Configurazione della scheda di rete . . . .
5.3 Analisi del comando nttcp . . . . . . . . .
5.4 Impatto delle topologie e degli apparati di
stazioni. . . . . . . . . . . . . . . . . . . .
5.4.1 Controllo di congestione . . . . . .
2
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
livello 2 sulle pre. . . . . . . . . . .
. . . . . . . . . . .
11
11
11
11
12
13
15
15
19
21
21
22
23
23
26
5.5
Emulazione di reti geografiche . . . . . . . . . . . . . . .
5.5.1 Emulare ritardi rete . . . . . . . . . . . . . . . .
5.5.2 Perdita di pacchetti . . . . . . . . . . . . . . . .
5.6 Verifica del funzionamento dell’emulazione . . . . . . . .
5.7 Impatto dei ritardi sulle prestazioni del protocollo TCP
5.8 Prestazioni di Streaming Video . . . . . . . . . . . . . .
5.8.1 Configurazione Streaming su UDP . . . . . . . .
5.8.2 Configurazione Streaming su TCP . . . . . . . .
5.9 Confronto prestazioni UDP/TCP . . . . . . . . . . . . .
5.10 Impatto della probabilitá di perdita . . . . . . . . . . .
5.11 Impatto della capacitá del canale . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
28
28
29
29
29
30
31
32
33
33
33
6 Configurazione rete mediante routing statico
6.1 Scopo . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Documentazione disponibile . . . . . . . . . . . .
6.3 Configurazione instradamento statico intra-isola .
6.3.1 ICMP-redirect . . . . . . . . . . . . . . .
6.4 Configurazione instradamento statico inter-isola .
6.4.1 Topologia a stella . . . . . . . . . . . . . .
6.4.2 Scoperta della topologia . . . . . . . . . .
6.4.3 Prestazioni con rete carica . . . . . . . . .
6.4.4 Prestazioni per traffico uniforme . . . . .
6.4.5 Prestazioni per traffico sbilanciato . . . .
6.4.6 Riconfigurazione in caso di guasto. . . . .
6.4.7 Conclusioni . . . . . . . . . . . . . . . . .
6.5 Topologia ad anello con routing distanza minima
6.5.1 Configurazione . . . . . . . . . . . . . . .
6.6 Topologia ad anello con routing unidirezionale . .
6.7 Analisi di protocolli a livello geografico . . . . . .
6.7.1 Analisi del comando traceroute . . . . . .
6.7.2 Analisi del comando ping “Record route”
6.7.3 Analisi del protocollo DNS . . . . . . . .
6.7.4 Analisi del protocollo HTTP . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
34
34
34
34
35
36
36
37
37
38
38
39
39
39
39
39
40
40
40
40
41
7 Protocolli di routing dinamico
7.1 Scopo . . . . . . . . . . . . .
7.2 Configurazione di base . . . .
7.3 Il protocollo RIP . . . . . . .
7.4 Il protocollo OSPF . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
42
42
42
43
44
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
Introduzione
Questa è una raccolta di esercitazioni da svolgere durante il corso di Laboratorio di Internet1 . Sono descritte diverse esercitazioni da svolgere in
laboratorio, che verranno di volta in volta proposte dal docente. Il corso presenta contenuti fortemente sperimentali, e permette agli studenti di
applicare le nozioni apprese durante le lezioni di teoria.
Per semplicità, il corso viene diviso in esperienze. Ciascuna esperienza
può richiedere diverse ore, per cui non vi è nessuna corrispondenza tra la
divisione dei laboratori e le settimane di corso.
Per lo svolgimento del corso, gli studenti hanno a disposizione i PC del
Laboratorio Informatico. I PC dovranno fare il boot sul sistema operativo
Ubuntu o Windows a seconda dell’esercitazione richiesta.
Gli studenti del corso dovranno lavorare in gruppi da 2 studenti.
1.1
Materiale richiesto
Per lo svolgimento del corso, ogni gruppo ha a disposizione:
• due personal computer del laboratorio
• eventualmente il proprio portatile se portato dallo studente
• uno switch a 10/100 Mbps
1
Questo materiale si basa sul corso di Laboratorio di Telecomunicazioni del Politecnico
di Torino. Si ringrazia il prof. Marco Mellia per averne permesso la condivisione
4
2
Il sistema operativo Linux
2.1
Scopo
Lo scopo di questa esercitazione é di familiarizzare con il sistema operativo
linux e la scrittura di alcuni semplici programmi di scripting.
2.2
2.2.1
Descrizione dell’esercitazione
Analisi del comando ifconfig
Ciascun gruppo durante questa esercitazione lavorerá con un singolo PC.
1. A cosa serve il comando ifconfig? Suggerimento: guardare prima la
documentazione del comando digitando man ifconfig
2. Quali informazioni vengono riportate in output? Si salvi la schermata
del comando e si commentino i risultati che vengono stampati.
3. Selezionare l’interfaccia relativa alla scheda di rete. Annotare l’indirizzo IP, la netmask e il gateway (suggerimento: per il gateway utilizzare
le informazioni disponibili dal comando route). Che tipo di sottorete
viene utilizzata? Perché? Che indirizzo ha il gateway? Perché?
4. Si crei uno script di shell/AWK per selezionare i bytes che vengono
trasmessi e ricevuti.
5. Si modifichi lo script precedente per salvare i bytes che vengono trasmessi e ricevuti in un file di uscita in un certo intervallo temporale
(1 volta al secondo per 5 minuti). Suggerimento: utilizzare il comando sleep per impostare il tempo di campionamento. Plottare su un
grafico l’evoluzione temporale dei bytes trasmessi e ricevuti.
6. Ripetere l’esperimento precedente navigando su Internet quando si
esegue lo script (aprire il browser Firefox). Cosa succede quando si
apre un video? Cosa succede quando si apre una pagina di ricerca?
Plottare un grafico che mostra i risultati ottenuti, indicando anche
quali siti sono stati visitati.
5
3
Configurazione software e hardware degli host:
analisi a livello utente
3.1
Scopo
Lo scopo di questa esperienza è capire i meccanismi di configurazione di host
e router IP, provando a creare delle reti locali. I PC a disposizione verranno
connessi tramite switch, e verrà controllato il corretto funzionamento delle
reti create. Il tempo atteso richiesto è circa 10 ore.
3.2
Documentazione disponibile
• Manuali dei comandi ifconfig, ping, traceroute, netstat, arp,
route
http://www.telematica.polito.it/mellia/corsi/LaboratorioTLM/doc/ifconfig.html
http://www.telematica.polito.it/mellia/corsi/LaboratorioTLM/doc/ping.html
http://www.telematica.polito.it/mellia/corsi/LaboratorioTLM/doc/traceroute.html
http://www.telematica.polito.it/mellia/corsi/LaboratorioTLM/doc/netstat.html
http://www.telematica.polito.it/mellia/corsi/LaboratorioTLM/doc/arp.html
• Tutorial sulla crimpatura di un cavo di rete UTP RJ45
http://www.telematica.polito.it/mellia/corsi/LaboratorioTLM/doc/cat5cable.htm
3.3
Descrizione dell’esercitazione
Nota: In questa esercitazione non è consentito l’uso di analizzatore di protocolli di rete.
3.3.1
Configurazione di una rete
Ogni gruppo dispone di cavi UTP, di PC e di uno switch. In ogni isola,
si connettano i terminali a disposizione tramite lo switch. Attenzione: nel
caso sia presente una porta denominata di UPLINK, non utilizzarla.
1. Si disegni la topologia corrispondente sia a livello fisico che a livello
collegamento.
2. Si disabiliti l’interfaccia di rete tramite il comando
ifconfig eth0 down
6
(si elimini anche l’indirizzo IP associato all’interfaccia dal Network
Manager di Ubuntu).
Si crei una rete con al massimo 128 hosts, utilizzando indirizzi privati
IP di classe B. Per configurare l’indirizzo IP IP ADDRESS (nel formato decimale X.X.X.X) e la subnet mask NET MASK (nel formato
decimale X.X.X.X) si utilizzi il comando
ifconfig eth0 IP_ADDRESS netmask NET_MASK
ifconfig eth0 up
3. Verificare la configurazione delle interfacce con il comando
ifconfig -a
Quale delle informazioni a disposizione riuscite a capire? Quante interfacce sono presenti? Come sono configurate? Gli indirizzi dell’host,
di rete e di broadcast sono corretti?
4. Verificare l’aggiornamento delle tabelle di routing tramite il comando
route
Che host risultano raggiungibili secondo le tabelle di routing?
3.3.2
Verifica connettività a livello rete
Verificare la connettività da un host verso un’altro (e viceversa) con indirizzo
IP IP ADDRESS mediante il comando
ping IP_ADDRESS -c 10
Per verificare quale scheda di rete risulta collegata allo switch e i relativi
parametri di livello fisico è utile il comando
ethtool eth0
Quale delle informazioni mostrate siete in grado di capire?
1. Eseguendo il comando di ping, si riceve un output simile al seguente:
PING 172.16.1.1 (172.16.1.1) from 172.16.1.2 : X(Y) bytes of data.
Z bytes from 130.192.73.1: icmp_seq=0 ttl=253 time=3.3 ms
quale è il significato preciso dei valori X,Y e Z ? Che cosa indica i
campi icmp seq, ttl e time?
7
3.3.3
Verifica modalità di funzionamento consegna diretta
1. Si determini sperimentalmente il massimo range di indirizzi IP raggiungibili da un host, usando il comando ping.
Si ponga la netmask a 255.255.0.0 su tutti gli host. Supponendo di
non conoscere la netmask (e quindi la dimensione della sottorete a cui
si è connessi), come è possibile determinare il nuovo massimo range di
indirizzi IP raggiungibile da un host.
2. Cosa succede se si mandano pacchetti ICMP verso l’indirizzo di rete?
3. Cosa succede se si mandano pacchetti ICMP verso l’indirizzo broadcast?
4. Si determini la dimensione effettiva della MTU mediante il comando ping con l’opzione DON’T FRAGMENT, facendo diversi tentativi con
dimensioni del pacchetto differenti.
5. Il comando netstat -i fornisce delle informazioni ridondanti rispetto
a quelle di ifconfig. Quali sono?
6. Il comando netstat -r fornisce delle informazioni ridondanti rispetto
a quelle di route. Quali sono?
Il comando netstat -r -c fornisce delle informazioni ridondanti rispetto a quelle di route. Quali sono?
7. Spiegare brevemente tutte le opzioni di ifconfig, ping, route e
netstat utilizzate finora.
8. Descrivere la configurazione corrente del proprio host, commentando tutti i campi di vostra conoscenza dell’output dei comandi route,
ifconfig e ethtool.
3.3.4
Protocollo ARP
Ricordando che tutti gli host appartengono alla stessa sottorete IP, i terminali scambiano tra loro delle PDU mediante il meccanismo di consegna
diretta. Questo prevede che l’host sorgente crei una PDU di livello rete
contenente come indirizzo di destinazione quello del terminare che si vuole contattare. Per poter trasmettere tale PDU, l’host sorgente deve creare
una PDU Ethernet contenente come SDU la PDU IP. Come indirizzo MAC,
l’host dovrà inserire quello del terminale remoto. Per poter conoscere tale
8
indirizzo, l’host dovrà associare all’indirizzo IP (noto) della destinazione con
l’indirizzo MAC (non noto) della stessa. Per fare questo si usa il protocollo
ARP - Address Resolution Protocol. Una volta effettuata l’associazione, il
terminale mantiene tali informazioni in tabelle, dette tabelle di ARP. Per
capire il funzionamento di tali meccanismi, si eseguano di seguenti punti.
1. Si configuri la rete come nel punto Sec. 3.3.1. Dopo aver eseguito dei
ping tra tutte le stazioni, si consultino le tabelle di ARP mediante il
comando
arp
Spiegare il significato dell’output del comando.
2. Si individui, sia nel caso di ARP-request sia di ARP-reply, quali sono
gli host che aggiornano le tabelle di ARP, spiegando la metodologia
adottata. Quali altre possibilità ci sono per la gestione dei messaggi
di ARP da parte degli host? Quali sono i vantaggi e svantaggi di tali
soluzioni?
3. Si provi a contattare un host inesistente appartenente alla propria
sottorete e verificare il risultato a video e il contenuto delle ARP tables.
4. Si provi a contattare un host inesistente non appartenente alla propria
sottorete e verificare il risultato a video e il contenuto delle ARP tables.
5. Verificare la durata delle entry nella tabella di ARP. Suggerimento: cancellare la tabella, e far creare due entry, una per un host
raggiungibile, e una per un host non raggiungibile.
Il comando date visualizza l’ora del PC e può essere utile per la
misurazione.
3.3.5
Configurazioni di indirizzamento atipiche e sbagliate
1. Cosa succede se due host hanno lo stesso indirizzo IP? Verificare attentamente la connettività da un terzo host verso l’indirizzo comune
consultando le tabelle ARP. Cosa succede se gli host che hanno lo
stesso indirizzo contattano il terzo host?
2. Si configurino due host in modo che un host A veda l’host B come
appartenente alla medesima sottorete ma non viceversa. Verificare la
connettività tra i due host. Cosa succede se A contatta B? E viceversa?
9
3. Si configuri l’host A con indirizzo 10.1.0.1/24 e l’host B con l’indirizzo
10.1.0.255/23. Si verifichi la connettività reciproca tra i due host. Cosa
succede in questo caso? Che indirizzo usa A per B ? Che indirizzo usa
B per A?
10