Sei sulla pagina 1di 74

Università di Napoli Federico II – Facoltà di Ingegneria – Corso di Laurea in Ingegneria Informatica

Corso di Protocolli per Reti Mobili

Mobile IP
Cosa si intende per mobilità?
● Il problema al quale il protocollo Mobile IP propone
una soluzione è relativo ad una mobilità dal punto di
vista del livello rete
ESS “wlan1” STA 12 ESS “wlan1”
STA 15
STA 9
STA 11
STA 14
STA 8
STA 10 STA 13
AP
STA 7 gate
AP gate mesh mesh
STA 2 STA 6
mesh
STA 4
mesh
STA 1
mesh
mesh STA 5
MBSS STA 3
Cosa si intende per mobilità?
● Muovendosi all'interno dell'Extended Service Set
(ESS) “wlan1”, STA 11 resta all'interno di una
stessa rete LAN
– Il cambiamento del “punto di attacco” alla rete è
gestito a livello MAC
– L'indirizzo IP di STA 11 resta invariato
● Mobile IP non interviene!
Cosa si intende per mobilità?
● Mobile IP interviene quando un nodo si sposta in
una diversa rete di accesso
– es., spostamento tra reti WLAN, UMTS/LTE,
Ethernet...
● IPv4 assume che l'indirizzo IP di un nodo identifichi
univocamente il suo punto di accesso ad Internet
– Un nodo deve trovarsi nella rete corrispondente
al proprio indirizzo IP per ricevere i pacchetti ad
esso destinati
● Spostandosi in una rete diversa, il nodo riceve un
nuovo indirizzo IP
Problemi associati alla mobilità
● Cosa succede se un nodo cambia il proprio
indirizzo IP?
– Innanzitutto, l’applicazione che stava inviando dati a
quel nodo deve essere notificata di questo evento,
altrimenti continuerà ad inviare pacchetti al vecchio
indirizzo
– Il protocollo di livello trasporto TCP non consente di
mantenere attiva una connessione se una delle due
parti cambia indirizzo IP
● Molte applicazioni vedranno le proprie connessioni
TCP abbattute e termineranno
Problemi associati alla mobilità
● È possibile fare in modo che un nodo mantenga il
proprio indirizzo IP spostandosi in una nuova rete?
● È necessario che i router della rete sappiano
instradare i pacchetti destinati al nodo mobile verso
la sua nuova posizione
● Una soluzione è propagare tra i router della rete
rotte specifiche per il nodo mobile
– È trasparente ai nodi mobili
– Comporta un carico insostenibile per i router, dato il
numero sempre crescente di dispositivi mobili
– Occorre una soluzione diversa!
Elementi a supporto della mobilità
● Occorre introdurre i concetti di agenti a supporto
della mobilità, rete domestica e rete visitata
rete domestica: la agente domestico: entità che
rete il cui prefisso gestisce le funzioni di mobilità
corrisponde a per conto del dispositivo mobile
quello dell'indirizzo
permanente del
nodo mobile WAN
(es.: 128.119.40/24)

indirizzo permanente: indirizzo


nella rete domestica, può
sempre essere usato per
raggiungere il dispositivo corrispondente
mobile
es.: 128.119.40.186
Elementi a supporto della mobilità
indirizzo permanente: rimane rete visitata: rete in cui
invariato (es.: 128.119.40.186) risiede attualmente il
dispositivo mobile (es.:
79.129.13/24)
care-of address: indirizzo
presso la rete visitata
(es.: 79.129.13.2)

WAN
agente ospitante: entità
della rete visitata che
gestisce la mobilità
corrispondente: entità all’interno di questa
che desidera
comunicare con il
corrispondente
nodo mobile
Diversi approcci alla mobilità
● Il nodo mobile si fa parte attiva nella gestione della
mobilità
● Due approcci:
– Instradamento indiretto: la comunicazione tra il
corrispondente ed il nodo mobile avviene tramite
l'agente domestico, che inoltra i messaggi ricevuti al
nodo mobile
– Instradamento diretto: il corrispondente ottiene
l'indirizzo presso la rete visitata e comunica
direttamente con il nodo mobile
Mobilità: registrazione
Rete visitata
Rete domestica

WAN

1. Il nodo mobile
2. L'agente
contatta l'agente
ospitante contatta
ospitante al suo
l'agente domestico
ingresso nella rete
per informarlo che il
corrispondente visitata
nodo mobile è
presso la sua rete

● L'agente ospitante conosce tutti i dati del nodo mobile


