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