820 likes | 1.02k Views
Corso di Infrastrutture e servizi per reti geografiche - 01GQB di Vincenzo Buttazzo e Marco Vallini NAT - Terminology and Considerations – rfc 2663 Traditional NAT – rfc 3022 NAT - Protocol Translation – rfc 2766 Architectural Implications of NAT – rfc 2993.
E N D
Corso diInfrastrutture e servizi per reti geografiche - 01GQB di Vincenzo Buttazzo e Marco Vallini NAT - Terminology and Considerations – rfc 2663Traditional NAT – rfc 3022NAT - Protocol Translation – rfc 2766Architectural Implications of NAT – rfc 2993 Network Address TranslatorScopi e Problematiche
Network Address TranslatorScopi e Problematiche NAT - Terminology and Considerations – rfc 2663 • Introduzione • Cos’è il NAT • Tipologie di NAT • Problematiche operazionali • Limitazioni • Realm Specific IP e Realm Specific Address IP
Network Address TranslatorScopi e Problematiche Introduzione Il NAT è nato per: • Far comunicare contemporaneamente più host con la rete pubblica, utilizzando un ristretto numero di indirizzi IP Risolve il classico problema delle aziende che non possono disporre di un notevole numero di indirizzi pubblici. Tenendo conto che: • Il processo deve essere trasparente • Garantire una certa sicurezza agli host della rete privata
Network Address TranslatorScopi e Problematiche Cos’è il NAT NAT è l’acronimo di Network Address Translation e permette di: • Associare un insieme di indirizzi privati con uno o più indirizzi pubblici • Eseguire il routing (instradamento) in modo trasparente attraverso la traduzione degli indirizzi • Rendere pubblica la rete globale all’interno di quella privata ma non viceversa (può assicurare un ‘primitivo’ livello di sicurezza)
Network Address TranslatorScopi e Problematiche Tipologie di NAT (1) A seconda delle applicazioni, è possibile adottare quattro tipologie differenti: • Traditional NAT o Outbound NAT (il più diffuso, comprende Basic NAT e NAPT) • Bi-directional NAT o Two-Way NAT • Twice NAT • Multihomed NAT
Network Address TranslatorScopi e Problematiche Tipologie di NAT – Traditional NAT (2) Caratteristiche: • Sessioni unidirezionali: inizializzate dalla rete interna verso quella esterna • Gli indirizzi della rete esterna sono pubblicati all’interno ma non viceversa Esistono due variazioni: • Basic NAT: un insieme di indirizzi pubblici sono associati uno ad uno a quelli degli host privati • NAPT: un insieme di indirizzi privati sono associati ad un indirizzo pubblico fruttando il meccanismo delle porte
Network Address TranslatorScopi e Problematiche Tipologie di NAT – Bi-directional NAT (3) Caratteristiche: • Le sessioni possono essere inizializzate sia dall’interno verso l’esterno che viceversa • Gli indirizzi possono essere associati in modo statico e dinamico per consentire l’accesso dall’esterno: • Utilizzando anche servizi DNS • Introducendo applicazioni DNS-ALG
Network Address TranslatorScopi e Problematiche Tipologie di NAT – Twice NAT (4) Variazione del NAT Caratteristiche: • Sia l’indirizzo sorgente che quello di destinazione sono modificati • Necessario per risolvere problemi di sovrapposizione di indirizzi: ovvero • Utilizzo sulla rete privata di indirizzi pubblici assegnati ad un’altra organizzazione
Network Address TranslatorScopi e Problematiche Tipologie di NAT – Multihomed NAT (5) Scopo: • Introdurre un sistema di ridondanza dei NAT Problematiche: • Mantenere aggiornate ed allineate le informazioni di stato nei diversi dispositivi • Rendere il passaggio da un dispositivo all’altro automatico e trasparente per l’utente Soluzione: • Condividere la stessa configurazione tra più device differenti
Network Address TranslatorScopi e Problematiche Problematiche operazionali (1) 1. Traduzione dei payload: • Il NAT non procede alla traduzione del payload dei pacchetti, quindi se contengono indirizzi IP necessario gestire la problematica 2. Sicurezza end-to-end: • Il NAT non permette l’integrità di controllo del protocollo IPsec 3. Applicazioni specifiche: FTP, SNMP, DNS • Il servizio FTP utilizza i comandi per stabilire le porte e gli indirizzi all’interno del control session payload
Network Address TranslatorScopi e Problematiche Problematiche operazionali (2) Nei casi delle applicazioni DNS, SNMP, FTP, esiste una soluzione al problema della traduzione degli indirizzi e di alcuni parametri contenuti nel payload: • Application Level Gateway (ALG): applicazioni che integrano il NAT, modificando i payload attraverso l’utilizzo delle informazioni presenti sul NAT.
Network Address TranslatorScopi e Problematiche Limitazioni (1) • Applicazioni con controllo interno delle sessioni • Debugging e gestione dell’indirizzamento • Considerazioni sulla sicurezza
Network Address TranslatorScopi e Problematiche Limitazioni (2) Applicazioni con controllo interno delle sessioni I dispositivi NAT operano con l’assunzione che ogni sessione sia indipendente. Per le applicazioni che utilizzano uno o più controlli di sessione, es. H.323: Si deve utilizzare un ALG
Network Address TranslatorScopi e Problematiche Limitazioni (3) Debugging e gestione dell’indirizzamento Con il NAT, lo stesso indirizzo pubblico può essere associato in tempi diversi ad indirizzi privati diversi Risultato: • Ogni studio basato sull’indirizzo globale e sulle portenon può essere efficace! • Un host della rete privata che ‘abusa’ di un servizio della rete pubblica non può essere identificato all’interno della rete locale!
Network Address TranslatorScopi e Problematiche Limitazioni (4) Considerazioni sulla sicurezza Alcuni ‘warning’ sulla sicurezza: • Le sessioni UDP non sono sicure: la risposta ad un datagramma può provenire da un indirizzo diverso da quello target • Le sessioni multicast basate su UDP non sono sicure • I dispositivi NAT possono essere obiettivi degli attacchi di tipo SYN flood o ping flood (attacchi tipo DoS) introdurre meccanismi di protezione tipo sever Internet-based
Network Address TranslatorScopi e Problematiche Limitazioni (5) Considerazioni sulla sicurezza Soluzioni: • Integrare i dispositivi NAT con i firewall • Se esistono dispositivi ALG, questi devono trovarsi all’interno dello stesso ‘dominio di sicurezza’: • Un ALG intercetta il traffico in transito per l’host • Può modificare il contenuto dei payload Può essere sfruttato per raggiungere informazioni sensibili
Network Address TranslatorScopi e Problematiche Realm Specific IP (RSIP) (1) Protocollo che rappresenta un’alternativa al NAT Cos’è: Protocollo che permette di schermare gli indirizzi di rete privata utilizzano un solo indirizzo pubblico, senza le limitazioni del NAT Vantaggi rispetto al NAT: Preserva l’integrità dei pacchetti end-to-end: • Rende possibile l’introduzione di meccanismi di sicurezza come IPsec • Utilizzo di applicazioni di tipo ‘streaming media’, per esempio: videoconferenze, telefonate …
Network Address TranslatorScopi e Problematiche Realm Specific IP (RSIP) (2) Protocollo che rappresenta un’alternativa al NAT Perché sostituire il NAT con RSIP: • Lo stretto legame con lo schema di indirizzamento del NAT introduce una compatibilità verso il basso • Adatto al networking basato sulle policy (politiche per gestire ed assegnare le risorse di una rete)
Network Address TranslatorScopi e Problematiche Realm Specific IP (RSIP) (3) Protocollo che rappresenta un’alternativa al NAT Struttura e componenti di RSIP: la struttura è di tipo ‘challenge-response’ (sollecito-risposta) Due componenti: • RSIP Client: richiede un indirizzo al server • RSIP Server: fornisce un indirizzo, porte, lease time (periodo di affitto dell’indirizzo), tipo di tunnel
Network Address TranslatorScopi e Problematiche Realm Specific IP (RSIP) (4) Protocollo che rappresenta un’alternativa al NAT Esistono due varianti al RSIP: • Realm Specific Address IP (RSA-IP): utilizza un indirizzo pubblico per ogni host che si vuole collegare all’esterno • Realm Specific Address and Port IP (RSAP-IP): utilizza un indirizzo pubblico per tutti gli host che si vogliono collegare all’esterno. (simile al NAPT, meccanismo delle porte)
Network Address TranslatorScopi e Problematiche Traditional NAT – rfc 3022 • Caratteristiche del Basic NAT • Caratteristiche del NAPT • Fasi di traduzione di una sessione • Elementi traducibili di un pacchetto • Problematiche • Limitazioni
Network Address TranslatorScopi e Problematiche Traditional NAT L’ambito di utilizzo è quello di un ambiente SOHO (Small Office Home Office)
Network Address TranslatorScopi e Problematiche Caratteristiche del Basic NAT Nel Basic NAT, gli indirizzi privati degli host sono associati uno ad uno agli indirizzi pubblici disponibili, assegnati dall’autorità competente (es. IANA) Se il numero degli host della rete locale che si voglio connettere alla rete esterna è minore o uguale al numero degli indirizzi pubblici in possesso dell’organizzazione: tutti i nodi possono comunicare simultaneamente Altrimenti • Solo alcuni nodi possono comunicare simultaneamente oppure • Si adotta lo switch-over: tecnica che permette di passare dalla configurazione Basic NAT a quella di NAPT
Network Address TranslatorScopi e Problematiche Caratteristiche del NAPT (Network Address Port Translation) Consente di: • Condividere un unico indirizzo pubblico tra più host privati • Multiplando più sessioni • Sfruttando le diverse porte associate ad ogni sessione Più precisamente: HOST NAPT ROUTER Esiste una corrispondenza (Local IP Address, local TCP/UDP Port Number) (Registered IP Address, Assigned TCP/UDP Port Number)
Network Address TranslatorScopi e Problematiche Fasi di traduzione per la sessione La traduzione di una sessione si articola in tre fasi: • Associazione dell’indirizzo • Basic NAT: l’indirizzo privato è associato ad un indirizzo pubblico • NAPT: gli indirizzi privati sono associati ad un unico indirizzo pubblico sfruttando il meccanismo delle porte • Address lookup e traduzione: si procede ad individuare la sessione del pacchetto e si procede alla traduzione degli indirizzi • Rilascio dell’indirizzo associato: quando l’ultima sessione termina, viene rilasciata l’associazione
Network Address TranslatorScopi e Problematiche Elementi traducibili di un pacchetto Gli elementi traducibili sono: • Manipolazione degli header IP, TCP, UDP e ICMP • Adattamento dei checksum • Modifica dei pacchetti di errore ICMP • Supporto per FTP • Supporto per DNS
Network Address TranslatorScopi e Problematiche Manipolazione degli header IP, TCP, UDP e ICMP • IP: • Basic NAT: si modificano gli indirizzi • NAPT: si modificano gli indirizzi • TCP/UDP: • Basic NAT: aggiornamento del checksum nell’header • NAPT: estendere le modifiche alle porte • ICMP: • Basic NAT: nessuna modifica, gli header non contengono indirizzi IP • NAPT: è necessario correggere gli header ed i relativi checksum
Network Address TranslatorScopi e Problematiche Adattamento dei checksum Le modifiche riguardano il singolo pacchetto operazioni intensive Quindi Si deve utilizzare un algoritmo efficiente Modifica dei pacchetti di errore ICMP Sono necessarie tre modifiche: • Indirizzo IP contenuto dell’IP header incapsulato nel payload • Checksum dell’header IP • Checksum del messaggio ICMP
Network Address TranslatorScopi e Problematiche Supporto per FTP E’ necessario utilizzare un ALG per: • Controllare payload • Intercettare parametri • Correggere le sequenze e gli acknowledge dei pacchetti TCP, utilizzando una tabella specifica Supporto per DNS Anche in questo caso è necessario l’utilizzo di un ALG
Network Address TranslatorScopi e Problematiche Problematiche del Traditional NAT • Suddivisionetra indirizzi locali e globali: l’indirizzo deve essere esclusivamente privato o pubblico • Raccomandazioni sullo spazio di indirizzamento privato: esistono tre tipologie di indirizzi utilizzabili all’interno di una rete privata, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 • Swicth-over tra Basic NAT e NAPT: il passaggio improvviso dalla configurazione Basic NAT a NAPT da parte di un’applicazione può provocare problemi Deve essere gestito in modo trasparente
Network Address TranslatorScopi e Problematiche Limitazioni • Privacy e sicurezza: rende difficile l’individuazione di un particolare host e quindi del debugging • Risposte ARP e NAT: problematiche se un router con NAT abilitato è connesso direttamente ad una LAN. Infatti, potrebbe non fornire risposte ARP per gli host della sua sottorete gli host della sottorete diventano irraggiungibili • Traduzione dei pacchetti TCP/UDP frammentati in NAPT: la traduzione può fallire perché solo il primo frammento contiene intestazioni TCP/UDP necessarie per associare il pacchetto alla sessione.
Network Address TranslatorScopi e Problematiche Implementazioni Sono disponibili molte implementazioni, sia commerciali che con licenza GNU.
Corso diInfrastrutture e servizi per reti geografiche - 01GQB di Vincenzo Buttazzo e Marco Vallini NAT - Terminology and ConsiderationsTraditional NATNAT - Protocol TranslationArchitectural Implications of NAT Network Address TranslatorScopi e Problematiche
Network Address TranslatorScopi e Problematiche Architectural Implications of NAT • Introduzione • Il modello End2End • Vantaggi derivanti dall'uso dei NAT • Problemi con i NAT • Scenari • Considerazioni sulla sicurezza
Network Address TranslatorScopi e Problematiche I redattori della prima raccomandazione sui NAT scrissero: “I NAT possiedono alcune caratteristiche negative che li rendono inappropriati per soluzioni a lungo termine e potrebbero renderli inappropriati anche per soluzioni a breve termine”. Malgrado questo hanno avuto una grande diffusione in Internet
Network Address TranslatorScopi e Problematiche Ci sono due correnti di pensiero: • I NAT sono utili e bisogna continuare ad usarli. Hanno dimostrato la trasparenza per le applicazioni principali di Internet (Web, eMail) • Non sono una soluzione definitiva perché non perfettamente trasparenti. Sono un artificio senza un futuro solido
Probabilmente la realtà si pone a metà strada In ogni caso il problema sarà risolto con l'introduzione di Ipv6 E' certo che contrastano con alcuni principi di Internet Network Address TranslatorScopi e Problematiche
Network Address TranslatorScopi e Problematiche Il modello End-to-End Le proprietà fondamentali di questo modello sono: • Fate-sharing • Rete senza stato • Intelligenza periferica
Network Address TranslatorScopi e Problematiche Fate-sharing Ovvero la condivisione del destino • Lo stato di una comunicazione è determinato solo dai due punti estremi • La comunicazione si interrompe solo se si “guasta“ uno di questi due punti
Network Address TranslatorScopi e Problematiche Rete senza stato La comunicazione non richiede la memorizzazione di informazioni di stato all'interno della rete • In caso di guasto di un nodo della rete le informazioni di stato ivi contenute dovrebbero essere spostate su un'altro nodo, cosa di difficilmente realizzabile in modo efficiente
Network Address TranslatorScopi e Problematiche Intelligenza periferica Tutte le informazioni sulla comunicazione sono contenute negli estremi • In caso contrario i nodi centrali dovrebbero gestire un numero elevato di comunicazioni • Se la rete cresce, i nodi centrali finiscono per essere sottodimensionati rispetto al lavoro che devono fare
Network Address TranslatorScopi e Problematiche I NAT infrangono i principi End-to-End di Internet • Diminuisce la flessibilità della rete • Alcune applicazioni non possono essere usate (IPsec, DNSsec, altre che richiedono un indirizzo globale...)
Network Address TranslatorScopi e Problematiche I vantaggi dei NAT • Maschera i cambi di ISP o i cambi degli indirizzi dell'ISP • Sono utili per assegnare indirizzi globali a utenti ad accesso intermittente • Facile installazione grazie all'interfaccia nota
Network Address TranslatorScopi e Problematiche I vantaggi dei NAT • Si evitano reti locali con indirizzi globali a lunghezza variabile • Applicazioni che non richiedono l'integrità del pacchetto IP non hanno bisogno di modifiche • Possono svolgere la funzione di Firewall per le connessioni in ingresso ...inoltre...
Network Address TranslatorScopi e Problematiche • Eliminando nodi che non sono attivi in un determinato istante riduce la richiesta di indirizzi pubblici e si prolunga la vita di IPv4 e si facilita il lavoro di routing • Lo spazio di indirizzamento della rete privata potrà essere molto più ampia del numero di indirizzi pubblici a disposizione • Si possono realizzare le server-farm
Network Address TranslatorScopi e Problematiche Problemi con i NAT • Spezzano il modello End-to-End e quindi riducono la flessibilità di Internet • Creano un'ulteriore nodo da cui dipende la connessione • Impediscono meccanismi di sicurezza a livello IP
Network Address TranslatorScopi e Problematiche • Permettono l'assegnazione arbitraria degli indirizzi in ambito locale. Può essere causa di collisioni quando si fondono due reti • Le versioni a Livello 4 aumentano la complessità quando nella rete privata sono presenti server pubblici • Alcuni prodotti possono implementare NAT senza definirsi come tali
Network Address TranslatorScopi e Problematiche • I NAT ipotizzano che ogni sessione sia indipendente dalle altre, cosa che con FTP e H.323 non è vera • Non prevedono che l'indirizzo IP sia in punti diversi dall'intestazione (in questo caso serve un Application Layer Gateway, un dispositivo di Livello 7)
Network Address TranslatorScopi e Problematiche • Usando i NAPT (NAT di Livello 4) associano un terminale locale con una porta (nota) dell'indirizzo pubblico. Ciò può essere motivo di rallentamento della rete in questione