● L'agente domestico conosce la posizione del nodo
mobile
Mobilità: Instradamento indiretto
3. L’agente
ospitante riceve il
datagramma e lo
inoltra al dispositivo
2. L’agente domestico mobile
Rete domestica intercetta il datagramma Rete visitata
e lo inoltra all’agente
ospitante

WAN

1. Il corrispondente
indirizza il 4. Il dispositivo
datagramma mobile risponde
all’indirizzo direttamente al
corrispondente
permanente del corrispondente
nodo
Mobilità: Instradamento indiretto
● Se l'utente mobile si sposta in un'altra rete:
– Effettua la registrazione presso il nuovo agente
ospitante
– L'agente domestico viene informato del nuovo care-
of address del nodo mobile ed inoltra i pacchetti
usando questo indirizzo
– Spostandosi tra diverse reti, le connessioni in corso
possono essere mantenute!
● Può essere un problema la triangolazione
corrispondente-agente domestico-nodo mobile
– Inefficiente quando corrispondente e nodo mobile si
trovano nella stessa rete
Mobilità: Instradamento diretto
3. L’agente
ospitante riceve il
datagramma e lo
inoltra al dispositivo
mobile
Rete domestica 2. Il corrispondente
effettua l’inoltro presso Rete visitata
l’agente ospitante

WAN

1. Il corrispondente
richiede, e riceve, 4. Il dispositivo
l’indirizzo mobile risponde
temporaneo del direttamente al
corrispondente
dispositivo mobile corrispondente
Mobilità: Instradamento diretto
● Risolve il problema della triangolazione
● Non è trasparente al corrispondente
– Il corrispondente deve innanzitutto richiedere il care-
of address del nodo mobile all'agente domestico
● Cosa succede se il nodo mobile si sposta in un'altra
rete?
– Il corrispondente continua ad inviare i pacchetti al
precedente care-of address del nodo mobile
– È necessaria una soluzione laboriosa che prevede
l'impiego di agenti domestici d'appoggio
Mobile IP
Mobile IP
● Specificato in IETF RFC 3344 (ed altri)
– This document specifies protocol enhancements that
allow transparent routing of IP datagrams to mobile
nodes in the Internet
● Ogni nodo mobile è identificato
– Dal suo home address sempre, indipendentemente
dal punto di accesso ad Internet
– Da un care-of address, che fornisce informazioni sul
corrente punto di accesso ad Internet
● Mobile IP prevede la registrazione del care-of
address e l'instradamento indiretto
Mobile IP: requisiti
● Un nodo mobile deve essere in grado di
comunicare con altri nodi dopo aver cambiato il
punto di accesso ad Internet e conservato il proprio
indirizzo IP
● Un nodo mobile deve essere in grado di
comunicare con altri nodi che non implementano le
funzionalità introdotte da Mobile IP
● Tutti i messaggi che vengono usati per aggiornare
un nodo riguardo la posizione di un nodo mobile
devono essere autenticati
– Per proteggere da redirection attacks
Mobile IP: obiettivi ed assunzioni
● La quantità di messaggi “amministrativi” che un
nodo mobile deve spedire sulla propria rete di
accesso deve essere minimizzata
– La rete di accesso è tipicamente una rete wireless
– Il nodo mobile ha tipicamente risorse limitate ed è
alimentato a batterie
● Mobile IP è pensato per nodi mobili che non
cambiano punto di accesso ad Internet più
frequentemente di una volta al secondo
Entità in Mobile IP
● Mobile node
– Un nodo che cambia il suo punto di accesso da una
rete o sottorete ad un'altra senza cambiare indirizzo IP
– Deve essere in grado di rilevare quando cambia punto
di accesso alla rete e quando torna nella propria rete
domestica
● Home agent
– Un router sulla rete domestica del nodo mobile che
mantiene la posizione corrente del nodo mobile ed
inoltra i datagrammi destinati al nodo mobile mediante
la tecnica del tunneling
Entità in Mobile IP
● Foreign agent
– Un router sulla rete visitata dal nodo mobile che
riceve ed inoltra al nodo mobile i pacchetti ad esso
destinato e tipicamente agisce da router di default
per il nodo mobile
● Mobility agent
– Un home agent oppure foreign agent
● Correspondent node
– Un nodo (mobile o stazionario) con cui il nodo mobile
sta comunicando
Terminologia
● Home address
– Un indirizzo IP assegnato al nodo mobile per un periodo
esteso di tempo
– Non varia se il nodo cambia punto di accesso
● Home network
– Una rete il cui prefisso corrisponde a quello dell'home
address
● Foreign network
– Una qualunque rete diversa dalla home network
● Care-of address
– Il punto di terminazione del tunnel usato per inviare dati al
nodo mobile quando non è nella home network
Mobile IP
● Tre concetti chiave
– Agent Discovery
– Registrazione
– Tunneling
Agent Discovery
● È il metodo con il quale
– Un nodo mobile determina se è connesso alla home
network oppure ad una foreign network
– Un nodo mobile rileva che si è spostato da una rete
ad un'altra
– Un nodo mobile può ottenere un care-of address
● Fa uso di due tipi di messaggi
– Agent Advertisement
– Agent Solicitation
● Nessuna autenticazione è richiesta per tali
messaggi
Agent Discovery
● Il messaggio Agent Advertisement estende il
messaggio ICMP Router Advertisement (tipo 9,
usato per annunciare l'indirizzo di un router che può
essere usato come default gateway) aggiungendo
un Mobility Agent Advertisement Extension
● Inviato in broadcast a livello MAC, a meno che non
è inviato in risposta alla sollecitazione di un nodo
● L'indirizzo IP destinazione può essere
– 224.0.0.1 (tutti i nodi su questo link)
– 255.255.255.255 (limited broadcast)
● Il messaggio Agent Solicitation è identico al
messaggio ICMP Router Solicitation (tipo 10)
Agent Advertisement message
Type = 9 Code Checksum
Num Addrs Addr Size Lifetime Standard
Router Address 1 ICMP fields
...
Type = 16 Length Sequence Number
Registration Lifetime RBHFMGrT reserved Mobility Agent
Advertisement
Care-of Address 1 Extension
...

