IP - UNISA
Transcript
IP - UNISA
Formato del Datagram IP I semestre 04/05 0 bit IP e Routing 4 Vers 8 Hlen 16 Serv. Ty. Identification Time To Live Prof. Vincenzo Auletta Utilizzo del Type of Service (I word) bit 3 0 numero di versione del protocollo: 4 (IPv4) 2 3 prio D 4 T 5 6 R 7 non usa Ogni router dovrebbe supportare almeno due classi di priorità lunghezza dell’header in parole a 32 bit normalmente 5, quando non ci sono opzioni high per informazioni di servizio, low per traffico normale Uno solo di D, T e R è settato tipo di servizio richiesto (molti router non lo supportano) ...dettagli Æ slide successive D = minima distanza T = massimo throughput R = massima affidabilità Recentemente l’utilizzo del TOS è stato ridefinito per Total Lenght 20 byte 2 Type of Service (TOS) Header Checksum Destination IP Address HLEN Fragment Offset Source IP Address Version Fl.s Options Università degli studi di Salerno Laurea in Informatica Formato del Datagram IP Total Length Protocol [email protected] http://www.dia.unisa.it/professori/auletta/ 31 19 consentire la gestione da parte dei router di gruppi di servizi differenziati (DiffServ) lunghezza del datagram in byte 4 Compatibile con il vecchio formato Valori di Type of Service (TOS) Application Incapsulamento dei Datagram Il datagram deve essere incapsulato nei frame Min. Delay Max Thr. Max Rel. Min. Cost Telnet 1 0 0 0 FTP Control 1 0 0 0 FTP Data 0 1 0 0 SNMP 0 0 1 0 DNS (UDP) 1 0 0 0 DNS (TCP) 0 1 0 0 NNTP 0 0 0 1 5 della rete fisica Datagram header Frame header Frame data • Per questioni di efficienza vorremmo datagram che entrano in un frame, ma ... 6 •la dimensione dei frame (MTU) cambia da rete a rete • la sorgente non conosce l’MTU delle reti fisiche che il datagram deve attraversare Frammentazione dei Datagram Frammentazione dei Datagram Per trasmettere un datagram sulla rete fisica IP si preoccupa di frammentare il datagram e di bisogna inserirlo nei frame 7 Datagram Data ricomporlo Ogni rete fisica definisce un proprio limite superiore alla lunghezza dei frame (MTU) Se il datagram ha dimensione maggiore del frame deve essere frammentato ogni frammento ha lo stesso formato di un datagram Il destinatario deve essere in grado di ricostruire il datagram originario La seconda parola (word) dell’header di ogni frammento contiene le informazioni relative alla frammentazione 8 Formato del Datagram IP (II word): Esempio Frammentazione Identification intero che identifica univocamente il datagram originario, mandato dal sender host Fragment offset posizione del frammento nel datagram originario, calcolata in ottetti (byte) a partire dall’inizio del campo dati Flags informazioni di controllo della frammentazione DO NOT FRAGMENT MORE FRAGMENTS 9 11 protocolli strati sup. hanno la loro CS per coprire i loro header e dati. I blocco Offset 0 Frammento 2 header II blocco Offset 600 Frammento 3 header III blocco Offset 1200 (IV-V word) indirizzo IP dell’host che ha spedito il datagram Destination IP destination nome del protocollo che ha richiesto il servizio controllo degli errori calcolato solo sull’header, se ci sono errori è scartato. (il TTL modificato dai router Æ si deve incrementare CS) Frammento 1 header Header checksum III blocco Source IP destination max numero di router che datagram può attraversare nella rete iniz. a 32 o 64, ogni router decrementa il valore di 1 previene loop tra router (quando arriva a zero il datagram è soppresso) Protocol II blocco Formato del Datagram IP Time to Live (TTL) I blocco 10 Formato del datagram IP (III word): Datagram header 12 indirizzo IP dell’host a cui il datagram è diretto Campi Opzionale dell’Header Formato Opzione Record Route Il campo Options contiene informazioni facoltative bit utili per test e debug la dimensione di OPTIONS è variabile Ogni router inserisce il proprio indirizzo in coda alla lista Source Route il mittente specifica i router che deve/può attraversare 14 0 8 CODE 24 16 Length se c’è spazio Length indica la lunghezza della lista Pointer la posizione dove inserire IP Source Routing Formato Opzione Source Route bit La sorgente di un datagram non può influire sul 31 percorso seguito dal pacchetto nell’inter-rete Pointer specificare il percorso che il datagram deve seguire IP Address of second hop Strict source routing: il mittente specifica l’esatto cammino che il datagram deve seguire. Se ciò non è possibile, viene inviato un messaggio ICMP “source route failed”. ... Due tipi di source routing Strict (specifica tutti gli hop) Loose (specifica solo alcuni hop) ogni router opera autonomamente L’opzione source routing permette all’applicazione di IP Address of first hop 15 Pointer ... Timestamp registra sia l’IP del router che il tempo 13 Length 31 Second IP Address Record Route registra l’IP number di ogni router attraversato 24 16 First IP Address Principali opzioni 8 CODE Ricavabile dal campo LENGTH dell’header del datagram 0 16 Loose source routing: mittente specifica lista di indirizzi IP che il datagramma deve attraversare. intermedi possono essere attraversati. Altri router Implementazione di Source Routing Configurazione Interfaccia di Rete L’host mittente riceve lista di router da applicazione Il comando (UNIX/LINUX) utilizzato per configurare l’interfaccia di rete e controllarne lo stato è /sbin/ifconfig Primo indirizzo diventa nuovo destinatario destinazione originaria è posta in coda alla lista che viene scritta nel campo opzione pointer punta alla prima entry nella lista (ptr=4) argomenti il router che riceve il datagram controlla se è no: datagram inoltrato normalmente E’ stato usato il LSR (altr. non sarebbe giunto) sì: ptr<len indirizzo puntato da ptr diviene nuova destinazione indirizzo IP dell’interfaccia uscente è source datagram ptr+=4 17 nome dell’interfaccia da controllare o configurare famiglia di indirizzi principali parametri destinato alla sua rete ipconfig per sistemi Windows 18 Esempio di Uso ifconfig up/down (attivazione e disattivazione dell’interfaccia) arp (abilita o disabilita uso di ARP) allmulti (abilita o disabilita modalità promiscous) mtu N (fissa a N la massima dimensione di un frame) netmask addr (setta netmask) multicast (abilita il multicasting) hw (setta indirizzo fisico) dstaddr addr (setta indirizzo dest. per linea poit-to-point) Statistiche sullo Stato della Rete E’ possibile ottenere informazioni sullo stato del sottosistema eth0 di comunicazione con il comando netstat Link encap:Ethernet HWaddr 00:A0:CC:53:D6:EF inet addr:192.41.218.37 Bcast:192.41.218.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:320193 errors:1 dropped:0 overruns:0 frame:0 TX packets:36528 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:51057286 (48.6 Mb) TX bytes:4326559 (4.1 Mb) Interrupt:5 Base address:0xd000 Per conoscere lo stato delle interfacce usare netstat –in lo 19 stato delle connessioni aperte tabelle di istradamento stato delle interfacce attive statistiche relative ad un certo protocollo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 …. mostra indirizzi numerici indica numero di pacchetti trasmessi e ricevuti correttamente, con errori o rimossi Kernel Interface table 20 Iface MTU Net RX-OK RX-ERR TX-OK TX-ERR Flg eth0 1500 0 323616 1 36993 0 BMRU lo 0 289 0 LRU 16436 0 289 Cosa è il Routing? Routing In una internet il problema del routing deve essere In una rete a commutazione di pacchetti si definisce affrontato a due livelli Routing diretto routing il processo di selezione del percorso sul quale spedire un pacchetto Il router è il dispositivo che svolge questa operazione Basato sui servizi del livello data link Nel modello TCP/IP il routing è effettuato dai gateway In genere sono dispositivi dedicati di limitate capacità di calcolo Gli indirizzi di sorgente e destinazione devono avere lo stesso identificatore di rete Routing indiretto 21 Istradamento all’interno di una rete fisica 22 Istradamento tra reti fisiche distinte Gli indirizzi di sorgente e destinazione hanno identificatori di rete diversi L’istradamento deve utilizzare un intermediario Routing Diretto Routing Indiretto Il datagram viene incapsulato in un frame e spedito L’host non è in grado di comunicare direttamente direttamente all’indirizzo fisico del destinatario con il destinatario del datagram Indirizzo recuperato tramite ARP Nessun router coinvolto nella trasmissione 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 23 24 L’host deve scegliere il router più adatto Tavole di Routing IP Tecniche per Controllare la Dimensione delle Tabelle L’indirizzo a cui spedire un datagram è determinato Sono stati studiati vari accorgimenti per contenere le mediante la consultazione delle tavole di routing IP dimensioni delle tabelle di routing Sia host che router hanno tavole di routing solo i router accettano e istradano datagram non diretti a loro Divisione dell’indirizzo IP in indirizzo di rete ed indirizzo di La tavola di routing è una lista di rotte host Le rotte possono essere create staticamente (comando route) o dinamicamente (ICMP redirect) trasmissione bisogna cercare di costruire tabelle di piccole dimensioni 25 una sola rotta per tutti gli host di una rete Utilizzo di un solo indirizzo di rete per più reti fisiche La dimensione della tabella influisce fortemente sui tempi di tutte basate sul principio del mascheramento dell’informazione subnetting e supernetting Proxy ARP Rotte di default 26 Struttura di una Rotta Tipi di Rotte E’ sufficiente conoscere il prossimo router a cui inviare il Le rotte contenute in una tavola di routing possono datagram (next hop) essere di tre tipi Rotte per una rete fisica L’identificatore di host è 0 Utilizzate per debugging o per vincolare il percorso seguito dai Ogni rotta contiene i seguenti campi: 27 destinazione: destinazione indirizzo di host o network netmask: netmask netmask della destinazione interfaccia: interfaccia interfaccia locale da usare per la rotta gateway: gateway indirizzo del prossimo hop flag: flag informazioni riguardanti la rotta Rotte per un host specifico datagram Rotte di default La tavola di routing di un host può contenere solo 28 una rotta di default ad un router e della rotta di loopback Flag di Rotte IP Esempio di Tavola di Routing IP U: la rotta è disponibile G: la rotta utilizza un router intermedio 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 0.0.0.0 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 30 rotta rotta rotta rotta 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 Meccanismo di Routing IP Algoritmo di Routing IP Ogni volta che un host deve spedire un datagram L’host H deve spedire il datagram D scorre la sua tabella di routing in cerca di irtt Iface 0 ppp0 0 lo 0 ppp0 0 eth0 al gateway 192.41.218.242 con ppp 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 roundrobin 31 MSS Win 1500 0 3584 0 1500 0 1500 0 Host collegato alla rete 192.41.218 con interfaccia Ethernet e 29 Flags UH U UG UG 32 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 Inizializzazione delle Tavole di Routing Aggiornamento Dinamico delle Tavole di Routing di un Host La tavola di routing viene scritta a mano con il L’aggiornamento della tavola di un host è basata sul comando route protocollo ICMP Un messaggio ICMP redirect viene spedito da un router se 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 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 33 34 Aggiornamento delle Tavole di Routing di un Router Esempio di ICMP Redirect R1 I router non possono utilizzare i messaggi ICMP per R2 forward IP1 to R2 IP1 to R2 aggiornare le proprie tabelle Chi aggiorna le tavole dei router? 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 35 3. H invia il nuovo datagram direttamente a R2 36 I router implementano protocolli specifici per scambiarsi informazioni di raggiungibilità Li vedremo nelle prossime lezioni Gestione dei Datagram in Ingresso Routing con le Subnet Un host non instrada mai i datagram ricevuti L’algoritmo di routing standard modificato per gestire il subnetting 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 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 38 questi vincoli Subnet Routing Longest Matching Routing Sempre basato su una ricerca all’interno della tavola L’algoritmo di subnet routing può essere riformulato anche in altra maniera un router instrada un datagram sulla rotta r se di routing Ogni entry della tavola contiene anche un campo netmask Per estrarre l’indirizzo di rete dall’indirizzo IP della si effettua un AND bit a bit tra l’indirizzo di destinazione e la netmask destinazione si usa la netmask l’indirizzo di destinazione del datagram corrisponde all’AND tra l’indirizzo di destinazione e la netmask della rotta la netmask ha la più lunga sequenza di 1 tra quelle che soddisfano il punto precedente le tavole di routing sono implementate con strutture La netmask può essere ottenuta tramite ICMP 39 Le modifiche riguardano solo la gestione delle sottoreti all’interno di una rete l’istradamento nel’internet rimane immutata che per trasformare un host in un router bisogna ricompilare il kernel con il supporto al packet forwarding 37 essere Per facilitare il subnet routing si dovrebbe garantire Per default ogni postazione è configurata come host deve dati ad hoc che rendono efficiente la ricerca del match più lungo 40 es. Patricia Tree o alberi binari compressi a livelli Routing su Reti Point-to-Point Anonime Esempio Rete di Facoltà libeccio udsab ustica 174 1 37 DHCP dia 192.41.218.0 254 Server L19 suzuka intrepido odissea 5 3 6 diaedu 193.205.162.0 41 Possibile utilizzare anonymous networking Il data-link non richiede l’indirizzo fisico di destinazione Possibile specificare un valore arbitrario nella tavola security Esempi di Semplici Tavole di Routing 252 pcdhcp2-3 firewall 1 190 3 193.205.161.0 185 peru reti 192.168.1.0 255.255.255.240 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 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 43 193.205.160.126 bar-gw bearzot Refs Use Interface 18 1256824 alt0 9 391092 lo0 231 32666707 alt0 6 147078 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 44 171 rossi diareti 193.205.161.(160-190) 255.255.255.224 Esempi di Semplici Tavole di Routing Per leggere il contenuto della tabella di routing usare il 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 firewall Proxy ARP gimondi 192.168.203.0 42 nis1sa 254 52 2 identificatore di rete 254 63 firewall coppi Proxy ARP 1 La linea dedicata tra le due reti richiede un terzo Server Win irtt Iface 0 eth0 0 lo 0 eth0 Tavola di Routing di nis1sa Destination 45 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