Protocolli strato rete in Internet

Transcript

Protocolli strato rete in Internet
Protocolli strato rete in Internet
Internet protocol suite
Application
Strato rete in Internet
NFS
Telnet
FTP
SMTP
SNMP
Presentation
Session
Transport
XDR
RPC
TCP e/o UDP
ICMP
Network
Protocolli
di routing
IP
ARP | RARP
Gruppo Reti TLC
Data Link
Physical
[email protected]
http://www.tlc-networks.polito.it/
Non Specificati
Internet Protocol Suite
OSI
STRATO RETE IN INTERNET - 1
STRATO RETE IN INTERNET - 2
IP: Internet Protocol
Il protocollo IP
• Livello rete dell’architettura TCP/IP
• Offre un servizio
• È un protocollo di strato rete (strato 3)
• Si occupa quindi dell’indirizzamento e
instradamento dei pacchetti (detti datagram)
• La consegna dei pacchetti IP è:
– non connesso
– inaffidabile
– best-effort
– senza garanzie di qualità di servizio
– connectionless
• ogni pacchetto trattato in modo indipendente
– inaffidabile (unreliable)
• Specificato in RFC 791
• perdita, duplicazioni, ritardi
– non distingue tra diversi tipi di traffico (no
priorità, tratta tutti in modo best-effort)
STRATO RETE IN INTERNET - 3
STRATO RETE IN INTERNET - 4
Protocollo IP
Intestazione pacchetto IP
• Consegna inaffidabile
0
4
8
Version HLEN
– In caso di guasti (es. un router fuori servizio,
collegamento non disponibile)
16
Service Type
Identification
• scarta il datagram
• cerca di inviare un messaggio di errore al mittente
Time To Live
• Consegna connectionless
19
31
Fragment Offset
Flags
Protocol
24
Total Length
Header Checksum
Source IP Address
– Non conserva informazioni di stato sui datagram
in corso di trasmissione
– Ogni datagram instradato in modo indipendente
– Due pacchetti con stessa sorgente e
destinazione possono seguire percorsi
diversi
STRATO RETE IN INTERNET - 5
Destination IP Address
Options
PAD
STRATO RETE IN INTERNET - 6
Pag. 1
Protocolli strato rete in Internet
Intestazione pacchetto IP: i campi
Frammentazione
• Ogni rete ha massima dimensione ammessa
• VER: versione del protocollo IP
• HLEN: lunghezza dell’header in parole da 32 bit
(se opzioni assenti, vale 5)
• Type of service (TOS): tipo di servizio richiede il
datagram (minimize delay, maximize throughput,
maximize reliability, minimize cost ). Generalmente
ignorato dai router. RFC 1349
• Total Length: lunghezza del datagram in byte
(incluso header). Dimensione massima 65535 byte
– MTU (Maximum Transfer Unit): Ethernet 1500 B
• Quando devo attraversare rete con MTU più
piccola del datagram si deve frammentare
• Frammenti
– diventano datagram indipendenti, con intestazione quasi
uguale a quella del datagram originario
– ricostruiti solo alla destinazione, mai nei router intermedi
• Frammentazione trasparente a sorgente e
destinazione
• Specificata in RFC 791, RFC 815
STRATO RETE IN INTERNET - 7
STRATO RETE IN INTERNET - 8
Frammentazione
Intestazione pacchetto IP: i campi
• Identification, Flags, Fragment offset:
controllano operazioni di frammentazione
• La frammentazione è dannosa
– aumento overhead di intestazione, duplicato su
ogni frammento
– perdita di un frammento comporta la perdita al
ricvevitore di tutto il datagram; aumenta la
probabilità di errore
– ricevitore deve attivare timer di attesa arrivo
frammenti e riassemblare
– Identification: permette di riconoscere a quale
datagram il frammento appartiene (frammenti dello
stesso datagram hanno stesso valore deciso dallo
host che genera il datagram)
– Fragment offset: specifica offset dati contenuti nel
frammento, in multipli di 8 byte
– Flags (2 bit): don’t fragment e more fragments
(identifico ultimo frammento)
• I router IP però non si devono occupare di
riassemblare frammenti
STRATO RETE IN INTERNET - 9
STRATO RETE IN INTERNET - 10
Intestazione pacchetto IP: i campi
Intestazione pacchetto IP: i campi
• TTL (time to live):
– Tempo di vita (in hop) di un datagram
– La sorgente setta un valore iniziale (a
piacere)
– Ogni router decrementa di 1 il valore di
TTL
– Se TTL=0, il router scarta datagram ed
invio messaggio di errore (disabilitabile)
• Protocol: formato dei dati specificando
un protocollo di livello superiore. Un
elenco dei protocolli è presente in
RFC 1700
• Header Checksum (16 bit): controllo di errore
sulla sola intestazione, non sui dati utente.
Specificato in RFC 1071,1141,1624,1936.
Somma in complemento a 1 allineando
header a 16 bit.
è possibile calcolare un checksum
incrementale (utile perchè ogni router cambia
l’intestazione).
Protocol Name
1
ICMP
4
IP in IP
6
TCP
17
UDP
89
OSFP
STRATO RETE IN INTERNET - 11
STRATO RETE IN INTERNET - 12
Pag. 2
Protocolli strato rete in Internet
Intestazione pacchetto IP
Il protocollo ICMP
• Source e Destination Address (32 bit): indirizzo
sorgente e destinazione degli host
• Formato opzioni: option code (option number,
option class, flag di copia nei frammenti) +
lunghezza opzione + dati
• Opzioni
• ICMP (Internet Control Message Protocol ) è
solitamente considerato parte del livello IP
• Comunica messaggi di errore o di controllo.
Può trasportare richieste di informazioni e
risposte alle richieste.
• I messaggi ICMP sono trasmessi all’interno
di datagram IP
• Specificato in RFC 792
– record route: registro percorso del datagram
– source route (loose and strict): sorgente specifica
percorso del datagram
– timestamp: permette di registrare tempo di elaborazione
del datagram 32-bit timestamp (millisecondi da
mezzanotte Universal Time)
– path MTU Discovery (RFC 1191)
STRATO RETE IN INTERNET - 13
STRATO RETE IN INTERNET - 14
Esempi di messaggi ICMP
Formato del messaggio ICMP
messaggio
0
7
type
15
code
type
echo reply
echo request
network unreachable
host unreachable
port unreachable
destn net unknown
destn host unknown
redirect
time exceeded (TTL)
time exceeded (fragment reass)
31
checksum
data
0
8
3
3
3
3
3
5
11
11
code
0
0
0
1
3
6
7
1
0
1
STRATO RETE IN INTERNET - 15
query
query
errore
errore
errore
errore
errore
controllo
errore
errore
STRATO RETE IN INTERNET - 16
Applicazione: il comando ping
Il comando ping
• Se un host non risponde al ping, non è
raggiungibile (o ICMP echo-reply è disabilitato).
• Può essere usato per rilevare guasti in rete.
• è disponibile su macchine Unix e su PC
• Informazioni visualizzate da ping:
• Il nome è ispirato al rumore del sonar
• Esegue un test di raggiungibilità
dell’interfaccia di rete di un host remoto
• Invia un messaggio ICMP echo request ad
un host, aspettandosi un echo reply
• Di default, l’ ICMP viene inviato ogni
secondo allo stesso host; è possibile tuttavia
modificare la frequenza di invio
– numero di sequenza
– TTL
– round-trip-time (tempo impiegato a percorrere la tratta
sorgente-destinatario-sorgente)
STRATO RETE IN INTERNET - 17
STRATO RETE IN INTERNET - 18
Pag. 3
Protocolli strato rete in Internet
Il comando ping
Il comando traceroute
C:\WINDOWS>ping www.cs.cmu.edu
• traceroute permette di seguire il percorso dei
datagram IP hop-per-hop fino a destinazione
• Funzionamento:
Esecuzione di Ping SUPERMAN.WEB.cs.cmu.edu [128.2.203.179] con 32
byte di dati:
Risposta da 128.2.203.179: byte=32
Risposta da 128.2.203.179: byte=32
Risposta da 128.2.203.179: byte=32
Risposta da 128.2.203.179: byte=32
– Host invia segmenti UDP vuoti, con TTL crescenti e
destinati alla porta 33434 dell’host remoto
– I router intermedi ritornano ICMP “time exceeded”
– La destinazione ritorna ICMP “port unreachable”
– Se non torna messaggio ICMP in risposta entro un
timeout di 3 sec., si segnala errore
durata=138ms TTL=243
durata=110ms TTL=243
durata=110ms TTL=243
durata=110ms TTL=243
Statistiche Ping per 128.2.203.179:
Pacchetti: Trasmessi = 4, Ricevuti = 4, Persi = 0 (0% persi),
Tempo approssimativo percorsi andata/ritorno in millisecondi:
Minimo = 110ms, Massimo = 138ms, Medio = 117ms
STRATO RETE IN INTERNET - 19
STRATO RETE IN INTERNET - 20
Il comando traceroute
Il comando traceroute
….
11 138 ms 123 ms 110 ms 151.99.75.220
12 110 ms 138 ms 151 ms 151.99.101.106
13 165 ms 151 ms 151 ms r-to83-fa11.interbusiness.it [62.86.98.19]
14 192 ms 165 ms 151 ms host130-pool8016128.interbusiness.it
[80.16.128.130]
15 138 ms 137 ms 110 ms 163.162.60.99
16 *
*
* Richiesta scaduta.
17 110 ms 123 ms 124 ms 163.162.60.99
18 *
*
* Richiesta scaduta.
19 *
*
* Richiesta scaduta.
20 *
*
* Richiesta scaduta.
21 82 ms 96 ms 96 ms beatles.cselt.it [163.162.29.125]
Rilevazione instradamento verso beatles.tilab.com [163.162.29.125]
su un massimo di 30 punti di passaggio:
C:\WINDOWS>tracert beatles.tilab.com
1 <10 ms <10 ms <10 ms l3.polito.it [130.192.2.8]
2 <10 ms <10 ms <10 ms c3660-ext.polito.it [130.192.53.65]
3 <10 ms <10 ms <10 ms rc-polito.to.garr.net [193.206.132.145]
4 <10 ms <10 ms 13 ms mi-to.garr.net [193.206.134.61]
5 14 ms 14 ms 13 ms rm-mi.garr.net [193.206.134.18]
6 13 ms 14 ms 28 ms namex-roma-1.garr.net [193.206.134.226]
7 14 ms 41 ms 14 ms intb-nap.inroma.roma.it [194.242.224.10]
8 83 ms 96 ms 96 ms 151.99.101.41
9 164 ms 165 ms 151 ms r-rm198-fa4.interbusiness.it [151.99.29.218]
10 151 ms 137 ms 151 ms r-ts21-rm99.interbusiness.it [151.99.98.110]
…. Segue….
STRATO RETE IN INTERNET - 21
STRATO RETE IN INTERNET - 22
Indirizzamento IP:
obiettivi e risultati
• Obiettivo originale: rendere efficienti le
operazioni di routing (router lenti - anni ‘80)
con indirizzi facilmente “classificabili”
Indirizzi IP
– spreco dello spazio di indirizzamento
(esaurimento degli indirizzi - anni ‘90)
• Nuovo obiettivo: razionalizzare
l’assegnazione degli indirizzi e la loro
aggregazione nelle routing tables
Gruppo Reti TLC
[email protected]
http://www.tlc.polito.it/
– riduzione delle dimensioni delle routing tables e
riutilizzo di indirizzi già assegnati
STRATO RETE IN INTERNET - 23
STRATO RETE IN INTERNET - 24
Pag. 4
Protocolli strato rete in Internet
Indirizzi IP: Principi
Multi-Homed Hosts
• Ogni host (interfaccia) è individuato da un
indirizzo a 32 bit, assegnatogli univocamente
• Un indirizzo è caratterizzato da informazioni
sulla rete (netid) e sull’host (hostid)
• L’instradamento si basa sul netid
• Poiché l’indirizzo ha
informazioni su rete e
host, se ho più di una
interfaccia di rete, devo
avere due indirizzi
• Più che un host, un
indirizzo individua una
connessione ad una
rete!
– indirizzo non individua la macchina ma la rete
se sposto host di rete devo cambiare indirizzo
• Ogni router ha almeno due indirizzi IP
• Gli host solitamente uno solo
STRATO RETE IN INTERNET - 25
Classe A 0
8
16
netid=7 bit
24
Rappresentazione decimale
• L’indirizzo Internet viene comunemente
rappresentato nella forma:
xxx.xxx.xxx.xxx
con xxx numero decimale tra 0 e 255
• Il primo numero permette di riconoscere la
classe dell’indirizzo:
hostid=24 bit
netid=14 bit
hostid=16 bit
Indirizza 16384 reti, ciascuna delle quali può contenere 65536 hosts
Classe C 1 1 0
netid= 21 bit
hostid=8 bit
Indirizza oltre 1 milioni di reti, ciascuna delle quali può contenere però ‘solo’ 256 hosts
Classe D 1 1 1 0
Classe A Classe B Classe C Classe D Classe E
0...127 128...191 192...223 224...239 240...255
Indirizzi multicast
Classe E 1 1 1 1
Interfaccia #2
32
Indirizza 127 reti, ciascuna delle quali può contenere oltre 16 milioni di hosts
Classe B 1 0
H
STRATO RETE IN INTERNET - 26
Classi di indirizzi (RFC 1466)
1 2 3 4
Interfaccia #1
28 bit riservati
Indirizzi riservati per la sperimentazione
STRATO RETE IN INTERNET - 27
STRATO RETE IN INTERNET - 28
Classi di indirizzi IP
Indirizzi di rete e Broadcast
• A: 105.20.38.165
• Indirizzo con hostid di tutti 0, individua la rete
• Indirizzo con hostid di tutti 1, rappresenta
l’indirizzo broadcast della rete stessa
(trasmetto in broadcast su quella rete)
• netid di tutti 1 indica questa rete. Trasmetto
senza conoscere IP della rete (boot)
• Se il netid è tutti 0, indirizzo all’host sulla rete
cui sei collegato
• Indirizzi riservati (127.0.0.0 loopback,
192.168.2.0 reti private)
• B: 130.192.2.158
• C: 193.24.54.110
indirizzo di rete (netid)
STRATO RETE IN INTERNET - 29
STRATO RETE IN INTERNET - 30
Pag. 5
Protocolli strato rete in Internet
Problemi delle classi
Allocazione reti nel 1997
• Nessuno usa classe A
• Pochi usano (male) classe B
• Classe C identifica reti piccole; indirizzi poco
richiesti
• Fare crescere una rete oltre i limiti di
dimensione della classe richiede la modifica
degli indirizzi di tutti gli host
Puntini mostrano
reti raggiungibili
• http://www.iana.org/assignments/ipv4-address-space
http://www.caida.org/outreach/resources/learn/ipv4space/
STRATO RETE IN INTERNET - 31
STRATO RETE IN INTERNET - 32
L’introduzione delle maschere
La subnet mask
• È necessario superare la divisione rigida in
netid e hostid
• Scompare il concetto di classe
• Uso maschera per definire quanti bit dei 32
di indirizzo individuano la rete, ovvero per
indicare l’estensione del campo netid
• Inizialmente si utilizzano le maschere per
suddividere indirizzi di classe B
• Definito in RFC 950
• La subnet mask (o netmask) è un valore di
32 bit contenente:
– bit messi a 1 per identificare la parte di rete
– bit messi a 0 per identificare la parte di host
• Per esigenze di instradamento, un host deve
conoscere la parte di rete del proprio
indirizzo IP (netid+subnetid): utilizza la
subnet mask
• La subnet mask viene introdotta in fase di
configurazione di un host
STRATO RETE IN INTERNET - 33
STRATO RETE IN INTERNET - 34
La subnet mask
Maschere per supernetting
• In una seconda fase si utilizzano le maschere per
accorpare indirizzi di classe C (RFC 1338 - 1992)
• Si usano blocchi contigui di indirizzi di classe C
• Si utilizzano sempre maschere (supernetting) per
identificare netid
• Permette di ridurre la dimensione delle routing
tables, e ridurre il numero di reti propagate dai nodi
• Si passa al CIDR: Classless Interdomain Routing
(RFC 1519 - 1993)
• Esempio: indirizzo host 130.192.2.7
130.192.2.7
255.255.255.0
10000100 11000000 00000010 00000111
11111111 11111111 11111111 00000000
AND
130.192.2.0
10000100 11000000 00000010 00000000
STRATO RETE IN INTERNET - 35
STRATO RETE IN INTERNET - 36
Pag. 6
Protocolli strato rete in Internet
Supernetting
• Esempio: assegno 2048 indirizzi contigui, a
partire da indirizzo 202.170.168.0
Instradamento in reti IP
202.170.168.0
11001010 10101010 10101000 00000000
202.170.175.255 11001010 10101010 10101111 11111111
• Per rappresentare tale intervallo di valori,
utilizzo AND tra indirizzo inferiore e la
maschera
Gruppo Reti TLC
[email protected]
http://www.tlc.polito.it/~bianco
111111111 11111111 11111000 00000000
STRATO RETE IN INTERNET - 37
STRATO RETE IN INTERNET - 38
Consegna diretta e indiretta
Consegna diretta
• Sottorete: insieme di host tra cui
esiste un collegamento di livello 2.
Può essere una LAN, un
collegamento punto-punto, etc.
• Se due host sono connessi alla
stessa sottorete si ha consegna
diretta
• Se due host non sono connessi
alla stessa sottorete, la consegna
è mediata da uno o più router: si
ha consegna indiretta
• Per decidere se effettuare una consegna diretta,
l’host mittente controlla la porzione di rete
dell’indirizzo IP destinatario
• Se tale porzione coincide con il proprio indirizzo di
rete, si ha consegna diretta
• In ogni comunicazione tra host, si ha almeno una
consegna diretta
• Il trasferimento avviene mappando l’indirizzo IP in
un indirizzo MAC, e utilizzando le primitive di
consegna di livello 2
STRATO RETE IN INTERNET - 39
STRATO RETE IN INTERNET - 40
Risoluzione di indirizzi
ARP
• Problema che si presenta per ogni trasmissione di
datagram IP (host-host, host-router, router-router,
router-host)
• Da indirizzo IP ad indirizzo MAC (fisico)
• Un pacchetto con indirizzo MAC destinazione
broadcast (request) viene costruito dall’host che
vuole risolvere l’indirizzo. Esso contiene
– indirizzo IP del destinatario,
– indirizzo IP ed Ethernet di chi origina la richiesta
– Direct mapping: mediante tabella statica
– Dynamic binding: protocollo ARP: Address Resolution
Protocol (RFC 826)
• Tutti gli host nella subnet ricevono la richiesta
• L’host che riconosce nel campo richiesta il proprio
indirizzo IP invia un pacchetto di risposta (reply)
direttamente al sender
• ARP è utilizzato su reti broadcast (LAN)
• Dato l’indirizzo IP dell’host con cui si vuole
comunicare, permette di ricavarne l’indirizzo MAC
(es: Ethernet)
STRATO RETE IN INTERNET - 41
STRATO RETE IN INTERNET - 42
Pag. 7
Protocolli strato rete in Internet
ARP
ARP
• Sia chi origina il pacchetto sia chi lo riceve (e
risponde) aggiungono una informazione nella
propria tabella ARP
• Le successive comunicazioni tra i due
elaboratori possono avvenire senza ulteriori
richieste di ARP
• Le entry nella tabella di ARP scadono dopo
un tempo prefissato
a.b.c.d
e.f.g.h
A
1
B
i.j.h.k
l.m.n.o
p.q.r.s
C
D
E
i.j.h.k ?
2
LAN address di C
08-00-2b-15-47-2c
STRATO RETE IN INTERNET - 43
STRATO RETE IN INTERNET - 44
Tabelle di ARP
Tabelle di ARP
• L’indirizzo viene ricercato nella tabella ARP
ogni volta che un elaboratore deve
comunicare con un altro sulla stessa LAN
conoscendone l’indirizzo IP
• Se non si trova un match viene emessa una
richiesta di ARP, altrimenti la comunicazione
può avvenire usando direttamente l’indirizzo
MAC
Corrispondenze tra indirizzi IP e indirizzi
LAN
IP addr
130.192.2.58
130.192.2.64
....
LAN addr
08-00-2b-15-47-2e
08-00-2b-21-56-64
....
..
age
10
12
STRATO RETE IN INTERNET - 45
STRATO RETE IN INTERNET - 46
Reverse ARP
Formato del pacchetto ARP
0
• Permette di ottenere un indirizzo IP a partire
da un indirizzo di livello 2: Reverse ARP
(RARP)
• Specificato in RFC 903
• Usato dagli host durante il boot per
configurare automaticamente il proprio
indirizzo IP dato che conoscono solo il
proprio indirizzo MAC
• Serve un server RARP
8
16
Hardware Type
HLEN
PLEN
31
Protocol Type
Operation
Sender HW Address
Sender HW Address
Sender IP Address
Sender IP Address
Target HW Address
Target IP Address
Protocol
Target HW Address
Time To Live
Target IP Address
STRATO RETE IN INTERNET - 47
STRATO RETE IN INTERNET - 48
Pag. 8
Protocolli strato rete in Internet
ARP: formato pacchetto
Consegna indiretta
• Se host sorgente e destinazione non sono nella
stessa subnet, devono usare consegna indiretta
• Si distinguono:
• Operation: tipo di operazione
– arp request, arp reply, rarp request, rarp reply
• Hardware type: tipo di MAC (Ethernet = 1)
• Protocol type: protocollo che usa ARP
(IP=0800H)
• HLEN (Hardware address length) e PLEN
(Protocol address length) permettono di
utilizzare ARP con rete arbitraria (indirizzi di
dimensione variabile)
– Protocollo di routing: definizione delle modalità con cui i
nodi della rete si scambiano informazioni sullo stato della
rete
– Algoritmo di routing: operazioni necessarie per scegliere
il percorso verso la destinazione, date le informazioni
sullo stato della rete
– Procedure di forwarding: operazioni necessarie per
instradare i singoli pacchetti verso la corretta porta di
uscita, dato che si conosce il percorso
STRATO RETE IN INTERNET - 49
STRATO RETE IN INTERNET - 50
Consegna indiretta
Le Routing Tables
• Il mittente identifica quale router incaricare
della consegna del datagram IP tra quelli
raggiungibili con consegna diretta
• Il router incaricato sceglie il router
successivo, da lui raggiungibile direttamente,
sul percorso verso la destinazione
• Il datagram passa da router a router fino a
quello che lo consegna direttamente a
destinazione (forwarding)
• Ogni host ed ogni router coinvolto nella consegna
IP ha tabelle di instradamento: Routing Tables (RT)
– Identificano il percorso migliore per ogni destinazione
• Ovviamente, le tabelle non possono avere
informazioni su ogni possibile destinazione
• Principio: nascondo l’informazione
• I router remoti instradano usando solo la porzione
di rete dell’indirizzo IP (come postino guarda solo
porzione dell’indirizzo scritto sulla busta)
STRATO RETE IN INTERNET - 51
STRATO RETE IN INTERNET - 52
Il Next-hop Routing
Next-hop Routing - esempio
• Una tabella di routing contiene almeno due
informazioni:
– D indirizzo destinazione
Tabella del router A
R = next-hop
• D è normalmente un indirizzo di rete
• R è detto next-hop, e corrisponde ad un host
o un router raggiungibile direttamente
• Se è possibile mettere in relazione l’indirizzo
di destinazione del pacchetto in transito con
un indirizzo D delle RT, il pacchetto viene
inviato al relativo R
20 .0
rete
20.0.0.0
.0.9
9
A
30.0.0.99
rete
30.0.0.0
STRATO RETE IN INTERNET - 53
rete
50.0.0.0
0.254
50.0.
50.0.0.13
30.0.0.13
X
B
90.0.0.254
rete
90.0.0.0
INDIR. RETE
DESTINAZ.
NEXT
HOP
20.0.0.0
30.0.0.0
50.0.0.0
90.0.0.0
diretto
diretto
30.0.0.13
30.0.0.13
STRATO RETE IN INTERNET - 54
Pag. 9
Protocolli strato rete in Internet
Instradamenti Default e Specifici
Routing Table - esempio
• Se il next-hop è unico (es: piccola sottorete
con unico router), le tabelle di instradamento
degli host possono contenere solo una route
per l’esterno, chiamata default route
• L’instradamento può essere specificato per
host (host specific route) e non per sottorete
per ragioni di:
[mellia@verza mellia]$ /sbin/route
Kernel IP routing table
Destination Gateway
130.192.9.150 *
10.1.1.1
*
192.168.9.0 acegw01.polito.
130.192.9.128 *
130.192.9.0 sigkill.polito.
10.1.1.0
*
127.0.0.0
*
default
l3.polito.it
– testing
– maggior sicurezza
– Configurazioni particolari
Genmask
Flags Metric Ref
255.255.255.255 UH 0
0
255.255.255.255 UH 0
0
255.255.255.192 UG 0
0
255.255.255.128 U
0
0
255.255.255.128 UG 0
0
255.255.255.0
U
0
0
255.0.0.0
U
0
0
0.0.0.0
UG 0
0
STRATO RETE IN INTERNET - 55
Gestione delle Routing Tables
STRATO RETE IN INTERNET - 56
Inizializzazione delle RT
• Le tabelle di Routing sono fondamentali per il
funzionamento corretto di Internet
• Problemi da affrontare:
–
–
–
–
Use Iface
0 eth0
0 eth1
0 eth0
0 eth0
0 eth0
0 eth1
0 lo
0 eth0
• Dipende dal sistema operativo:
– lettura da un file di configurazione,
eventualmente scritto dall’operatore
– esecuzione di “comandi di scoperta” da inviare
sulla rete
– scambio di informazioni con altri host sulla rete
locale
come inizializzare le RT?
quali informazioni devono contenere?
come aggiornarle?
consistenza tra RT e assenza di loop
STRATO RETE IN INTERNET - 57
Compilazione delle Routing Tables
STRATO RETE IN INTERNET - 58
Procedure di forwarding in IP
• Gestite dall’algoritmo di routing
• Le RT possono cambiare a causa di:
• Estraggo dal pacchetto la parte netid dell’indirizzo
IP di destinazione (facile con classi)
• Se sono collegato direttamente alla destinazione,
uso consegna diretta
• Altrimenti, cerco host specific route
• Altrimenti, cerco next-hop memorizzato per quella
rete
• Altrimenti, cerco default route
• Altrimenti, dichiaro errore di routing
– interventi sulle topologie
– guasti
– sovraccarichi
• L’informazione sui cambiamenti deve essere
propagata tra router mediante le procedure
previste dall’algoritmo di routing utilizzato,
secondo le specifiche del protocollo di
routing selezionato
STRATO RETE IN INTERNET - 59
Pag. 10
STRATO RETE IN INTERNET - 60
Protocolli strato rete in Internet
Conseguenze dell’introduzione
del subnetting
Conseguenze dell’introduzione
del supernetting (e CIDR)
• Gli host ed il router locale (solo quello!) deve
utilizzare AND tra indirizzo IP e maschera
per individuare il netid correttamente
• Devo memorizzare nella routing table del
router locale anche le netmask
• Per gli altri ruoter non sono richieste
modifiche. Posso usare forwarding standard
• Ad un sito che richiede molti indirizzi IP sono
allocati in modo “contiguo” più subnet di
classe C, condividendo i bit più significativi
• Risultato: un router non deve più distinguere
tutte le singole reti di classe C, ma occupa
una sola “riga” nelle RT
• La consultazione delle RT avviene con il
criterio del longest match
STRATO RETE IN INTERNET - 61
STRATO RETE IN INTERNET - 62
Conseguenze dell’introduzione
del supernetting (e CIDR)
CIDR: operazioni di un forwarding
• CIDR ha il vantaggio di permettere una aggregazione
degli indirizzi su base topologica e geografica...
• ...ma lo svantaggio di complicare la funzione di
forwarding perchè:
• Un router riceve un pacchetto con indirizzo
destinazione x.y.z.w
• Esegue AND bit a bit, per ogni riga delle RT tra:
– l’indirizzo di destinazione nella routing table e la netmask
– l’indirizzo ricevuto x.y.z.w e la stessa netmask
– è necessario fare confronti con prefissi a lunghezza
variabile (necessario memorizzare nelle RT, oltre
all’indirizzo di rete, anche la relativa netmask)
– bisogna scorrere tutta la tabella per individuare il prefisso
con il longest match, perchè più entry della tabella possono
corrispondere a uno stesso indirizzo destinazione
• Confronto i risultati degli AND: se sono uguali, ho
un matching
• Instrado secondo la riga delle RT che ha avuto il
maggior numero di bit di matching
STRATO RETE IN INTERNET - 63
STRATO RETE IN INTERNET - 64
Esempio CIDR
Esempio CIDR
130.192.68.0 01000100
130.192.71.8
S
R
130.192.68.0 01000100
130.192.71.8
R2 130.192.71.0
R1
R2 130.192.71.0
01000111
S
R
01111000
R3 130.192.120.0
R3 130.192.120.0
R.T.
130.192.68.0
STRATO RETE IN INTERNET - 65
Pag. 11
01000111
R1
255.255.192.0 R1
11000000
01111000
STRATO RETE IN INTERNET - 66
Protocolli strato rete in Internet
Esempio CIDR
Esempio CIDR
130.192.68.0 01000100
130.192.68.0 01000100
130.192.71.8
S
R
130.192.71.8
R2 130.192.71.0
R2 130.192.71.0
S
01000111
R1
R
R.T.
R3 130.192.120.0
R.T.
130.192.68.0 255.255.192.0 R1 (18)
01111000
01000111
R1
R3 130.192.120.0
130.192.68.0 255.255.192.0 R2
130.192.120.0 255.255.240.0 R3
01111000
11110000
STRATO RETE IN INTERNET - 67
STRATO RETE IN INTERNET - 68
Esempio CIDR
Esempio CIDR
130.192.68.0 01000100
130.192.71.8
S
R
130.192.68.0 01000100
R2 130.192.71.0
R2 130.192.71.0
01000111
01111000
R1
S
R
R3 130.192.120.0
R.T.
R1
01000111
130.192.71.8 01111000
R.T.
130.192.68.0 255.255.192.0 R2 (18)
130.192.120.0 255.255.240.0 R3
130.192.68.0
130.192.71.0
R3 130.192.120.0
255.255.255.0 D
255.255.255.0 D
STRATO RETE IN INTERNET - 69
Esempio CIDR
Come si ottengono indirizzi IP?
130.192.68.0 01000100
R2 130.192.71.0
S
R
R1
STRATO RETE IN INTERNET - 70
• Come ottiene indirizzi IP un ISP?
• ICANN: Internet Corporation for Assigned
Names and Numbers
– alloca indirizzi
– gestisce DNS
– assegna nomi di dominio, risolve liti
130.192.71.8
• http://www.icann.org/
R.T.
130.192.68.0
130.192.71.0
R3 130.192.120.0
255.255.255.0 D
255.255.255.0 D (24)
STRATO RETE IN INTERNET - 71
Pag. 12
STRATO RETE IN INTERNET - 72
Protocolli strato rete in Internet
Come si ottengono indirizzi IP?
Come si ottengono indirizzi IP?
• Indirizzi di host in sottorete (host_id):
• Assegnazione libera, configurati da amministratore di
rete
• Indirizzi di rete (net_id):
– si chiede una porzione di indirizzi IP ad un ISP
ISP's block
11001000 00010111 00010000 00000000
200.23.16.0/20
Organizzazione 0
11001000 00010111 00010000 00000000
200.23.16.0/23
Organizzazione 1
11001000 00010111 00010010 00000000
200.23.18.0/23
Organizzazione 2
...
11001000 00010111 00010100 00000000
…..
….
200.23.20.0/23
….
Organizzazione 7
11001000 00010111 00011110 00000000
200.23.30.0/23
– Statica
• Wintel: control-panel->network->configuration->tcp/ip->properties
• UNIX: /etc/rc.config
– Dinamica
• DHCP: Dynamic Host Configuration Protocol (RFC 2131)
Ottengo dinamicamente indirizzi:
–
–
–
–
host inviano in broadcast “DHCP discover” msg
DHCP server risponde con “DHCP offer” msg
host richiede indirizzo IP: “DHCP request” msg
DHCP server invia indirizzo: “DHCP ack” msg
STRATO RETE IN INTERNET - 73
Da sorgente a destinazione: esempio
source
IP addr
dest
IP addr
Da sorgente a destinazione: esempio
tabella di routing in A
• Datagram IP:
misc
fields
STRATO RETE IN INTERNET - 74
Dest. Net. next router
223.1.1
223.1.2
223.1.3
Nhops
223.1.1.4
223.1.1.4
A
223.1.1.1
– guardo net_id di B
– trovo che B appartiene
alla stessa sotto rete di A
– invio datagram
direttamente a B usando
indirizzo MAC
– B e A sono collegati
direttamente
223.1.2.1
223.1.1.2
223.1.1.4
223.1.2.9
B
223.1.1.3
223.1.2.3
223.1.3.27
E
223.1.3.2
223.1.3.1
223.1.1
223.1.2
223.1.3
• In A, noto indirizzo IP di
B:
data
• Interessano solo campi
indirizzo
• Gli indirizzi NON si
modificano da sorgente a
destinazione
Dest. Net. next router Nhops
misc
data
fields 223.1.1.1 223.1.1.3
1
2
2
A
223.1.1.1
223.1.2.1
223.1.1.2
223.1.1.4
misc
223.1.1.1 223.1.2.3
fields
data
223.1.3.27
223.1.1.3
223.1.1
223.1.2
223.1.3
– confronto net_id
– E su rete diversa
223.1.3.1
• A, E non sono collegati
direttamente
• tabella di routing: next
hop 223.1.1.4
• invio datagram al
router 223.1.1.4
usando indirizzo MAC
del router
A
223.1.2.1
223.1.2.9
B
223.1.1.3
223.1.3.1
223.1.3.27
223.1.2.3
data
• Arrivo a 223.1.1.4,
destinato a 223.1.2.3
• confronto net_id di E e
verifico che sono sulla
stessa rete con interfaccia
223.1.2.9
223.1.1.1
223.1.1.2
223.1.1.4
E
STRATO RETE IN INTERNET - 76
misc
fields 223.1.1.1 223.1.2.3
1
2
2
223.1.1.4
223.1.1.4
223.1.2.3
223.1.3.2
Da sorgente a destinazione: esempio
Dest. Net. next router Nhops
• In A, noto IP di E:
223.1.2.9
B
STRATO RETE IN INTERNET - 75
Da sorgente a destinazione: esempio
1
2
2
223.1.1.4
223.1.1.4
– router ed E attaccati
direttamente
E
223.1.3.2
• invio datagram a 223.1.2.3
con indirizzo MAC di E
STRATO RETE IN INTERNET - 77
Pag. 13
Dest.
network
next
router
223.1.1
223.1.2
223.1.3
A
Nhops interface
-
1
1
1
223.1.1.4
223.1.2.9
223.1.3.27
223.1.1.1
223.1.2.1
223.1.1.2
223.1.1.4
223.1.2.9
B
223.1.1.3
223.1.3.1
223.1.3.27
223.1.2.3
E
223.1.3.2
STRATO RETE IN INTERNET - 78
Protocolli strato rete in Internet
Proxy ARP
Proxy ARP
• Ogni host in una subnet deve essere configurato
per conoscere almeno
• Meccanismo alternativo: proxy ARP (RFC 1027)
– Si configura ogni host come se tutti gli indirizzi IP fossero
raggiungibili per consegna diretta (indicando una subnet
0.0.0.0, oppure indicando il proprio indirizzo IP come
default gateway)
– Ogni volta che un pacchetto deve essere instradato
verso un indirizzo destinazione, l’host effettua una
richiesta di ARP
– Se l’IP è effettivamente raggiungibile in consegna diretta,
l’host destinazione risponde alla ARP-request
– Altrimenti il Router che sa come instradare il pacchetto
verso la destinazione, risponde alla richiesta indicando il
suo indirizzo MAC per la consegna diretta
– Il suo indirizzo IP
– La netmask della subnet di appartenenza
– L’indirizzo del router di default, per fare consegna
indiretta
• Per reti grandi, è possibile avere
– Router diversi che permettono la comunicazione tra
subnet diverse
– Host specific route per host particolari
• Ogni volta che cambia la configurazione di rete,
occorre riconfigurare tutti gli host
STRATO RETE IN INTERNET - 79
STRATO RETE IN INTERNET - 80
Proxy ARP
Network Address Translation
• Permette di variare l’instradamento dei
pacchetti all’interno di una stessa LAN senza
riconfigurare tutti gli host
• Solo i router hanno conoscenza delle subnet
direttamente raggiungibili
• Svantaggi:
• Network Address Translation (NAT) è un
meccanismo per cui indirizzi IP sono
mappati da un indirizzo ad un altro, fornendo
instradamento trasparente agli end host
• Permette di riutilizzare lo stesso indirizzo in
più punti della rete
• Ci sono diverse versioni di NAT
– Inonda la rete di richieste ARP (broadcast non
filtrato dai bridge)
– Sovraccarica le CPU dei router che devono
rispondere a tutte le richieste ARP
– (RFC 1631,2663,2993,3022,3235)
STRATO RETE IN INTERNET - 81
NAT
• Una organizzazione
utilizza indirizzi privati
al suo interno
• Un router collega la
rete privata alla rete
internet pubblica
– Deve avere almeno due
indirizzi: uno interno
(privato) e uno esterno
(pubblico)
STRATO RETE IN INTERNET - 82
NAT
• Quando un pacchetto deve
essere consegnato ad un
host non appartenente alla
rete interna
Rete privata
10.0.0.0
– Viene instradato verso il
router di bordo
– Il router di bordo sostituisce
l’indirizzo sorgente originale
con il suo indirizzo IP esterno
– Il pacchetto viene instradato
come al solito
10.0.0.255
Router
di bordo
201.2.2.1
Rete pubblica
STRATO RETE IN INTERNET - 83
Pag. 14
10.0.0.1
130.192.9.131
Rete privata
10.0.0.0
10.0.0.255
Router
di bordo
201.2.2.1
130.192.9.131
201.2.2.1
Rete pubblica
STRATO RETE IN INTERNET - 84
Protocolli strato rete in Internet
NAT
• Quanto un pacchetto
dall’esterno giunge al
router di bordo, questo
ricorda a quale host interno
deve essere in realtà
consegnato
– Sostituisce l’indirizzo
destinazione (suo) con quello
dell’host destinazione
– Instrada il pacchetto nella
rete interna come al solito
NAT
• Problema: cosa succede se più di un host
interno comunica con lo stesso host esterno?
Rete privata
10.0.0.0
– Si usano più porzioni di intestazioni per cercare
di avere un mapping uno a uno stringente
• Vantaggi:
10.0.0.255
Router
di bordo
130.192.9.131
10.0.0.1
– Riduce il numero di indirizzi IP necessari (riuso
di indirizzi privati)
– Sicurezza: un host interno NON può essere
contattato dall’esterno se esso non ha per primo
contattato la destinazione
201.2.2.1
Rete pubblica
130.192.9.131
201.2.2.1
STRATO RETE IN INTERNET - 85
Pag. 15
STRATO RETE IN INTERNET - 86