● Anche se Num Addrs = 0 (in tal caso Code=16 e non ci sono Router
Address), il mobility agent deve instradare i messaggi del nodo mobile
verso un default gateway
● Registration Lifetime: la durata massima di una registrazione che l'agent
è disposto ad accettare
● R (registration required): la registrazione è richiesta (ad es. per
l'accounting), anche se il care-of address è ottenuto in altra maniera
Agent Advertisement message
Type = 9 Code Checksum
Num Addrs Addr Size Lifetime Standard
Router Address 1 ICMP fields
...
Type = 16 Length Sequence Number
Registration Lifetime RBHFMGrT reserved Mobility Agent
Advertisement
Care-of Address 1 Extension
...

● B (busy): il foreign agent non accetta (temporaneamente) registrazioni


● H (home agent): l'agente offre i servizi di home agent
● F (foreign agent): l'agente offre i servizi di foreign agent
● I bit M e G sono usati per indicare modalità di tunneling addizionali
● Se il bit F è settato, ci deve essere almeno un care-of address
Move detection
● Tecnica Lifetime-based
– Se il nodo mobile non ha ricevuto un nuovo Agent
Advertisement da un agent prima della scadenza
della sua Lifetime assume che ha perso contatto con
l'agent
– Se il nodo mobile ha ricevuto un Agent
Advertisement (non scaduto) da un altro agent, può
tentare la registrazione con questo nuovo agent
– Altrimenti, il nodo mobile deve cercare di scoprire un
nuovo agent con cui registrarsi
Move detection
● Tecnica Network prefix-based
– Il prefisso di rete può essere utilizzato per stabilire se
un nuovo Agent Advertisement è stato ricevuto sulla
stessa sottorete del corrente care-of address del
nodo
– Se i prefissi sono diversi, il nodo mobile può
assumere che si è spostato
– In tal caso, allo scadere della registrazione corrente,
il nodo mobile può decidere di registrarsi con l'agent
che ha inviato il nuovo Agent Advertisement
● Ammesso che non sia scaduta anche la Lifetime
associata al nuovo Agent Advertisement
Returning home
● Un nodo mobile si accorge di essere ritornato nella
sua home network quando riceve un Agent
Advertisement dal suo home agent
Registrazione
● È il metodo con il quale un nodo mobile:
– Informa il proprio home agent del care-of address
corrente
– Richiede il servizio di inoltro dei pacchetti al proprio home
agent quando si trova presso una foreign network
– Rinnova una registrazione che sta per scadere
– Si de-registra quando torna nella home network
– Scopre il proprio home address e l'indirizzo dell'home
agent, se il nodo mobile non è configurato con tali
informazioni
● La registrazione crea un mobility binding presso l'home
agent che associa per una certa Lifetime l'home
address del nodo mobile al care-of address corrente
Registrazione
● La registrazione fa uso di due tipi di messaggi
(entrambi inviati al porto UDP 434)
– Registration Request
– Registration Reply
● La registrazione comunica il care-of address del
nodo mobile all'home agent
● Ci sono due tipi di care-of address
– foreign agent care-of address
– co-located care-of address
● A cui corrispondono due modalità di registrazione
Registrazione
● Un foreign agent care-of address è un indirizzo che il
nodo mobile ha imparato dal messaggio Agent
Advertisement inviato dal foreign agent
– Vantaggio: diversi nodi mobili possono condividere lo
stesso care-of address, diminuendo il numero di
indirizzi IP richiesti presso la foreign network
● Un co-located care-of address è un indirizzo che il
nodo mobile ha imparato usando altri mezzi, come
DHCP
– Vantaggio: il nodo mobile può funzionare anche in
reti dove non c'è un foreign agent
Registrazione
Rete visitata
Rete domestica

2
2
1
WAN
1
1. Registration Request
2. Registration Reply
● La registrazione attraverso il foreign agent:
– Deve essere usata quando il nodo mobile registra un
foreign agent care-of address
– Dovrebbe essere usata quando il nodo mobile
registra un co-located care-of address, ma ha
ricevuto un Agent Advertisement con il bit R
(Registration required) settato
Registrazione
Rete visitata
Rete domestica
2

1
WAN

1. Registration Request
2. Registration Reply
● La registrazione diretta con l'home agent:
– Deve essere usata quando il nodo mobile registra un
co-located care-of address e non ha ricevuto un
Agent Advertisement con il bit R (Registration
required) settato
– Deve essere usata quando il nodo mobile si de-
registra, essendo tornato nella propria home network
Registration Request message
Type = 1 SBDMGrTx Lifetime
Home Address
Home Agent
Care-of Address

Identification

● D (Decapsulation): se settato, indica che il nodo mobile stesso de-


incapsula i pacchetti indirizzati al care-of address (ovvero il nodo mobile
sta usando un co-located care-of address)
● Lifetime: la durata di una registrazione richiesta; se 0 indica de-
registrazione
● Identification: valore usato dal nodo mobile per associare una
Registration Reply ad una Registration Request e come protezione
contro i replay attack
Registration Request message
Type = 1 SBDMGrTx Lifetime
Home Address
Home Agent
Care-of Address

Identification

● Home Address: se il nodo mobile non ha un home address indica


0.0.0.0; l'agent fornirà nella Registration Reply l'indirizzo da utilizzare
– Questa procedura va effettuata quando il nodo è nella home network
● Home Agent: se il nodo mobile non conosce l'indirizzo dell'home agent,
indica l'indirizzo di broadcast della sottorete del proprio home address
– Ogni agente che riceve il messaggio, risponde con una Registration
Reply che nega la registrazione e fornisce l'indirizzo dell'agent, che il
nodo mobile può usare in un futuro tentativo di registrazione
– Questa procedura va effettuata quando il nodo è nella home network
Registration Reply message
Type = 3 Code Lifetime
Home Address
Home Agent

Identification

● Code = 0 indica che la registrazione è andata a buon fine


● Ci sono una serie di codici per indicare
– Il motivo per cui la registrazione è stata negata dall'home agent
– Il motivo per cui la registrazione è stata negata dal foreign agent
Esempio di registrazione
visited network: 79.129.13/24
home agent foreign agent
HA: 128.119.40.7 COA: 79.129.13.2 ICMP agent adv.
Mobile agent
COA: 79.129.13.2 MA: 128.119.40.186
….

registration req.
registration req. COA: 79.129.13.2
COA: 79.129.13.2 HA: 128.119.40.7
HA: 128.119.40.7 MA: 128.119.40.186
MA: 128.119.40.186 Lifetime: 9999
Lifetime: 9999 identification:714
identification: 714 ….
encapsulation format
….

registration reply
time HA: 128.119.40.7 registration reply
MA: 128.119.40.186
Lifetime: 4999 HA: 128.119.40.7
Identification: 714 MA: 128.119.40.186
encapsulation format Lifetime: 4999
…. Identification: 714
….
Instradamento
● Effettuata la registrazione, l'home agent conosce il
care-of address del nodo mobile, che è un indirizzo
sulla sottorete nella quale si trova il nodo mobile
Home address Care-of Address Lifetime (s)
131.193.171.4 128.172.23.78 200
131.193.171.2 119.123.56.78 150
● Il correspondent node conosce l'home address del
nodo mobile ed invia i pacchetti a tale indirizzo
● L'home agent intercetta tali pacchetti, li incapsula (la
tecnica di tunneling di default è IP-in-IP) e li invia al
foreign agent, che mantiene una visitor list
Home Address Home Agent MAC Address Lifetime (s)
131.193.44.14 131.193.44.7 00:60:08:95:66:E1 150
131.193.33.19 131.193.33.1 00:60:08:68:A2:56 200
Tunneling IP-in-IP
Dal foreign agent al nodo mobile
Pacchetto inviato dall’ home agent al foreign dest: 128.119.40.186
agent: un pacchetto dentro il pacchetto

