La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 1 Il livello di rete prof. G. Russo prof. Guido Russo.

Presentazioni simili


Presentazione sul tema: "1 1 Il livello di rete prof. G. Russo prof. Guido Russo."— Transcript della presentazione:

1 1 1 Il livello di rete prof. G. Russo (grusso@unina.it)©2012 prof. Guido Russo

2 2 2 La suite di protocolli TCP/IP (anche Internet Protocol Suite) è l'architettura attuale di Internet. L’insieme dei protocolli che costituiscono in TCP\IP si siluppano su quattro livelli: Livello di Collegamento, che gestisce l'interfacciamento tra l'applicazione e il link fisico. Livello di Rete, che gestisce il movimento nella rete delle unità di informazione. Livello di Trasporto, che realizza il flusso dei dati tra due host della rete. Livello di Applicazione, che gestisce i dettagli di ciascuna particolare applicazione di rete. TCP/IP

3 3 3 prof. Guido Russo TCP/IP

4 4 4 Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Application Transport Internet Network Interface Hardware TCP/IP

5 5 5 prof. Guido Russo TCP/IP

6 6 6 Livelli ISO/OSI e protocolli TCP/IP prof. Guido Russo

7 7 7 TCP/IP: incapsulazione prof. Guido Russo

8 8 8 Ogni livello ha la sua struttura dati, compatibile con quelle degli altri livelli Anche i nomi dei dati trasmessi dipendono dal livello ed anche dall’utilizzo di TCP (Transmission Control Protocol) oppure UDP (User Datagram Protocol) In genere, le reti sottostanti usano packet oppure frame per i dati trasmessi TCP/IP: Terminologia prof. Guido Russo

9 9 9 Gli Internet gateway sono comunemente chiamati IP router Terminologia tradizionale per TCP/IP solo 2 tipi di device: host e gateway Terminologia corrente: Router: sposta dati tra diverse reti Gateway: sposta dati tra diversi protocolli (ad es., mail tra TCP/IP ed OSI) In molti testi i termini sono intercambiabili TCP/IP: Terminologia prof. Guido Russo

10 10 prof. Guido Russo IP prof. G. Russo (grusso@unina.it)©2012

11 11 prof. Guido Russo Il livello IP Internet Protocol (IP) Internet Control Message Protocol (ICMP) Address Resolution Protocol (ARP) Reverse Address Resolution Protocol (RARP) Internet Protocol (IP) Internet Control Message Protocol (ICMP) Address Resolution Protocol (ARP) Reverse Address Resolution Protocol (RARP) Application Transport Internet Network Interface Hardware

12 12 prof. Guido Russo IP è il protocollo principale della suite di protocolli TCP/IP. Esso offre un servizio di trasporto datagrammi, l'unità di informazione usata in questo livello, inaffidabile e non orientato alla connessione (connectionless). Prima di descrivere le caratteristiche del protocollo IP, illustriamo il formato di un datagramma IP. Il protocollo IP

13 13 prof. Guido Russo Il datagramma IP (1/2) version specifica la versione di IP (Esistono due versioni attualmente la 4 e la 6). IHL (Internet header length), specifica la lunghezza dell'header in parole di 32 bit. TOS (type of service) specifica la qualità del servizio richiesta dall’utente. I 16 bit successivi dell'header contengono la total length del datagramma, incluso l'header stesso. A differenza del campo IHL, il campo total length valuta in byte anziché in parole. Pertanto la massima dimensione che può raggiungere un datagramma IP è pari a 65535 byte. TTL (time to live) ha la funzione di individuare i datagrammi che sono presenti nei percorsi ciclici e scartarli protocol è una semplice chiave di demultiplazione che identifica il protocollo di livello superiore al quale dovrebbe essere passato questo datagramma IP.

14 14 prof. Guido Russo 14 Il datagramma IP (2/2) L'header checksum è calcolato solo sull'header del datagramma IP. source address e destination address. Il secondo rappresenta la chiave per l'invio del datagramma: ogni datagramma contiene un indirizzo completo della destinazione in modo che presso ciascun router possano essere prese le decisioni di inoltro. L'indirizzo di partenza è necessario per consentire ai destinatari di decidere se accettare il datagramma e per abilitarli alla risposta. Infine, al termine dell'header ci può essere un certo numero di options la cui presenza può essere determinata esaminando il campo IHL. Un certo numero di byte aggiuntivi di valore 0 sono aggiunti (padding) se necessario. Questo assicura che l'header è sempre un multiplo di 32 bit.

15 15 prof. Guido Russo 15 Caratteristiche del servizio offerto da IP Inaffidabile o non ci sono garanzie che un datagramma IP raggiunga con successo la propria destinazione. Se il datagramma viene perso, alterato, consegnato all'indirizzo sbagliato o in ogni caso non riesce a raggiungere la destinazione prescelta, il protocollo non prevede nessuna azione di controllo. Connectionless o ogni datagramma è gestito indipendentemente dagli altri e ciò implica che i datagrammi possono arrivare a destinazione non nello stesso ordine in cui sono stati inviati. Ad esempio, se un mittente spedisce due datagrammi consecutivi (prima A e poi B) alla stessa destinazione, ognuno è instradato indipendentemente e può prendere strade diverse, e B potrebbe arrivare prima di A.

16 16 prof. Guido Russo Frammentazione e Ricomposizione Il datagramma IP deve attraversare reti eterogenee e ciascuna tecnologia di rete ha un'unità di trasmissione massima MTU (Maximum Trasmission Unit), che è la dimensione massima di un datagramma IP che può essere portato in un frame (Ethernet può accettare datagrammi fino a 1500 byte). IP confronta la MTU con la taglia del datagramma e compie la frammentazione se necessario. La frammentazione può aver luogo nell'host trasmittente o in un router intermedio. Quando un datagramma IP è frammentato, esso non è ricomposto fino a quando non raggiunge la destinazione finale. A questo punto, il livello IP nella destinazione finale effettua la ricomposizione ossia la deframmentazione del datagramma. Nella frammentazione sono usati i seguenti campi dell'header: identification, contiene un valore univoco per ogni datagramma IP che l'host sorgente invia. flags contiene il "bit more fragments". Tale bit è 1 per ogni frammento di un datagramma eccetto il frammento finale. fragmentation offset contiene l'offset (multiplo di 8 byte) di un frammento dall'inizio del datagramma. Sebbene la frammentazione IP appare trasparente per i livelli di trasporto (TCP, UDP), il grande svantaggio della frammentazione è rappresentato dal fatto che se un frammento si perde durante il percorso, l'intero datagramma deve essere ritrasmesso.

17 17 prof. Guido Russo 32 Bits NetworkHost Indirizzi IP

18 18 prof. Guido Russo 32 Bits NetworkHost 8 Bits Indirizzi IP

19 19 prof. Guido Russo 32 Bits NetworkHost 8 Bits 172. 16. 122. 204 8 Bits Indirizzi IP

20 20 prof. Guido Russo Class A: Class B: Class C: Class D: per multicast Class E: per scopi di ricerca NHHH NNHHNNNH Classi di indirizzi IP

21 21 prof. Guido Russo 8 bits Class ANetworkHost Class BNetwork Host Class CNetwork Host Class DMulticast Class EReserved Classi di indirizzi IP

22 22 prof. Guido Russo 1724 Class A: # Bits 0network #host # 114161 Class B: # Bits 1network #host #0 121811 Class C: # Bits 1network #host #10 Range indirizzi di rete

23 23 prof. Guido Russo Gli indirizzi di classe A vanno da 0 a 127 incluso, perchè hanno sempre il primo bit a 0 quindi avremo per la classe A il seguente schema di indirizzi 0xxxxxxx, se consideriamo tutti i possibili valori da da re alle x otteniamo il range totale: 00000000 = 0 01111111 = 127 Range indirizzi di rete: classe A Primo byte = indirizzo di rete, 3 bytes rimanenti = indirizzi degli host Il formato degli indirizzi di classe A è: network.host.host.host.

24 24 prof. Guido Russo Range indirizzi di rete: classe B Gli indirizzi di classe B vanno da 128 a 191 incluso, perchè hanno sempre il primo bit a 1 e il secondo bit a 0 quindi avremo per la classe B il seguente schema di indirizzi 10xxxxxx, se consideriamo tutti i possibili valori da dare alle x otteniamo il range totale: 10000000 = 128 10111111 = 191 Primi 2 bytes = indirizzo d irete, ultimi 2 bytes = indirizzi degli host Il formato di un indirizzo di classe B è : network.network.host.host

25 25 prof. Guido Russo Range indirizzi di rete: classe C Gli indirizzi di classe C vanno da 192 a 223 incluso, perchè hanno sempre il primo e il secondo bit a 1 e il terzo bit a 0 quindi avremo per la classe C il seguente schema di indirizzi 110xxxxx, se consideriamo tutti i possibili valori da dare alle x otteniamo il range totale: 11000000 = 192 11011111 = 223 Primi 3 bytes = indirizzi di rete, ultimo byte = indirizzi degli host. Il formato degli indirizzi di classe C è: network.network.network.host

26 26 prof. Guido Russo Gli indirizzi tra 224 e 255 sono riservati per le classi D ed E. La Classe D che ha range da 224 a 239 è utilizzata per gli indirizzi multicast. La classe E che ha range da 240 a 255 è utilizzata per scopi scientifici. Range indirizzi di rete: classe D ed E

27 27 prof. Guido Russo Range indirizzi di rete

28 28 prof. Guido Russo High Order Bits Octet in Decimal Address Class 0 10 110 1 – 126 128 – 191 192 – 223 ABCABC Range indirizzi di rete, la regola del primo ottetto

29 29 prof. Guido Russo 29 Indirizzi di rete: Indirizzi privati Gli indirizzi privati sono indirizzi che possono essere uati in una rete privata ma non routabili attraverso internet. Classi di indirizzi Indirizzi privati Classe A Da 10.0.0.0 fino a 10.255.255.255 Classe B Da 172.16.0.0 fino a 172.31.255.255 Classe CDa 192.168.0.0 fino a 192.168.255.255

30 30 prof. Guido Russo 30 Layer 2 broadcasts Inviati a tutti gli host della LAN. Broadcasts (layer 3) Inviati a tutti gli host della rete. Unicast Inviati ad un sigolo host destinatario. Multicast Inviati da un unico host sorgente a diversi host su reti diverse. Indirizzi di rete: Tipi di Indirizzi di broadcast

31 31 prof. Guido Russo 31 Conosciuto anche come broadcast hardware, di solito non attraversa I confini della LAN, a meno chà non diventi un pacchetto unicast. Il tipico indirizzo hardware è 6 bytes ed è di questo tipo: 0c-43-a4-f3-12-c2 Broadcast layer 2

32 32 prof. Guido Russo 32 I messaggi di broadcast sono tenuti a rintracciare tutti gli host su un dominio di Broadcast Un esempio: L’indirizzo di rete 172.16.0.0/255.255.0.0 ha indirizzo di broadcast 172.16.255.255, ha tutti i bit degli host a 1. Broadcast

33 33 prof. Guido Russo Unicast Messaggio diretto ad un host specifico Multicast Permette comunicazioni punto-multipunto, è simile al broadcast,ma fuonziona in maniera diversa. Il funzionamento principale del multicast è che abilita recipienti multipli per riceve messaggi senza diffondere I messaggi a tutti gli host sul dominio di broadcast. Multicast funzione inviando messaggi o dati agli indirizzi IP multicast group. La differenza sostanziale tra messaggi multicast e messaggi broadcast è che con la comunicazione multicast, I pacchetti, in teoria, sono inviati solo agli host specificati. Unicast e Multicast

34 34 prof. Guido Russo Subnetting e supernetting Il Subnetting prende una rete, di solito grande, e la divide in reti di dimensioni più piccole, quindi sottoreti. Il Subnetting di una rete di classe C : 192.168.1.0/255.255.255.128 (192.168.1.1-192.168.1.126) Il Supernetting è la fusione di piccole reti per ottenere un numero maggiore di indirizzi per gli host Il Supernetting di 4 reti di calsse C: 192.168.1.0/255.255.252.0 (192.168.0.0/24 + 192.168.1.0/24 + 192.168.2.0/24 + 192.168.3.0/24)

35 35 prof. Guido Russo Il subnetting di una rete comporta diversi vantaggi: Minor spreco di indirizzi, in quanto è possibile scegliere il numero di host che faranno parte della sottorete. Riduzione del traffico di rete, in quanto si riduce il dominio di collisione (broadcast domain). Miglioramento delle performance della rete. Perché il subnetting?

36 36 prof. Guido Russo Il subnetting consiste nell'utilizzare alcuni bit "presi in prestito" dalla parte host dell'indirizzo di rete. E' possibile procedere alla suddivisione della rete in sottoreti più piccole tramite i seguenti passi: Determinare il numero di sottoreti necessarie E' necessario tenere presente che il numero di subnet che si possono creare è dato da 2 x -2 dove x è rappresentato dai bit presi in prestito dalla parte host dell'indirizzo da subnettare. Determinare il numero di host per ogni sottorete Questo valore è dato da 2 y -2 dove y è il numero di bit rimasti per la rappresentazione degli host. Determinare il numero di host per subnet. Questo valore è dato da 256-z, dove z rappresenta il valore della subnetmask. Esempio: con una subnetmask 255.255.255.224 avremmo avuto 256-224=32. Questo valore è il numero di host per subnet, per ottenere sol gli host validi bisogna sottrarre due al numero di host totali in quanto si devono sottrare gli indirizzi della subnet e del brodcast. Determinare degli indirizzi di broadcast e network delle subnet. Sono gli indirizzi in cui rispettivamente i bit della parte host sono settati a 1(broadcast) e a 0(network); Fare subnetting

37 37 prof. Guido Russo Network 172.16.0.0 172.16.0.0 Indirizzamento senza subnet

38 38 prof. Guido Russo 172.16.1.0172.16.2.0 172.16.3.0 172.16.4.0 Network 172.16.0.0 Indirizzamento con subnet

39 39 prof. Guido Russo 172.16.2.200 172.16.2.2 172.16.2.160 172.16.3.5 172.16.3.100 172.16.3.150 E0E1 NetworkInterface 172.16.0.0 E0 E1 Routing Table Fare subnetting: esempio

40 40 prof. Guido Russo 172.16.2.200 172.16.2.2 172.16.2.160 IP: 172.16.2.1 172.16.3.5 172.16.3.100 172.16.3.150 IP: 172.16.3.1 E0E1 172.162160 NetworkHost.. NetworkInterface 172.16.0.0 E0 E1 Routing Table Subnet Fare subnetting: esempio

41 41 prof. Guido Russo 172.16.2.200 172.16.2.2 172.16.2.160 IP: 172.16.2.1 172.16.3.5 172.16.3.100 172.16.3.150 IP: 172.16.3.1 E0E1 172.162160 NetworkHost.. NetworkInterface 172.16.2.0 172.16.3.0 E0 E1 New Routing Table Subnet Fare subnetting: esempio

