IP - UNISA

Transcript

IP - UNISA
Formato del Datagram IP
I semestre 04/05
0
bit
IP e Routing
4
Vers
8
Hlen
16
Serv. Ty.
Identification
Time To Live
Prof. Vincenzo Auletta
„
„
Utilizzo del Type of Service
(I word)
bit
3
0
numero di versione del protocollo: 4 (IPv4)
2 3
prio
D
4
T
5 6
R
7
non usa
Š Ogni router dovrebbe supportare almeno due classi di priorità
lunghezza dell’header in parole a 32 bit
normalmente 5, quando non ci sono opzioni
„
high per informazioni di servizio, low per traffico normale
Š Uno solo di D, T e R è settato
„
tipo di servizio richiesto (molti router non lo supportano)
...dettagli Æ slide successive
„
„
D = minima distanza
T = massimo throughput
R = massima affidabilità
Š Recentemente l’utilizzo del TOS è stato ridefinito per
Š Total Lenght
„
20 byte
2
Š Type of Service (TOS)
„
Header Checksum
Destination IP Address
Š HLEN
„
Fragment Offset
Source IP Address
Š Version
„
Fl.s
Options
Università degli studi di Salerno
Laurea in Informatica
Formato del Datagram IP
Total Length
Protocol
[email protected]
http://www.dia.unisa.it/professori/auletta/
31
19
consentire la gestione da parte dei router di gruppi di servizi
differenziati (DiffServ)
lunghezza del datagram in byte
4
„
Compatibile con il vecchio formato
Valori di Type of Service (TOS)
Application
Incapsulamento dei Datagram
Š Il datagram deve essere incapsulato nei frame
Min. Delay Max Thr. Max Rel. Min. Cost
Telnet
1
0
0
0
FTP Control
1
0
0
0
FTP Data
0
1
0
0
SNMP
0
0
1
0
DNS (UDP)
1
0
0
0
DNS (TCP)
0
1
0
0
NNTP
0
0
0
1
5
della rete fisica
Datagram
header
Frame header
Frame data
• Per questioni di efficienza vorremmo datagram che entrano
in un frame, ma ...
6
•la dimensione dei frame (MTU) cambia da rete a rete
• la sorgente non conosce l’MTU delle reti fisiche che il datagram
deve attraversare
Frammentazione dei Datagram
Frammentazione dei Datagram
Š Per trasmettere un datagram sulla rete fisica
Š IP si preoccupa di frammentare il datagram e di
bisogna inserirlo nei frame
„
„
7
Datagram Data
ricomporlo
Ogni rete fisica definisce un proprio limite superiore
alla lunghezza dei frame (MTU)
Se il datagram ha dimensione maggiore del frame deve
essere frammentato
„
ogni frammento ha lo stesso formato di un datagram
Š Il destinatario deve essere in grado di ricostruire il
datagram originario
Š La seconda parola (word) dell’header di ogni
frammento contiene le informazioni relative alla
frammentazione
8
Formato del Datagram IP (II word):
Esempio Frammentazione
Š Identification
„
intero che identifica univocamente il datagram originario,
mandato dal sender host
Š Fragment offset
„
posizione del frammento nel datagram originario,
calcolata in ottetti (byte) a partire dall’inizio del campo
dati
Š Flags
„
informazioni di controllo della frammentazione
Š DO NOT FRAGMENT
Š MORE FRAGMENTS
9
„
11
„
protocolli strati sup. hanno la loro CS per coprire i loro header e dati.
I blocco
Offset 0
Frammento 2
header
II blocco
Offset 600
Frammento 3
header
III blocco
Offset 1200
(IV-V word)
indirizzo IP dell’host che ha spedito il datagram
Š Destination IP destination
„
nome del protocollo che ha richiesto il servizio
controllo degli errori calcolato solo sull’header, se ci sono
errori è scartato. (il TTL modificato dai router Æ si deve
incrementare CS)
Frammento 1
header
„
Š Header checksum
„
III blocco
Š Source IP destination
max numero di router che datagram può attraversare nella
rete
iniz. a 32 o 64, ogni router decrementa il valore di 1
previene loop tra router (quando arriva a zero il datagram
è soppresso)
Š Protocol
„
II blocco
Formato del Datagram IP
Š Time to Live (TTL)
„
I blocco
10
Formato del datagram IP (III word):
„
Datagram header
12
indirizzo IP dell’host a cui il datagram è diretto
Campi Opzionale dell’Header
Formato Opzione Record Route
Š Il campo Options contiene informazioni facoltative
„
„
bit
utili per test e debug
la dimensione di OPTIONS è variabile
Š Ogni router inserisce il proprio indirizzo in coda alla lista
Source Route
Š il mittente specifica i router che deve/può attraversare
14
0
8
CODE
24
16
Length
se c’è spazio
Š Length indica la lunghezza della lista
Š Pointer la posizione dove inserire
IP Source Routing
Formato Opzione Source Route
bit
Š La sorgente di un datagram non può influire sul
31
percorso seguito dal pacchetto nell’inter-rete
Pointer
„
specificare il percorso che il datagram deve seguire
IP Address of second hop
„
Strict source routing: il mittente specifica l’esatto cammino
che il datagram deve seguire. Se ciò non è possibile, viene
inviato un messaggio ICMP “source route failed”.
...
Š Due tipi di source routing
Š Strict (specifica tutti gli hop)
Š Loose (specifica solo alcuni hop)
ogni router opera autonomamente
Š L’opzione source routing permette all’applicazione di
IP Address of first hop
15
Pointer
...
Timestamp
Š registra sia l’IP del router che il tempo
13
Length
31
Second IP Address
Record Route
Š registra l’IP number di ogni router attraversato
„
24
16
First IP Address
Š Principali opzioni
„
8
CODE
Š Ricavabile dal campo LENGTH dell’header del datagram
„
0
„
16
Loose source routing: mittente specifica lista di indirizzi IP
che il datagramma deve attraversare.
intermedi possono essere attraversati.
Altri
router
Implementazione di Source
Routing
Configurazione Interfaccia di Rete
Š L’host mittente riceve lista di router da applicazione
Š Il
„
„
„
comando (UNIX/LINUX) utilizzato per configurare
l’interfaccia di rete e controllarne lo stato è /sbin/ifconfig
Primo indirizzo diventa nuovo destinatario
destinazione originaria è posta in coda alla lista che viene
scritta nel campo opzione
pointer punta alla prima entry nella lista (ptr=4)
„
Š argomenti
„
„
Š il router che riceve il datagram controlla se è
„
no: datagram inoltrato normalmente
„
Š E’ stato usato il LSR (altr. non sarebbe giunto)
„
„
sì: ptr<len
Š indirizzo puntato da ptr diviene nuova destinazione
Š indirizzo IP dell’interfaccia uscente è source datagram
Š ptr+=4
17
nome dell’interfaccia da controllare o configurare
famiglia di indirizzi
Š principali parametri
destinato alla sua rete
„
ipconfig per sistemi Windows
„
„
„
18
„
„
Esempio di Uso ifconfig
up/down (attivazione e disattivazione dell’interfaccia)
arp (abilita o disabilita uso di ARP)
allmulti (abilita o disabilita modalità promiscous)
mtu N (fissa a N la massima dimensione di un frame)
netmask addr (setta netmask)
multicast (abilita il multicasting)
hw (setta indirizzo fisico)
dstaddr addr (setta indirizzo dest. per linea poit-to-point)
Statistiche sullo Stato della Rete
Š E’ possibile ottenere informazioni sullo stato del sottosistema
eth0
di comunicazione con il comando netstat
Link encap:Ethernet HWaddr 00:A0:CC:53:D6:EF
inet addr:192.41.218.37 Bcast:192.41.218.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:320193 errors:1 dropped:0 overruns:0 frame:0
TX packets:36528 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:51057286 (48.6 Mb) TX bytes:4326559 (4.1 Mb)
Interrupt:5 Base address:0xd000
„
„
„
„
Š Per conoscere lo stato delle interfacce usare netstat –in
„
„
lo
19
stato delle connessioni aperte
tabelle di istradamento
stato delle interfacce attive
statistiche relative ad un certo protocollo
Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
….
mostra indirizzi numerici
indica numero di pacchetti trasmessi e ricevuti correttamente, con
errori o rimossi
Kernel Interface table
20
Iface MTU Net RX-OK RX-ERR TX-OK TX-ERR
Flg
eth0 1500 0 323616
1
36993
0
BMRU
lo
0
289
0
LRU
16436 0
289
Cosa è il Routing?
Routing
Š In una internet il problema del routing deve essere
Š In una rete a commutazione di pacchetti si definisce
affrontato a due livelli
Š Routing diretto
routing il processo di selezione del percorso sul
quale spedire un pacchetto
„
Il router è il dispositivo che svolge questa operazione
„
Š Basato sui servizi del livello data link
Š Nel modello TCP/IP il routing è effettuato dai
gateway
„
„
In genere sono dispositivi dedicati di limitate capacità di
calcolo
Gli indirizzi di sorgente e destinazione devono avere lo
stesso identificatore di rete
Š Routing indiretto
„
„
21
Istradamento all’interno di una rete fisica
22
„
Istradamento tra reti fisiche distinte
Gli indirizzi di sorgente e destinazione hanno identificatori
di rete diversi
L’istradamento deve utilizzare un intermediario
Routing Diretto
Routing Indiretto
Š Il datagram viene incapsulato in un frame e spedito
Š L’host non è in grado di comunicare direttamente
direttamente all’indirizzo fisico del destinatario
„
con il destinatario del datagram
Indirizzo recuperato tramite ARP
„
Š Nessun router coinvolto nella trasmissione
„
Delega ad un altro host (router) il compito di trasmettere
il datagram
Incapsula il datagram in un frame e lo spedisce
all’indirizzo fisico del router selezionato
Š Ogni rete fisica appartenente ad un’internet include
almeno un router
„
23
24
L’host deve scegliere il router più adatto
Tavole di Routing IP
Tecniche per Controllare la
Dimensione delle Tabelle
Š L’indirizzo a cui spedire un datagram è determinato
Š Sono stati studiati vari accorgimenti per contenere le
mediante la consultazione delle tavole di routing IP
„
„
dimensioni delle tabelle di routing
Sia host che router hanno tavole di routing
solo i router accettano e istradano datagram non diretti a loro
„
Š Divisione dell’indirizzo IP in indirizzo di rete ed indirizzo di
Š La tavola di routing è una lista di rotte
„
host
Le rotte possono essere create staticamente (comando route) o
dinamicamente (ICMP redirect)
„
trasmissione
„
„
bisogna cercare di costruire tabelle di piccole dimensioni
25
una sola rotta per tutti gli host di una rete
Š Utilizzo di un solo indirizzo di rete per più reti fisiche
Š La dimensione della tabella influisce fortemente sui tempi di
„
tutte basate sul principio del mascheramento dell’informazione
subnetting e supernetting
Proxy ARP
Š Rotte di default
26
Struttura di una Rotta
Tipi di Rotte
Š E’ sufficiente conoscere il prossimo router a cui inviare il
Š Le rotte contenute in una tavola di routing possono
datagram (next hop)
essere di tre tipi
„
Rotte per una rete fisica
Š L’identificatore di host è 0
„
Š Utilizzate per debugging o per vincolare il percorso seguito dai
Š Ogni rotta contiene i seguenti campi:
„
„
„
„
27
„
destinazione:
destinazione indirizzo di host o network
netmask:
netmask netmask della destinazione
interfaccia:
interfaccia interfaccia locale da usare per la rotta
gateway:
gateway indirizzo del prossimo hop
flag:
flag informazioni riguardanti la rotta
Rotte per un host specifico
datagram
„
Rotte di default
Š La tavola di routing di un host può contenere solo
28
una rotta di default ad un router e della rotta di
loopback
Flag di Rotte IP
Esempio di Tavola di Routing IP
Š U: la rotta è disponibile
Š G: la rotta utilizza un router intermedio
„
Kernel IP routing table
Destination Gateway
mask
192.41.218.242 0.0.0.0 255.255.255.255
127.0.0.0
0.0.0.0
255.0.0.0
0.0.0.0
192.41.218.242
0.0.0.0
default
192.41.218.254
0.0.0.0
Se il flag G non è presente la destinazione è collegata
direttamente
Š H: la destinazione è un host e non una rete
Š D: rotta creata da un redirect
Š M: rotta modificata da redirect
„
30
„
rotta
rotta
rotta
rotta
per il loopback
di default a 192.41.218.254
per l’host 192.41.218.242 direttamente connesso
per la rete 192.41.218.0 al gateway
Meccanismo di Routing IP
Algoritmo di Routing IP
Š Ogni volta che un host deve spedire un datagram
L’host H deve spedire il datagram D
scorre la sua tabella di routing in cerca di
„
„
„
irtt Iface
0 ppp0
0 lo
0 ppp0
0 eth0
al gateway 192.41.218.242 con ppp
„
un match per l’intero indirizzo del destinatario
un match per l’identificatore di rete del destinatario
un entry di default
Š Se esistono diverse rotte di default, si usa roundrobin
31
MSS Win
1500
0
3584
0
1500
0
1500
0
Š Host collegato alla rete 192.41.218 con interfaccia Ethernet e
„
29
Flags
UH
U
UG
UG
32
Estrai dall’header di D l’indirizzo N del destinatario
IF l’indirizzo di rete di N corrisponde ad uno degli indirizzi di rete di H
consegna D sulla rete corrispondente
ELSE IF la tavola di routing contiene una rotta per N spedisci D al
next-hop indicato nella tabella
ELSE IF la tavola di routing contiene una rotta per
l’identificativo di rete di N spedisci D al
next-hop indicato nella tabella
ELSE IF la tavola di routing contiene una rotta di
default spedisci D al next-hop indicato nella
tabella
ELSE segnala un errore di routing
Inizializzazione delle Tavole di
Routing
Aggiornamento Dinamico delle
Tavole di Routing di un Host
Š La tavola di routing viene scritta a mano con il
Š L’aggiornamento della tavola di un host è basata sul
comando route
„
protocollo ICMP
Š Un messaggio ICMP redirect viene spedito da un
router se
Es. route add default 192.41.218.254 1
Š Inserisce rotta di default
„
eseguito al momento del boot
„
Š Legge da un file le rotte da aggiungere
„
Š Esistono
altri
protocolli
per
inizializzare
dinamicamente la tavola di routing al boot
si trova a spedire un datagramma usando la stessa
interfaccia da cui è entrato
Il messaggio contiene informazioni su una rotta
alternativa
Š Il next hop è sempre un router della rete fisica
Š il mittente deve aggiornare la sua tavola di routing
33
34
Aggiornamento delle Tavole di
Routing di un Router
Esempio di ICMP Redirect
R1
Š I router non possono utilizzare i messaggi ICMP per
R2
forward IP1 to R2
IP1 to R2
aggiornare le proprie tabelle
Š Chi aggiorna le tavole dei router?
IP2 to R2
„
ICMP redirect
H
„
Š H deve spedire un datagram a R2
„
La tavola di routing ha una rotta di default a R1
1. H invia a R1 il datagram per R2
2. R1 spedisce il datagram a R2 e segnala ad H l’indirizzo di
R2
35 3. H invia il nuovo datagram direttamente a R2
36
I router implementano protocolli specifici per scambiarsi
informazioni di raggiungibilità
Li vedremo nelle prossime lezioni
Gestione dei Datagram in
Ingresso
Routing con le Subnet
Š Un host non instrada mai i datagram ricevuti
Š L’algoritmo
„
„
di routing standard
modificato per gestire il subnetting
per evitare di congestionare la rete
per isolare situazioni di errore
„
Š Un router istrada tutti i datagram ricevuti
„
„
se non sono diretti ad una delle reti a cui è collegato li
manda ad un altro router
„
„
Tutte le subnet siano contigue ed abbiano la stessa
netmask
Tutti gli host della rete devono usare il subnet routing
Š I router di ultima generazione riescono a superare
38
questi vincoli
Subnet Routing
Longest Matching Routing
Š Sempre basato su una ricerca all’interno della tavola
Š L’algoritmo di subnet routing può essere riformulato
anche in altra maniera
Š un router instrada un datagram sulla rotta r se
di routing
„
Ogni entry della tavola contiene anche un campo netmask
Š Per estrarre l’indirizzo di rete dall’indirizzo IP della
„
si effettua un AND bit a bit tra l’indirizzo di destinazione e
la netmask
„
destinazione si usa la netmask
„
l’indirizzo di destinazione del datagram corrisponde
all’AND tra l’indirizzo di destinazione e la netmask della
rotta
la netmask ha la più lunga sequenza di 1 tra quelle che
soddisfano il punto precedente
Š le tavole di routing sono implementate con strutture
Š La netmask può essere ottenuta tramite ICMP
39
Le modifiche riguardano solo la gestione delle sottoreti
all’interno di una rete
l’istradamento nel’internet rimane immutata
che
per trasformare un host in un router bisogna ricompilare il
kernel con il supporto al packet forwarding
37
essere
Š Per facilitare il subnet routing si dovrebbe garantire
Š Per default ogni postazione è configurata come host
„
deve
dati ad hoc che rendono efficiente la ricerca del
match più lungo
40
„
es. Patricia Tree o alberi binari compressi a livelli
Routing su Reti Point-to-Point
Anonime
Esempio Rete di Facoltà
libeccio
udsab
ustica
174
1
37
DHCP
dia
192.41.218.0
254
Server
L19
suzuka
intrepido
odissea
5
3
6
diaedu
193.205.162.0
„
41
„
„
Possibile utilizzare anonymous networking
Il data-link non richiede l’indirizzo fisico di destinazione
Possibile specificare un valore arbitrario nella tavola
security
Esempi di Semplici Tavole di
Routing
252
pcdhcp2-3
firewall
1
190
3
193.205.161.0
185
peru
reti
192.168.1.0
255.255.255.240
Routing tables (udsab.dia.unisa.it)
Destination
Gateway
Flags
Route Tree for Protocol Family 2:
default
192.41.218.254 UGS
127.0.0.1
127.0.0.1
UH
192.41.218/24 192.41.218.1
U
193.205.162/24 193.205.162.1
U
comando netstat -rn
Kernel IP routing table (ustica.dia.unisa.it)
Destination Gateway
mask
Flags MSS Win irtt Iface
192.41.218.0 0.0.0.0
255.255.255.0 U
40
0
0 eth0
0.0.0.0
192.41.218.254 0.0.0.0
UG 40
0
0 eth0
43
193.205.160.126 bar-gw
bearzot
Refs Use
Interface
18 1256824 alt0
9 391092
lo0
231 32666707 alt0
6 147078 tu0
Kernel IP routing table (moser.security.unisa.it)
Destination Gateway
Genmask
Flags MSS Win
192.168.230.0 0.0.0.0
255.255.255.0 U
0
0
127.0.0.0
0.0.0.0
255.0.0.0
U
0
0
0.0.0.0
192.168.230.1 0.0.0.0
UG
0
0
44
171
rossi
diareti
193.205.161.(160-190)
255.255.255.224
Esempi di Semplici Tavole di
Routing
Š Per leggere il contenuto della tabella di routing usare il
Routing Table: (rossi.diareti.diaedu.unisa.it)
Destination
Gateway
Flags Ref Use Interface
-------------------- -------------------- ----- ----- ------ --------193.205.161.0
193.205.161.185 U
3
2053 hme0
224.0.0.0
193.205.161.185 U
3
0
hme0
default
193.205.161.190 UG
0
17126
127.0.0.1
127.0.0.1
UH
0
2387 lo0
firewall
Proxy ARP
gimondi
192.168.203.0
42
nis1sa
254
52
2
identificatore di rete
254
63
firewall
coppi
Proxy ARP
1
Š La linea dedicata tra le due reti richiede un terzo
Server
Win
irtt Iface
0 eth0
0 lo
0 eth0
Tavola di Routing di nis1sa
Destination
45
0.0.0.0
127.0.0.0
192.41.218.0
193.205.160.0
193.205.160.64
193.205.161.0
193.205.162.0
193.205.169.0
193.205.186.0
193.205.187.128
193.205.187.192
193.205.187.240
193.205.188.0
NextHop tipo
193.205.160.126
127.0.0.12
192.41.218.254
193.205.160.126
193.205.160.125
192.41.218.254
192.41.218.254
193.205.169.254
193.205.186.21
193.205.187.190
193.205.187.190
193.205.187.246
193.205.188.254
ind
dir
dir
ind
dir
dir
dir
dir
dir
dir
dir
dir
dir
Mask
0.0.0.0
255.0.0.0
255.255.255.0
255.255.255.192
255.255.255.192
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.192
255.255.255.224
255.255.255.248
255.255.255.0