dest: 79.129.13.2 dest: 128.119.40.186

IP header IP payload

Home address
128.119.40.186

Care-of address
79.129.13.2
dest: 128.119.40.186
Pacchetto
inviato dal
corrispondente
Tecniche per intercettare pacchetti
● Quando il nodo mobile si trova in una foreign
network, il suo home agent funge da proxy ARP
– Quando riceve una ARP Request, l'home agent
esamina il target IP address e se questo coincide
con l'home address di un nodo per cui esiste un
mobility binding, risponde con una ARP Reply
contenente il proprio indirizzo MAC
● Quando il nodo mobile si registra presso una
foreign network, il suo home agent invia un
messaggio ARP gratuito (Request o Reply) in modo
che gli altri nodi associno l'home address con
l'indirizzo MAC dell'home agent
Tecniche per intercettare pacchetti
● Quando il nodo mobile ritorna nella propria home
network, può ricevere direttamente i pacchetti ad
esso destinati
– Effettua la de-registrazione per eliminare il
mobility binding dalla tabella dell'home agent
– Invia un messaggio ARP gratuito per fare in
modo che gli altri nodi associno l'home address
del nodo mobile con il suo MAC address
Instradamento indiretto: rischi
Vittima
Attaccante

WAN

corrispondente

● Se nella sottorete della vittima c'è un mobility agent , l'attaccante