42 42 prof. Guido Russo E’ assegnato ad ogni host così che ogni host nella rete è a conoscenza di quali bit della parte host dell’indirizzo sono utilizzati per gli indirizzi di subnet. E’ un valore di 32 bits che permette al destinatatio del pacchetto IP di distinguere la parte network dalla parte host dell’indirizzo ricevuto Subnetmask

43 43 prof. Guido Russo 1721600 IP Address NetworkHost 255 00 Default Subnet Mask NetworkHost 255 0 8-bit Subnet Mask NetworkSubnetHostSubnetmask

44 44 prof. Guido Russo 10000000=128 11000000=192 11100000=224 11110000=240 11111000=248 11111100=252 11111110=254 11111111=255 128 6432168421 Subnetmask: equivalenti decimali

45 45 prof. Guido Russo Network Host 172.16.2.160 255.255.0.0 1721600 10101100 11111111 10101100 00010000 11111111 00010000 00000000 10100000 00000000 00000010 Subnetmask senza subnetting o subnetmask di default

46 46 prof. Guido Russo NetworkHost 172.16.2.160 255.255.255.0 1721620 Subnet 11111111 00000000 11111111 10101100 00010000 00000010 10100000 00000000 00000010 Subnetmask di subnet

47 47 prof. Guido Russo Esempio subnetting indirizzo classe C Esempio: 192.168.10.0 = Indirizzo di rete 255.255.255.192 = Subnetmask Quante subnet? Poichè 192 in binario ha 2 bits ad uno (11000000), la risposta sarà 2 2 – 2 = 2. Quanti host per subnet? Abbiamo 6 bit per gli host (11000000), così la risposta è 2 6 – 2 = 62 hosts

48 48 prof. Guido Russo Esempio subnetting indirizzo classe C Quali sono le subnet valide? 256 - 192= 64, che è la prima subnet 64 + 64 = 128. 128 + 64 = 192, che è invalida perchè è la subnetmask Le nostre due subnet valide sono 64 and 128. Qual’è l’indirizzo di broadcast per ogni subnet? Il numero precedente il valore della prossima subnet, nell’esempio 127 per la subnet 64 e 191 per la subnet 128. Quali sono gli host validi? Gli indirizzi compresi tra gli estremi di ogni indirizzo di subnet e broadcast, nel nostro esempio 65-126 per la subnet 64 e 129-190 per la subnet 128

49 49 prof. Guido Russo ICMP prof. G. Russo (grusso@unina.it)©2012

50 50 Fornisce messaggi di errori, messaggi di stato e messaggi di amministrazione tra gateway ed host I messaggi si riferiscono al funzionamento di IP Usa IP per inviare i messaggi Internet control message protocol Application Transport Internet Network Interface Hardware ICMP Destination Unreachable Echo (Ping) Other

51 51 Servizi di indicazione di errori e di stato: superamento tempo massimo di durata del datagram parametro inintellegibile destinazione irraggiungibile rallentamento della sorgente richiesta di eco e relativa risposta (ping) reindirizzamento registrazione del tempo e relativa risposta richiesta di informazioni e relativa risposta richiesta di maschere degli indirizzi e relativa risposta Internet control message protocol prof. Guido Russo

52 52 prof. Guido Russo Generato dal comando ping A B è raggiungibile? B Internet control message protocol: test

53 53 prof. Guido Russo AB ICMP Echo Request B è raggiungibile? Si, eccomi Internet control message protocol: test

54 54 prof. Guido Russo A ICMP Echo Reply B ICMP Echo Request Si, eccomi B è raggiungibile? Internet control message protocol: test

55 55 prof. Guido Russo Principali componenti di rete prof. G. Russo (grusso@unina.it) ing. A. Violetta (violetta@unina.it)©2008

56 56 prof. Guido Russo Routers Gigabit Switches L2-4 Switches L3 Switches 10/100 Switches Routers Principali componenti di una rete

57 57 prof. Guido Russo Access Device Platforms Chassis Switches Optical Networking & CWDM Platforms Principali componenti di una rete

58 58 prof. Guido Russo Bridges Un bridge è uno switch a due porte. Precedentemente c’erano altri tipi di bridges, I translation bridge che univano due tipi di reti differenti, tipo Ethernet e Token Ring.

59 59 prof. Guido Russo 59 prof. Guido Russo 59 Switch Layer 2/3 Switches Me mo ry Switch

60 60 prof. Guido Russo 60 Lo switch è un dispositivo in grado di instradare i pacchetti di dati in maniera point to point. Questo è possibile perchè lo switch, al suo interno, ha una taballa di tutti gli indirizzi delle schede di rete collegate e quando gli arriva un pacchetto sa chi è il destinatario e lo invia solo a lui. Questo permette di risolvere il problema del broadcast che si verificava negli hub, risparmiando quindi notevole banda. Switches 1 2

61 61 prof. Guido Russo 61 48 x 10/100Base-T RJ45 Front to back cooling 4 x GbE SFP ports Console port RJ45 Compact Flash slot 1RU Caratteristiche architetturali degli switches

62 62 prof. Guido Russo 62 Power Supply - 70W Phys Flash Memory 32MB SDRAM 64M, 128M, or 256M10CPU – 400 MHz Switching Chips 48 x 10/100 Base T(X) ports Console port RJ45 Dual GBIC slots Encryption slot Caratteristiche architetturali degli switches

63 63 prof. Guido Russo 63 PHYs IPv6 Accelerator Interface (10Gbps) CPU – 400Mhz DRAM – 128MB (up to 256 or 512MB) Switch Chip Marvel Prestera EX115 (37.6Gbps 13Mpps) Dual Hot Swappable PSUs PAC interface 32MB Packet Buffer Memory 32MB Flash Bay 1Bay 2 Caratteristiche architetturali degli switches

64 64 prof. Guido Russo 64 SDRAM – 128MB (up to 256 or 512MB) Switch Chips Dual Hot Swappable PSUs SFP ports (Bay) Caratteristiche architetturali degli switches

65 65 prof. Guido Russo 65 PHYs IPv6 Accelerator card Fabric AdaptorsCPU – 350Mhz Bay 2 (PSU) Bay 1(FOM) Caratteristiche architetturali degli switches

66 66 prof. Guido Russo 66 prof. Guido Russo 66 Routers Lo scopo di un router è di esaminare I pacchetti entranti, scegliere il miglior percorso della rete per instradarli verso la destinazione Routers lavorano a livello Network.

67 67 prof. Guido Russo 67 prof. Guido Russo 67 Routers Un router può connettere differenti reti o sottoreti. Un router connette: LAN a LANs LANs a WANs WANs a WANs

68 68 prof. Guido Russo Caratteristiche architetturali dei routers RAMNVRAMFlashROM Interfaces Console Auxiliary

69 69 prof. Guido Russo 69 prof. Guido Russo 69 ARP - RARP prof. G. Russo (grusso@unina.it)©2012

70 70 prof. Guido Russo 70 Due host possono comunicare direttamente solo se sono collegati alla stessa rete fisica Per potersi scambiare informazioni devono conoscere i rispettivi indirizzi fisici Il protocollo IP consente di individuare univocamente un host tramite un indirizzo logico (indirizzo IP) Tutte le applicazioni usano gli indirizzi logici ed ignorano la rete fisica. Ma per inviare un messaggio occorre necessariamente conoscere anche l’indirizzo fisico Pertanto, serve un meccanismo di corrispondenza tra gli indirizzi logici e gli indirizzi fisici. Tale meccanismo è offerto dal protocollo ARP (Address Resolution Protocol) Il protocollo ARP

71 71 prof. Guido Russo 71 Uno scenario tipico: A deve spedire un datagram a B, host appartenente alla medesima rete logica (cioè, alla medesima rete IP) A conosce l’indirizzo IP di B, ma non il suo indirizzo fisico Soluzione tramite ARP: A manda in broadcast a tutti gli host della rete un pacchetto contenente l’indirizzo di rete di B, allo scopo di conoscere l’indirizzo fisico di B B riconosce il suo indirizzo di rete e risponde ad A Finalmente A conosce l’indirizzo fisico di B, quindi può spedire il datagram a B Il protocollo ARP

72 72 prof. Guido Russo 72 Il protocollo ARP: il pacchetto Pacchetto ARP Hardware Type:„ definisce a che tipo di livello 2 si riferirà l’indirizzo hardware (1 per Ethernet) „ Protocol Type:„ definisce a che tipo di livello 3 si riferirà l’indirizzo network (0x0800 per IP) „ HLEN, PLEN: „ lunghezza degli indirizzi di livello 2 e 3 „ Operation:„ Tipo di operazione richiesta (ARP Req, ARP Reply,…) „ Indirizzi Sender e Destination di livello Hardware e Network

73 73 prof. Guido Russo 73 Quindi il protocollo ARP è usato per tradurre gli indirizzi IP in indirizzi MAC che caratterizzano univocamente la scheda di rete dell’host. La traduzione è fatta solo per i pacchetti IP uscenti perché è in questo caso che vengono create le intestazioni IP. La traduzione si svolge con la visita di una tabella chiamata tabella ARP che è mantenuta in memoria e dispone di N righe (una per ogni host) e di due colonne (indirizzo IP e indirizzo MAC). Ogni host ha una propria tabella ARP per ognuna delle sue interfacce hardware Quando si traduce un indirizzo IP in uno MAC, si esegue una ricerca nella tabella sul valore dell'indirizzo IP. Il protocollo ARP Indirizzo IPIndirizzo MAC 223.1.2.108-00-39-00-2F-C3 223.1.2.308-00-5A-21-A7-22 223.1.2.408-00-10-99-AC-54 Tabella ARP

74 74 prof. Guido Russo 74 La tabella ARP è necessaria perché l'indirizzo IP e l'indirizzo MAC sono completamente indipendenti nel senso che non esistono algoritmi per calcolare l’uno conoscendo l’altro. L'indirizzo IP è scelto dall'amministratore di rete in base alla collocazione del computer in Internet, e l'indirizzo MAC è scelto dal costruttore, in maniera univoca, in base allo spazio degli indirizzi di cui ha licenza. Quando la tabella ARP non permette di tradurre un indirizzo IP si verificano due avvenimenti: Un pacchetto di richiesta ARP con indirizzo MAC broadcast è spedito a tutti i computer della rete Il pacchetto IP in uscita è messo in coda. Il protocollo ARP

75 75 prof. Guido Russo 75 Indirizzo IP Mittente223.1.2.1 Indirizzo MAC Mittente08-00-39-00-2F-C3 Indirizzo IP Destinatario223.1.2.2 Indirizzo Ethernet Destinatario Richiesta ARP Il protocollo ARP Il modulo ARP di ogni host, ricevuto il pacchetto, confronta l'indirizzo IP del destinatario con il proprio. Quello che riconosce il suo indirizzo IP spedisce una risposta direttamente all'indirizzo MAC mittente indicando il proprio indirizzo hardware Indirizzo IP Mittente223.1.2.2 Indirizzo MAC Mittente08-00-28-00-38-A9 Indirizzo IP Destinatario223.1.2.1 Indirizzo Ethernet Destinatario 08-00-39-00-2F-C3 Risposta ARP ARP RequestARP Replay Indirizzo IP Mittente223.1.2.1 Indirizzo MAC Mittente08-00-39-00-2F-C3 Indirizzo IP Destinatario223.1.2.2 Indirizzo Ethernet Destinatario08-00-28-00-38-A9

76 76 prof. Guido Russo 76 Il protocollo RARP Il protocollo RARP svolge il ruolo opposto ad ARP fisico logico Usato per sistemi diskless: X terminal, diskless workstation Al boot non conoscono il loro indirizzo IP

77 77 prof. Guido Russo 77 Il protocollo RARP Scenario tipo: A conosce il proprio indirizzo MAC, ma non conosce il proprio indirizzo IP L’host B (server RARP) conosce l’indirizzo IP di A Soluzione: RARP request sulla rete (in brodacast) B risponde con un messaggio RARP reply contenente l’indirizzo IP di A

78 78 prof. Guido Russo 78 Il protocollo RARP Il protocollo RARP è stato sostituito da altri protocolli più flessibili e potenti: BOOTP: BOOTstrap Protocol DHCP: Dynamic Host Configuration Protocol Utilizzati per assegnare dinamicamente gli indirizzi agli host di una rete IP

79 79 prof. Guido Russo 79 prof. Guido Russo 79 Protocolli di routing prof. G. Russo (grusso@unina.it) ing. A. Violetta (violetta@unina.it)©2008

80 80 prof. Guido Russo 80 prof. Guido Russo 80 Protocolli di routing e stack IP

81 81 prof. Guido Russo 81 prof. Guido Russo 81 IGRP prof. G. Russo (grusso@unina.it)©2012

82 82 prof. Guido Russo 82 Il protocollo IGRP e' un protocollo di routing sviluppato dalla CISCO a metà ‘80. Anche questo protocollo si basa sull'algoritmo distance vector Gli aspetti principali dell’ IGRP sono: Metriche piu' sofisticate Supporto del multipath routing Migliore stabilita' Inoltre IGRP utilizza una frequenza di update delle route di 90 s. Permette il routing all’interno dell’Autonomous System e non è standard Internet. IGRP

83 83 prof. Guido Russo 83 Le metriche in IGRP si basano su 4 parametri: B - Bandwidth D - Delay R - Reliability L – Load La variazione dei coefficienti permette di privilegiare determinati parametri a scapito di altri (es. banda piuttosto che ritardo) Bandwidth e Delay sono per default associati al tipo di portante fisico. Ad esempio: Ethernet -> B=10000, D=100 CDN 64 kbit/s -> B=64, D=2000 Viceversa, i parametri R e L possono essere difficili da quantificare, e possono variare con una frequenza piuttosto elevata. IGRP: Metriche

84 84 prof. Guido Russo 84 Il protocollo IGRP permette la gestione di più entry nella routing table, per la stessa destinazione. Il carico può essere ripartito tra le diverse route in funzione della metrica associata. Sono usati per il multipath routing solo quelle route con una metrica che rientra nel range definito dal gestore. IGRP: Multipath Routing

85 85 prof. Guido Russo 85 Per cio' che concerne la stabilita', IGRP utilizza le seguenti tecniche: Triggered Updates: Sono inviate ogni volta che la metrica associata ad una route varia di almeno il 10%. Questo evita che variazioni di poco conto (ad esempio nel carico di un link) provochino dei cambi di route. Split Horizon Hold Downs Route Poisoning Il path su cui si è verificato un aumento della metrica costo viene quindi marcato come inusabile e viene utilizzato solo se un successivo annuncio conferma il costo precedente. IGRP: Stabilità

86 86 prof. Guido Russo 86 IGRP: Timers I timer in IGRP hanno i seguenti valori di default: Update timer: 90s Invalid timer: 3 x update Flush timer: 7 x update Hold down timer: (3 x update) + 10s

87 87 prof. Guido Russo 87 prof. Guido Russo 87 EGRP prof. G. Russo (grusso@unina.it)©2012

