IP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Cosa è il? In una rete a commutazione di pacchetti si definisce routing il processo di selezione del percorso sul quale spedire un pacchetto Il router è il dispositivo che svolge questa operazione Nel modello TCP/IP il routing è effettuato dai gateway In genere sono dispositivi dedicati di limitate capacità di calcolo Università degli studi di Salerno Laurea e Diploma in Informatica 2 3 In una internet il problema del routing deve essere affrontato a due livelli diretto Istradamento all interno di una rete fisica Basato sui servizi del livello data link Gli indirizzi di sorgente e destinazione devono avere lo stesso identificatore di rete indiretto Istradamento tra reti fisiche distinte Gli indirizzi di sorgente e destinazione hanno identificatori di rete diversi L istradamento deve utilizzare un intermediario 4 Diretto Il datagram viene incapsulato in un frame e spedito direttamente all indirizzo fisico del destinatario Indirizzo recuperato tramite ARP Nessun router coinvolto nella trasmissione
Indiretto Tavole di IP 5 L host non è in grado di comunicare direttamente con il destinatario del datagram 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 Ogni rete fisica appartenente ad un internet include almeno un router L host deve scegliere il router più adatto 6 L indirizzo a cui spedire un datagram è determinato mediante la consultazione delle tavole di routing IP 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 bisogna cercare di costruire tabelle di piccole dimensioni 7 Tecniche per Controllare la Dimensione delle Tabelle Sono stati studiati vari accorgimenti per contenere le 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 subnetting e supernetting Proxy ARP Rotte di default 8 Struttura di una Rotta E sufficiente conoscere il prossimo router a cui inviare il datagram (next hop) inserire figura 8.2 Ogni rotta contiene i seguenti campi: 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
9 Tipi di Rotte Le 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 Utilizzate per debugging o per vincolare il percorso seguito dai datagram Rotte di default La tavola di routing di un host può contenere solo una rotta di default ad un router e della rotta di loopback 10 Flag di Rotte IP U: la rotta è disponibile G: la rotta utilizza un router intermedio Se il flag G non è presente la destinazione è collegata direttamente H: la destinazione è un host e non una rete D: rotta creata da un redirect M: rotta modificata da redirect Esempio di Tavola di IP Meccanismo di IP 11 Kernel IP routing table Destination Gateway mask Flags MSS Win irtt Iface 192.41.218.242 0.0.0.0 255.255.255.255 UH 1500 0 0 ppp0 127.0.0.0 0.0.0.0 255.0.0.0 U 3584 0 0 lo 0.0.0.0 192.41.218.242 0.0.0.0 UG 1500 0 0 ppp0 default 192.41.218.254 255.255.255.0 UG 1500 0 0 eth0 Host collegato alla rete 192.41.218 con interfaccia Ethernet e al gateway 192.41.218.242 con ppp rotta per il loopback rotta di default a 192.41.218.254 rotta per l host 192.41.218.242 direttamente connesso rotta per la rete 192.41.218.0 al gateway 12 Ogni volta che un host deve spedire un datagram scorre la sua tabella di routing in cerca di 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
13 Algoritmo di IP L host H deve spedire il datagram D 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 14 Inizializzazione delle Tavole di La tavola di routing viene scritta a mano con il comando route Es. route add default 192.41.218.254 1 Inserisce rotta di default eseguito al momento del boot Legge da un file le rotte da aggiungere Esistono altri protocolli per inizializzare dinamicamente la tavola di routing al boot Aggiornamento Dinamico delle Tavole di di un Host Esempio di ICMP Redirect 15 L aggiornamento della tavola di un host è 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 routing 16 R1 IP1 to R2 forward IP1 to R2 ICMP redirect IP2 to R2 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 3. H invia il nuovo datagram direttamente a R2 R2
Aggiornamento delle Tavole di di un Router I router non possono utilizzare i messaggi ICMP per aggiornare le proprie tabelle Chi aggiorna le tavole dei router? I router implementano protocolli specifici per scambiarsi informazioni di raggiungibilità Li vedremo nelle prossime lezioni Gestionde dei Datagram in Ingrasso Un host non instrada mai i datagram ricevuti per evitare di congestionare la rete per isolare situazioni di errore Un router istrada tutti i datagram ricevuti se non sono diretti ad una delle reti a cui è collegato li manda ad un altro router 17 18 Per default ogni postazione è configurata come host per trasformare un host in un router bisogna ricompilare il kernel con il supporto al packet forwarding 19 con le Subnet L algoritmo di routing standard deve essere modificato per gestire il subnetting Le modifiche riguardano solo la gestione delle sottoreti all interno di una rete l istradamento nel internet rimane immutata Per facilitare il subnet routing si dovrebbe 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 20 Subnet Sempre basato su una ricerca all interno della tavola di routing Ogni entry della tavola contiene anche un campo netmask Per estrarre l indirizzo di rete dall indirizzo IP della destinazione si usa la netmask si effettua un AND bit a bit tra l indirizzo di destinazione e la netmask La netmask può essere ottenuta tramite ICMP
21 Longest Matching 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) 22 su Reti Point-to-Point Anonime La linea dedicata tra le due reti richiede un terzo identificatore di rete Possibile utilizzare anonymous networking Il data-link non richiede l indirizzo fisico di destinazione Possibile specificare un valore arbitrario nella tavola 23 Esempio Rete di Facoltà Server L19 libeccio 174 suzuka 5 diaedu 193.205.162.0 firewall Proxy ARP security 192.168.203.0 63 coppi 1 udsab dia 192.41.218.0 254 intrepido odissea Server nis1sa Win bar-gw 254 193.205.160.126 3 6 254 2 gimondi 1 ustica 37 firewall Proxy ARP 193.205.161.0 reti 192.168.1.0 255.255.255.240 52 DHCP pcdhcp2-3 1 3 peru firewall 185 190 252 171 bearzot rossi diareti 193.205.161.(160-190) 255.255.255.224 24 Esempi di Semplici Tavole di Per leggere il contenuto della tabella di routing usare 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 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
25 Esempi di Semplici Tavole di tables (udsab.dia.unisa.it) Destination Gateway Flags Refs Use Interface Route Tree for Protocol Family 2: default 192.41.218.254 UGS 18 1256824 alt0 127.0.0.1 127.0.0.1 UH 9 391092 lo0 192.41.218/24 192.41.218.1 U 231 32666707 alt0 193.205.162/24 193.205.162.1 U 6 147078 tu0 Kernel IP routing table (moser.security.unisa.it) Destination Gateway Genmask Flags MSS Win irtt Iface 192.168.230.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 192.168.230.1 0.0.0.0 UG 0 0 0 eth0 26 Tavola di di nis1sa Destination NextHop tipo Mask 0.0.0.0 193.205.160.126 ind 0.0.0.0 127.0.0.0 127.0.0.12 dir 255.0.0.0 192.41.218.0 192.41.218.254 dir 255.255.255.0 193.205.160.0 193.205.160.126 ind 255.255.255.192 193.205.160.64 193.205.160.125 dir 255.255.255.192 193.205.161.0 192.41.218.254 dir 255.255.255.0 193.205.162.0 192.41.218.254 dir 255.255.255.0 193.205.169.0 193.205.169.254 dir 255.255.255.0 193.205.186.0 193.205.186.21 dir 255.255.255.0 193.205.187.128 193.205.187.190 dir 255.255.255.192 193.205.187.192 193.205.187.190 dir 255.255.255.224 193.205.187.240 193.205.187.246 dir 255.255.255.248 193.205.188.0 193.205.188.254 dir 255.255.255.0