può registrarsi usando come home address quello della vittima
● L'home agent nella sottorete della vittima intercetta i pacchetti
destinati alla vittima e li inoltra all'attaccante!
● I messaggi di registrazione devono essere autenticati!
Autenticazione
● I messaggi Registration Request/Reply contengono
un'estensione per la verifica dell'autenticità del
mittente
● Viene inserita una checksum (message digest)
calcolata con l'algoritmo MD5, che fa uso di una
chiave di 128 bit
● Il calcolo corretto della checksum prova la
conoscenza della chiave e quindi l'autenticità
● Il campo Identification nei messaggi di registrazione
è usato come protezione contro i replay attack
– Tipicamente contiene l'ora dell'invio (timestamp)
Mobile IP: Estensioni
Ingress filtering
Routing Table
143.225.0.0/24 51 iface0
... ... ...

iface0 Iface1
IP src IP dst IP src IP dst
143.225.229.25 213.92.16.171 143.225.229.25 103.24.71.65

● Non è sempre vero che un router instrada i pacchetti


guardando solo l'indirizzo IP destinazione, può anche
analizzare l'indirizzo IP sorgente
● Per prevenire attacchi di tipo IP spoofing, i router possono
scartare i pacchetti ricevuti su un'interfaccia diversa da
quella usata per instradare pacchetti verso l'indirizzo
sorgente
Mobile IP: rischio di ingress filtering

Home address Care-of address


128.119.40.186 79.129.13.2

Dal nodo mobile


al correspondent

