Routing IP - Dipartimento di Informatica

Transcript

Routing IP - Dipartimento di Informatica
Cosa è il Routing?
I se m estre 02/03
Š In una rete a commutazione di pacchetti si
Routing IP
definisce routing il processo di selezione del
percorso sul quale spedire un pacchetto
„
Š Nel modello TCP/IP il routing è effettuato dai
Prof. Vincenzo Auletta
gateway
[email protected]
http://www.dia.unisa.it/~auletta/
Università degli studi di Salerno
Laurea e Diploma in Informatica
„
In genere sono dispositivi dedicati di limitate capacità
di calcolo
2
Routing
Routing Diretto
Š In una internet il problema del routing deve
Š Il datagram viene incapsulato in un frame e
essere affrontato a due livelli
Š Routing diretto
„
Il router è il dispositivo che svolge questa operazione
spedito direttamente
destinatario
Istradamento all’interno di una rete fisica
„
all’indirizzo
fisico
Indirizzo recuperato tramite ARP
Š Basato sui servizi del livello data link
„
Gli indirizzi di sorgente e destinazione devono avere
lo stesso identificatore di rete
Š Nessun router coinvolto nella trasmissione
Š Routing indiretto
„
„
3
„
Istradamento tra reti fisiche distinte
Gli indirizzi di sorgente e destinazione hanno
identificatori di rete diversi
L’istradamento deve utilizzare un intermediario
4
del
Routing Indiretto
Tavole di Routing IP
Š L’host
Š L’indirizzo a cui spedire un datagram è determinato
non è in grado di comunicare
direttamente con il destinatario del datagram
„
„
mediante la consultazione delle tavole di routing IP
„
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
„
Sia host che router hanno tavole di routing
solo i router accettano e istradano datagram non diretti a loro
Š La tavola di routing è una lista di rotte
„
Le rotte possono essere create staticamente (comando route)
o dinamicamente (ICMP redirect)
Š La dimensione della tabella influisce fortemente sui
tempi di trasmissione
Š Ogni rete fisica appartenente ad un’internet
„
include almeno un router
„
bisogna cercare di costruire tabelle di piccole dimensioni
L’host deve scegliere il router più adatto
5
6
Tecniche per Controllare la
Dimensione delle Tabelle
Struttura di una Rotta
Š Sono stati studiati vari accorgimenti per contenere le
Š E’ sufficiente conoscere il prossimo router a cui inviare
il datagram (next hop)
dimensioni delle tabelle di routing
„
tutte basate sul principio del mascheramento dell’informazione
Š Divisione dell’indirizzo IP in indirizzo di rete ed indirizzo
di host
„
una sola rotta per tutti gli host di una rete
Š Utilizzo di un solo indirizzo di rete per più reti fisiche
„
„
Š Ogni rotta contiene i seguenti campi:
subnetting e supernetting
Proxy ARP
„
„
Š Rotte di default
„
„
7
8
„
destinazione: indirizzo di host o network
netmask: netmask della destinazione
interfaccia: interfaccia locale da usare per la rotta
gateway: indirizzo del prossimo hop
flag: informazioni riguardanti la rotta
Tipi di Rotte
Flag di Rotte IP
Š Le
Š U: la rotta è disponibile
Š G: la rotta utilizza un router intermedio
rotte contenute in una tavola di routing
possono essere di tre tipi
„
Rotte per una rete fisica
„
Š L’identificatore di host è 0
„
Rotte per un host specifico
Š H: la destinazione è un host e non una rete
Š D: rotta creata da un redirect
Š M: rotta modificata da redirect
Š Utilizzate per debugging o per vincolare il percorso seguito
dai datagram
„
Rotte di default
Š La tavola di routing di un host può contenere
9
solo una rotta di default ad un router e della
rotta di loopback
10
Esempio di Tavola di Routing IP
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 255.255.255.0
Meccanismo di Routing IP
Š Ogni volta che un host deve spedire un
Flags
UH
U
UG
UG
MSS Win
1500
0
3584
0
1500
0
1500
0
datagram scorre la sua tabella di routing in
cerca di
irtt Iface
0 ppp0
0 lo
0 ppp0
0 eth0
„
„
„
Š Host collegato alla rete 192.41.218 con interfaccia
Ethernet e al gateway 192.41.218.242 con ppp
„
„
„
11
„
rotta
rotta
rotta
rotta
Se il flag G non è presente la destinazione è collegata
direttamente
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
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
round-robin
12
13
Algoritmo di Routing IP
Inizializzazione delle Tavole di
Routing
L’host H deve spedire il datagram D
Š La tavola di routing viene scritta a mano con il
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
Aggiornamento Dinamico delle
Tavole di Routing di un Host
comando route
„
Š Inserisce rotta di default
„
Š Esistono
altri protocolli per inizializzare
dinamicamente la tavola di routing al boot
14
Esempio di ICMP Redirect
R1
basata sul protocollo ICMP
Š Un messaggio ICMP redirect viene spedito da un
router se
„
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
15
routing
eseguito al momento del boot
Š Legge da un file le rotte da aggiungere
Š L’aggiornamento della tavola di un host è
„
Es. route add default 192.41.218.254 1
R2
forward IP1 to R2
IP1 to R2
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
16 3. H invia il nuovo datagram direttamente a R2
Aggiornamento delle Tavole di
Routing di un Router
Gestionde dei Datagram in
Ingrasso
Š I router non possono utilizzare i messaggi ICMP
Š Un host non instrada mai i datagram ricevuti
per aggiornare le proprie tabelle
Š Chi aggiorna le tavole dei router?
„
„
I router implementano protocolli specifici
scambiarsi informazioni di raggiungibilità
Li vedremo nelle prossime lezioni
„
„
per evitare di congestionare la rete
per isolare situazioni di errore
Š Un router istrada tutti i datagram ricevuti
per
„
se non sono diretti ad una delle reti a cui è collegato
li manda ad un altro router
Š Per default ogni postazione è configurata come
host
„
17
18
Routing con le Subnet
Subnet Routing
Š L’algoritmo di routing standard deve essere
Š Sempre basato su una ricerca all’interno della
modificato per gestire il subnetting
„
„
tavola di routing
Le modifiche riguardano solo la gestione delle
sottoreti all’interno di una rete
l’istradamento nel’internet rimane immutata
„
della destinazione si usa la netmask
garantire che
„
„
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 questi vincoli
Ogni entry della tavola contiene anche un campo
netmask
Š Per estrarre l’indirizzo di rete dall’indirizzo IP
Š Per facilitare il subnet routing si dovrebbe
19
per trasformare un host in un router bisogna
ricompilare il kernel con il supporto al packet
forwarding
„
si effettua un AND bit a bit tra l’indirizzo di
destinazione e la netmask
Š La netmask può essere ottenuta tramite ICMP
20
Routing su Reti Point-to-Point
Anonime
Longest Matching Routing
Š L’algoritmo di subnet routing può essere
riformulato anche in altra maniera
Š un router instrada un datagram sulla rotta il cui
indirizzo di destinazione ha il match più lungo
con l’indirizzo di destinazione del datagram
„
le tavole di routing sono implementate con strutture
dati ad hoc che rendono efficiente la ricerca del
match più lungo (es. Patricia Tree o alberi binari
compressi a livelli)
Š La linea dedicata tra le due reti richiede un terzo
identificatore di rete
„
21
22
udsab
ustica
174
1
37
DHCP
Š Per leggere il contenuto della tabella di routing usare
dia
192.41.218.0
il 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
254
Server
suzuka
L19
intrepido
odissea
5
3
6
diaedu
193.205.162.0
Server
Win
254
2
193.205.161.0
252
firewall
190
3
peru
gimondi
security
193.205.160.126 bar-gw
254
firewall pcdhcp2-3
Proxy ARP
1
firewall
coppi
Proxy ARP
1
23192.168.203.0
nis1sa
52
63
reti
192.168.1.0
255.255.255.240
„
Possibile utilizzare anonymous networking
Il data-link non richiede l’indirizzo fisico di destinazione
Possibile specificare un valore arbitrario nella tavola
Esempi di Semplici Tavole di
Routing
Esempio Rete di Facoltà
libeccio
„
185
bearzot
171
rossi
diareti
193.205.161.(160-190)
255.255.255.224
24
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
Esempi di Semplici Tavole di
Routing
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
Refs Use
Destination
Interface
18 1256824
9 391092
231 32666707
6 147078
alt0
lo0
alt0
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
25
Tavola di Routing di nis1sa
irtt Iface
0 eth0
0 lo
0 eth0
26
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