88 88 prof. Guido Russo 88 Il protocollo EIGRP (Enhanced IGRP) e' stato sviluppato da CISCO a partire dalla release software 9.21 sulle basi del protocollo IGRP, rispetto al quale sono stati introdotti i seguenti miglioramenti: Convergenza più rapida Maschere a lunghezza variabile Minore traffico di routing Trasferimento di dati affidabile (Reliable Transfer Protocol) Supporto multiprotocollo Loop Free (ma si possono verificare dei Black Hole) EIGRP non prevede updates periodici; in effetti ogni router mantiene una copia delle routing table di tutti i router adiacenti ed i messaggi di scambio delle route devono quindi essere di tipo affidabile. In caso di cambio di una route si attiva il "Diffusing Update ALgorithm" (DUAL). Questo algoritmo e' basato sull’idea che non si può creare un loop, scegliendo un percorso migliore per giungere a destinazione, mentre è vero il contrario. EGRP

89 89 prof. Guido Russo 89 EGRP: L’algoritmo DUAL L'algoritmo è composto da due parti: Selezione del "vicino accettabile" Attivazione del "processo di diffusione“ Il principio di funzionamento dell'algoritmo e' il seguente: quando un router riceve un routing update verifica se il nuovo costo è minore del precedente e, in questo caso, aggiorna la route, propaga la nuove informazione ai vicini e termina. Il principio generale e' che un cambio di route di tipo "peggiorativo" viene preso in considerazione solo se proviene dallo stesso router che attualmente viene usato per raggiungere quella destinazione. Viceversa, se il nuovo costo è maggiore, verifica se esiste un "vicino accettabile"; se questo non esiste attiva il processo di diffusione che consiste nel propagare l’informazione "ho dei problemi di connettività su un link" ai vicini, fino a quando qualcuno è in grado di segnalare un nuovo cammino.

90 90 prof. Guido Russo 90 EGRP: L’algoritmo DUAL, il vicino accettabile Ogni router R mantiene per ogni destinazione D e per ogni suo router adiacente A le seguenti informazioni: d(A, D): distanza tra ogni router adiacente e la destinazione l(R, A): costo del link tra R ed A

91 91 prof. Guido Russo 91 Il router sceglie come percorso migliore quello che soddisfa la relazione: min [ l(R,X) + d(X,D) ], X è il particolare router adiacente che minimizza la relazione. Un router in Passive State è un router che ha una versione stabile della routing table. Si supponga, a questo punto, che il router R riceva da un router adiacente K un messaggio indicante che il costo del link l(K,A) è cambiato oppure che il costo verso una destinazione d(K,D) è cambiato. Per la regola del "costo minore verso una destinazione": se il nuovo costo verso la destinazione è minore del precedente in possesso di R, si adotta come next hop il router K e si aggiorna le route se il nuovo costo è superiore a quello in possesso di R: o Se K non è il router X (che era il precedente next hop verso D) scarta l’informazione o Se K è il router X applica la regola del "vicino accettabile“ Per essere sicuri che ci sia stato un cambio di route si aspetta quindi che il precedente next hop verso la destinazione si sia aggiornato. Solo a questo punto R decide di aggiornarsi applicando la regola del "vicino accettabile". EGRP: L’algoritmo DUAL, il vicino accettabile

92 92 prof. Guido Russo 92 EGRP: L’algoritmo DUAL e la regola del vicino accettabile Cerca tra tutti i router adiacenti A se esiste un router K tale che la sua distanza dalla destinazione D sia minore della distanza precedentemente in possesso di R: d(K,D) < d(R,D) Questo significa che il nuovo router K è in grado di raggiungere la destinazione D attraverso un percorso alternativo senza passare da R e quindi il costo d(K,D) non dipende dal costo d(R,D) Se non esiste alcun vicino adiacente che soddisfa la relazione il router R deve attivare il processo di "Diffusione"

93 93 prof. Guido Russo 93 EGRP: L’algoritmo DUAL, un esempio Si supponga che, nella rete illustrata in figura, venga interrotto il link C-D: A questo punto, B non è vicino accettabile. Se X riporta i costi in blu, non è vicino accettabile; se, viceversa ha i costi in rosso, allora è un vicino accettabile.

94 94 prof. Guido Russo 94 EGRP: Il processo di diffusione Il router R "congela" la sua routing table (e passa ad uno stato "attivo"). Se prima del guasto non vi erano loop, congelando la routing table ci si assicura che la situazione delle route non cambia e quindi non potranno esserci loop. Potrebbero esserci però delle perdite di connettività (black hole) momentanee. R imposta come attuale distanza da D il valore in base al nuovo costo di X: l(R,X) + d(X,D). Il router R emette una speciale forma di update ("query") verso tutti i suoi vicini (tranne X), "comunicando" questa nuova distanza da D. Il router Y che riceve l’update: Se il suo costo per raggiungere D è inferiore a quello comunicatogli da R, oppure se ha un "Vicino Accettabile" rimane in stato passivo e comunica la propria routing table a R (messaggio di Reply) Altrimenti entra in stato attivo ed inizia ad emettere la query di update verso tutti i vicini tranne quello da cui ha ricevuto la query Quando un router riceve le risposte ("Reply") alla sua query, da tutti i vicini ai quali l’aveva inviata, crea la nuova routing table e provvede eventualmente a generare a sua volta il Reply al router precedente.

95 95 prof. Guido Russo 95 EGRP: I pacchetti EIGRP definisce 6 tipi di messaggi: Hello - multicast; permettono di mantenere nota dei vicini attivi e di rilevare il down di un router Acknowledgement - unicast, come hello senza dati, con un numero di ack Update - unicast ad ogni vicino scoperto, multicast in caso di modifiche di topologia; trasporta un messaggio di aggiornamento delle route da parte di un router "passivo“ Query - multicast/unicast: viene inviata da un router in stato "attivo" ed attiva l’algoritmo di diffusione Reply - multicast/unicast: viene inviata in risposta ad una query Request - utilizzato per ottenere informazioni specifiche dai vicini (come in RIP)

96 96 prof. Guido Russo 96 EGRP: La neighbor table e la topology table Per ogni entry la neighbor table contiene: L'indirizzo del vicino (ricevuto con il pacchetto Hello) L'hold time (ricevuto con il pacchetto Hello) L'interfaccia Il round-trip-timer Le informazioni per il Reliable Transfer Protocol La topology table Contiene tutte le destinazioni annunciate dai router vicini. Per ogni entry contiene: Il destination address La lista del vicino che annuncia la destinazione e la metrica associata.

97 97 prof. Guido Russo 97 EGRP: route state e route tagging Routing state: Ogni entry della topology table e' caratterizzata da due stati: o Passive: quando il router non sta ricalcolando la destinazione o Active: durante l’aggiornamento Quando una destinazione è active, la corrispondente entry sulla routing table non può essere aggiornata. Route tagging: Una route sulla tabella di routing può essere: I: internal E: external Le route esterne sono taggate con Router ID, AS di destinazione, ID del protocollo esterno, Metrica di importazione, Tag definita dall’amministratore e bit di flag per il default route

98 98 prof. Guido Russo RIP prof. G. Russo (grusso@unina.it)©2012

99 99 prof. Guido Russo 99 RIP Il protocollo IGP (Interior Gateway Protocol) maggiormente utilizzato oggi su Internet e' senza dubbio il protocollo RIP. RIP e' l'acronimo di Routing Information Protocol ed e' un protocollo relativamente semplice appartenente alla famiglia di protocolli di tipo "distance vector". E' il protocollo di routing IP più vecchio ancora in uso : la versione IP esiste in due versioni, la seconda versione aggiunge nuove funzionalità a questo protocollo.

100 100 prof. Guido Russo 100 RIP: Caratteristiche del protocollo (1/5) Gli indirizzi presenti nelle tabelle RIP sono indirizzi Internet a 32 bit. Una voce (entry) nella tabella di routing puo' rappresentare un host, una rete o una sottorete. Questi prima separano la parte di rete dalla parte "sottorete + host" in funzione della classe dell' indirizzo (A, B o C). Se la parte "sottorete+host" e' nulla, l'indirizzo rappresenta una rete, viceversa puo' rappresentare sia una sottorete che un host. Al fine di discriminare tra queste 2 possibilita', e' necessario conoscere la subnet mask; se la parte host e' nulla, si tratta dell'indirizzo di una sottorete, di un host viceversa. Di default, RIP utilizza una metrica molto semplice: la distanza (hop count) e' il numero di links che vengono attraversati per raggiungere la destinazione. Questa distanza e' espressa come un numero intero variabile tra 1 e 15; 16 rappresenta una distanza infinita. RIP supporta sia i links punto a punto che le reti di tipo broadcast come Ethernet. I pacchetti RIP vengono impacchettati nei pacchetti UDP e IP; i processi RIP utilizzano la porta 520 sia per la trasmissione che per la ricezione. I pacchetti normalmente sono inviati in modalita' broadcast, questo significa che saranno ricevuti da tutti i routers connessi alla rete.

101 101 prof. Guido Russo 101 Normalmente i pacchetti vengono inviati ogni 30 secondi, o meno, nel caso di aggiornamenti alle tabelle. Se una route non viene aggiornata entro 3 minuti, la distanza viene fissata ad infinito (16) e l'entry verra' successivamente rimossa dalle tabelle. Allo scopo di evitare aggiornamenti troppo frequenti, questi vengono regolati da un timer casuale, che puo' variare tra 1 e 5 secondi. Come osservabile dal pacchetto, il protocollo RIP prevede un comando di richiesta e uno di risposta o aggiornamento. Normalmente RIP opera in risposta, a intervalli regolari di 30 secondi, o in seguito a richieste di aggiornamento delle tabelle di routing. Il processo RIP, in seguito alla ricezione di un messaggio di risposta, aggiorna la propria tabella. Ogni voce della tabella sara' al limite composta da : Indirizzo di destinazione Metrica associata con la destinazione Indirizzo del "next router" Un "recently updated" flag Numerosi timers RIP: Caratteristiche del protocollo (2/5)