src: 128.119.40.186
● I pacchetti inviati dal correspondent node all'home agent e
dall'home agent al foreign agent non vengono filtrati perchè
gli indirizzi sono topologicamente corretti
● Ciò non è vero per i pacchetti inviati direttamente dal nodo
mobile (usando il proprio home address) al correspondent
node, che possono quindi essere filtrati!
Reverse Tunneling
● La soluzione proposta in IETF RFC 3024 (“Reverse
Tunneling for Mobile IP, revised”) consiste nel
creare un reverse tunnel dal foreign agent all'home
agent
– Il pacchetto inviato lungo il tunnel ha il care-of
address come IP sorgente
– L'home agent estrae ed inoltra il pacchetto, il cui IP
sorgente è l'home address
● Il reverse tunnel e il (forward) tunnel dall'home
agent verso il foreign agent sono simmetrici
– Stessa tecnica di tunneling, stessi end-point
Reverse Tunneling
● Quando il nodo mobile si trova in una foreign
network, ascolta i messaggi Agent Advertisement
● Il flag 'T' nel Mobility Agent Advertisement
Extension indica che il mobility agent supporta il
reverse tunneling
● Se il nodo mobile intende utilizzare il reverse
tunneling, setta a 1 il flag 'T' nel messaggio
Registration Request
– La registrazione fallisce se il foreign agent o l'home
agent non supportano il reverse tunneling
Modalità di consegna
● Sono possibili due modalità per la consegna dei
pacchetti dal nodo mobile al foreign agent
– Direct Delivery Style
● deve essere implementata dagli agent che supportano
il reverse tunneling
● è la modalità di consegna predefinita
– Encapsulating Delivery Style
● dovrebbe essere implementata dagli agent che
supportano il reverse tunneling
● è usata se il nodo mobile inserisce un'apposita
estensione (Encapsulating Delivery Style Extension)
nel messaggio Registration Request
Direct Delivery Style and Reverse Tunneling

Src: 79.129.13.2 Dst: 128.119.40.10 Src: 128.119.40.186 Dst: 143.225.229.3

Src: 128.119.40.186 Dst: 143.225.229.3

Home address
128.119.40.186

Home agent
address
128.119.40.10 Care-of address
79.129.13.2
Src: 128.119.40.186 Dst:143.225.229.3
Correspondent
address
143.225.229.3
Direct Delivery Style
● Il nodo mobile non incapsula i pacchetti che invia al
foreign agent
● Il nodo mobile deve designare il foreign agent come
il suo default gateway
– Altrimenti non è garantito che tutti i suoi pacchetti
vengano incapsulati
● Il foreign agent individua i pacchetti mandati dal
nodo mobile e modifica le sue funzioni di inoltro per
incapsulare tali pacchetti prima di inoltrarli
Encapsulating Delivery Style and Reverse
Tunneling
Src: 79.129.13.2 Dst: 128.119.40.10 Src: 128.119.40.186 Dst: 143.225.229.3

Src: 128.119.40.186 Dst: 79.129.13.9 Src: 128.119.40.186 Dst: 143.225.229.3

Home address
128.119.40.186
Care-of address
79.129.13.2
Home agent
address
128.119.40.10 Foreign agent Address
79.129.13.9
Src: 128.119.40.186 Dst:143.225.229.3
Correspondent
address
143.225.229.3
Encapsulating Delivery Style
● Il nodo mobile incapsula i pacchetti che invia al
foreign agent
● Tali pacchetti sono esplicitamente inviati al foreign
agent indicando il suo indirizzo nel campo IP
destinazione
● Questa modalità consente l'invio di pacchetti
multicast o broadcast
● Il foreign agent non modifica le sue funzioni di
inoltro, ma verifica che il pacchetto è stato inviato
dal nodo mobile, estrae il pacchetto interno, lo re-
incapsula e lo inoltra
Home Agent operations
● Se l'home agent de-incapsula ed inoltra i pacchetti
ad esso destinati senza alcun controllo, può
causare una falla nella sicurezza
● L'home agent inoltra il pacchetto solo se esiste un
mobility binding
– Il cui care-of address è l'indirizzo sorgente
dell'header IP esterno
– Il cui home address è l'indirizzo sorgente dell'header
IP interno
● Altrimenti il pacchetto è scartato e l'evento loggato
Reverse Tunneling: rischi
● Il reverse tunnel può essere usato per altri attacchi
– es. un modo malintenzionato può camuffarsi da nodo
mobile valido e re-direzionare un reverse tunnel esistente
verso un altro home agent, magari anch'esso
malintenzionato
● Per contrastare tali attacchi, è necessario che i
messaggi di registrazione siano autenticati
● Come ulteriore misura, i nodi mobili devono settare il
campo TTL nell'header IP dei messaggi Registration
Request a 255
– In questo modo, nodi malintenzionati che sono lontani più
di un hop dal foreign agent non possono essere
riconosciuti validi
Network Address Translation
● Network Address Translation (RFC 1631) consente
ad un dispositivo di agire come intermediario tra
una rete privata e la rete pubblica
NAT Traversal
● Supponiamo che il nodo mobile si sposta in una
rete dove non c'è un foreign agent
● Il nodo mobile ottiene (es., tramite DHCP) un
indirizzo IP, ma questo è un indirizzo privato
● Tale indirizzo non può essere un care-of address
– I pacchetti sono indirizzati dall'home agent al care-of
address, che quindi deve essere pubblico
● Si potrebbe usare come care-of address l'indirizzo
IP pubblico sostituito dal NAT
– Funziona?
NAT e Tunneling IP-in-IP

