Livello Network di Internet Francesco Dalla Libera agenda
Transcript
Livello Network di Internet Francesco Dalla Libera agenda
Livello Network di Internet Francesco Dalla Libera agenda • parte prima – IP addressing & subnetting • parte seconda – protocollo IP • parte terza – routing & forwarding • parte quarta – il futuro: IP vers 6 FDL - 2002 2 1 A cosa serve • a implementare una trasmissione “end-to-end” (dalla macchina mittente alla macchina destinataria) su una qualunque rete • offre il servizio di trasmissione end-to-end al transport layer • è spesso al confine tra l’utente e il sistema • livello datalink: muove informazioni solo da un capo all’altro di un singolo canale di comunicazione wire-like FDL - 2002 – macchine adiacenti 3 attività principali • conoscere la topologia della rete • scegliere il cammino appropriato (routing) • evitare linee sovraccariche (congestione) • gestire le problematiche tra reti fisiche diverse (internetworking) FDL - 2002 4 2 Internet • Internet differisce dalle altre reti principalmente per il fatto che è realizzata con il concorso di tanti soggetti privati (Internet Service Provider - ISP) che forniscono l’interconnessione ai loro clienti (a volte altri ISP, a volte utenti finali) e stipulano accordi per l’interconnessione paritetica tra loro (peering) in modo tale che tutti i nodi connessi a tutti i fornitori possano comunicare. • Pur essendo realizzata da diversi fornitori indipendenti, Internet rimane unita grazie all'uso di: – un unico spazio di nomi (DNS) – un unico spazio di indirizzi (IP) – un unico insieme di standard (TCP/IP, FTP, SMTP, HTTP, ecc) • Internet è quindi una infrastruttura di rete che interconnette, con una medesima tecnologia, reti fisiche diverse: la tecnologia unificante è costituita dai protocolli standard della suite TCP/IP. FDL - 2002 5 Internet • una macchina è su Internet se: 1) è dotata dello stack TCP/IP 2) è dotata di un indirizzo IP 3) può inviare messaggi a qualsiasi altra macchina della rete Internet 1) + 2) Î intranet FDL - 2002 6 3 Internet • collezione di sotto-reti (Autonomous System) tra loro interconnesse • non esiste una struttura reale – – – – Backbone ad alta velocità Reti regionali (Usa) Reti nazionali Sottoreti di specifiche organizzazioni • collante comune – protocollo IP (Internet Protocol) – progettato per trasportare al meglio (best effort) datagram dalla macchina sorgente alla macchina destinazione FDL - 2002 7 la comunicazione in Internet • il livello di Trasporto della macchina sorgente, riceve un flusso di dati da un processo mittente e li spezza in datagram (di dimensione massima 64KB, ma di solito da 1500B ca, perché?) • ogni datagram è trasmesso in maniera indipendente sulla rete (magari viene frammentato ...) • quando tutti i frammenti giungono a destinazione, vengono riassemblati nel datagram originale • il datagram è consegnato al livello Trasporto che lo inserisce nel flusso di input del processo ricevente. FDL - 2002 8 4 caratteristiche di IP • • • • • • Connectionless service Addressing Data forwarding Fragmentation and reassembly Supports variable size datagrams Best-effort delivery: – delay, out-of-order, corruption, and loss possible – higher layers should handle these. • Provides only “Send” and “Delivery” services • Error and control messages generated by Internet Control Message Protocol (ICMP) FDL - 2002 9 cosa IP non fornisce • End-to-end data reliability & flow control – done by TCP or application layer protocols • Sequencing of packets – like TCP • Error detection in payload – TCP, UDP or other transport layers • Error reporting – ICMP FDL - 2002 • Setting up route tables – RIP, OSPF, BGP etc • Connection setup – it is connectionless • Address/Name resolution – ARP, RARP, DNS • Configuration – BOOTP, DHCP • Multicast – IGMP, MBONE 10 5 Parte Prima indirizzi e subnet Indirizzamento in Internet • Gli indirizzi si chiamano indirizzi IP (32 bit) • Un indirizzo per ciascuna interfaccia di un host – non indica l’indirizzo di una macchina in rete, ma di una connessione alla rete – se un host “si sposta” da una rete ad un’altra, il suo indirizzo IP cambia • Gerarchia a due livelli – network number – host number FDL - 2002 12 6 Partizionamento: un problema difficile • Quanti bit assegnare a un indirizzo di host e quanti a un indirizzo di network ? • Dipende dal relativo numero di host e di network (ovviamente!) • Nessuno poteva prevedere lo sviluppo di Internet • Internet usa tre tipi (classi) di partizionamento: – class A: 8 bits network, 24 bits host – class B: 16 bits ciascuno – class C: 24 bits network, 8 bits host FDL - 2002 13 Addressing • Per distinguere tra classi si usano i primi bit: – – – – first bit 0 => class A first bits 10 => class B first bits 110 => class C first bits 1110 => class D (1 - 127) (128-191) (192-223) (224-239) [127 reti con 16M host] [16K reti con 64K host] [2M reti con 256 host] multicast • Indirizzi riservati – 127.x.x.x loopback – host_id = 0 => indirizzo della rete – host_id = tutti “1” => indirizzo di broadcast per la rete (all hosts) • Denotazioni – net-id.0 – 0.host-id FDL - 2002 => this_network (157.138.0.0) => this_host (0.0.12.200) 14 7 indirizzi riservati per intranet private • una rete di classe A – 10.0.0.0 • 16 reti di classe B – 172.16.0.0 – 172.31.0.0 • 256 reti di classe C – 192.168.0.0 – 192.168.255.0 FDL - 2002 15 Problemi • Gli indirizzi IP sono scarsi – indirizzi di classe B dati anche quando non necessario – controllo decentralizzato => impossibile “recuperare” indirizzi • Decentralizzazione – permette la scalabilità a scapito della robustezza – non può garantire nulla sul servizio: l’esistenza di un collegamento, la banda, ... – Il fallimento di uno dei componenti può causare gravi danni • e non c’è modo di controllare chi si aggiunge alla rete! – Difficile mantenere la sicurezza FDL - 2002 16 8 Problemi (cont.) • Decentralizzazione (cont.) – non c’è una soluzione uniforme per addebitare il costo dei servizi • a volte non si può neanche identificare con sicurezza gli utenti! – Non ci sono “guide del telefono” • difficile trovare l’indirizzo di email di un utente – il routing non è ottimale • anche perchè dipende da decisioni amministrative FDL - 2002 17 Subnets (sottoreti) • Tutti gli host di una stessa rete devono avere lo stesso net-id – se la rete cresce: LAN con indirizzo di classe C; col tempo il numero di PC supera le 254 unità, c’è bisogno di un altro indirizzo di classe C – gestione complessa: ottenere nuovi indirizzi dal NIC autorizzato – esplosione tabelle di routing • Soluzione – consentire ad una rete di essere suddivisa in parti diverse per uso interno, ma di comportarsi come una singola rete per l’esterno – ad esempio: partizionare un indirizzo di classe B, allocando gli indirizzi contenuti a diverse reti fisiche – sottoreti: si riducono le tabelle di routing creando una gerarchia a tre livelli ( net , subnet , host ) FDL - 2002 18 9 Subnet mask • Configurare tutti i nodi di una medesima subnet con una medesima maschera (subnet mask) – 255.255.255.0 ( => 24 “1” e 8 “0”) – Mask AND ind_Classe_B => Subnet_Address • subnet mask predefinite – classe A: – classe B: – classe C: 255.0.0.0 255.255.0.0 255.255.255.0 – 150.215.17.9 AND 255.255.0.0 = 150.215.0.0 FDL - 2002 19 Subnet mask: convenzioni • Mask con bit “1” consecutivi • Indirizzi subnet utili – non tutti “0” né tutti “1” (vedi in precedenza) • mask di n bit: al più 2n-2 indirizzi utili • Esempio: 150.215.17.9 AND 255.255.240.0 = 150.215.16.0 10010110.11010111.00010001.00001001 11111111.11111111.11110000.00000000 150.215.017.9 255.255.240.0 (IP) (Mask) 4 bit “1” = 24-2 = 14 subnet al più; ciascuna con 4094 nodi 10010110.11010111.00010000.00000000 FDL - 2002 150.215.16.0 (subnet) 20 10 Esempio: rete di Ca’ Foscari • Indirizzo di classe B – 157.138.0.0 • Subnetting: – 255.255.255.0 • 254 sotto-reti fisiche distinte • ciascuna con al più 254 host distinti • Si può scrivere anche così: – 157.138.0.0/24 • Esempi: – 157.138.15.0 – 157.138.20.0 – 157.138.22.0 sotto-rete del Dip. di Matematica Applicata sotto-reti di Mestre - Informatica FDL - 2002 21 considerazioni • non è necessario che tutti gli “1” di una maschera siano contigui – ma si preferisce usare solo maschere contigue • è possibile mettere più subnet sulla stessa rete fisica – gli host che appartengono a questa stessa rete fisica sono forzati a comunicare attraverso un router • utile per scopi amministrativi e di controllo • diverse parti di Internet vedono il mondo in modo diverso – i router “esterni” all’organizzazione vedono una singola rete – i router “interni” devono essere in grado di instradare i pacchetti alla subnet corretta FDL - 2002 22 11 considerazioni - 2 • le subnets contribuiscono a risolvere i problemi di scalabilità – si migliora l’efficienza dell’assegnazione degli indirizzi IP – si aiuta ad aggregare informazioni • un insieme complesso di reti fisiche può essere visto come una singola rete • viene così ridotta l’informazione che i roiuter devono mantenere per inviare pacchetti verso quelle reti FDL - 2002 23 Evoluzione • Problemi di scalabilità – Esaurimento dello spazio di indirizzi di classe B • classe C è troppo piccola, classe B è troppo grande per molte organizzazioni – Crescita delle tabelle di routing • ben al di là delle attuali capacità di sofware, hardware e amministratori. – Esaurimento finale dello spazio di indirizzamento IP a 32 bit. FDL - 2002 24 12 Evoluzione: CIDR • Assegna reti contigue di classe C per supplire alla mancanza di reti di classe B – se una organizzazione ha bisogno di 2000 indirizzi, le si assegnano 8 reti di classe C contigue • Limita l’esplosione delle tabelle di routing per mezzo dell’uso di opportune maschere nei router per permettere di riconoscere in un colpo solo un insieme di sottoreti C contigue • si generalizza il concetto di variable length subnet masks • eliminazione delle classi A, B, C – 38.245.76.0 e mask = 255.255.255.0 (scritto anche 38.245.76.0 / 24 ) – net-id: 24 bit ; host-id: 8 bit FDL - 2002 25 esempi di network masks Short Full Maximum #Machines /8 /255.0.0.0 16,777,215 /16 /255.255.0.0 65,535 /17 /255.255.128.0 32,767 /18 /255.255.192.0 16,383 /19 /255.255.224.0 8,191 /20 /255.255.240.0 4,095 /21 /255.255.248.0 2,047 /22 /255.255.252.0 1,023 /23 /255.255.254.0 511 /24 /255.255.255.0 255 /25 /255.255.255.128 127 /26 /255.255.255.192 63 /27 /255.255.255.224 31 /28 /255.255.255.240 15 /29 /255.255.255.248 7 FDL - 2002 /30 /255.255.255.252 3 Commenti classe A classe B classe C 26 13 Mapping IP <--> Indirizzo_fisico_datalink • HostA come fa a inviare un pacchetto a HostB di cui conosce solo IPB? • Se il link è point-to-point non c’è mai problema • Su una LAN – il pacchetto sta all’interno della LAN? • In questo caso qual è l’indirizzo a livello di datalink ? – Altrimenti, a quale router mandare il pacchetto? • Qual è l’indirizzo del router a livello di datalink? FDL - 2002 27 arp techniques • 1. Direct mapping: Make the physical addresses equal to the host ID part. – Mapping is easy. – Only possible if admin has power to choose both IP and physical address. – Ethernet addresses come preassigned (so do part of IP addresses!). – Ethernet addresses are 48 bits vs IP addresses which are 32-bits. FDL - 2002 28 14 arp – cont. • 2: Table Lookup: Searching or indexing to get MAC addresses – Similar to lookup in /etc/hosts for names – Problem: change Ethernet card => change table IP Address 197.15.3.1 197.15.3.2 197.15.3.3 MAC Address 0A:4B:00:00:07:08 0B:4B:00:00:07:00 0A:5B:00:01:01:03 FDL - 2002 29 arp - cont • 3. Dynamic Binding: ARP – The host broadcasts a request: • “What is the MAC address of 127.123.115.08?” – The host whose IP address is 127.123.115.08 replies back: • “The MAC address for 127.123.115.08 is 8A-5F-3C-23-45-5616” • All three methods are allowed in TCP/IP networks. FDL - 2002 30 15 ARP (Address Resolution Protocol) - RFC 826 • Tutti gli host di una LAN hanno lo stesso indirizzo di subnet – in questo modo è facile sapere se un host è sulla stessa LAN • Si usa il protocollo ARP per determinare il datalink address (Ph) – – – – A: richiesta broadcast (IP?) B: l’host con l’indirizzo IP richiesto risponde con Ph tutti: l’informazione viene mantenuta in cache raffinamenti • A invia in broadcast la sua coppia (IP,Ph) • tutti la memorizzano • al boot ogni macchina invia in broadcast la sua coppia (IP,Ph) • Per scoprire i router – – – – il router è noto “ a priori” i router fanno sapere chi sono e quali servizi offrono un host sceglie il router se i router non si fanno vivi un host può esplicitamente richiedere a FDL - 2002 31 tutti i router di qualificarsi esempio di uso The figure shows the use of arp when a computer tries to contact a remote computer (sysa ) on the same LAN using "ping“. It is assumed that no previous IP datagrams have been received from this computer, and therefore arp must first be used to identify the MAC address of the remote computer. FDL - 2002 32 16 esempio – cont. • The arp request message ("who is X.X.X.X tell Y.Y.Y.Y", where X.X.X.X and Y.Y.Y.Y are IP addresses) is sent using the Ethernet broadcast address, and an Ethernet protocol type of value 0x806. – Since it is broadcast, it is received by all systems in the same collision domain (LAN). This is ensures that is the target of the query is connected to the network, it will receive a copy of the query. Only this system responds. The other systems discard the packet silently. • The target system forms an arp response ("X.X.X.X is hh:hh:hh:hh:hh:hh", where hh:hh:hh:hh:hh:hh is the Ethernet source address of the computer with the IP address of X.X.X.X). This packet is unicast to the address of the computer sending the query (in this case Y.Y.Y.Y). – Since the original request also included the hardware address (Ethernet source address) of the requesting computer, this is already known, and doesn't require another arp message to find this out. FDL - 2002 33 arp – formato del pacchetto FDL - 2002 34 17 formato • HardwareType: specifica il tipo di rete fisica (Ethernet,...) • ProtocolType: specifica il protocollo di livello superiore (IP,...) • HLen, Plen: lunghezza dell’indirizzo fisico e di quello di livello superiore • Operation: request o reply • indirizzo fisico di mittente e destinatario • indirizzo di livello superiore di mittente e destinatario FDL - 2002 35 RARP - reverse arp • H/w address -> IP address • Used by diskless systems – RARP server responds. – Once IP address is obtained, use “tftp” to get a boot image. Extra transaction! • RARP design complex: – RARP request broadcast, not unicast! – RARP server is a user process and maintains table for multiple hosts (/etc/ethers). Contrast: no ARP server FDL - 2002 36 18 RARP – cont. • RARP cannot use IP • Multiple RARP servers needed for reliability • BOOTP, DHCP replaces RARP FDL - 2002 37 19