102 102 prof. Guido Russo 102 Processando le risposte in arrivo, il router esaminera' le voci una ad una ed eseguira' una serie di checks, ad esempio verifichera' che l'indirizzo sia valido ed appartenente ad una delle classi A, B o C, che il numero identificante la rete non sia 127 (loop-back) o zero (ad eccezione dell'indirizzo di default 0.0.0.0), che la parte host non sia un indirizzo broadcast e che la metrica non sia maggiore di infinito. In ogni caso voci non corrette vengono ignorate. Se la metrica in arrivo risulta diversa da infinito, viene incrementata di 1 per il successivo hop, quindi la tabella di routing viene scandita per una voce corrispondente alla destinazione e viene quindi eseguito il generico processo "distance vector”. RIP: Caratteristiche del protocollo (3/5)

103 103 prof. Guido Russo 103 Se la metrica o il next router cambiano, l'entry viene marcata come "aggiornata". Un messaggio di risposta viene inviato ad intervalli regolari di 30 secondi o puo' essere attivato in seguito ad un aggiornamento alle tabelle di routing. La risposta non dovrebbe essere inviata immediatamente in seguito alla ricezione dell' aggiornamento ma, piuttosto, dopo un piccolo intervallo random, variabile tra 1 e 5 secondi. Questo permette ai relativi aggiornamenti provenienti dai nodi vicini di venire riassunti nel successivo messaggio, limitando cosi' il carico di rete. Un messaggio di risposta separato viene preparato per tutte interfacce connesse. L'informazione puo' variare in seguito al processo di split horizon. Il messaggio normalmente include le coppie indirizzo e metrica per tutte le voci della tabella ma, se il messaggio e' inviato come un aggiornamento, non deve necessariamente includere tutte le voci, ma solo quelle che sono state aggiornate rispetto all'ultima trasmissione. Il massimo formato del pacchetto e' 512 bytes, che permette di avere sino a 25 voci per messaggio. Nel caso di un maggiore numero di voci, RIP inviera' piu' pacchetti. L'indirizzo sorgente del messaggio dovrebbe sempre coincidere con l'indirizzo IP associato con l'interfaccia alla quale il messaggio e' inviato. RIP: Caratteristiche del protocollo (4/5)

104 104 prof. Guido Russo 104 I processi RIP possono anche ricevere messaggi di richiesta. Una richiesta viene normalmente inviata quando un router inizia le operazioni allo scopo di ottenere dai suoi vicini il valore iniziale delle tabelle di routing. Esistono 2 possibili forme di richiesta, quella per una lista completa delle tabelle di routing o quella per sole specifiche routes. Una delle richieste di lista completa delle tabelle di routing si ha specificando solo le coppia indirizzo + metrica per l'indirizzo di default 0.0.0.0 con una metrica pari ad infinito. In questo caso, il router replichera' con una tipica risposta, simile a quelle inviate periodicamente nelle normali operazioni del protocollo, incluso il processo di split horizon. Qualsiasi altra forma di richiesta prevede la lista delle sole voci specificate. La risposta verra' inviata in modalita' point to point al richiedente e conterra' una copia esatta dell'informazione di distanza nelle tabelle di routing, senza eseguire il processo di split horizon. Questa forma di richiesta ha poco significato per le normali operazioni, mentre ne assume molto per scopi di debugging. RIP: Caratteristiche del protocollo (5/5)

105 105 prof. Guido Russo 105 RIP: Timers Il protocollo RIP gestisce i seguenti timers: Routing update timer (default 30 s): intervallo di tempo per l’invio degli annunci Route invalid timer (default 90 s): intervallo di tempo dopo il quale una route è dichiarata irraggiungibile (distanza posta ad infinito) Route flush timer (default 270 s): intervallo di tempo dopo il quale la route è cancellata dalla routing table Triggered updates: sono inviate con un ritardo casuale compreso tra 1 e 5 secondi, per evitare intasamenti della rete e per far si' di poter eventualmente comunicare piu' cambi di route con un messaggio solo.

106 106 prof. Guido Russo 106 RIP: Stabilità Al fine di assicurare una buona stabilita' e, quindi, di evitare situazioni di loop e, di conseguenza, possibili congestioni della rete, RIP utilizza una serie di tecniche, di seguito descritte: Triggered updates: si tratta di messaggi di routing update fatti anzitempo, causati da variazioni di connettività. Nel caso vengono inviate solo le informazioni relative alle route che sono cambiate. Evitano alla rete di trovarsi in uno stato incoerente, fino allo scadere del Routing Update Timer. Hop Count Limit: fa si che le destinazioni più distanti di 15 siano considerate irraggiungibili e permette quindi di evitare il "count to infinity problem". Hold Downs: Il router mette in quarantena le route che utilizzavano il link guasto. Split Horizon: "Se A raggiunge la destinazione X attraverso B, non ha senso per B cercare di raggiungere X attraverso A". Previene il loop tra 2 nodi ma non elimina i loop con 3 nodi Split Horizon with Poisonous Reverse: Migliora lo Split Horizon puro. Nel momento in cui si verifica una variazione di route, lo Split Horizon semplice non comunica piu' la route (che continua pero' a valere sino alla scadenza del timer). Le route non più valide non vengono rimosse dagli annunci ma sono annunciate con metrica 15 (infinity)

107 107 prof. Guido Russo 107 RIP: Il pacchetto Command : può avere due valori (1 se è un messaggio di richiesta o 2 se è messaggio di aggiornamento). Version : uguale a 1 per indicare la versione 1 del protocollo. Address Family Identifier : è sempre uguale a 2 per il protocollo IP IP Address : è l' indirizzo di destinazione : può essere una rete o una sottorete Metric : è l' hop count e puo' assumere un valore compreso tra 1 e 16. Tutti i campi sono espressi come interi a 32 bit

108 108 prof. Guido Russo 108 RIP versione 2: routing per subnet Al di fuori della sottorete, RIP versione 1 non e' in grado di interpretare la subnetmask e, quindi, di distinguere tra una sottorete e un host. RIPversione 2 permette invece l'instradamento anche al di fuori della sottorete, trasmettendo l'informazione della netmask in parallelo all'indirizzo. La maschera viene passata in uno dei campi "must be zero" di RIP versione 1 che, di conseguenza, e' in grado di ignorare le entries RIP versione 2.

109 109 prof. Guido Russo 109 RIP versione 2: Authentication RIP-1 non e' un protocollo sicuro. Qualsiasi host che invia pacchetti dalla porta UDP 520 verrebbe considerato un router dai propri vicini, mentre invece solo un utente privilegiato dovrebbe avere il diritto di utilizzare questa porta. A questo scopo, RIP-2 prevede una procedura di autenticazione che specifica che la prima entry in un pacchetto puo' essere rimpiazzata da un "authentication segment". Il pacchetto conterra' quindi l'header iniziale a 32 bit, seguito da un segmento di autenticazione composto da : Il campo AFI settato a oxFFFF Un campo "Authentication Type" (2 bytes) che identifica il tipo di algoritmo di autenticazione in uso. 16 bytes di dati di autenticazione ed infine da 24 coppie di campi destinazione-metrica. Alla ricezione del pacchetto, il router RIP-2 verifica la presenza dei campi di autenticazione e, in caso affermativo, ne rivela l'origine. Esistono svariati algoritmi di autenticazione, definiti attraverso il campo Authentication Type; in comune vi e' la protezione dei messaggi di aggiornamento attraverso una password criptata.

110 110 prof. Guido Russo 110 RIP versione 2: Next hop Vi sono numerosi casi dove 2 autonomous system condividono lo stesso cavo di rete (es. FDDI, Ethernet), specialmente quando questo cavo e' utilizzato come backbone per connettere reti diverse. Questo puo' generare dei problemi. Vediamo l'esempio della rete in figura:

111 111 prof. Guido Russo 111 RIP versione 2: Next hop Per inviare un pacchetto alla destinazione F del dominio Y, il router A del dominio X invia il pacchetto a D, che e' la nominale interfaccia della rete Y verso la rete X. Il nodo D conoscera', attraverso le tabelle di routing del dominio Y che la strada migliore per F passa attraverso il router E e quindi ritrasmettera' il pacchetto. In pratica il pacchetto viaggia 2 volte sulla stessa rete : da A a D e poi da D ad E: questo non e' chiaramente ottimale. RIP-2 risolve questo problema introducendo il concetto di "next-hop": il router D sa che i pacchetti verso F passano attraverso il router E e quindi, quando invia un aggiornamento ad F non invia solamente la coppia indirizzo-metrica ma anche l'indicazione "next hop", dicendo ai routers come A che " la distanza verso F e' f, ma la strada migliore non e' tramite me (D) ma attraverso E". In questo modo, i routers come A saranno in grado di indirizzare direttamente i pacchetti verso E, evitando l'extra hop attraverso D.

112 112 prof. Guido Russo 112 RIP versione 2: Multicasting RIP-1 utilizza un indirizzo broadcast per inviare avvisi di routing a "tutti i pacchetti su un cavo". Come risultato, questi pacchetti saranno ricevuti non solo dai routers ma da tutti gli host su quel cavo. Non esiste un modo pratico di programmare un'interfaccia di rete Ethernet o Token Ring per filtrare tutti i pacchetti broadcast; un simile filtraggio si puo' ottenere attraverso un indirizzo MAC multicast, che verra' rilevato solo dai routers. RIP-2 non definisce esattamente un indirizzo MAC ma raggiunge lo stesso scopo definendo l'indirizzo IP di classe D 224.0.0.9 al fine di essere utilizzato per multicast periodici. Le operazioni in modalita' multicast tuttavia compromettono la compatibilita' con RIP-1 per cui sono state definite 3 modalita' operative : Invio di pacchetti RIP-1 in modalita' broadcast Invio di pacchetti RIP-2 in modalita' broadcast Invio di pacchetti RIP-2 in modalita' multicast La prima modalita' garantisce piena compatibilita' ma non porta vantaggi; la seconda modalita' corrisponde alla transizione ed e' utilizzata finche' alcuni routers nell' autonomous system rimangono "solo RIP-1". Questi routers vedranno i pacchetti RIP-2 ed occasionalmente ne scarteranno alcune parti, ad esempio le informazioni sull'autenticazione o sul subnet. Infine, la terza modalita' corrisponde alla fase finale, quando tutti i routers sono stati aggiornati a RIP-2.

113 113 prof. Guido Russo 113 RIP versione 2: L'header di RIP-2 e' a 32 bit, seguito da un set di route entries di 20 bytes. Le principali differenze tra RIP-1 e RIP-2 e' il formato delle route-entries. Vengono mantenuti i campi "Address Family Identifier (AFI), "IP address" e "Metric" con lo stesso significato visto per il pacchetto RIP-1, mentre vengono definiti una serie di nuovi campi : Route Tag : è un campo che il RIP non usa direttamente, ma viene utilizzato da altri protocolli di routing (EGP, BGP) per scambiare informazioni SubNet Mask : è la maschera che identifica la rete e la sottorete dell' IP Address Next Hop : e' un campo utilizzato per eliminare i "double hops" sulla stessa sottorete Pacchetto RIP V2 Pacchetto RIP V1

114 114 prof. Guido Russo 114 prof. Guido Russo 114 OSPF prof. G. Russo (grusso@unina.it) ing. A. Violetta (violetta@unina.it)©2008

115 115 prof. Guido Russo 115 prof. Guido Russo 115 Introduzione OSPF e' l'acronimo di Open Shortest Path First;. Questo è uno dei protocolli di instradamento più diffusi, che gestisce le tabelle di instradamento di una rete IP con il metodo del Link State, a differenza di RIP che e' invece basato sull'algoritmo distance vector. OSPF utilizza il concetto di gerarchia, per cui permette di gestire reti di dimensioni notevoli. Un AS viene suddiviso in aree, le quali contengono un gruppo di reti contigue. Questo garantisce un basso utilizzo di CPU e memoria. OSPF e' un protocollo sviluppato dalla IETF, e' utilizzato su Internet. OSPF e' stato progettato per : Separare hosts e routers Utilizzo su reti broadcast, quali Ethernet, Token Ring o FDDI Utilizzo su reti non broadcast, quali X.25 o ATM Suddividere grandi reti in aree

116 116 prof. Guido Russo 116 prof. Guido Russo 116 Metodo link state Il metodo Link State è un tipo di algoritmo in cui la topologia dell'intera rete e tutti i costi dei collegamenti sono noti. Ogni nodo della rete acquisisce informazioni sullo stato dei collegamenti adiacenti ed inoltra queste informazioni a tutti gli altri nodi della rete tramite un Pacchetto Link State trasmesso tramite un algoritmo di link state broadcast. Quando un nodo riceve un Pacchetto Link State confronta il numero di sequenza del pacchetto con quello dell'ultimo pacchetto ricevuto da quel nodo: se il numero di sequenza è più recente di quello memorizzato, il nuovo pacchetto viene memorizzato e inoltrato a tutti i nodi collegati, eccetto quello da cui è stato ricevuto; se il numero di sequenza è invariato il pacchetto viene scartato; se il numero di sequenza è meno recente di quello memorizzato, quest'ultimo viene trasmesso al nodo mittente. Ogni nodo esegue generalmente una variante dell' Algoritmo di Dijkstra, per determinare il cammino minimo per raggiungere ogni nodo della rete.

117 117 prof. Guido Russo 117 prof. Guido Russo 117 Vantaggi e svantaggi metodo link state L'utilizzo di un algoritmo di routing Link State presenta diversi vantaggi: può gestire reti composte da un gran numero di nodi; converge rapidamente al cammino minimo; difficilmente genera cammini ciclici; è facile da comprendere poiché ogni nodo ha la mappa della rete; Il principale svantaggio di un algoritmo Link State è la complessità di realizzazione, anche dovuta alla notevole capacità di memoria ed elaborazione richiesti.

118 118 prof. Guido Russo 118 prof. Guido Russo 118 Separare hosts e routers Molto spesso, nelle reti moderne, gli host IP sono connessi a reti locali, ad esempio una rete Ethernet. Se si applica strettamente il modello Link State, dovremmo descrivere, attraverso un record di link state la relazione tra ciascun host ed il router. OSPF permette una semplificazione, basata sul modello “subnet" di IP. Poiche' tutti gli hosts della rete appartengono ad una singola sottorete IP, e' sufficiente inviare un messaggio sul link tra il router e la sottorete. Nella terminologia OSPF, questa e' una speciale variante di "router link" chiamata "link to a stub network". Il link verso un vicino e' identificato dall'indirizzo IP del vicino stesso, mentre quello verso una "stub network" e' identificato dal suo numero di rete o sottorete.

119 119 prof. Guido Russo 119 prof. Guido Russo 119 Reti Broadcast Le reti locali, come Ethernet o Token Ring, offrono due tipi di servizi: Piena connettività - ogni stazione puo' inviare un pacchetto a qualsiasi altra stazione Capacità broadcast - una stazione puo' inviare un pacchetto a tutte le altre stazioni (broadcast) o a tutte le stazioni facenti parte di un gruppo (multicast) Il problema da risolvere e' il seguente: dati N routers su una rete locale, e' possibile stabilire che esistono N*(N-1)/2 adiacenze, tali che ogni router deve quindi inviare N-1 messaggi verso gli altri routers vicini piu' uno verso la rete (stub network) per un totale di N*N messaggi. OSPF prova a ridurre a solo N adiacenze designando uno dei router (Designed Router o DR) in modo tale che i rimanenti routers stabiliscano adiacenze solo con il router designato.

120 120 prof. Guido Russo 120 prof. Guido Russo 120 Reti Broadcast Il primo passo è eleggere il router designato. Questa elezione e' incorporata nella procedura Hello. Dopo l'elezione, gli altri routers porteranno le proprie adiacenze verso il router designato o sincronizzeranno il proprio database. La presenza del router designato serve inoltre per : Ridurre il numero dei record di link state nel database, in quanto la rete broadcast potra' essere rappresentata da un set di links tra i routers ed un nodo virtuale. Semplificare la procedura di flooding; quando un router deve inviare una LSA (Link State Advertisment), la trasmette solo al router designato. Se si tratta di una nuova LSA, il router designato diffondera' il link state a tutte le proprie interfacce e alla rete. Tuttavia, se il DR cade, tutti i routers apparirebbero disconnessi dalla rete, sebbene questa sia, a tutti gli effetti, ancora operativa. Risulta quindi indispensabile eleggere al piu' presto un nuovo DR. OSPF ovvia questo problema, con l'elezione di un "Backup Designed Router o BPR", contemporaneamente all'elezione del DR. Tutti i routers creeranno quindi le proprie adiacenze con entrambi i routers DR e BDR; se il DR cade, l'anomalia verra' immediatamente rilevata dal protocollo Hello, il BDR diventera' immediatamente DR ed un nuovo BDR verra' eletto. Tutti i routers stabiliranno un adiacenza con il nuovo BDR.

121 121 prof. Guido Russo 121 prof. Guido Russo 121 Reti NON Broadcast Reti come X.25, Frame Relay e ATM, sebbene con profonde differenze, in termini di velocita' e servizi, sono accumunate da un aspetto: sono tutte quante reti non broadcast. Ci sono 2 modi di utilizzare questi tipi di reti: Utilizzare un set di circuiti virtuali, usati come molti link point-to-point. Questo e' piuttosto semplice da progettare, ma difficile da mantenere. Ogni circuito virtuale e' visto come una sottorete indipendente e quindi un indirizzo differente viene assegnato alla fine di ciascuno di questi circuiti. Se vogliamo la piena connettivita', dobbiamo installare N*(N-1)/2 circuiti; le informazioni di routing vengono diffuse su tutti i circuiti, con un aggravio dei costi per le reti "pay-per-volume" come ATM o X.25. In effetti, nel caso si verifica l'effetto N*N messaggi descritto precedentemente. Applicare la stessa gestione utilizzata per le reti broadcast e quindi eleggere un router designato ed un backup. OSPF utilizza questa seconda scelta e quindi le informazioni di routing verranno inviate solo attraverso tali routers. Il fatto di avere un DR non modifica di fatto il routing; i circuiti virtuali saranno stabiliti tra qualsiasi coppia di router ed i pacchetti IP saranno inviati direttamente su questi circuiti virtuali. Tuttavia, questi circuiti verranno stabiliti solo "su domanda". I soli circuiti che verranno utilizzati quasi permanentemente dagli aggiornamenti sono quelli che collegano i routers ordinari al DR e al BDR.

122 122 prof. Guido Russo 122 prof. Guido Russo 122 La differenza principale tra reti broadcast e non-broadcast deriva dall'assenza di qualsiasi facility multicast nelle reti non-broadcast. Tutti i pacchetti di advertisment dovranno essere inviati in modalita' point-to-point. I pacchetti Hello, utilizzati per il processo di elezione prevederanno una lista di tutti i router sulla rete non-broadcast. Il DR invia a tutti una LSA spedendo una copia separata del pacchetto a ciascun router. Quando un router diffonde una LSA, lo fa inviando una copia al DR ed un'altra al BDR. Differenza tra reti Broadcast e reti NON Broadcast

123 123 prof. Guido Russo 123 prof. Guido Russo 123 Il formato del database, la durata del calcolo della rotte ed il volume dei messaggi aumenta con l'aumentare della rete. Se questa diventa molto grande, tutti questi fattori diventano eccessivi; la memoria richiesta e' troppa, i calcoli richiedono lunghi tempi ed il carico della rete non e' più sopportabile. La risposta a questo problema e' il "routing gerarchico" ossia la suddivisione della rete in un set di parti indipendenti connesse attraverso un "backbone". In OSPF le parti indipendenti sono chiamate aree e la parte superiore e' chiamata "Backbone area". Ciascuna area si comporta come una rete indipendente; il database include solo lo stato dei link dell'area, il protocollo di flooding si ferma ai confini dell'area ed i routers calcolano solo le rotte all'interno dell'area. Il costo del protocollo di routing e' cosi' proporzionale al formato dell'area e non a quello della rete. Allo scopo di connettere l'intera rete, alcuni routers appartengono a piu' aree - tipicamente a un'area a basso livello e all'area di backbone. Questi routers sono chiamati "area-border routers" (ABR): ci deve essere perlomeno un ABR in ciascun area, per connetterla al backbone. Gli ABR mantengono numerosi database, uno per ciascuna area alla quale appartengono ed ogni area include un set di sottoreti IP. Suddivisione in aree multiple

124 124 prof. Guido Russo 124 prof. Guido Russo 124 Oltre agli ABR, possiamo distinguere ancora 2 tipologie di router: Internal router : sono i router che gestiscono il traffico all'interno della stessa area Autonomous System Boundary Router (ASBR) : sono gateway per il traffico esterno e convertono i percorsi nel dominio OSPF appresi da altri protocolli come BGP e EIGRP. Cosi' come per i router, anche per le aree ed in funzione della destinazione del traffico, oltre alla gia' citata backbone area, possiamo distinguere ulteriori tre tipologie: Intra-area : i pacchetti vengono scambiati tra router appartenenti alla stessa area Inter-area : i pacchetti vengono scambiati tra router appartenenti ad aree diverse Stub-area : i pacchetti contenenti informazioni che provengono dall'esterno dell'Autonomous System non vengono trasmessi in queste aree. Suddivisione in aree multiple

125 125 prof. Guido Russo 125 prof. Guido Russo 125 Suddivisione in aree multiple Nella seguente figura, viene illustrato un esempio di rete composta da 3 aree (delle quali una e' l'area di backbone) e da una serie di router interni, ABR e ASBR:

126 126 prof. Guido Russo 126 prof. Guido Russo 126 Il calcolo delle rotte Il database link state e' utilizzato per calcolare le routes della rete, che devono essere nuovamente calcolate dopo ogni modifica della topologia. L'algoritmo SPF viene utilizzato per calcolare il percorso piu' breve ed i percorsi uguali dal router locale OSPF verso ciascuna destinazione. Da questo calcolo, il router deriva il next hop per la destinazione, ossia il router successivo al quale inviare i dati ed il link che dovrebbe essere utilizzato per raggiungerlo. Dopo aver calcolato la tabella, il processo OSPF passa le informazioni al processo IP. Vengono prima calcolate le routes per il "default TOS", il TOS 0. Se il router e' in grado di espletare il TOS routing, dovrebbe quindi calcolare le routes per ciascun altro TOS. TOS e' un campo del protocollo IP denominato "Type Of Service", attualmente lungo 5 bits, che OSPF attualmente utilizza per definire delle metriche, con la seguente codifica :

127 127 prof. Guido Russo 127 prof. Guido Russo 127 Decimal EncodingBinary EncodingRFC-1349 TOS values 000000Normal service 200010Minimize monetary cost 400100Maximize reliability 801000Maximize throughput 1610000Minimize delay Il calcolo delle rotte Ad esempio, se un pacchetto IP ha il campo TOS settato a 01000, dovrebbe essere instradato in accordo alle routes calcolate per la metrica numero 8 (maximize throughput). I routers che non supportano il TOS routing settano il bit "support-of-TOS" a 0 nel loro LSA e, onde evitare possibili situazioni di destinazioni irraggiungibili che potrebbero verificarsi per routers non zero TOS, questi instraderanno sempre i pacchetti in accordo al TOS 0.

128 128 prof. Guido Russo 128 prof. Guido Russo 128 I routers OSPF comunicano tramite il protocollo OSPF, che viene direttamente imbustato in IP ed è, a sua volta, composto da tre sotto-protocolli: Hello Exchange Flooding Quest'ultimo, e' utilizzato per gli aggiornamenti di routing e per la gestione dell' "età" dei records del database, tutti i pacchetti condividono un unico header comune. I sotto-protocolli di OSPF

129 129 prof. Guido Russo 129 prof. Guido Russo 129 L’header comune Version: Indica la corrente versione di OSPF, attualmente 2 Type: il tipo di pacchetto OSPF trasportato Packet Lenght : numero di bytes del pacchetto Router_ID: indirizzo IP scelto per identificare il router Area_ID: numero che identifica univocamente l’area all’interno del dominio OSPF; spesso viene scelto un indirizzo IP. Un valore 0 identifica il backbone. Checksum: Viene calcolato sull'intero pacchetto OSPF, con l'esclusione degli 8 bytes del campo Authentication. Authentication Type: Identifica l'algoritmo di identificazione; ne sono definiti tre tipi: o 0: No authentication o 1: Simple authentication o 2: Cryptographic authentication

130 130 prof. Guido Russo 130 prof. Guido Russo 130 Nel caso del "simple authentication", il campo Authentication prevede una password di 8 caratteri. L'amministratore di rete puo' definire una password diversa per ciascuna connessione punto-punto o per ciascuna rete. Nonostante non sia un ottimo metodo di autenticazione, questa e' comunque una buona garanzia contro possibili errori, ad esempio di configurazione. La procedura di "cryptographic authentication" ricorda molto la procedura di autenticazione del protocollo RIP; quando questa procedura viene utilizzata, gli 8 bytes del campo Authentication vengono ridefiniti per contenere una chiave, un campo lunghezza e un numero di sequenza. La chiave identifica la password segreta, utilizzata per la procedura di autenticazione e l'algoritmo di autenticazione. L'algoritmo standard e' denominato MD5; quando viene utilizzato questo algoritmo, il mittente calcola un checksum MD5 sulla concatenazione dei pacchetti OSPF, chiave segreta, campo lunghezza producendo un messaggio di sommario lungo 16 bytes. Questo messaggio viene appeso al pacchetto OSPF e viene considerato come un "rimorchio" e non una parte integrante del pacchetto: la sua lunghezza non viene inclusa nella lunghezza del pacchetto OSPF. Alla ricezione, il ricevente esegue lo stesso calcolo, basato sul segreto associato alla chiave e compara il risultato al sommario ricevuto; se i valori sono uguali, il pacchetto e' autentico, altrimenti il pacchetto verra' scartato. L’header comune

131 131 prof. Guido Russo 131 prof. Guido Russo 131 Il sotto-protocollo HELLO Il sotto-protocollo "Hello" viene utilizzato per due scopi ben precisi: Verifica dell'operativita' dei link Elezione del "Designed Router" e del "Backup Designed Router" nelle reti broadcast e non broadcast. I pacchetti "Hello" vengono trasmessi solo tra nodi vicini e mai propagati. Il campo "Type" dell‘ header comune vale 1 per questo protocollo. Il formato del pacchetto e' il seguente:

132 132 prof. Guido Russo Il sotto-protocollo HELLO Network Mask: netmask associata all’interfaccia da cui viene emesso il pacchetto Hello Interval: comunica ogni quanti secondi viene emesso un pacchetto di Hello Options: vengono definiti solo gli ultimi 2 bit o E: se il router è in grado di inviare e ricevere route esterne; è pari a 0 se l’interfaccia appartiene ad una stub area o T: se il router è in grado di gestire il routing TOS Priority: serve per l’elezione del Designed Router e viene settato da management. Ciascun router e' configurato con una priorita', che puo' variare tra 0 e 255. Viene eletto DR il router che ha la priorità più alta. Dead_Interval: intervallo di tempo di validità dei pacchetti di Hello ricevuti. DR, BDR: indirizzo del Designated Router - BDR (0 se non sono ancora stati definiti) Neighbor: lista di router_ID da cui è stato ricevuto il pacchetto di Hello negli ultimi Dead_Interval secondi Per quanto concerne la verifica dell'operativita' del link, questo è dichiarato operativo se i pacchetti possono scorrere in entrambe le direzioni ed entrambi i router hanno lo stesso valore del bit E.

133 133 prof. Guido Russo 133 prof. Guido Russo 133 Il sotto-protocollo EXCHANGE Quando due routers OSPF stabiliscono la connessione su di un link punto a punto, devono sincronizzare i propri database; sui link di una rete questo accade tra i routers ed il DR o il BDR. La sincronizzazione iniziale avviene tramite il protocollo "exchange"; di seguito sara' il protocollo flooding ad occuparsi di mantenere sincronizzati i database. Il protocollo Exchange e' asimmetrico; il primo step del protocollo consiste nel selezionare un "master" e uno "slave" e solo di seguito i due routers si scambieranno la descrizione dei propri database. A questo preciso scopo il protocollo utilizza il "Database Description Packet", di seguito riportato e per il quale il campo "Type" dell'header comune assume il valore 2:

134 134 prof. Guido Russo 134 prof. Guido Russo 134 Il sotto-protocollo EXCHANGE Options: e' equivalente al pacchetto Hello o E: se il router è in grado di inviare e ricevere route esterne; è pari a 0 se l’interfaccia appartiene ad una stub area o T: se il router è in grado di gestire il routing TOS I: Initialize M: More MS: Master - Slave (1= Master) DD SN: numero di sequenza del pacchetto DD I campi successivi (che possono essere ripetuti) sono la descrizione dell’header di un LSA, ed hanno quindi lo stesso significato.

135 135 prof. Guido Russo 135 prof. Guido Russo 135 Il sotto-protocollo EXCHANGE: La procedura Il router che vuole iniziare la procedura emette un pacchetto vuoto "Database Description" con I, M e MS settati ed il numero di sequenza settato ad un valore arbitrario. L’altro router risponde emettendo un pacchetto DD di "Acknowledgment", con lo stesso numero di sequenza ed i bit I ed M settati a 1 e MS a 0 (slave). Il primo router può quindi iniziare ad inviare le descrizioni da lui possedute ed emette pacchetti DD con I settato a 0, M ed MS settati ad 1 (eccetto M per l’ultimo pacchetto). I pacchetti saranno numerati in sequenza ed inviati uno alla volta. Lo slave risponde ad ogni pacchetto con un DD Acknowledgment che riporta la sua descrizione del database, caratterizzato dallo stesso numero di sequenza ma con il bit MS settato a 0. Se il master non riceve l’Ack entro un certo intervallo ri-invia il pacchetto originale DD. Se viceversa e' lo slave che non ha finito di trasmettere le sue descrizioni: In corrispondenza del pacchetto del Sender con M=0 emette un pacchetto DD con M = 1 Il master continua ad inviare pacchetti vuoti con M = 0, ed accettare gli Ack (pieni) che gli arrivano dallo slave La procedura di sincronizzazione termina quando anche lo Slave invia un pacchetto con M = 0

136 136 prof. Guido Russo 136 prof. Guido Russo 136 Durante lo scambio sia il master che lo slave controllano di avere l’LSA inviato dalla controparte, e questo non deve essere più vecchio di quello ricevuto. Se questo non è verificato, l’LSA viene inserito nella lista degli LSA da richiedere. Al termine della procedura di exchange la richiesta verra' effettuata tramite i pacchetti di Link State Request: Il sotto-protocollo EXCHANGE: La procedura Questi pacchetti, identificati dal campo "Type" dell‘header comune con il valore 3, vengono inviati alla fine dei DD se sono stati rilevati LSA da sincronizzare. Richiedono all’altro router di trasmettere il LSA completo corrispondente ai campi Link_State_Type, Link_State_ID e Advertising_Router indicati. Possono essere fatte piu' richieste insieme; i tre campi sopra elencati possono essere ripetuti piu' volte in un pacchetto OSPF. Gli LSA richiesti sono inviati attraverso il protocollo di flooding.

137 137 prof. Guido Russo 137 prof. Guido Russo 137 Il sotto-protocollo FLOODING Il protocollo flooding viene utilizzato per diffondere (processo di forwarding) a tutta la rete il nuovo stato di un link. Questi aggiornamenti vengono inviati, attraverso il pacchetto di "Link State Update", nel caso di: un cambiamento di stato del link allo scadere di un timer (normalmente 60 min) Il pacchetto "Link State Update", che caratterizza il campo "Type" dell‘header comune con il valore 4, e' di seguito riportato: Number of Advertisement: è il numero di LSA che vengono trasportati dal pacchetto in esame in quanto e' possibile trasportare più LSA LSA: è il Link State vero e proprio

138 138 prof. Guido Russo 138 prof. Guido Russo 138 Il sotto-protocollo FLOODING Gli LSA del pacchetto Link State Update vengono normalmente riconosciuti, attraverso una conferma dell'avvenuta ricezione, con il pacchetto di Link State Acknowledgment, che caratterizza il campo "Type" dell‘ header comune con il valore 5, e che e' di seguito riportato: Ciascun pacchetto di acknowledgment contiene una serie di campi con lo stesso formato del pacchetto di "database description" del protocollo di exchange. A tutti gli effetti, il Link State Advertisment (LSA) e' l'effettiva struttura dati che trasporta le informazioni ed e' la corrispondente del LSP visto per l'algoritmo teorico Link State.

139 139 prof. Guido Russo 139 prof. Guido Russo 139 BGP prof. G. Russo (grusso@unina.it) ing. A. Violetta (violetta@unina.it)©2008

140 140 prof. Guido Russo 140 BGP (Border Gateway Protocol) e' un protocollo di routing tra domini, correntemente utilizzato sul backbone di Internet ed e' in pratica il successore del protocollo EGP (Exterior Gateway Protocol). In effetti questo protocollo viene usato soprattutto su Internet dove diversi AS sono collegati a questa grande rete attraverso strutture chiamate ISP (Internet Service Provider). Il protocollo BGP costruisce un grafo di autonomous system basato sulle informazioni che si scambiano i router : questo grafo viene chiamato anche albero in cui ciascun AS viene identificato con un numero univoco. La connessione tra due AS si chiama percorso e una collezione di percorsi forma a sua volta un percorso che viene utilizzato per raggiungere la destinazione BGP

141 141 prof. Guido Russo 141 Affidabilita' della connessione: i router adiacenti comunicano attraverso una connessione di livello trasporto (TCP), che ne garantisce l'affidabilita'. Protocollo Path Vector (variante del protocollo Distance vector) Per ogni destinazione IP è fornita la sequenza di Autonomous System da attraversare. Le destinazioni IP sono espresse in termini di prefissi di indirizzo I router possono aggregare le informazioni di routing ricevute prima di propagarle. Questo consente un beneficio in termine di diminuzione del traffico di routing e di diminuzione delle dimensioni delle basi dati nei router. Ogni router ha un algoritmo (Decision Process) per fare una classifica dei percorsi alternativi. BGP : caratteristiche del protocollo

142 142 prof. Guido Russo 142 Una delle principali criticità del protocollo Distance Vector consiste nella possibilità che si verifichino fenomeni di non convergenza, quando non viene sempre scelto, da tutti i nodi, il percorso più breve. Il protocollo Path Vector, che e' comunque una variante dell’algoritmo distance vector, permette la memorizzazione dell’intero percorso tra due reti. Ne consegue che è immediato il riconoscimento dei loop. Inoltre, il path vector non obbliga tutti gli AS ad usare la stessa metrica (in ogni AS ci possono essere esigenze diverse e quindi metriche diverse). BGP : Path vector

143 143 prof. Guido Russo 143 Uno stesso router puo' ricevere annunci che dichiarano alcune destinazioni raggiungibili attraverso percorsi diversi. Si possono avere: Percorsi maggiormente specifici: validi per un sotto insieme di destinazioni più ristretto. Sono caratterizzati da un prefisso di indirizzo più lungo. Percorsi meno specifici: validi per un sopra insieme di destinazioni. Sono caratterizzati da un prefisso di indirizzo piu' corto. I router devono scegliere per default la route maggiormente specifica. Se un router sceglie la route meno specifica lo segnala quando la propaga. In questo modo si notifica che non è garantito che i pacchetti seguiranno il percorso annunciato. Il router da cui arrivano le route sovrapposte, invierà alcuni pacchetti sul percorso della route più specifica e altri su quella meno specifica (l’unica annunciata). Inoltre, la route non può essere disaggregata per cui i router che ricevono l’annuncio non possono a loro volta annunciare percorsi differenti per sottoinsiemi delle destinazioni. BGP : Route sovrapposte

144 144 prof. Guido Russo 144 Per la descrizione di un percorso verso una destinazione vengono utilizzati dei campi detti attributi. I più importanti sono la "lista degli AS attraversati" e la "lista delle reti raggiungibili" A questo scopo, BGP utilizza due ottetti nei quali una serie di opportuni flag permettono di discriminare il significato dei vari attributi. Ogni attributo è classificato da un primo ottetto, nel quale sono previsti 4 flags e 4 bit riservati (a zero): O: indica se l'attributo e' opzionale (O=1) oppure se e' ben conosciuto. T: o transitive: (T=1) è un parametro che può essere aggiornato o interpretato da altri router è deve quindi essere trasmesso ai router successivi o local: parametro che assume un significato solo all’interno di un certo AS; non deve essere propagato P: settato se qualche router sul percorso non è stato in grado di comprendere il significato di quel particolare attributo E: indica se la lunghezza del campo LENGTH BGP : Attributi

145 145 prof. Guido Russo 145 Possiamo distinguere: Exterior: sono due router di bordo di 2 AS, che si vedono direttamente Interior: sono due router di bordo dello stesso AS, che necessitano di una connessione interna apposita per scambiarsi le route BGP. L’ideale sarebbe un grafo completamente connesso; in pratica ci si accontenta di un grafo ben connesso. Ogni router stabilisce così una serie di connessioni con gli altri router BGP dello stesso AS. BGP : Peers

146 146 prof. Guido Russo 146 Permettono al router di stilare una classifica dei possibili percorsi e scegliere il migliore. Vengono configurate manualmente. Sono necessarie in quanto non sono diffusi costi per il raggiungimento delle destinazioni. Si possono imporre politiche molto complesse BGP : Politiche

147 147 prof. Guido Russo 147 Prima di vedere gli aspetti legati alla ricezione e alla propagazione dei pacchetti, e' necessario introdurre la definizione di RIB (Routing Information Base). Esistono 3 tipologie di RIB, di seguito descritte: Adj-RIBs-In: Informazioni apprese dagli annunci ricevuti Loc-RIB: Informazioni utilizzate per l’instradamento e selezionate mediante il processo di decisione Adj-RIBs-Out: Informazioni da propagare e selezionate mediante il processo di decisione. Quando viene ricevuto un annuncio: Se la destinazione si trova in Adj-RIBs-In, la nuova route rimpiazza la vecchia; viene eseguito il processo di decisione Se la route è maggiormente specifica di un’altra: con attributi diversi, viene eseguito il processo di decisione e la parte della route meno specifica non viene più considerata valida con gli stessi attributi, la nuova route e' ignorata. Se la destinazione non è presente in Adj-RIBs-In viene inserita la nuova route e viene eseguito il processo di decisione Se la nuova route è meno specifica di una esistente viene eseguito il processo di decisione che riguardera' solo le destinazioni descritte dalla nuova route. BGP : Propagazione e Ricezione

148 148 prof. Guido Russo 148 Il processo di decisione applica le politiche contenute nella PIB (Policy Information Base) per selezionare le route da propagare. È una funzione che, dati gli attributi di una route, restituisce un intero Il processo di decisione non considera: l’esistenza di altre route la non esistenza di altre route gli attributi di altre route Applicata la funzione a tutte le route per una destinazione, si sceglie quella con grado di preferenza maggiore. Il processo agisce su tutte le route contenute in Adj-RIB-In e si occupa di selezionare le route da propagare sia all’interno che all'esterno dell’Autonomous System, inoltre, aggrega le route e riduce le informazioni da trasmettere. BGP : Il processo di decisione

149 149 prof. Guido Russo 149 BGP : Il processo di decisione

150 150 prof. Guido Russo 150 BGP : i pacchetti L’ header comune: Tutti i messaggi BGP sono caratterizzati da un'intestazione comune, di lunghezza fissa (19 bytes). Marker: viene inserito per ragioni di sicurezza: un particolare algoritmo (negoziato durante la fase di Initial Exchange) ne decide il contenuto in base al messaggio. È una particolare forma di checksum. Length: lunghezza del messaggio TCP Type: Tipo del messaggio BGP Type = 1: Messaggio OPEN Type = 2: Messaggio UPDATE Type = 3: Messaggio NOTIFICATION Type = 4: Messaggio KEEPALIVE

151 151 prof. Guido Russo 151 BGP : il messaggio open I routers che supportano il protocollo BGP attendono la connessione BGP sulla porta 179. Un router che vuole stabilire una connessione, deve innanzitutto aprire una connessione TCP verso quella porta del peer router. Non appena la connessione e' stata stabilita, ciascun router invia un messaggio OPEN al fine di negoziare i parametri della connessione.

152 152 prof. Guido Russo 152 BGP : il messaggio open Version: Versione del protocollo BGP. La connessione puo' essere stabilita solo se entrambi i peers utilizzano la stessa versione del protocollo. My AS: numero (ID) dell’AS (assegnato dalla IANA) Hold Time: numero di secondi usato dalla procedura di Keep Alive BGP_ID: l’indirizzo IP di una delle interfacce del router. È un parametro del router settato da management, indipendentemente da quale interfaccia viene effettivamente usata per inviare il pacchetto Auth_Code: tipo di autenticazione Auth_Data: autenticazione; non esiste se Auth_Type = 0. La lunghezza dell’autenticazione si ricava dal campo Length dell’header comune.

153 153 prof. Guido Russo 153 Quando la connessione e' ormai stata stabilita, le stazioni BGP inizieranno a scambiarsi messaggi "Update". Il messaggio Update contiene informazioni di routing ma distribuisce una sola route; può annullare molte route e puo' includere molte destinazioni. BGP : il messaggio update

154 154 prof. Guido Russo 154 BGP : il messaggio update Il messaggio Update è composto di due parti: Una serie di Path Attributes (nella forma Flag, Type, Length dell’attributo corrente, Valore) Una serie di reti Il numero di Path Attributes è ricavabile dal campo Length dell’ header BGP che riporta la lunghezza del campo Path Attributes (non del pacchetto globale)

155 155 prof. Guido Russo 155 BGP : il messaggio notification Se un router BGP riceve un messaggio errato o verifica una situazione anomala, segnalera' la situazione al proprio peer inviandogli un messaggio di "Notification". Questo messaggio viene anche inviato come ultimo messaggio prima di abbattere una connessione con un altro router (ad esempio perché si sta procedendo a shutdown).

156 156 prof. Guido Russo 156 BGP : il messaggio notification Error Code: indica la situazione di errore, tramite un opportuno codice Subcode: Identifica il tipo di pacchetto errato e specifica meglio l’errore, tramite un ulteriore codice Data: Campo di lunghezza variabile, deducibile dalla lunghezza del messaggio

157 157 prof. Guido Russo 157 Il messaggio KeepAlive indica al router adiacente che il mittente è ancora attivo e viene utilizzato, inviando occasionalmente un messaggio, quando non si hanno informazioni di routing da trasmettere. KeepAlive è un pacchetto vuoto, composto dal solo header comune BGP : il messaggio KeepAlive

158 158 prof. Guido Russo 158 prof. Guido Russo 158 NAT prof. G. Russo (grusso@unina.it)©2012

159 159 prof. Guido Russo 159 NAT (Network Address Translation) è una tecnica di filtraggio di pacchetti IP con sostituzione degli indirizzi (mascheramento) NAT Consente la connessione di un insieme di hosts ad Internet utilizzando un unico indirizzo IP Vanatggi: o risparmiare indirizzi IP (in attesa della piena diffusione di IPv6) o facilita l’amministazione della rete o aumenta la sicurezza Network address translation

160 160 prof. Guido Russo 160 Tutti i datagrammi che escono dalla rete hanno lo stesso indirizzo NAT 138.76.29.7, ma diversi numeri di porta Tutti i datagrammi con sorgente/destinazione in questa sottorete hanno indirizzo 10.0.0/24 come sorgente/destinazione Network address translation

161 161 prof. Guido Russo 161 Motivazioni: Risparmio di indirizzi IP: l’ISP attribuisce un solo indirizzo ad un insieme di hosts appartenenti alla stessa organizzazione. Facilità di amministrazione della rete: o si possono modificare gli indirizzi nella rete locale senza notificarlo al mondo esterno o Si può cambiare ISP senza modificare gli indirizzi della rete locale Sicurezza gli hosts nella rete locale non sono visibili dall’esterno e quindi indirizzabili direttamente dall’esterno Network address translation

162 162 prof. Guido Russo 162 Funzioni di un router NAT : sostituire in ogni datagram uscente la coppia (IP sorgente, #porta) con (NAT IP, #nuovaporta) dove #nuovaporta è un nuovo numero di porta generato dal NAT registrare in una tabella di traduzione la corrispondenza tra le due coppie Sostituire in ogni datagramma entrante la coppia (NAT IP, #nuovaporta) con il corrispondente (IP sorgente, #porta) memorizzato nella tabella di traduzione Network address translation

163 163 prof. Guido Russo 163 Network address translation

164 164 prof. Guido Russo 164 NAT : funziona solo con datagram IP che trasportano pacchetti a livello trasporto spediti mediante il protocollo UDP o il protocollo TCP Gli indirizzi assegnati alle sottoreti interne appartengono ad una delle seguenti zone 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 Il router opera anche come dispositivo NAT Circa 60000 porte con 16 bit circa 60000 connessioni aperte con un unico indirizzo IP Network address translation

165 165 prof. Guido Russo 165 Vantaggi del NAT: Topologia della rete non visibile dall’esterno Il NAT opera in modo trasparente per molte applicazioni Spesso combinato con un firewall Network address translation

166 166 prof. Guido Russo 166 Svantaggi del NAT: Il router manipola i numeri di porta (livello trasporto), mentre dovrebbe operare solo fine al livello 3 (IP) Rende più complessa la raggiungibilità degli host sulla rete Alcune applicazioni non sono trasparenti al NAT (esempio applicazioni che contengono indirizzi IP e numeri di porta nel payload) Esempio: FTP utilizza due connessioni parallele, una per l’interazione con il server, l’altra per il trasferimento dati da e verso il server.I parametri della seconda (porta su cui spedire i dati) connessione sono inclusi nel payload della prima Obiettivo: eliminare NAT con la diffusione di IPv6 Network address translation

167 167 prof. Guido Russo 167 Network address translation: tipi di NAT NAT statica NAT dinamica NAT overload (PAT)

168 168 prof. Guido Russo 168 Network address translation: tipi di NAT, Statica Corrispondenza uno-a-uno tra indirizzi locali e indirizzi globali. Definita staticamente. L’indirizzo 192.168.32.10 sarà sempre tradotto con 213.18.123.110 Usata di solito per rendere accessibile una macchina interna dall’esterno.

169 169 prof. Guido Russo 169 Network address translation: tipi di NAT, dinamica Corrispondenza uno-a-uno tra indirizzi locali e indirizzi globali, tratti dinamicamente da un gruppo. L’indirizzo 192.168.32.10 sarà tradotto con il primo indirizzo disponibile dell’intervallo 213.18.123.100 – 213.18.123.150

170 170 prof. Guido Russo 170 Network address translation: tipi di NAT, overload (PAT) Corrispondenza molti-a-molti tra indirizzi locali e indirizzi globali, tratti dinamicamente da un gruppo. Nell’esempio, l’indirizzo 192.168.32.10 sarà sempre tradotto l’indirizzo 213.18.123.100, ma con una porta differente

171 171 prof. Guido Russo 171 prof. Guido Russo 171 DHCP prof. G. Russo (grusso@unina.it) ing. A. Violetta (violetta@unina.it)©2008

172 172 prof. Guido Russo 172 Dynamic Host Configuration Protocol Il compito del protocollo DHCP e' di permettere a stazioni che si collegano ad una rete IP di estrarre la loro configurazione da un server, allo scopo di ridurre il lavoro necessario di amministrazione della rete. In particolare, il server DHCP assegna i valori di configurazione all'atto del collegamento del computer richiedente. DHCP e' basato sul protocollo BOOTP con cui mantiene parziale compatibilita' all'indietro. La differenza principale e' che mentre il server BOOTP richiede configurazione amministrativa manuale, DHCP permette l'allocazione dinamica di indirizzi di rete ai nuovi nodi che si collegano. Inoltre DHCP permette il recupero e la riallocazione di indirizzi con un meccanismo di 'affitto'. DHCP puo' usare server BOOTP configurati come 'relay agent', eliminando la necessita' di un server DHCP per ogni segmento di rete. I relay agent comunicano al server DHCP anche la sottorete da cui proveniva la richiesta di nuovo indirizzo. Il server DHCP mantiene un intervallo di indirizzi IP che amministra centralmente. E' opportuno che in un dominio amministrato da servizio DHCP i singoli computer non compiano' piu' decisioni autonome di selezione indirizzo IP ma facciano riferimento al server centrale. Il servizio DHCP e' descritto nei documenti RFC1541, RFC1533 ed RFC1532. DHCP supporta tre meccanismi di allocazione indirizzi IP: automatico - allocazione automatica di un indirizzo permanente manuale - configurazione manuale di indirizzi permanenti dinamico - allocazione automatica di indirizzi temporanei

173 173 prof. Guido Russo 173 Dynamic Host Configuration Protocol: Il messaggio

174 174 prof. Guido Russo 174 Il campo Operazione vale 1 per un messaggio di Richiesta di boot e 2 per un messaggio di Responso. Il campo Tipo Indirizzo Hardware; i tipi sono definiti dallo RFC 'Assigned Numbers'. Per Ethernet il valore e' 1. Il campo Lunghezza Indirizzo Hardware vale 6 per Ethernet, il campo Numero di Salti e' tipicamente zero, ma puo' essere incrementato da un relay agent. Il campo Identificativo Transazione e' scelto casualmente dal client e serve ad identificare unaa richiesta specifica di parametri di boot. Il campo Secondi e' inizializzato dal client al numero di secondi trasmessi dall'istante del boot. Il campo Flag e' zero ad eccezione del primo bit (M) definito come bit di broadcast. Il campo Indirizzo Cliente e' normalmente vuoto ma puo' venire riempito dal client che richiede conferma dei parametri precedentemente ottenuti. Dynamic Host Configuration Protocol: Il messaggio

175 175 prof. Guido Russo 175 Il campo Identificativo Server e' l'indirizzo del server da usare nel passo successivo del bootstrap del cliente. Un server DHCP puo' porre il proprio indirizzo in questo campo. Il campo Indirizzo Gateway e' riempito se e' in uso un router come relay agent. Il campo Indirizzo Hardware viene riempito dal client. Il campo Opzioni e' a lunghezza variabile, con un minimo di 312 byte, che porta la lunghezza minima da supportare di un messaggio DHCP a 576 byte. Il campo Opzioni e' estendibile con i campi Nome Server e Nome File, che sono stringhe terminate da un NUL. Dynamic Host Configuration Protocol: Il messaggio

176 176 prof. Guido Russo 176 L3 SWITCH 192.168.10.1 192.168.10.3 192.168.10.2 192.168.10.250 FromToWhat Client255.255.255.255dhcpdiscover ServerSourcedhcpoffer ClientServerdhcprequest ServerClientdhcpack ? ? ! ! ? ? Ok ? ? ? ? ! dhcpdiscover dhcpoffer dhcprequest dhcpack dhcpdiscover ?

177 177 prof. Guido Russo 177 Il server DHCP fornisce un servizio di registrazione dei parametri di rete dei client, sotto forma di un record chiave-valore per ciascun client. La chiave usata identifica univocamente il client, p.es. con il numero di sottorete e l'indirizzo hardware, o meglio indirizzo sottorete e nome host, che permette lo scambio di interfacce hardware trasparente per un dato host. Il secondo servizio e' l'allocazione di indirizzi IP temporanei o permanenti agli host client. Un client richiede l'allocazione di indirizzo dinamico e l'indirizzo viene assegnato per un certo periodo di tempo, durante il quale non viene allocato ad altri. Il server compie anche il tentativo di riallocare se possibile lo stesso indirizzo IP allo stesso host in connessioni seguenti. La possibilita' o meno e' data dal numero di indirizzi disponibili e dal numero di host che si collegano nel frattempo, cioe' l'allocazione indirizzi e' ciclica nell'intervallo posseduto. L'allocazione dinamica per un periodo dato viene chiamata 'affitto' (lease). Il client la puo' estendere tramite ulteriore richiesta o puo' rilasciare l'indirizzo affittato in qualsiasi momento se non serve piu'. In caso di scarsita' di indirizzi, il server DHCP riutilizza indirizzi affittati col tempo scaduto. Dynamic Host Configuration Protocol: I servizi forniti

178 178 prof. Guido Russo 178 La sequenza di operazioni e' la seguente: Il client invia un messaggio di richiesta in modalita' broadcast detto DHCPDISCOVER. Questo messaggio puo' includere opzioni che suggeriscono i valori desiderati di indirizzo IP e tempo di affitto. I server DHCP presenti rispondono con un messaggio DHCPOFFER con il campo Indirizzo Assegnato riempito con un indirizzo IP che viene offerto. Se possibile i server DHCP riservano l'indirizzo per la durata della transazione o per un timeout. Il client puo' attendere di ricevere piu' offerte e seleziona una di esse. Quindi invia un messaggio broadcast DHCPREQUEST che deve includere l'indirizzo del server di cui si accetta l'offerta. Dynamic Host Configuration Protocol: Il protocollo

179 179 prof. Guido Russo 179 I server non selezionati considerano chiusa la transazione. Il server selezionato invia al client un messaggio DHCPACK che contiene i parametri di configurazione rete per il client, e aggiorna i dati del client nel proprio database. Il client riceve il messaggio di conferma e compie la decisione finale se accettare o rifiutare con un messaggio DHCDECLINE. Il server che riceve un declino cancella il client dal database. Il client che termina di usare un indirizzo IP lo comunica al server con un messaggio DHCPRELEASE. I tempi di affitto sono rappresentati in secondi. Si assume che gli orologi del server e del client siano stabili. L'orologio di riferimento all'atto dell'inizio dell'affitto e' quello del client. In caso di sfasamento il server comunica un tempo d'affitto piu' breve al client di quello che effettivamente registra. Dynamic Host Configuration Protocol: Il protocollo

180 180 prof. Guido Russo 180 prof. Guido Russo 180 Algoritmi di instradamento prof. G. Russo (grusso@unina.it) ing. A. Violetta (violetta@unina.it)©2008

181 181 prof. Guido Russo 181 Tecniche di instradamento Esistono tre diverse tecniche per l'instradamento dei pacchetti: Routing by Network Address Un sistema è indirizzato scrivendo nel pacchetto il suo indirizzo. Ogni IS usa tale indirizzo come chiave di ricerca nella sua tabella di instradamento e determina lungo quale cammino il pacchetto debba essere ritrasmesso. Tale tecnica è in generale adottata dai protocolli connectionless; è usata, ad esempio, in Decnet, in OSI-Clns e in IP. Label Swapping E' generalmente utilizzata nei protocolli connessi e trova applicazioni in ATM e APPN. Ogni pacchetto è marcato con una label che serve come chiave in una tabella di instradamento sull'IS. L'IS, prima di ritrasmettere il pacchetto, sostituisce la label con una nuova; in questo modo le label devono essere univoche solo all'interno di un dato link. Se il protocollo è connesso le label non sono altro che gli identificativi delle connessioni. Source Routing E' una tecnica usata dai bridge token ring. L'OSI delega la funzionalità di instradamento al livello 3 e in particolare agli IS detti anche router.

182 182 prof. Guido Russo 182 Tecniche di instradamento Esistono tre diverse tecniche per l'instradamento dei pacchetti: Routing by Network Address Un sistema è indirizzato scrivendo nel pacchetto il suo indirizzo. Ogni IS usa tale indirizzo come chiave di ricerca nella sua tabella di instradamento e determina lungo quale cammino il pacchetto debba essere ritrasmesso. Tale tecnica è in generale adottata dai protocolli connectionless; è usata, ad esempio, in Decnet, in OSI-Clns e in IP. Label Swapping E' generalmente utilizzata nei protocolli connessi e trova applicazioni in ATM e APPN. Ogni pacchetto è marcato con una label che serve come chiave in una tabella di instradamento sull'IS. L'IS, prima di ritrasmettere il pacchetto, sostituisce la label con una nuova; in questo modo le label devono essere univoche solo all'interno di un dato link. Se il protocollo è connesso le label non sono altro che gli identificativi delle connessioni. Source Routing E' una tecnica usata dai bridge token ring. L'OSI delega la funzionalità di instradamento al livello 3 e in particolare agli IS detti anche router.

183 183 prof. Guido Russo 183 Routing by Network Address Su reti ad accesso multiplo come le LAN si devono stabilire le relazioni tra gli indirizzi di livello 2 sottolivello MAC e gli indirizzi di livello 3 per poter effettuare l'instradamento. Questo è necessario, in quanto l'indirizzo di livello 3 serve per identificare il destinatario finale di un pacchetto nell'ambito dell'intera rete, mentre quello di livello 2MAC serve a discriminare il destinatario finale di un pacchetto nell'ambito di una LAN. E' anche possibile che un nodo con un solo indirizzo di livello 3 abbia più indirizzi di livello 2MAC (uno per ogni interfaccia di rete); l'unica eccezione di rilievo è data dal TCP/IP che ha un indirizzo di livello 3 per ogni scheda di rete. Per mantenere le corrispondenze tra gli indirizzi dei due livelli viene spesso utilizzato il protocollo ARP (Address Resolution Protocol).

184 184 prof. Guido Russo 184 Routing by Network Address Supponiamo di voler trasmettere un pacchetto dall'ES B all'ES A. B genera un pacchetto di livello 3 con L3-DSAP=A e L3-SSAP=B che rimarrà immutato fino a destinazione. B verifica se A è sulla sua stessa LAN e, poichè non è così invia il mmessaggio ad R2 specificando L2- DSAP=R2 e L2-SSAP=B. L'IS R2 riceve il pacchetto ed utilizza le sue tabelle di instradamento per decidere di ritrasmettere il messaggio sul CDN. In questo caso non sono necessari gli indirizzi di livello 2 perchè stiamo inviando il pacchetto in un canale punto-punto. R1 riceve il pacchetto e decide che deve trasmetterlo ad A tramite la LAN. Usando, ad esempio, un algoritmo di ARP ricava l'idirizzo di livello 2 di A a partire dal suo indirizzo di livello 3 e quindi effettua la trasmissione del pacchetto. A riceve il pacchetto e, poichè lo L3-DSAP è uguale al suo indirizzo di livello 3, non lo inoltra ulteriormente sulla rete, ma lo passa ai suoi livelli superiori.

185 185 prof. Guido Russo 185 È generalmente usato nei protocolli connect oriented Ogni pacchetto è marcato con una label che identifica la connessione La label viene usata come chiave per determinare l’instradamento e sostituita in ogni nodo È usato in:  X.25  APPN  ATM Label Swapping Tabella di routing utilizzata per il label swapping

186 186 prof. Guido Russo 186 Il nodo mittente scrive nel pacchetto l’elenco completo dei nodi da attraversare È usato:  nei bridge source-routing  in APPN+/HPR Source Routing

187 187 prof. Guido Russo 187 Architettura di un Router

188 188 prof. Guido Russo 188 Tabelle di routing/instradamento Il livello network per inoltrare i pacchetti si basa: sull’indirizzo del destinatario sulle tabelle di instradamento presenti negli IS. Una tabella di routing contine una o più rotte, che contengono informazioni su come raggiungere una rete basata su IP. I parametri su cui si basa sono la Network, la netmask, il next hop e la metrica Le tabelle di instradamento possono essere scritte manualmente dal gestore della rete oppure calcolate automaticamente da un opportuno algoritmo. Per questo parliamo, rispettivamente di routing statico o routing dinamico

189 189 prof. Guido Russo 189 Routing statico Le rotte statiche sono configurate dall’amministratore di rete e salvate nel file di configurazione del router, che è caricato al bootstrap dalla RAM del ruter, così da caricare le informazioni di routing nella tabella di routing. A seconda dei bisogni e della situazione, l'impostazione di tipo statica del routing può essere un vantaggio o uno svantaggio; sicuramente è accettabile come soluzione fin quando il numero di dispositivi rimane basso.

190 190 prof. Guido Russo 190 Il routing dinamico tramite opportuni algoritmi di scrivere dinamcamente le tabelle di ruoting in ogni router. Gli algoritmi di routing dinamico contengono le regole di come determinare le rotte per ogni IS. I due principali lgoritmi di routing dinamico sono: Distance Vector Link State Packet Routing dinamico E' compito dell'amministratore conoscere e scegliere tra i diversi protocolli di routing dinamico, a seconda delle esigenze e delle risorse disponibili. In generale, il lavoro svolto dai protocolli di routing dinamico sono: Comunicare con altri dispositivi per scambiarsi dati sulla rete Gestire le tabelle di routing, ovvero, aggiungere le rotte selezionando la migliore nel caso ce ne siano più di una per una stessa destinazione Eliminare le rotte non più valide Adattare dinamicamente la tabella di routing a eventuali cambi di topologia, siano essi provvisori (interfaccia che cade), o meno (aggiunta di un dispositivo, spostamento, rimozione).

191 191 prof. Guido Russo 191 Per instradare un pacchetto un router si basa sull'indirizzo del destinatario finale e sulle tabelle di instradamento. Tuttavia, un router si trova ad elaborare pacchetti che, la maggior parte delle volte, devono attraversare più LAN e la scelta della porta su cui immettere i dati non è più univoca. Ci possono essere più cammini alternativi e la scelta è influenzata da due parametri principali, quali il n° di router che il pacchetto deve attraversare per giungere a destinazione (hops) o il costo, cioè la somma dei costi di tutte le linee attraversate. Il costo di una linea è inversamente proporzionale alla velocità di una linea stessa, mentre gli hops rappresentano dei ritardi introdotti dai routers attraversati. Gli algoritmi di instradamento hanno la funzione di ottimizzare l'utilizzo delle linee e devono avere alcune caratteristiche: Devono essere molto semplici, poiché i routers hanno CPU e memoria finite e potrebbero introdurre dei ritardi inaccettabili. Devono permettere ai routers di adattarsi a voluti o imprevisti cambiamenti di topologia senza interrompere il funzionamento della rete. Devono convergere velocemente ad un instradamento stabile, la modifica delle tabelle di instradamento deve avvenire soltanto a fronte di un cambiamento di topologia. Nessun nodo deve essere privilegiato o danneggiato. Algoritmi di instradamento

192 192 prof. Guido Russo 192 Gli algoritmi si dividono in due categorie, non adattativi ed adattativi. I primi utilizzano criteri fissi di instradamento e sono, perciò, statici e deterministici, i secondi calcolano ed aggiornano le tabelle di instradamento in funzione della topologia della rete e dello stato dei link e sono così dinamici e non deterministici. Nelle reti con topologia ad albero i primi sono i più efficienti, poiché sono più semplici. Dove invece la configurazione della rete è magliata, per sfruttare al meglio ogni possibile percorso è bene utilizzare algoritmi dinamici. Appartengono al primo gruppo il Fixed Directory Routing ed il Flooding, mentre appartengono al secondo il Routing Centralizzato, il Routing Isolato ed il Routing Distribuito. Gli algoritmi di più moderna concezione sono quelli distribuiti che si dividono ulteriormente in due categorie: Distance Vector e Link State Packet. Algoritmi di instradamento

193 193 prof. Guido Russo 193 Fixed Directory Router Il Fixed Directory Routing prevede che ogni nodo abbia una tabella di instradamento che metta in corrispondenza il nodo da raggiungere con la linea da usare. Queste entry sono puramente statiche, poiché è il gestore che si occupa di determinarle e di configurare il router. Il gestore ha così il completo controllo sul traffico ed è necessario un suo intervento in caso di guasti. È comodo utilizzare quest'algoritmo nelle zone più periferiche di una rete, dove esiste un solo collegamento che le interconnette al resto della rete, poiché risulta difficoltoso gestire le tabelle in reti di grandi dimensioni; le regole di instradamento specificate su ogni singolo router prendono il nome di route statiche.

194 194 prof. Guido Russo 194 Flooding Ciascun pacchetto che arriva ad un router viene instradato su tutte le porte, eccetto quella da cui è arrivata. Con questo metodo, concepito per reti militari, si massimizza la probabilità che i dati arrivino a destinazione, ma si induce sulla rete un carico molto elevato. Per limitare il carico prodotto si può introdurre un age-counter che permette di eliminare i pacchetti che hanno attraversato molti router, oppure si può usare una tecnica che prevede di scartare i pacchetti che passano da un router per la seconda volta.

195 195 prof. Guido Russo 195 Routing centralizzato Si presuppone che esista un RCC, Routing Control Center, che conosca la topologia di tutta la rete e che calcoli e distribuisca le tabelle di instradamento per ogni router della rete. Questo metodo consente una gestione della rete molto accurata, in quanto le tabelle possono essere calcolate con algoritmi sofisticati, ma implica l'ipotesi di un gestore a livello mondiale, ipotesi oggi sicuramente non realistica. Il RCC dovrebbe essere duplicato e la porzione di rete intorno ad esso sarebbe soggetta ad un elevato volume di traffico di servizio; inoltre, in caso di guasti, possono verificarsi situazioni in cui il RCC perde il contatto con intere porzioni di rete e che si verifichino degli aggiornamenti solo parziali che potrebbero portare a situazioni di loop.

196 196 prof. Guido Russo 196 Routing isolato È un metodo esattamente opposto al precedente. Infatti, ogni router presente in rete calcola le proprie tabelle di instradamento in maniera del tutto indipendente dagli altri. L'algoritmo più diffuso è il Backward Learning, utilizzato con successo nei bridge IEEE 802.1D all'interno di una LAN. La modifica più importante per adattarlo a situazioni più estese è l'aggiunta nell'header del pacchetto di un campo di costo, inizializzato a zero dalla stazione mittente ed incrementato da ogni stazione intermedia, di modo che ogni router possa modificare la propria tabella se si accorge che una stazione è raggiungibile con un costo minore. Un limite di questo algoritmo è che i router si accorgono soltanto di eventuali miglioramenti dello stato della rete. È necessario, quindi, che le entry dinamiche restino valide solo per un determinato periodo di tempo, allo scadere del quale vengono riaggiornate.

197 197 In genere TCP/IP viene descritto con 3-5 livelli: Livelli TCP/IP prof. Guido Russo

198 198 prof. Guido Russo 198 Routing Distributo È una fusione dei due metodi sopra descritti. Non esiste un RCC, ma le sue funzionalità sono realizzate in modo distribuito da ogni singolo nodo della rete. Le tabelle vengono aggiornate dai routers scambiandosi fra loro informazioni di servizio mediante un apposito protocollo. Le tabelle di instradamento, come già detto in precedenza, vengono calcolate a partire dai due parametri: costo e hops. Il costo di ciascuna linea di ciascun router è un parametro che viene impostato dal network manager tramite il software di gestione dei router stessi. Oggi gli algoritmi distribuiti principali sono il Distance Vector ed il Link state Packet (lo stato dell'arte), descritti nei paragrafi seguenti.

199 199 prof. Guido Russo 199 prof. Guido Russo 199 Distance Vector prof. G. Russo (grusso@unina.it)©2012

200 200 prof. Guido Russo 200 Distance Vector Ogni router mantiene in memoria, oltre alla propria tabella di instradamento, una struttura dati, detta appunto Distance Vector per ogni linea. Il Distance Vector associato a ciascuna linea contiene informazioni ricavate dalla tabella di instradamento del router collegato all'altro estremo della linea. Il calcolo delle tabelle di instradamento avviene tramite un processo di funzione di tutti i distance vector associati alle linee attive del router. Tutte le volte che un router calcola una nuova tabella di instradamento, la invia agli IS adiacenti (cioè quelli collegati da un cammino fisico diretto). Ogni entry è composta da quattro parametri, indirizzo, hops, costo e linea, e la tabella contiene entry relative ad ogni nodo presente in rete. IndirizzoHopsCostoLinea 13253 25352 39506 4157 5000 Si nota che il router a cui appartiene questa tabella ha indirizzo 5, poiché appare raggiungibile con costo 0 ed in 0 hops

201 201 prof. Guido Russo 201 Distance Vector Il Distance Vector da inviare al router adiacente è composto dalle prime tre colonne della tabella precedente. Il router che lo riceve prima di tutto verifica se vi sono delle modifiche dal precedente e, in caso affermativo, aggiorna i campi hops e costo, sommando 1 a tutti gli hops e sommando il costo della linea da cui è arrivato il messaggio al campo costo. Il passo successivo è l'aggiornamento della propria tabella tramite un processo di fusione (merge) di tutti i Distance Vector a lui pervenuti da ogni linea attiva. La fusione avviene selezionando dalle entry con indirizzo uguale quella con il minor costo. A parità di costo, si seleziona quella che ha il minor numero di hops. La selezione avviene in maniera casuale se entrambi i parametri sono uguali. Un vantaggio di questo algoritmo è la facile implementazione. Tuttavia è sconsigliato utilizzarlo in reti con più di mille nodi, poiché ha una complessità elevata (esponenziale nel caso peggiore). Inoltre è lento a convergere, poiché dipende dalla velocità del router più lento presente in rete. Questo algoritmo è usato in Decnet fase IV e in alcune realizzazioni di TCP/IP (RIP e IGRP)

202 202 prof. Guido Russo 202 prof. Guido Russo 202 Link state prof. G. Russo (grusso@unina.it) ing. A. Violetta (violetta@unina.it)©2008

203 203 prof. Guido Russo 203 Link state Questo algoritmo presuppone che ogni router abbia in memoria la mappa di tutta la rete. Non è pensabile che questa mappa sia scritta nel router da management, ma ogni router, a differenza dell'algoritmo Distance vector, coopera per crearla e mantenerla aggiornata, poi calcola indipendentemente la propria tabella. Supponiamo di avere una rete con 6 nodi come in figura:

204 204 prof. Guido Russo 204 Un router apprende, tramite protocolli Neighbor Greetings, i primi N nodi vicini, associando ad ognuno di essi il costo della linea. Il passo successivo consiste nel propagare tale informazione ai router presenti in rete tramite un messaggio definito Link State Packet (LSP). La propagazione avviene con un algoritmo di tipo Flooding. Link state AdiacenteCosto B3 F4 G3 LSP del nodo D La mappa della rete si costruisce fondendo ogni LSP e viene memorizzata in una LSP base dati del formato mostrato nella tabella seguente.

205 205 prof. Guido Russo 205 Link state AB/3E/1 BA/3C/9D/3 CB/9G/5 DB/3F/4G/3 EA/1F/2G/10 FD/4F/2 GC/5D/3E/10 HG/3 Si nota che tale database è simile ad una matrice di adiacenza di un grafo che rappresenta la rete intera. Tale database, se l'algoritmo converge, deve risultare uguale in ogni IS della rete. Il LSP database, rappresentando la mappa della rete con i costi associati, è l'informazione necessaria e sufficiente affinchè un router possa calcolare le sue tabelle di instradamento. Si noti la differenza con il distance vector, in quel caso i router cooperano direttamente per calcolare le tabelle di instradamento, qui i router cooperano per mantenere aggiornata la mappa della rete, poi ogni router calcola la propria tabella di instradamento in modo autonomo. Il calcolo della tabella di instradamento si riduce ora al calcolo dello spanning tree di tipo SPF (Shortest Path First) e lo si effettua tramite una variante del noto algoritmo di Dijkstra.

206 206 prof. Guido Russo 206 Lo spanning tree generato dall’ algoritmo di Dijkstra ad esempio del nodo D risulterà come nella figura seguente: Link state Ecco la relativa tabella di instradamento. Al3 B Cl2 El1 F Gl2 H Tabella di instradamento nodo D

207 207 prof. Guido Russo 207 Link state Questo algoritmo è capace di gestire reti di grandi dimensioni grazie alla sua rapida convergenza ed il suo comportamento è prevedibile, poiché ogni nodo ha in memoria la mappa intera della rete. Difficilmente si generano loop e, comunque, risulta facile identificarli ed eliminarli. Algoritmi di tipo link state sono utilizzati nello stadard IS-IS e nel protocollo OSPF (adottato in alcune reti TCP/IP).

208 208 prof. Guido Russo 208 prof. Guido Russo 208 Il database Link State I routers OSPF o, piu' precisamente, i routers OSPF nella stessa area, condividono un database composto di records link state. Questi records rappresentano la topologia della rete e sono utilizzati per calcolare il percorso piu' breve. Ci sono 5 tipi di link state: Router Rete Sommario per rete IP Sommario per router di confine Esterno

209 209 prof. Guido Russo 209 Age: anzianità dell’LSA corrente (secondi) Options: Solo 2 degli 8 bit a disposizione hanno significato: o E: External Link, usato dal protocollo Hello o T: settato quando il router supporta il TOS (Type Of Service) Routing. Type: tipo di LSA trasportato. Ne esistono di cinque tipi. I formati dei pacchetti di questi 5 tipi di LSA devono essere sempre preceduti dall’LSA Header Link_State_ID: identificativo dell’LSA scelto dall’Advertising Router. Advertising Router: uno degli indirizzi IP del router (quello selezionato come OSPF_ROUTER_ID) Sequence number: puo' variare tra 1-N e N-2, dove N = 231. Quando un router invia il primo LSA, il numero di sequenza sara' il numero negativo 1-N; questo numero verra' regolarmente incrementato per i successivi LSA. Lenght: la totale lunghezza del record, inclusi i 20 bytes dell'header prof. Guido Russo 209 Header link state Ci sono numerosi tipi di record link state, ma tutti condividono lo stesso header LSA (Link State Advertisment) :

210 210 prof. Guido Russo 210 prof. Guido Russo 210 Link State: Router Riporta le informazioni su tutti i link connessi al router che sta facendo l’advertising. Le informazioni riportate comprendono quindi tutti i router adiacenti e tutte le LAN collegate. Siccome gli LSA generati da un internal router devono raggiungere tutti i router della sua area, le reti contenute in un'area devono essere contigue, cioè deve essere possibile spostare un pacchetto da un qualsiasi router interno all'area ad un qualsiasi altro transitando esclusivamente su collegamenti (e router) interni all'area. Viene propagato solo all’interno dell’area (sia per le aree non backbone che per il backbone). I campi dal Link_ID fino alla fine sono ripetuti N volte pari al numero di link presenti. Campo LS Type = 1

211 211 prof. Guido Russo 211 prof. Guido Russo 211 Link State: Router E: se il router è un Area Border Router (External) B: se il router è un AS Boundary Router (Border) Link Type, Link_State_ ID, Link Data: o Se Link_Type è un link punto - punto:  Link_State_ID: OSPF_ID di questo router  Link_Data: indirizzo IP dell’interfaccia del router o Se Link_Type è un link su una rete che ha un Designated Router:  Link_ State_ ID: indirizzo IP dell’interfaccia del Des. Router  Link_Data: indirizzo IP dell’interfaccia del router o Se Link_Type è un link che si connette ad una rete Stub:  Link_ State_ ID: indirizzo IP della rete / sottorete  Link_Data: netmask relativa al punto precedente # TOS: il numero di tipi di servizio con cui vengono differenziate le metriche; essendo i valori del campo TOS 28 non è necessario riportare la metrica per tutti i TOS, ma solo per quelli che differiscono dal TOS 0 TOS 0 metric: il costo di percorrenza del link per i pacchetti con TOS = 0 TOS = x: il TOS dei pacchetti IP che utilizzano una metrica alternativa a quella standard TOS x metric: la metrica associata ai pacchetti che hanno TOS pari a x

212 212 prof. Guido Russo 212 prof. Guido Russo 212 Link State: Rete È generato dal Designated Router per le reti di transito (transit networks) ed e' simile ad un tradizionale LSP generato per conto di una LAN. Elenca tutti i router presenti sulla LAN e viene propagato sul backbone dai backbone router. Campo LS Type = 2 Network Mask: Netmask della rete di transito Attached Router: Indirizzo IP di tutti i router che vi si affacciano sulla LAN (o meglio, tutti i router che hanno creato una adiacenza con il designated router). Link_State_ID (dell’header LSA): è il corrispondente indirizzo IP dell’interfaccia del Designated Router collegata alla rete di transito

213 213 prof. Guido Russo 213 prof. Guido Russo 213 Link State: Summary link Sono generati ambedue dagli Area Border Routers, e ne esistono di due tipi: Summary Links for IP Networks (LS Type = 3): propagano le informazioni sommarizzate relative alla distanza tra l’ABR e le destinazioni interne all’AS Summary Links for Border Routers (LS Type = 4): propagano le informazioni sommarizzate relative alla distanza tra l’ABR e gli AS Border Router Sono diversi dai Router Links fondamentalmente perché propagano delle informazioni sommarizzate. Ogni LSA contiene una sola destinazione (contrariamente ai Router Links) mentre ogni ABR ne genera molti, inseriti nello stesso pacchetto. Summary link for IP networks Un ABR genera LSA con contenuto diverso per ognuna delle aree su cui si affaccia. Gli LSA inviati in un area comprendono un LSA per ogni indirizzo IP esterno all’area in esame ma interno all’area stessa. Gli LSA inviati sul backbone comprendono un LSA per ogni indirizzo IP appartenente alle aree su cui si affaccia l’ABR. È utilizzato dagli ABR per riassumere e propagare le informazioni su una singola area. Summary Links for Border Routers Viene propagato senza variazioni su tutte le aree (e sul backbone) dove si affaccia l’ABR

214 214 prof. Guido Russo Link State: Summary link, header Network Mask: o Summary Links for IP Networks: quella della rete o della subnet che viene summarizzata o Summary Links for Border Routers: fissata a 0xFFFFFFFF TOS = x, TOS x metric: stesso significato di quello dei Router Links. Non serve il campo # TOS in quanto la lunghezza si ricava dall’header LSA Link_State_ID (dell’header LSA): o Summary Links for IP Networks: l’indirizzo IP della rete o della subnet che viene summarizzata o Summary Links for Border Routers: l’indirizzo IP del Border Router

215 215 prof. Guido Russo Link State: Esterno Riportano le informazioni relative a destinazioni esterne al dominio (costo dal router che ha generato il LSA ad una destinazione esterna all’AS). Sono generati dagli AS Border Router e vengono propagati a tutti i router del dominio OSPF. Comprendono una destinazione per LSA (come i Summary Links). Campo LS Type = 5

216 216 prof. Guido Russo Link State: Esterno, header Network Mask: netmask della rete o della sottorete destinazione E: bit 0 del campo TOS. Indica se la metrica e le route esterne vengono acquisiti tramite protocolli quali EGP e BGP, i quali non necessariamente forniscono una metrica comparabile a quella di OSPF. Se viceversa è settato indica che la metrica non è compatibile con OSPF e quindi la distanza deve essere considerata "maggiore di ogni altra route interna". Nel caso la metrica sia compatibile, e' possibile farne la somma con i costi interni al dominio OSPF ricavando il costo effettivo per raggiungere la destinazione. External Route Tag: utilizzato dai Border Router per scambiarsi informazioni in riferimento a quella route. Non e' utilizzata ne' analizzata da OSPF TOS = x, TOS x metric: stesso significato di quello dei Router Links. Non serve il campo # TOS in quanto la lunghezza si ricava dall’header LSA Link_State_ID (header LSA): indirizzo IP della rete o della sottorete destinazione


Scaricare ppt "1 1 Il livello di rete prof. G. Russo prof. Guido Russo."

Presentazioni simili


Annunci Google