dest: 79.129.13.2 dest: 128.119.40.186

IP header IP payload

Home address
128.119.40.186
?
NAT public address
79.129.13.2
dest: 128.119.40.186
Pacchetto
inviato dal
corrispondente
NAT Traversal
● Per effettuare la traduzione, il NAT ha bisogno della
coppia (indirizzo IP, porto)
● Il Tunneling IP-in-IP non consente di trasportare
l'informazione sul porto!
– Mobile IP non funziona in questo caso
● Altri scenari con lo stesso problema
– Nodo mobile registrato con un foreign agent, dove
entrambi sono dietro lo stesso NAT
– Nodo mobile che usa un co-located care-of address
ma il foreign agent richiede la registrazione, dove
entrambi sono dietro lo stesso NAT
Tunneling IP-in-UDP
● La soluzione proposta in IETF RFC 3519 (“NAT
Traversal for Mobile IP”) consiste nell'incapsulare i
pacchetti spediti dall'home agent in datagrammi UDP
Src addr: 128.119.40.10 Dst addr: 79.129.13.2 Outer IP header
Src port = 434 Dst port UDP header
MIP Tunnel Data Message Header
Src addr = 143.225.229.3 Dst addr = 128.119.40.186 Encapsulated
IP payload message

Home address
128.119.40.186
Home agent
address
128.119.40.10
NAT public address
dest: 128.119.40.186 79.129.13.2
Correspondent
address
143.225.229.3
Tunneling IP-in-UDP
● Gli end-point del tunnel UDP sono identificati dagli
indirizzi (src e dst) nell'header IP esterno e dai porti
UDP (src e dst)
● Il nodo che incapsula non altera il pacchetto
incapsulato
● Il nodo che estrae il pacchetto deve controllare che
gli indirizzi IP esterni ed i porti siano quelli usati per
il tunnel
● Se un reverse tunnel viene configurato, anch'esso
deve usare il tunneling IP-in-UDP
Configurazione tunnel IP-in-UDP
● Il foreign agent (ove presente) setta il flag 'U'
(introdotto da RFC 3519) nel Mobility Agent
Advertisement Extension per indicare che supporta
il tunneling UDP
● Il nodo mobile può inserire nella Registration
Request una estensione (UDP Tunnel Request) per
indicare all'home agent che è capace di gestire il
tunneling IP-in-UDP e che contiene:
– flag 'F' (force): il nodo richiede l'uso di tunnel UDP
– flag 'R': la registrazione è fatta usando un co-located
care-of address, ma attraverso un foreign agent
– Tipo di incapsulamento (IP-in-UDP, GRE-in-UDP,...)
Configurazione tunnel IP-in-UDP
● Se il nodo mobile si registra attraverso un foreign
agent che non ha settato il flag 'U', allora non può
inserire un'estensione UDP Tunnel Request
● L'home agent, se in grado di interpretare
l'estensione UDP Tunnel Request, fornisce una
risposta inserendo un'estensione UDP Tunnel
Reply nel messaggio Registration Reply
● L'estensione UDP Tunnel Reply contiene:
– Reply code: indica se l'home agent accetta o declina
l'uso di tunnel UDP
– Keepalive Interval: indica il valore per l'intervallo di
keepalive che il nodo mobile dovrebbe adottare
Configurazione tunnel IP-in-UDP
● Se l'indirizzo IP sorgente ed il care-of address in
una Registration Request differiscono, l'home agent
assume che il nodo mobile è dietro un NAT
– Se la Registration Request contiene un'estensione
UDP Tunnel Request, l'home agent risponde
acconsentendo all'uso di tunnel UDP
● Altrimenti, l'home agent rifiuta l'uso di tunnel UDP, a
meno che il nodo mobile non abbia settato il flag 'F'
nell'estensione UDP Tunnel Request
Tunneling UDP: No foreign agent
Src addr: 79.129.13.2 Dst addr: 128.119.40.10 IP header
Src port = 6120 Dst port = 434 UDP header
Care-of address: 192.168.1.1 Reg. Request

Home address Co-located


128.119.40.186 care-of address
Home agent 192.168.1.1
address
128.119.40.10
NAT public address
79.129.13.2
IP header Src addr: 192.168.1.1 Dst addr: 128.119.40.10
UDP header Src port = 5030 Dst port = 434
Reg. Request Care-of address: 192.168.1.1

NAT translation table


Private IP Port Public IP Port
192.168.1.1 5030 79.129.13.2 6120
Tunneling UDP: No foreign agent
● La regola di traduzione NAT deve essere rispettata
per far giungere i pacchetti dati correttamente a
destinazione
– L'home agent deve usare l'indirizzo IP sorgente della
Registration Request come il care-of address
effettivo anziché il care-of address nella Registration
Request
– Il nodo mobile deve usare lo stesso porto sorgente
usato per spedire la Registration Request quando
invia i pacchetti dati
Tunneling UDP: foreign agent e
co-located care-of address
Src addr: 79.129.13.2 Dst addr: 128.119.40.10 IP header
Src port = 6405 Dst port = 434 UDP header
Care-of address: 192.168.1.1 Reg. Request
Co-located
Home address FA MN care-of address
128.119.40.186 192.168.1.1
Home agent Foreign
address agent address
128.119.40.10 192.168.1.3
NAT public address
79.129.13.2
IP header Src addr: 192.168.1.3 Dst addr: 128.119.40.10
UDP header Src port = 5128 Dst port = 434
Reg. Request Care-of address: 192.168.1.1

NAT translation table


Private IP Port Public IP Port
192.168.1.3 5128 79.129.13.2 6405
Tunneling UDP: foreign agent e
co-located care-of address
● Nel caso in cui il nodo mobile registra un co-located
care-of address attraverso il foreign agent, l'indirizzo IP
sorgente della Registration Request è quello del foreign
agent, non del mobile node
– In questa modalità, l'home agent deve inviare i dati
direttamente al nodo mobile
– Il flag 'R' nell'estensione UDP Tunnel Request segnala
all'home agent l'occorrenza di tale caso
● Il nodo mobile, ricevuta una Registration Reply positiva,
deve inviare un messaggio keepalive
– Per installare nella tabella NAT una regola per i pacchetti
che esso genera e riceve
– Per far conoscere all'home agent l'indirizzo pubblico e il
porto associati al proprio indirizzo IP privato
Messaggi keepalive
● Le regole in una tabella NAT permangono per un
tempo limitato (in genere un paio di minuti)
– L'arrivo di un pacchetto che corrisponde ad una
regola ne prolunga la durata
● È dunque necessario che l'end-point del tunnel
opposto all'home agent (nodo mobile o foreign
agent) invii messaggi keepalive per rinfrescare la
regola di un tunnel UDP
● Un messaggio di keepalive è un messaggio ICMP
echo request diretto all'home agent incapsulato in
un datagramma UDP secondo la regola NAT da
rinfrescare
MIP Tunnel Data Message header
● Una Registration Request è un datagramma UDP
generato nella rete interna del NAT
– Non ha bisogno di essere incapsulato
– Crea una regola nel NAT che consente il passaggio
della Registration Reply
● Il MIP Tunnel Data Message header
– È inserito nei messaggi dati subito dopo l'header
UDP e prima dell'header IP incapsulato per
distinguere i messaggi dati da Registration Request
e Reply
– 4 byte che includono un campo Type e un campo
Next Header che indica il tipo di dati incapsulati
Reverse tunnel UDP
● Come vengono trattati i pacchetti inviati dal nodo
mobile (in cui l'IP sorgente è l'home address) ?
– Se il NAT traduce tutti gli indirizzi (sia pubblici che
privati) il nodo mobile non riesce a mantenere la
comunicazione ⇒ è necessario il reverse tunneling
– Se invece il NAT è abbastanza intelligente da non
tradurre indirizzi pubblici (e non c'è ingress filtering),
non è indispensabile il reverse tunneling
Tunneling UDP: rischi
● I messaggi Registration Request contengono
un'estensione per autenticare il care-of address
contenuto nel messaggio
● Quando si crea un tunnel UDP, l'indirizzo dell'end-
point del tunnel usato dall'home agent è l'IP
sorgente della Registration Request, non il care-of
address in essa contenuto
– Questo indirizzo non è autenticato!
● Abilitando il NAT traversal, ci si espone al rischio
che un attaccante possa modificare il care-of
address del nodo mobile e quindi l'altro end-point
del tunnel UDP
Riferimenti
● IETF Request for Comments (RFCs)
– 3344, 3024
● J. Kurose, K. Ross, Reti di Calcolatori e Internet,
Pearson

Potrebbero piacerti anche