Protocolli di Rete PDF
Document Details
Uploaded by UnequivocalComplex
Università degli Studi dell'Insubria
Tags
Summary
Questo documento fornisce un riepilogo dei protocolli di rete, descrivendo cos'è un protocollo, le architetture di protocolli, il modello ISO/OSI e il modello TCP/IP. Esso spiega anche i livelli del modello ISO/OSI, le interazioni tra livelli, esemplifica diversi sistemi di relaying, e introduce protocolli come TCP/IP e reti come ARPANET ed Internet.
Full Transcript
Protocolli di rete ================== Cos'è un protocollo? -------------------- I protocolli definiscono il formato, l'ordine dei messaggi inviati e ricevuti tra le entità di rete e le azioni intraprese sulla base dei messaggi ricevuti. Architetture di Protocolli -------------------------- - I...
Protocolli di rete ================== Cos'è un protocollo? -------------------- I protocolli definiscono il formato, l'ordine dei messaggi inviati e ricevuti tra le entità di rete e le azioni intraprese sulla base dei messaggi ricevuti. Architetture di Protocolli -------------------------- - I protocolli di comunicazione regolano lo scambio di informazioni tra sistemi - Tra i protocolli è possibile stabilire una gerarchia (Architettura di Protocolli) - Il modello ISO-OSI (Open System Interconnection) è utilizzato per descrivere l'organizzazione dei protocolli Protocolli di Rete ------------------ - Per ridurre la complessità e per ragioni di modularità le reti sono organizzate come una serie di strati o livelli: ognuno usa i servizi del livello inferiore - Le convenzioni e le regole usate nelle comunicazioni di uno stesso livello tra due macchine sono dette protocollo - Un protocollo è un accordo tra più elementi che devono stabilire una conversazione - Logicamente il livello n di una macchina comunica con il livello n di un'altra macchina. - Nessun dato viene trasferito direttamente dal livello n di una macchina al livello n di un'altra macchina. - I dati passano da un livello a quello sottostante fino al livello fisico che trasmette i dati sulla rete fino alla macchina ricevente. - Tra due livelli vicini esiste un'interfaccia Architetture di Rete -------------------- - Un insieme di protocolli, uno per livello, è detto pila di protocolli (protocol stack) - Un insieme di livelli, protocolli e interfacce è chiamato architettura di rete - Le architetture di rete sono alla base di tutte le reti di calcolatori Modello Iso/Osi: livelli ed entità ---------------------------------- - **Raggruppamento**: si raggruppano tra loro funzioni simili per logica e/o tecnologia in modo da definire gruppi omogenei - **Stratificazione**: i gruppi così definiti si organizzano gerarchicamente in gruppi (strati o livelli) in modo da identificare regole di interazione interstrato (interfacce) quanto più semplici e univoche - Ogni strato si interfaccia con lo strato immediatamente superiore e con quello immediatamente inferiore (ove presenti) - Il generico strato N è costituito da una o più entità (N-entità) che svolgono le sue funzioni - L'interazione tra due sistemi avviene mediante interlavoro di entità omogenee (cioè di uguale livello) sui due sistemi (entità pari) - Principi guida per lo sviluppo dei vari livelli (1983) - Tramite l'organizzazione a livelli si definisce un grado di astrazione - I livelli devono corrispondere a funzioni definite - Le funzioni devono considerare l'insieme degli standard internazionali - I confini tra i livelli devono minimizzare il flusso delle informazioni tra livello e livello - Il numero di livelli deve essere ottimale (non troppi né pochi) ### Interazione tra livelli adiacenti Ogni strato usufruisce dei servizi resi dallo strato inferiore, presso opportuni Service Access Point (SAP), cui aggiunge lo svolgimento delle proprie funzioni, così da fornire al livello superiore un servizio a valore aggiunto ### ![](media/image2.png)Segmentazione e Riassemblaggio Le (N-1)-PCI conterranno le informazioni necessarie al corretto riassemblaggio delle PDU ricevute presso l'entità pari di livello N-1. ### Livelli del modello ISO/OSI #### Livello di Applicazione - Fornisce, tramite un processo applicativo, l'interfaccia d'utente per l'accesso a servizi informativi distribuiti - Esempi di servizi: Terminale virtuale, Posta elettronica, Trasferimento file e Gestione database distribuiti - Il livello di applicazione è l\'ultimo livello del modello OSI ed è quello che fornisce i protocolli che permettono alle applicazioni di comunicare su una rete. Esso si occupa di gestire l\'interazione tra l\'utente e le risorse di rete, facilitando la trasmissione di dati e la comunicazione tra i dispositivi - I servizi di questo livello sono completamente legati alle applicazioni: - Quali dati trasmettere - Quando trasmettere - Dove trasmettere / a chi - Significato di bits / bytes - Es applicazioni: File transfer, Posta elettronica, World Wide Web, multimedialità, File System distribuiti #### Livello di Presentazione - Consente l'interlavoro tra applicazioni che rappresentano i dati utilizzando formati diversi - Le sue funzioni consistono nelle operazioni di trasformazione, formattazione e modifica della sintassi dei dati utilizzati - La sintassi con cui avviene lo scambio dei dati può essere quella di uno dei due sistemi interagenti, oppure una sintassi intermedia di trasferimento - Esempi di servizi: - Compressione dei dati - Traduzione dei codici utilizzati per rappresentare i dati - Transcodifica a scopo di sicurezza (encryption) - Le funzionalità di questo livello si limitano alla traduzione dei dati che viaggiano sulla rete in formati astratti - ![](media/image4.png)Queste informazioni vengono poi riconvertite nel formato proprietario della macchina destinataria #### Livello di Sessione - Gestisce il dialogo e lo scambio dati tra entità di presentazione - Funzione di questo tipo si rendono necessarie in quei casi in cui le applicazioni usano diversi modi di trasferimento delle informazioni, oppure quando occorre partizionare in sequenze più brevi un lungo scambio di informazioni attraverso una rete poco affidabile - Esempi di servizi di questo livello sono: - Gestione Modalità Dialogo (es., un terminale half-duplex interlavora con un'applicazione che opera in full-duplex) - Recupero del dialogo seguente ad un'interruzione del servizio di trasporto - Il livello di sessione è fondamentale per gestire in modo efficiente le connessioni tra dispositivi e applicazioni, garantendo che le comunicazioni siano stabili, ordinate e recuperabili in caso di errori #### Livello di Trasporto Fornisce il servizio di trasporto dell'informazione affidabile end2end - Multiplazione: trasporto di diverse connessioni di trasporto utilizzando il medesimo servizio offerto dal livello di rete - Demultiplazione - Indirizzamento delle unità dati (indirizzo di porta) - Segmentazione e Riassemblaggio delle unità dati - Controllo di Flusso end2end - Controllo degli errori end2end - Gestione QoS end2end - Il livello di trasporto è il primo livello "end-to-end" (primo dal basso!) - Il livello di trasporto deve eventualmente sopperire alla mancanza di affidabilità del livello di rete (pacchetti persi, duplicati, invertiti ecc.) - Funzionalità principali: 1. Accetta dati dal livello superiore, li spezza in parti più piccole e le trasmette, assicurando un servizio privo di errori e l'ordine corretto di ricomposizione (servizio orientato alla connessione) 2. Effettua il controllo di flusso end-to-end 3. Fornisce il servizio di recapito dei messaggi senza garanzia o con garanzia (servizio senza connessione) 4. Gestisce la diffusione di messaggi a più destinazioni (multicast) #### Livello di Rete - Sovraintende al trasferimento di informazioni lungo una sequenza di nodi attraverso la rete - Maschera al livello di trasporto la tecnica di commutazione utilizzata - Funzioni: - Controlla il cammino ed il flusso di pacchetti (algoritmi di routing) - Gestisce la congestione della rete - Gestisce l'accounting dei pacchetti sulle reti a pagamento - Implementa l'interfaccia necessaria alla comunicazione tra reti di tipo diverso (internetworking) #### Livello Data-link - Svolge la funzione di trasferimento dati privo di errori tra due nodi adiacenti lungo un collegamento trasmissivo - Funzionalità: - Trasforma la linea fisica in una linea in cui gli errori di trasmissione vengano sempre segnalati - Divide le informazioni in pacchetti e li trasmette attraverso il mezzo fisico, attendendo un segnale di "avvenuta ricezione" (ack) - Gestisce l'eventuale duplicazione dei frame ricevuti, causata dalla perdita dell'ack - Sincronizza un mittente veloce con un ricevente lento (controllo di flusso) - Gestisce l'accesso al canale di trasmissione condiviso #### Livello Fisico Svolge tutte le funzioni necessarie a interfacciare il sistema con il mezzo fisico: - Gestione topologia - Gestione procedure di trasmissione - Codifica dei bit mediante segnali elettrici/ottici Riguarda la trasmissione dei bit sul canale fisico di trasmissione e coinvolge aspetti di tipo: - elettrico (linee comunicazione, propagazione onde) - comunicazione (simplex, half-duplex, full-duplex,...) - meccanico (standard dei connettori,...) ### Controllo di flusso nei livelli OSI - Il controllo di flusso è un aspetto importante per gestire la congestione e il corretto funzionamento delle applicazioni - Ogni livello può implementare un proprio controllo di flusso ### Sistemi di Relaying - Repeater: opera a livello 1 - Switch: opera a livello 2 - Bridge: opera a livello 2 (svolge le stesse funzioni dello switch) - Router: opera a livello 3 - Gateway: opera a livelli superiori TCP/IP e Internet ----------------- - Il TCP/IP è stato sviluppato da Vinton Cerf e Robert Kahn negli anni \'70. - Sono considerati i \"padri di Internet\" per il loro lavoro pionieristico nella creazione di questo protocollo che è stato fondamentale per la diffusione di Internet - ARPANET (Advanced Research Projects Agency Network) fu la prima rete a commutazione di pacchetto e il precursore di Internet - ![](media/image7.png)Fu progettata e sviluppata negli Stati Uniti negli anni '60 dalla DARPA (Defense Advanced Research Projects Agency), un\'agenzia del Dipartimento della Difesa degli Stati Uniti, con l\'obiettivo di creare un sistema di comunicazione sicuro e resiliente. ### Modello TCP/IP - Modello a strati di riferimento per Internet - Lo stack TCP/IP è enormemente più semplice dello stack OSI - Il TCP/IP parte dai protocolli mentre l'OSI parte dai livelli - Prende il nome da due dei suoi protocolli più importanti: - Transmission Control Protocol (TCP) - Internet Protocol (IP) #### Livello di RETE (INTERNET) IP Internet Protocol: scambio di datagrammi senza garanzia di consegna #### Livello di TRASPORTO - TCP Transmission Control Protocol - flusso di byte bidirezionale lungo un canale virtuale - ordinamento dei dati - dati non duplicati - controllo di flusso - controllo degli errori - UDP User Datagram Protocol - scambio di messaggi inaffidabile - senza connessione e senza ordine #### ![](media/image9.png)Protocolli nel modello TCP/IP Entità del TCP/IP ### Esempi di Reti - ARPANET, NFSNET, Internet - Reti Connection-Oriented: X.25, Frame Relay e ATM - Ethernet - Wireless LAN 802.11 #### ![](media/image11.png)ARPANET #### NSFNET - Nasce nel 1985 ad opera del National Science Foundation (NSF) negli Stati Uniti e si diffonde nel mondo per collegare i centri di ricerca - E' l'evoluzione di Arpanet - Sceglie il protocollo TCP/IP, contribuendo alla sua standardizzazione e definitiva consacrazione - Chiude nel 1995 quando Internet ha ormai una diffusione planetaria e commerciale #### Internet - È nata dall'interconnessione di Arpanet e NSFNET e si è velocemente estesa in tutto il mondo - Applicazioni tradizionali (1970 - 1990): E-mail, News, Remote login (telnet), File transfer - Dai primi anni '90: World Wide Web, sviluppato al CERN di Ginevra ### Livelli nel dettaglio #### Livello delle Applicazioni - Incorpora tutte le funzionalità dell'omonimo livello ISO/OSI - Ove necessario provvederà a fornire anche servizi tipici dei livelli di sessione, presentazione e sessione #### Livello di Trasporto - User Datagram Protocol (UDP): fornisce un servizio inaffidabile e non orientato alla connessione. La sua unica funzione è quella del multiplexing. - Transmission Control Protocol (TCP): fornisce un servizio affidabile e orientato alla connessione. Funzioni: Controllo di Flusso end2end Controllo di Congestione end2end Ritrasmissione di SDU perse o corrotte Consegna nella corretta sequenza delle unità dati #### Livello di Rete - Internet Protocol (IP): è il collante di Internet. Offre un servizio non affidabile e non orientato alla connessione. Funzioni: Instradamento Internet-working - Internet Control Message Protocol (ICMP): consente lo scambio di informazioni di servizio tra nodi della rete. #### Livello di Accesso alla Rete - Il modello TCP/IP non pone alcun vincolo o requisito per tale livello - Racchiude tutte le funzionalità specifiche della particolare tecnologia fisica utilizzata per il trasporto delle PDU dell'IP ### Perdita di pacchetti, ritardo e throughput #### Packet Loss - queue (aka buffer) il collegamento precedente nel buffer ha capacità finita - il pacchetto che arriva alla coda piena droppato (aka perso) - il pacchetto perso può essere ritrasmesso dal nodo precedente, dal sistema finale di origine o non essere trasmesso affatto #### Throughput Throughput: Velocità (bit/unità di tempo) con cui i bit vengono inviati dal mittente al destinatario - Istantaneo: Velocità in un determinato momento - Media: Velocità su un periodo di tempo più lungo Livello DataLink ================ - È implementato in ogni host - nelle network interface card (NIC) o in un chip - Ethernet, WiFi card o chip - Implementa link e physical layer - Solitamente collegata al bus di sistema dell'host - Combinazione di hardware, software, firmware Interfacce di comunicazione --------------------------- Lato TRX: - incapsula datagram (layer 3) in frame - Aggiunge bit di error checking, trasferimento dati affidabile, flow control, etc. Lato RCV: - Verifica error, trasferimento dati affidabile, flow control, etc. - Estrae i datagram e li passa al livello superiore Il Progetto IEEE 802 -------------------- E' un insieme di standard sviluppati dall\'Institute of Electrical and Electronics Engineers (IEEE) per definire le tecnologie di rete locale (LAN) e rete metropolitana (MAN) ### Servizi offerti dallo strato LLC - Gestione logica delle connessioni: Il livello LLC offre servizi per gestire le connessioni logiche tra dispositivi, che possono essere orientati alla connessione (con controllo di flusso e conferma) o non orientati alla connessione (simile a una trasmissione best-effort) - Indirizzamento logico: Utilizza i campi DSAP (Destination Service Access Point) e SSAP (Source Service Access Point) per instradare i dati ai servizi o protocolli corretti a livello superiore (come IP) - Rilevamento e correzione degli errori a livello logico: Sebbene il MAC possa rilevare errori fisici tramite FCS, il livello LLC può fornire un controllo più sofisticato, come la ritrasmissione dei pacchetti mancanti o danneggiati - Multiplexing e demultiplexing: LLC permette a più protocolli di livello superiore di condividere lo stesso livello MAC. Esso identifica quale protocollo di livello superiore (es. IP, ARP) deve ricevere il pacchetto #### LLC: tipi di connessione A seconda delle implementazioni, l\'LLC può fornire al livello superiore tre distinte modalità di servizio: - Type1 (logical data link) è un servizio best-effort, che non richiede una connessione stabile tra mittente e destinatario e non richiede alcun riconoscimento della ricezione dei frame Esempi: Ethernet, VoIP, Streaming multimediale - Type2 (data link connection) fornisce un servizio orientato alla connessione, in cui mittente e destinatario instaurano una connessione logica prima di trasmettere i dati. Garantisce la consegna dei frame, l\'ordine dei pacchetti e offre riconoscimento (ACK) e ritrasmissione in caso di errore Esempi: Token Ring, X.25 - Type3 è un servizio senza connessione, come il Type1, ma con la differenza che ogni frame riceve un riconoscimento (ACK) da parte del destinatario. Non si stabilisce una connessione logica duratura, ma si offre un certo grado di affidabilità tramite la conferma della ricezione #### PDU livello LLC - Indirizzi LLC (DSAP e SSAP): specificano i livelli di rete mittente e destinatario - Control: specifica il tipo di frame e gestisce i meccanismi di numerazione e riscontro (come in HDLC) ![](media/image13.png) ### MAC protocols: tassonomia Tre diverse classi: - Canale partizionato - divide il canale in piccole "fette" (time slot, frequenza, codice) - alloca la fetta al nodo per uso esclusivo - Accesso casuale - canale non suddiviso, possono esserci collisioni - serve meccanismo di "recover" delle collisioni - "Turni alternati" - Ogni nodo aspetta il proprio turno, ma i nodi che hanno necessità possono trasmettere più a lungo #### Canale partizionato: TDMA TDMA: time division multiple access - Accesso al canale a "rotazione" - Ogni stazione prende uno slot di lunghezza fissa (lunghezza = tempo di trasmissione del pacchetto) ad ogni giro - Slot non utilizzati rimangono vuoti - esempio: 6-stazioni, 1,3,4 hanno pacchetti da inviare, gli slot 2,5,6 rimangono vuoti #### Canale partizionato: FDMA FDMA: frequency division multiple access - Lo spettro del canale viene diviso in bande di frequenza - A ogni stazione viene assegnata una frequenza - Come in TDMA, la banda in frequenza non utilizzata rimane libera - Esempio: 6-stazioni, 1,3,4 hanno pacchetti da inviare, le bande di frequenza 2,5,6 rimangono libere #### Protocolli ad accesso casuale - Quando un nodo ha un pacchetto da mandare: - Trasmette sul canale alla massimo bit rate R - Non c'è coordinamento a priori tra i nodi - Se due nodi trasmettono in contemporanea: "collisione" - I protocolli MAC ad accesso casuale specificano: - Come rilevare una collisione - Come risolverla (es. via ritrasmissioni ritardate) - Esempi di protocolli MAC ad accesso casuale: ALOHA, slotted ALOHA \| CSMA, CSMA/CD, CSMA/CA ### IEEE 802.3 - Evoluzione dello standard Ethernet II - Lo standard Ethernet definisce una rete LAN con topologia logica a BUS cablata con cavo coassiale - Preambolo: Sequenza di bit, nota utile a sincronizzare trasmettitore e ricevitore - Starting Frame Delimiter (SFD): Indica l'inizio del frame - MAC Destination Address (DA): Indirizzo MAC del nodo destinatario (12 cifre esadecimali, 48 bit) - MAC Source Address: Indirizzo MAC del nodo mittente - Lunghezza o tipo del frame. Possono esistere diversi tipi di frame. Il tipo normale serve a trasferire dati, ma in certi casi è necessario trasmettere informazioni estranee ai dati veri e propri, per segnalare qualche particolare situazione creatasi nella rete locale In questo caso il campo L/T assume un valore da 1536 in su; valori differenti superiori o uguali a 1536 determinano un tipo diverso di frame Se invece il valore è inferiore a questa soglia (al massimo 1500), questo indica esattamente il numero di byte di dati forniti dal livello superiore (il MAC client) che saranno trasmessi in questo frame - Dati: SDU Service Data Unit del livello superiore LLC - Padding Garantisce che la lunghezza minima (Lmin) del frame sia 64 byte (512bit) - Frame Check Sequence (FCS) - Consente la rivelazione dell'errore - Viene applicato un algoritmo matematico (calcolo polinomiale) chiamato CRC (Cyclic Redundancy Check o Controllo a Ridondanza Ciclica) su tutti i dati del frame tranne il FCS; il risultato su 32 bit viene messo nel FCS - Il ricevente esegue lo stesso calcolo con lo stesso polinomio: il risultato deve essere lo stesso FCS #### Topologia a Bus - Il BUS è un mezzo condiviso da più stazioni - L'informazione trasmessa da una stazione è ascoltata da tutte le rimanenti stazioni - E' possibile che più stazioni trasmettano contemporaneamente generando una collisione in questo caso l'informazione trasmessa è persa - Lo standard 802.3 adotta il protocollo CSMA/CD (Carrier Sense Multiple Access/Collision Detection) per la gestione dell'accesso multiplo #### CSMA/CD - Canale inattivo: Inizio trasmissione frame - Canale occupato: Attesa sino a rivelazione canale inattivo e Inizio trasmissione frame - Listen while talking - No Collision no signal generato da altre STA rilevato durante la trasmissione: Frame correttamente spedito - Collision: La trasmissione del frame è arrestata - Trasmissione sequenza di jam (48 bit) - Exponential backoff - Exponential backoff: Ritrasmissione dopo un tempo di attesa crescente in funzione del numero di collisioni ##### Exponential backoff - Attesa casuale: Dopo una collisione, ogni dispositivo attende un tempo casuale prima di ritentare la trasmissione. Questo ritardo si basa su uno slot time (51,2 microsecondi in Ethernet a 10 Mbps, tempo di trx della frame di lunghezza minima) - Ritardo esponenziale: Dopo ogni collisione, il tempo di attesa aumenta esponenzialmente. Alla prima collisione, il ritardo viene scelto tra 0 o 1 slot time; alla seconda tra 0, 1, 2 o 3, e così via, fino a un massimo di 10 ritrasmissioni - Calcolo del ritardo: Il ritardo viene scelto da un intervallo di slot time calcolato con la formula 2 n−1, dove n è il numero di collisioni, con un massimo di 1023 slot time dopo 10 collisioni - Reset del conteggio: Se la trasmissione riesce senza collisioni, il conto delle collisioni viene azzerato Indirizzi MAC ------------- Ogni interfaccia su LAN: - Ha un unico indirizzo a 48-bit MAC - Ha un indirizzo IP locale a 32-bit (lo vedremo) - Allocazione MAC address amministrato da IEEE - Ogni produttore acquista un proprio "MAC address space" (per garantire unicità) - Analogia: - MAC address: codice fiscale - IP address: indirizzo postale - MAC indirizzo flat: portabilità - Può essere spostato da una LAN a un'altra - Vedremo che l'IP address non è portabile: dipende dalla rete IP a cui è collegato ### MAC Protocol a turno alternato Token passing: - Il control token viene passato da un nodo al successivo, sequenzialmente - Token message - Punti di debolezza: token overhead, latenza, single point of failure (token) ### IEEE 802.5 (Token Ring) - Topologia logica ad anello - Il diritto di accedere al mezzo è acquisito mediante un apposito gettone (token): Accesso multiplo ordinato - Il token circola perennemente nell'anello, quando una stazione vuole trasmettere: 1. Cattura il token 2. Trasmette il frame (che percorrerà l'intero anello) 3. Man mano che il frame percorre l'anello, le stazioni leggono l'indirizzo MAC del destinatario, riportato nell'header, per decidere se passarlo al livello di rete 4. I frame trasmessi sono ritrasmessi da ogni stazione e rimossi dall'anello dalla sorgente 5. Il token non può essere trattenuto oltre un tempo massimo dalla medesima stazione, per evitare di monopolizzare il canale Mezzi Trasmissivi ----------------- Cavi coassiali - RG213 (coax thick) - RG48 (coax thin) Doppini (si classificano in diverse categorie) - Unshielded Twisted Pair (UTP): coppie di conduttori in rame intrecciati - S-UTP: UTP con schermatura esterna - STP: schermo esterno + schermo per ogni coppia di conduttori Fibre ottiche - Multimodo - Monomodo Livello NetworkAccess ===================== I Domini -------- - Dominio di collisione (collision domain): è l\'area di una rete dove più dispositivi possono interferire tra loro durante la trasmissione, causando collisioni dei dati - In un dominio di collisione, solo un dispositivo alla volta può trasmettere senza causare interferenze - Dominio di broadcast (broadcast domain): è l\'insieme di tutti i dispositivi in una rete che ricevono i pacchetti broadcast inviati da un dispositivo qualsiasi all\'interno di quel dominio Ethernet: Topologia Fisica -------------------------- - bus: popolare negli anni 90 Tutti i nodi nello stesso collision domain (possono collidere tra loro) Anche in versione HUB - switched: oggi prevalente - Switch attivo a livello link-layer (liv. 1 TCP) - Ogni "spoke" gira un proprio protocollo Ethernet (i nodi non collidono), collision domain separati ### Ethernet HUB - Dispositivo di relaying operante a livello 1 dello stack TCP/IP - E' utilizzato per realizzare una topologia logica a bus mediante topologia fisica a stella (maggiore affidabilità) - Le stazioni sono connesse con cavi UTP (connettori RJ45) - Il segnale generato su una porta è replicato sulle rimanenti porte ### Bridge - Dispositivo di relaying operante a livello 1 dello stack TCP - Consente di interconnettere porzioni di reti LAN differenti e distinte che possono utilizzare tecnologie differenti - Inoltra i frame in modo intelligente (ruolo attivo) sulla base del destination MAC address e della MAC Table - Isola i domini di collisione - Opera a livello software e solitamente ha un numero limitato di porte ### Switch - Lo switch è un dispositivo link-layer: ha un ruolo di relaying attivo - Immagazzina e trasmette Ethernet frame (omogenee) - Esamina l'indirizzo MAC delle frame entrante, la trasmette selettivamente a uno o più link se il frame deve essere inviato, usa CSMA/CD per accedere al segmento - La comunicazione è full-duplex (solitamente un solo host per porta) - Trasparente: Gli hosts non sono consapevoli della presenza di switch - Plug-and-play, self-learning: Gli switch possono non essere configurati #### Trasmissioni multiple simultanee - Gli host hanno connessione diretta con gli switch - Gli swich immagazzinano le frame - Protocollo Ethernet usato su ogni link entrante: - nessuna collisione; full duplex - ogni link è il proprio dominio di collisione - Switching: A-to-A' e B-to-B' possono trasmettere contemporaneamente senza collisioni #### Forwarding Table - Lo Switch per sapere come raggiungere un altro host ha una forwarding table - Contenuto di ogni riga: - MAC address dell'host - interfaccia per raggiungere l'host - time stamp #### Self-learning Lo switch impara quali host possono essere raggiunti da quale intf. - Quando un frame viene ricevuto, lo switch impara la posizione del mittente ossia il segment LAN entrante - Registra la coppia mittente/posizione nella switch table Quando un frame è ricevuto dallo switch: 1. registra link entrante, MAC address dell'host mittente 2. cerca nella tabella il MAC address di destinazione 3. if se non lo trova then { if la destinazione è sul segmento da cui ha rcv la frame then cancella frame else trasmette la frame sull'intf. indicata in tabella } else inonda (broadcast) /\* trasmette su tutte le intf. tranne quella da cui ha rcv \*/ #### Modalità di funzionamento di uno switch Store and Forward - Lo switch legge l'intera frame e verifica il CRC (scarto della frame se errato) - La frame è memorizzata temporaneamente nel buffer associato alla porta d'uscita - La frame è trasmessa quando la linea della porta d'uscita è libera Cut Through - Lo switch legge solo l'header della frame (alcuni switch verificano comunque il CRC tenendo traccia del numero di errori; se oltre una certa soglia passano in modalità store&forward) - La frame è inoltrata immediatamente senza memorizzazione intermedia Fragment Free - Lo switch legge solo i primi 64 byte del frame (dim. minima frame Ethernet) all'interno dei quali possono avvenire le collisioni - Scarta frame di dimensione minore a 64 byte - Le frame errate più lunghe passano #### Protocollo Spanning-Tree - Evita che si formino anelli di bridge - I bridge si scambiano informazioni di controllo sulla base delle quali decidono quali porte lasciare attive - L'obiettivo è creare un albero di attraversamento (lo spanning tree) - Ogni bridge è identificato da un ID unico (bridge identifier = BridgePriority + MAC add. del bridge) - BridgePriority di default 32768 - Si definisce root-bridge quello con ID più basso - Le porte di ogni bridge possono assumere le seguenti funzioni - Root (R): individua il percorso più breve dal bridge al root-bridge (stato=forwarding) - Designated (D): determina il percorso più breve dalla LAN interfacciata al root-bridge (stato=forwarding) - Blocked (B) (stato=blocking) - Lo Spanning tree è costruito mediante scambio di Bridge Protocol Data Unit (BPDU) - Ogni BPDU ha un formato del tipo (C1,C2,C3) - C1 è l'ID del bridge che emette la BPDU - C2 è l'ID del root-bridge secondo il bridge che ha emesso la BPDU - C3 indica il costo della via da C1 a C2 (espresso in numero di LAN da attraversare) - costo (path\_cost) pari a [\$\\frac{10\\ Gb/s}{velocità\\ rete\\ b/s}\$]{.math.inline} - Il root bridge genera BPDU con path\_cost = 0 ##### Formato BPDU Le BPDU sono ricevute da tutti i bridge e sono trasmesse all\'indirizzo multicast 01:80:c2:00:00:00 Due tipi di BPDU - Configuration: usate per creare l\'albero - Topology Change Notification: per notificare un cambiamento topologico (guasto e/o spegnimento di un bridge) e accorgersi, eventualmente, che l\'albero va ricostruito ##### Scelta Porte Root - All'inizio ogni bridge (ID=x) ipotizza di essere il root-bridge ed emette BPDU del tipo (x,x,0) - Un bridge che riceve su una porta una BPDU tale che C2 \< ID cessa l'emissione di BPDU etichettando quella porta come Root - Un bridge che non sia root-bridge ritrasmette le BPDU ricevute sulla porta Root verso tutte le altre porte aggiornando C1 con il proprio ID e incrementando C3 - Alla fine della procedura - Il root-bridge (ID=r) è l'unico ad emettere BPDU e tutte le sue porte sono etichettate come Designated - Il bridge etichetta come Root la porta da cui riceve BPDU con C2=r e più piccolo valore di C3 ##### Scelta porte Designated - Per eliminare i loop è sufficiente eleggere come D un'unica porta per segmento LAN connesso a più bridge, etichettando le altre come Blocked - Ogni bridge ritrasmette le BPDU di configurazione ricevute sulla root port verso tutte le altre porte - Nel caso vi siano più bridge affacciati sulla stessa LAN, questi ricevono le BPDU da porte non root - Se il costo C3 della BPDU ricevuta è più bassa delle BPDU emesse dal bridge stesso, la porta è messa in blocking state; se C3 è più alto, la porta è posta in Designated cioè posta in forwarding state - Le porte che non ricevono BPDU sono Designated perché non esistono altri bridge che inoltrano pacchetti nella LAN ##### Stato porte durante Spanning-Tree - Nelle operazioni normali lo stato di una porta è blocking o forwarding - Se per cambiamenti topologici una porta passa da blocking a forwarding state, ci sono due stati transitori: listening e learning ### Versioni migliorative dello STP - RSTP Rapid Spanning Tree Protocol: migliora la velocità di convergenza rispetto a STP (può convergere in 1 sec.) - MSTP Multiple Spanning Tree Protocol: ottimizza l\'uso della rete supportando più istanze di spanning tree per diverse VLAN (vedremo dopo) - SPB Shortest Path Bridging e TRILL Transparent Interconnection of Lots of Links offrono instradamento multipath (spesso basate su protocolli di routing IP), eliminando il blocco di collegamenti e migliorando la resilienza e l\'efficienza - FabricPath (Cisco) è una soluzione avanzata e specifica che migliora le prestazioni e la scalabilità nelle reti Layer 2 (adottato nei data center) Virtual Local Area Network -------------------------- Gli switch che hanno funzionalità di VLAN possono essere configurati per definire multiple virtual LAN su un'unica infrastruttura LAN fisica - traffic isolation: frame per/da porte 1-8 possono solo raggiungere le porte 1-8 - è possible definire VLAN anche basate su MAC address degli endpoint, non delle porte switch - dynamic membership: le port possono essere assegnate dinamicamente alle VLAN - forwarding tra VLAN: tramite routing (come tra switch separati): nella pratica i costruttori propongono apparati switch + router ### VLAN con più Switch TRUNK PORT: trasporta frame tra VLAN definite attraverso più switch fisici - frame scambiate tra switch che gestiscono più VLAN non sono semplici frame 802.1 (devono trasportare VLAN ID) - il protocollo 802.1q gestisce campi dell'header aggiuntivi per frame inviate tra porte trunk The Cloud Concept ----------------- - The cloud is a collection of computing resources (servers, storage, applications, services) accessible over the Internet - These resources are hosted in remote data centers, not located at the user's site - It offers scalability, allowing resources to increase or decrease based on demand - Provides on-demand access to infrastructure without the need for direct management - Enhances flexibility by allowing users to pay only for the resources they use. Livello di Rete =============== In una rete di computer ottenuta attraverso la interconnessione di reti distinte (internetwork), il compito del livello rete e quello di definire i percorsi dei pacchetti nel loro transito da host mittente a host destinazione. Oltre agli end-system, al livello rete operano i router I router sono dispositivi progettati per realizzare l'internetworking. Modello Datagram ---------------- In una rete a commutazione di pacchetto basata sul modello a datagram, ciascun pacchetto e inoltrato verso la sua destinazione indipendentemente dagli altri - Ogni volta che un pacchetto arriva ad un dispositivo intermedio che opera al livello rete (cioè un router), il dispositivo inoltra il pacchetto verso un successivo dispositivo intermedio (o verso il destinatario finale del pacchetto, qualora esso sia direttamente raggiungibile) - Pacchetti inviati da un terminale A verso un terminale B in momenti successivi possono seguire percorsi differenti nella rete e, quindi, arrivare a destinazione in ordine diverso da quello con il quale sono stato trasmessi. Internet Protocol IP -------------------- - Nella rete Internet, la funzione principale del livello rete e svolta dal protocollo IP - IPv4 definito in RFC 791 (settembre 1981) - È responsabile dell'instradamento delle informazioni immesse nella rete - Offre un servizio a datagram non affidabile - Ogni nodo della rete e individuato da almeno un indirizzo IP - Ogni PDU 3 (PDU di livello 3) contiene gli indirizzi IP degli host mittente e destinatario - Ogni Router (dispositivo di relaying di livello 3) inoltra le PDU ricevute sulla base di un algoritmo di routing - I router si basano sul paradigma store & forward ### Servizio Best Effort - IP non garantisce di prevenire: - pacchetti duplicati - consegna ritardata o fuori ordine - corruzione di dati - perdita di pacchetti - La consegna affidabile dei messaggi alle applicazioni può avvenire grazie a meccanismi di controllo realizzati nei protocolli di livello superiore (negli end-system) - Ogni router che riceve un pacchetto IP decide a quale altro nodo inoltrarlo, sulla base dell'indirizzo destinazione contenuto nel pacchetto, in maniera indipendente \... - rispetto agli altri router - rispetto agli altri pacchetti passati in precedenza per lo stesso router - Il protocollo IP e stato progettato per realizzare un servizio best-effort - Servizio best-effort significa che la rete - non fornisce alcuna garanzia sulla consegna di un pacchetto - ma non discrimina un pacchetto rispetto ad altri assicurando la network neutrality ### Indirizzi IP - Un indirizzo IP e una sequenza di 32 bit - Un pacchetto IP ha, nell'header, l'indirizzo IP del mittente e quello del destinatario - In forma testuale, per un uso da parte di un utente umano, un indirizzo IP e solitamente rappresentato nella notazione dotted decimal - i 32 bit sono decomposti in 4 byte, il valore di ciascuno dei quali e riportato in decimale come numero naturale tra 0 e 255 - i quattro numeri decimali sono scritti in sequenza separati dal punto Indirizzi IP - In una rete IP un indirizzo IP serve ad identificare univocamente un'interfaccia di rete di un dispositivo - un end system può avere una sola interfaccia di rete, un router almeno due - i terminali moderni hanno diverse interfacce di rete (multi-homed) e dunque diversi indirizzi IP (es. interfaccia Ethernet, WiFi, Bluetooth, ecc.) ### Indirizzi IP e classi - Un indirizzo IP e costituito da due parti: un identificatore Network della rete di appartenenza e un identificatore Host che identifica il terminale all'interno della rete - Nella rete Internet, inizialmente, si adottò una gestione degli indirizzi per classi - Nella gestione per classi, la demarcazione tra i campi Network ed Host e fissa e determinata dal valore dei primi bit - Significato di rete (Network): tutti gli host di una stessa rete possono comunicare direttamente a livello 2, senza l'ausilio di un router - Un indirizzo IP di CLASSE A usa il primo byte per identificare la rete ed i restanti tre byte per identificare l'host - Una rete di classe A e un blocco di 224 = 16.777.216 indirizzi consecutivi - Esistono 256 reti di classe A distinte - Un indirizzo IP di CLASSE B usa i primi due byte per identificare la rete ed i restanti due byte per identificare l'host - Una rete di classe B e un blocco di 216 = 65.536 indirizzi consecutivi - Esistono 216 = 65.536 reti di classe B distinte - Un indirizzo IP di CLASSE C usa i primi tre byte per identificare la rete ed il restante byte per identificare l'host - Una rete di classe C e un blocco di 28 = 256 indirizzi consecutivi - Esistono 221 = 2.097.152 reti di classe C distinte - Gli indirizzi di CLASSE D (nel range 224.0.0.0-239.255.255.255) sono usati per identificare gruppi di trasmissione multicast (RFC1112) - Possono essere usati solo come indirizzo destinazione - Gli indirizzi di CLASSE E (nel range 240.0.0.0-255.255.255.255) sono stati riservati per usi futuri e mai utilizzati ### Assegnazione Indirizzi IP - L'assegnazione degli indirizzi IP avviene attraverso un sistema gerarchico di autorità - Il gestore globale dell'intero spazio di indirizzamento e IANA Internet Assigned Numbers Authority - IANA delega la gestione degli indirizzi IP a cinque autorità regionali (RIR) - In Europa opera come Regional Internet Registry il RIPE NCC - I registry regionali assegnano blocchi di indirizzi agli Internet Service Provider (ISP) ed alle grosse organizzazioni - Questi, a loro volta, sono responsabili della assegnazione unica degli indirizzi di loro pertinenza ai singoli dispositivi delle proprie reti ### Classificazione - Pubblici: l'indirizzo può essere utilizzato esclusivamente da una specifica organizzazione e sono usati per instradare pacchetti in Intenet - Privati: possono essere usati solo in una rete privata, ma non si possono instradare pacchetti con tali indirizzi in Internet (utili per motivi di sicurezza e/o per risolvere il problema dello spazio di indirizzamento) - Statici: l'IP dell'host non varia nel tempo - Dinamici: l'IP dell'host varia nel tempo (es. connessione non permanente ad Internet tramite ISP) ### La netmask IP - La gestione per classi degli indirizzi IP condusse ad un uso inefficiente dello spazio di indirizzamento e ad una conseguente difficoltà ad assegnare indirizzi IP a nuove reti collegate ad Internet - Nella gestione per classi, una rete con più di 256 host necessita di un blocco di indirizzi di classe B che, però, comprende 65.536 indirizzi - Nel 1992 una nuova tecnica di gestione degli indirizzi IP fu introdotta: CIDR - In CIDR, la separazione tra campo network e campo host all'interno di una rete e fatta attraverso una stringa di 32 bit ausiliaria, detta network mask o netmask - La netmask contiene una sequenza di k '1' in testa che identificano la parte di bit che costituiscono l'identificatore di rete, ed una restante sequenza di (32-k) '0' che identificano l'host nella rete - Una netmask si rappresenta o in notazione dotted decimal, oppure con la notazione /k, dove k e il numero di '1' consecutivi in testa - Esempi: 255.255.0.0 o /16 , 255.255.128.0 o /17 , 255.255.255.0 o /24 , 255.255.255.240 ### CIDR -- Classless Inter Domai Routing - Nella gestione CIDR ciascuna delle reti originariamente definite dalle classi e stata suddivisa in sottoreti o subnet, ovvero in blocchi di indirizzi consecutivi - Una sottorete e identificata usando un campo subnet sottratto al campo host - La demarcazione tra i campi subnet e host e realizzata mediante la netmask - Gli host di una stessa sottorete comunicano direttamente a livello 2 senza l'ausilio di un router - Tutti gli host della stessa sottorete devono essere configurati con la stessa netmask - La figura seguente mostra blocco di indirizzi di classe B ripartito in 28 = 256 sottoreti da 256 indirizzi ciascuna - La subnet dell'esempio può contenere fino a 254 host distinti, perché gli indirizzi che hanno tutti zero e tutti uno nel campo host sono usati per scopi speciali ### FLSM -- Fixed Lenght Subnet Mask - Un blocco di N=2^n^ indirizzi consecutivi e identificato dal prefisso /k con k = 32 -- n - Il termine subnetting con fixed length subnet mask (FLSM) indica la ripartizione di un blocco di N indirizzi consecutivi in M sottoinsiemi disgiunti ciascuno formato da (N/M) indirizzi consecutivi (subnet) - In ciascun blocco di (N/M) indirizzi, due indirizzi saranno riservati per scopi speciali: - l'indirizzo che ha tutti zero nel campo host indica l'intera subnet - l'indirizzo che ha tutti uno nel campo host indica il broadcast alla subnet - Solo (N/M)-2 indirizzi saranno attribuibili alle interfacce degli host che sono della subnet (host-range) - All'interno del blocco, ciascuna subnet sarà identificata da m = log2(M) bit - Tutte le interfacce dei dispositivi della rete saranno configurate con una netmask avente: - k + m bit '1' per identificare globalmente ciascuna subnet - n - m bit '0' per identificare ciascun host all'interno di una subnet #### Esempio - Considerare il blocco di N=2^8^=256 indirizzi 192.168.20.0/24 - Lo si voglia ripartire in M=8 blocchi uguali (subnet) da N/M=32 indirizzi ciascuno - In ciascuna subnet al più 30 indirizzi sono assegnabili agli host ed ai router perché due indirizzi sono riservati - Ciascuna subnet e identificata da m=log~2~8=3 bit - Occorre usare una netmask con - 24+3= 27 bit '1' - 8-3 = 5 bit '0' - Netmask rappresentata in binario: 11111111.11111111.11111111.11100000 - Netmask rappresentata in notazione dotted decimal: 255.255.255.224 - Netmask rappresentata come prefisso: /27 ### VLSM -- Variable Leght Subet Mask - Subnetting con maschere di lunghezza variabile - consente di utilizzare maschere di sottorete di diverse lunghezze all\'interno della stessa rete IP, permettendo una suddivisione più efficiente dello spazio di indirizzi - Ottimizzazione degli indirizzi IP - le reti possono essere suddivise in sottoreti di dimensioni diverse in base alle necessità, riducendo lo spreco di indirizzi IP rispetto al subnetting tradizionale - Flessibilità nella progettazione della rete - permette di adattare le sottoreti a specifici requisiti di dimensione, come piccole sottoreti per pochi dispositivi e sottoreti più grandi per reti più estese, migliorando la flessibilità - Adeguati protocolli di routing - richiede l\'uso di protocolli di routing che supportano reti con maschere di sottorete variabili, come RIPv2, OSPF o EIGRP #### Esempio ![](media/image16.png) #### Indirizzamento di link point-2-point - Quando si usa la tecnica VLSM, alle reti associate ai link punto-punto che collegano due router conviene assegnare una subnet che comporti il minor spreco possibile di indirizzi IP - Tale subnet deve comprendere quattro indirizzi IP consecutivi - indirizzo che ha nel campo host la configurazione di bit 00 riservato per la subnet - indirizzo che ha nel campo host la configurazione di bit 11 riservato per il broadcast - Sono associabili alle interfacce dei due router gli indirizzi che hanno nel campo host le configurazioni di bit 01 ed 10 - La netmask da usare per una tale subnet e quindi /30 ovvero 255.255.255.252 ### Indirizzi IP speciali In qualsiasi subnet: - il primo indirizzo (host ID tutti 0) rappresenta la rete e non può essere assegnato ad un host - l'ultimo indirizzo (host ID tutti 1) rappresenta tutti gli host (broadcast) e non può essere assegnato ad un host ### Multicastig - Consiste nel trasmettere verso destinazioni multiple da un'unica sorgente dati - Il gruppo di host coinvolti nella comunicazione si definisce host group - Un host group è identificato da un indirizzo IP di classe D - L'uso di indirizzi multicast consente replicare i datagram in modo "intelligente" ### Trasferimento di pacchetti IP - host nella stessa rete -- stessa subnet - SUBNET: Interfacce dei dispositivi che possono raggiungersi fisicamente tra loro senza passare attraverso un router intermedio - host in reti differenti -- subnet diverse - INTER SUBNET: Il raggiungimento di un host su un'altra subnet è demandato ai router IP ### ARP: address resolution protocol ARP table: ogni nodo IP (host, router) su una LAN ha una tabella - IP/MAC address mapping per i nodi della LAN: \< IP address; MAC address; TTL\> - TTL (Time To Live): tempo alla cui scadenza l'associazione viene cancellata (tipicamente 20 min) ![](media/image18.png)Il pacchetto ARP viene incapsulato in una frame Ethernet ![](media/image20.png)Datagram IP --------------------------------- - Version (4 bit) Definisce la versione del protocollo (IPv4 o IPv6) Es. IPv4 → Ver. = 4 - Header Length (4 bit) Dimensione dell'header in gruppi da 32 bit (Es. 20 byte → HLEN = 5) - Type Of Service (8 bit): Definisce i requisiti in termini di QoS sul datagram - Il campo TOS viene utilizzato per definire il forwarding behaviour associato al datagram - Definizione TOS - 3 bit di priorità (Precedence): definiscono la priorità del pacchetto rispetto agli altri pacchetti sulla rete - 4 bit per le specifiche del servizio (D, T, R, C): definiscono come la rete dovrebbe trattare il pacchetto in base a quattro parametri: - D (Delay): Indica se si preferisce un basso ritardo - T (Throughput): Indica se si preferisce un alto throughput - R (Reliability): Indica se si preferisce un\'alta affidabilità - C (Cost): Indica se si preferisce un costo minore - Definizione standard Differentiated Services - DSCP utilizza i primi 6 bit del campo TOS (detti anche \"Differentiated Services Field\") per classificare i pacchetti in base a diverse classi di servizio, fino a 64 valori diversi per specificare il trattamento del pacchetto (QoS) - Gli ultimi 2 bit del campo TOS sono riservati per il campo ECN (Explicit Congestion Notification), utilizzato per segnalare la congestione senza dover scartare i pacchetti - Total Length (16 bit): Lunghezza del datagram espressa in byte Massima lunghezza 65.535 byte o 64KB - Identification (16 bit): - Il campo viene utilizzato per identificare in modo univoco ogni pacchetto IP - Quando un pacchetto viene frammentato (spezzato in più pezzi) per poter attraversare una rete che supporta una dimensione massima di pacchetto (MTU, Maximum Transmission Unit) più piccola, tutte le parti frammentate del pacchetto originale avranno lo stesso valore nel campo Identificatore - Flag (3 bit): Informazioni utili alla frammentazione - MF indica se il datagram è l'ultimo dei frammenti - DF indica se il datagram può essere frammentato - Fragment Offset (13 bit) - Indica la posizione del frammento rispetto all\'inizio del pacchetto IP originale. Quando un pacchetto IP viene frammentato, ciascun frammento contiene una parte dei dati originali, e l\'offset serve a indicare esattamente dove i dati di quel frammento devono essere posizionati per ricostruire il pacchetto originale - Valore dell\'offset: è espresso in multipli di 8 byte (64 bit). Il numero indicato nel campo Fragment Offset rappresenta la distanza dall\'inizio del pacchetto originale in termini di blocchi da 8 byte. Poiché l\'offset è espresso in multipli di 8 byte, ciò consente di supportare un range massimo di 65.535 byte (dimensione massima di un pacchetto IP) → 2 ^13^ x 8 = 65.535 - Maximum Transfer Unit (MTU): massima dimensione di una SDU del livello data-link - 1.500 byte per Ethernet (20 byte di intestazione, max 1.480 byte di dati) - L'MTU limita la dimensione del datagram IP - Time To Live (8 bit): E' impostato dal mittente (128), ad ogni hop è decrementato di una unità, quando raggiunge il valore 0 il datagram è scartato - Protocol type (8 bit): Indica il protocolllo adottato a livello Transport (TCP, 6) (UDP, 17) - Header Checksum (16 bit) - Il checksum è calcolato come la somma di tutte le parole da 16 bit (cioè, coppie di byte) dell\'intestazione IP - Il risultato finale di questa somma viene poi negato (complemento a uno) - Se durante la trasmissione si verifica un errore in uno o più bit dell\'intestazione, la somma non corrisponderà più al checksum calcolato originariamente, indicando che l\'intestazione è corrotta - Source address (32 bit): Indirizzo IP dell'host mittente - Destination address (32 bit): Indirizzo IP dell'host destinatario - Options - Opzioni per il routing del datagram, max 40 byte - Non usato nelle moderne implementazioni IP v6 ----- IPv6 (Internet Protocol version 6) è la versione più recente del protocollo Internet, progettata per risolvere il problema dell\'esaurimento degli indirizzi IP con IPv4 IPv6 utilizza indirizzi a 128 bit (16 Byte), il che fornisce uno spazio di indirizzi molto più ampio IP version 6 - Spazio di indirizzi molto grande. Consente di assegnare un numero quasi illimitato di indirizzi IP, risolvendo il problema dell\'esaurimento di indirizzi IPv4 - Notazione esadecimale. Gli indirizzi IPv6 sono rappresentati in blocchi di 16 bit separati da due punti, con ogni blocco espresso in esadecimale (ad esempio, 2001:0db8:85a3::8a2e:0370:7334) - Autoconfigurazione. IPv6 supporta meccanismi come SLAAC (Stateless Address Autoconfiguration), che permette ai dispositivi di configurarsi automaticamente senza necessità di un server DHCP - Sicurezza nativa. Pv6 include il supporto per IPsec (Internet Protocol Security), un insieme di protocolli che garantiscono autenticazione e cifratura delle comunicazioni ICMP -- Internet Control Message Protocol ----------------------------------------- - Come dice il nome stesso, sono messaggi di controllo che svolgono diverse funzioni per migliorare le performance della rete - Verificare lo stato della rete: echo request, echo reply - Riportare anomalie: destination unreachable, time exceeded, parameter problem - Scoprire la netmask: mask request, address mask reply - Migliorare il routing: Redirect - Messaggi ICMP trasportati in datagrammi IP con Protocol Type = 0x01 - Sono individuati da: TIPO e CODICE ### Applicazioni -- Ping Utilizzato per verificare la connettività a livello rete tra due host, A e B - l'host A invia un pacchetto "echo request" - alla ricezione di tale messaggio, l'host B risponde con un pacchetto "echo reply" ### Applicazioni -- Traceroute - Utilizzato per scoprire il percorso seguito per raggiungere una certa destinazione - Viene inviata una serie di pacchetti con TTL via via crescente, a partire da 1 - il router che, decrementando il TTL, lo azzera invierà indietro un messaggio "time exceeded" - in questo modo si riesce a determinare il percorso fino alla destinazione Protocollo DHCP - Dynamic Host Configuration Protocol ----------------------------------------------------- - Consente ad un host di ottenere un indirizzo IP da un DHCP server - Indirizzo IP - Indirizzo IP del router di default - Indirizzo IP del server DNS - La richiesta è inviata dall'host in broadcast sulla rete locale - Source IP address = 0.0.0.0 (indica che l'host non ha un indirizzo) - Dest IP Address = 255.255.255.255 - Se non è disponibile alcun DHCP server nella rete locale, la richiesta può essere inoltrata verso un'altra rete (se il router di frontiera è opportunamente istruito) - Se sono presenti più DHCP server nella medesima rete locale, dopo una fase di contesa, l'indirizzo IP è fornito dal server che per primo ha ricevuto la richiesta - DHCP non si limita a fornire un indirizzo IP - Può restituire anche altre informazioni essenziali per la configurazione di rete: - il gateway predefinito - la maschera di sottorete - i server DNS il tempo di lease - l\'indirizzo di un server NTP - il nome di dominio - Queste opzioni semplificano la configurazione dei client in rete ### Zero Configuration Networking - Configurazione della rete in assenza di server e amministratori - Sviluppato da IETF - Ideale solo per piccole reti (dove non ci sono DHCP e DNS) - Link-Local Address: 169.254.0.0/16 (riservato dalla IANA) - Estrazione casual, distribuzione uniforme di un indirizzo nel range \[169.254.1.1-169.254.254.254\] - I primi e gli ultimi 256 indirizzi sono riservati per usi futuri - Il generatore di numeri casuali inizializza il suo seed partendo dall'indirizzo MAC - scheda di rete - Probing dell'indirizzo mediante ARP Probe, cioè un ARP Request con "Sender IP Add.= all 0"; "Target HW Add. = all F"; "Target IP Add. = IP da provare" - Se un altro host ha lo stesso indirizzo, si sceglie casualmente un nuovo indirizzo - Se nessun host ha l'indirizzo scelto, si annuncia tale indirizzo con un ARP Announcement con "Sender IP Add.= Target IP Add. = IP scelto" - Gli indirizzi Link-local sono di tipo privato e non possono essere usati per il forwarding di dati fuori dalla rete locale Port & Network Address Translation PAT -- NAT --------------------------------------------- ### NAT Tutti gli host della rete locale possono usare l'indirizzo IP del router di frontiera (PAT) per connettersi ad Internet oppure possono accedere ad un pool di indirizzi pubblici (NAT) - Il NAT è un software eseguito presso il router di frontiera - Ogni host della LAN ha un proprio indirizzo IP non visibile all'esterno della LAN - Tutti i datagram IP che viaggiano da (verso) la LAN acquisiscono un indirizzo IP mittente (destinazione) pubblico - Il NAT utilizza una Tabella di traduzione per selezionare a quale host della LAN è diretto un datagram che proviene dall'esterno - In caso di un unico indirizzo pubblico si parla di PAT (Port Address Translation) perchè si utilizza la coppia ### PAT ![](media/image22.png)PAT (Port Address Translation) o generalizzando NAT: Tutti i dispositivi nella rete locale condividono un solo indirizzo IPv4 per quanto riguarda il mondo esterno Tutti i datagram che escono dalla rete locale hanno lo stesso indirizzo IP NAT di origine: 138.76.29.7, ma numeri di porta di origine diversi Tutti i dispositivi nella rete locale hanno indirizzi a 32 bit in uno \"spazio di indirizzi IP privati\" che possono essere utilizzati solo nella rete locale-privata. Vantaggi: - È necessario solo un indirizzo IP fornito dall\'ISP per tutti i dispositivi - È possibile cambiare gli indirizzi degli host nella rete locale senza dover informare il mondo esterno - È possibile cambiare ISP senza dover cambiare gli indirizzi dei dispositivi nella rete locale - Sicurezza: i dispositivi all\'interno della rete locale non sono direttamente indirizzabili né visibili dal mondo esterno ### Private Network - Rete IP privata: una rete IP che non è direttamente connessa a Internet - Gli indirizzi IP in una rete privata possono essere assegnati arbitrariamente dall'amministratore - Non sono registrati e non è garantito che siano unici a livello globale, ma non importa - Generalmente, le reti private utilizzano indirizzi dai seguenti intervalli di indirizzi sperimentali (indirizzi non instradabili): 10.0.0.0 -- 10.255.255.255 , 172.16.0.0 -- 172.31.255.255 , 192.168.0.0 -- 192.168.255.255 ### NET Statico È utilizzato quando all'interno LAN è presente un Server (che deve essere raggiunto dall'esterno) In tal caso si crea un'associazione statica tra indirizzo privato del server e un indirizzo pubblico fornito dal ISP. ### Preoccupazioni riguardo al NAT Prestazioni - Modificare l\'intestazione IP cambiando l\'indirizzo IP richiede che i dispositivi NAT ricalcolino il checksum dell\'intestazione IP - Modificare il numero di porta richiede che i dispositivi NAT ricalcolino il checksum TCP Frammentazione - Bisogna fare attenzione che un datagramma frammentato prima di raggiungere il dispositivo NAT non venga assegnato a un indirizzo IP o a numeri di porta diversi per ciascuno dei frammenti Connettività end-to-end - Il NAT distrugge la raggiungibilità end-to-end universale degli host su Internet - Un host su Internet pubblico spesso non può avviare una comunicazione con un host in una rete privata - Il problema è ancora peggiore quando due host che si trovano in reti private devono comunicare tra loro Indirizzo IP nei dati dell\'applicazione - Le applicazioni che trasportano indirizzi IP nel payload dei dati dell\'applicazione generalmente non funzionano attraverso un confine tra rete privata e pubblica - Alcuni dispositivi NAT ispezionano il payload di protocolli di livello applicativo ampiamente utilizzati e, se viene rilevato un indirizzo IP nell\'intestazione del livello applicativo o nel payload dell\'applicazione, traducono l\'indirizzo secondo la tabella di traduzione degli indirizzi ### NAT application: Load balancing Problema: Bilanciare il carico su un insieme di server identici, accessibili da un unico indirizzo IP Soluzione NAT - Ai server vengono assegnati indirizzi privati - Il dispositivo NAT funge da proxy per le richieste al server provenienti dalla rete pubblica - Il dispositivo NAT cambia l\'indirizzo IP di destinazione dei pacchetti in arrivo con uno degli indirizzi privati di un server - Una strategia sensata per bilanciare il carico dei server è assegnare gli indirizzi dei server in modo ciclico (round-robin) Broadcast e Multicast --------------------- - Inviare/consegnare i pacchetti dalla sorgente a tutti gli altri nodi - La duplicazione alla sorgente è inefficiente ### In-network duplication - Flooding: quando un nodo riceve un pacchetto broadcast, invia una copia a tutti i vicini - Problemi: loop e broadcast storm - Flooding controllato: il nodo trasmette il pacchetto solo se non ha già trasmesso lo stesso pacchetto in precedenza - Numero di sequenza: il nodo tiene traccia degli ID dei pacchetti già trasmessi - Reverse Path Forwarding (RPF): inoltra il pacchetto solo se è arrivato tramite il percorso più breve tra il nodo e la sorgente - Spanning tree: nessun pacchetto ridondante ricevuto da alcun nodo #### RFP -- Reverse Path Forording Un nodo inoltra un pacchetto solo se è arrivato dal percorso più breve tra il nodo e la sorgente (percorso inverso). Tuttavia, vengono trasmessi ancora alcuni pacchetti inutili #### Spanning Tree Innanzitutto costruire lo Spanning Tree. I nodi inviano pacchetti solo attraverso lo spanning tree ### Traffico Multicast - Un numero sempre maggiore di applicazioni di rete richiedono la spedizione di pacchetti da uno o più sender a un gruppo di receiver - il trasferimento di audio, video e testi per lettura diretta a un gruppo distribuito di partecipanti alla lettura - una riunione aziendale o una teleconferenza condivisa tra molti partecipanti distribuiti - quotazioni in borsa, distribuzione di listini e cataloghi in tempo reale - training, teledidattica - sfruttare Internet per trasmissioni di tipo televisivo - Per ciascuna di queste applicazioni, un'astrazione molto utile è la nozione di multicast: l'invio di un pacchetto da un sender a molti receiver con una singola operazione di spedizione #### Indirizzamento Multicast Address indirection (indirizzamento indiretto) - si riferisce all\'uso di un indirizzo IP multicast che non corrisponde a un singolo destinatario (come avviene nel caso degli indirizzi unicast), ma a un gruppo di dispositivi che si sono uniti a quel gruppo multicast - Da indirizzo per destinazione ad indirizzo per evento Well known addresses stabiliti da IANA - Per usi riservati da 224.0.0.0 a 224.0.0.255 - 224.0.0.1 -- all systems on subnet - 224.0.0.2 -- all routers on subnet - 224.0.0.13 -- all PIM routers Indirizzi assegnati dinamicamente - Global scope: 224.0.1.0-238.255.255.255 - Limited Scope: 239.0.0.0-239.255.255.255 - Site-local scope: 239.255.0.0/16 - Organization-local scope: 239.192.0.0/16 #### Sessioni MC e gestione dei gruppi MC - Per annunciare una sessione multicast e la sua descrizione si utilizza il protocollo SAP -- Session Announcement Protocol - SAP permette di comunicare agli utenti o ai dispositivi che una sessione multicast (come un flusso video o una conferenza) è disponibile, fornendo i dettagli necessari affinché possano partecipare alla sessione - La gestione dei gruppi è di tipo dinamico: - Un host può unirsi o abbandonare un gruppo in qualsiasi momento e può appartenere contemporaneamente a più gruppi - Non è necessario appartenere ad un gruppo per poter inviare ad esso dei datagram - I membri del gruppo possono appartenere alla medesima rete o a reti fisiche differenti #### Multicast router e protocolli - Il MC router si occupa dello smistamento dei datagrammi multicast, in maniera trasparente riguardo agli host interessati ad un determinato di gruppo - Ogni end-system trasmette i datagram multicast sfruttando il meccanismo hardware messo a disposizione dalla rete locale su cui si trova: Mappaggio multicast IP su multicast Ethernet - Se un datagram giunge al multicast router, quest'ultimo si occupa, se necessario, di instradarlo verso le altre reti - Multicast routing DVMRP, PIM, MOSPF: Coordinano i MC router in una rete per consentire l'instradamento dei datagram multicast ##### IGMP Internet Group Management Protocol - Un host informa il router più vicino che vuole unirsi ad un determinato gruppo mutlicast. - Opera a livello locale, tra un host ed il router ad esso direttamente collegato - IGMP serve a gestire in ambito locale le informazioni di membership ai vari gruppi multicast - Locale significa che i messaggi IGMP sono scambiati tra end-system e router - I messaggi IGMP sono trasmessi in datagrammi IP il cui header ha il campo protocol con valore 2 ed il campo TTL con valore 1 - Definito in 3 RFC: RFC 1112, RFC 2236, RFC 3376 - Quando un'applicazione chiede di entrare in un nuovo gruppo (join), l'host in cui gira l'applicazione invia un messaggio IGMP membership report - Il messaggio è detto unsolicited perché non è generato come risposta ad un messaggio di membership query - Gli eventuali multicast router presenti nella rete locale dell'host ricevono il messaggio e stabiliscono i meccanismi di routing atti a ricevere i pacchetti indirizzati al gruppo - Dovendo gestire i gruppi in maniera dinamica, i multicast router interrogano periodicamente (polling) gli host presenti nelle reti locali ad essi collegate, inviando messaggi di membership query a cui gli host rispondono inviando messaggi di membership report IGP Routing ----------- ### Classless Inter Domain Routing (CIDR) - Il numero di bit utilizzati per la parte di rete non è fisso, come nel sistema originale delle classi (dove una rete di Classe A utilizzava sempre 8 bit, Classe B utilizzava sempre 16 bit, e così via) - Consente una gestione più flessibile dello spazio degli indirizzi IP - La parte di indirizzo IP relativa alla rete può avere lunghezza qualsiasi - Il formato dell'indirizzo è a.b.c.d/x dove x indica il numero di bit più significativi che individua la rete - In questo modo è possibile ridurre le dimensioni delle tabelle di routing - Aggregazione logica di subnet: Supernetting #### Supernetting La rete di classe C: 192.168.0.0/24 contiene 256 reti (terzo byte) di 256 host (quarto byte, in realtà 254) Consideriamo i seguenti indirizzi: 192.168.0.0/24 → 192.168.000000 00.0 192.168.1.0/24 → 192.168.000000 01.0 192.168.2.0/24 → 192.168.000000 10.0 192.168.3.0/24 → 192.168.000000 11.0 I primi 6 bit del terzo byte delle 4 reti sono comuni quindi possono essere aggregate in un'unica rete, in cui la componente network è di 8 + 8 + 6 = 22 bit e rappresentata come 192.168.0.0/22 ### ![](media/image24.png)Algoritmi di routing: tassonomia ### Control plane nei router In ogni router della rete ci sono componenti di algoritmi di instradamento che interagiscono nel control plane Approccio: controllo distribuito ### ![](media/image26.png)Software-Defined Networking (SDN) control plane Controllori remoti calcolano e installano le tabelle nei router. Approccio: controllo centralizzato ### Internet Routing Ogni router consulta una propria tabella di routing per scegliere verso quale porta d'uscita (next hop) instradare i datagram in ingresso ### Metriche per il costo dei path - Bandwidth -- la capacità di un link (es. generalmente un link a 10 Mbps è preferibile rispetto ad una linea di un operatore a 64 kbps) - Delay -- il tempo necessario ad ogni pacchetto lungo il percorso per andare dalla sorgente alla destinazione - Load -- il carico di lavoro degli elementi della rete come i router o i link - Reliability -- l'affidabilità è generalmente riferita al tasso di errore di ogni singolo link - Hop count -- il numero di router che un pacchetto deve attraversare per raggiungere la sua destinazione - Cost -- un valore arbitratrio, generalmenta basato sulla banda, sul costo economico di un link, o su altre misure stabilite dall'amministratore di rete ### Router architecture overview #### ![](media/image29.png)Input port functions - physical layer: bit-level reception - link layer: e.g., Ethernet (chapter 6) - decentralized switching: - using header field values, lookup output port using forwarding table in input port memory - goal: complete input port processing at 'line speed' - input port queuing: if datagrams arrive faster than forwarding rate into switch fabric - destination-based forwarding: forward based only on destination IP address (traditional) - generalized forwarding: forward based on any set of header field values ##### Longest prefix matching when looking for forwarding table entry for given destination address, use longest address prefix that matches destination address. #### Switching fabrics - transfer packet from input link to appropriate output link - switching rate: rate at which packets can be transfer from inputs to outputs - often measured as multiple of input/output line rate - N inputs: switching rate N times line rate desirable - three major types of switching fabrics: - ![](media/image31.png)![](media/image34.png)memory, bus, interconnection network ##### Sitching via Memory first generation routers: traditional computers with switching under direct control of CPU packet copied to system's memory speed limited by memory bandwidth (2 bus crossings per datagram) ##### Switching via Bus - Datagram from input port memory to output port memory via a shared bus - bus contention: switching speed limited by bus bandwidth - 32 Gbps bus, Cisco 5600: sufficient speed for access routers ##### Switching via interconnection network - Crossbar, Clos networks, other interconnection nets initially developed to connect processors in multiprocessor - multistage switch: nxn switch from multiple stages of smaller switches - exploiting parallelism: - fragment datagram into fixed length cells on entry - switch cells through the fabric, reassemble datagram at exit - scaling, using multiple switching "planes" in parallel: speedup, scaleup via parallelism - Cisco CRS router: - basic unit: 8 switching planes - each plane: 3-stage interconnection network - up to 100's Tbps switching capacity ### Operazioni svolte da un Router - Ricerca nella routing table una entry con lo stesso indirizzo di rete del destinatario del datagram ricevuto - Se la entry corrisponde ad una rete direttamente connessa al router allora viene individuata la sottorete e il datagram non è ulteriormente inoltrato - Se la entry corrisponde ad una rete remota il datagram è inoltrato (forwarding) - Se nessuna entry è trovata allora viene utilizzato la default route - Se la default route non è settata il pacchetto è perso ### Instradamento gerarchico di Internet - L'insieme di router amministrati dallo stesso gestore è definito Autonomous System (AS) - Si distinguono algoritmi di routing intra (IGP, Interior Gateway Protocol) ed inter AS - RIP: Routing Information Protocol - OSPF: Open Short Path First - BGP: Border Gateway Protocol Algoritmi di routing Distance Vector -- DV ------------------------------------------ - Ogni router mantiene una tabella di tutti gli instradamenti noti: inizialmente, solo le reti a cui è connesso direttamente - Ogni entry della tabella indica: - una rete raggiungibile - il next hop - il numero di hop necessari per raggiungere la destinazione - Periodicamente, ogni router invia a tutti i vicini (due router sono vicini se sono collegati alla stessa rete fisica): un messaggio di aggiornamento contenente tutte le informazioni della propria tabella (vettore delle distanze -- distance vector) - I router che ricevono tale messaggio aggiornano la tabella nel seguente modo: - eventuale modifica di informazioni relative a cammini già noti - eventuale aggiunta di nuovi cammini - eventuale eliminazione di cammini non più disponibili - Con il routing Distance Vector - Good news travel fast - Bad news travel slow ### Elaborazione - Il calcolo consiste nella fusione di tutti i distance vector delle linee attive - Un router ricalcola le sue tabelle se: - cade una linea attiva - riceve un distance vector, da un nodo adiacente, diverso da quello memorizzato - Se le tabelle risultano diverse da quelle precedenti: - invia ai nodi adiacenti un nuovo distance vector ### Equazione Bellman-Ford I router DV implementano l'algoritmo Bellman-Ford - Definito: dx(y) = costo del percorso a costo minore tra x ed y - allora dx(y) = minv {c(x,v) + dv(y) } dove il minimo è calcolato tra tutti i nodi v adiacenti ad x e c(x,v) è il costo tra x e il generico nodo v ### DV Principi - Iterativo, asincrono: ogni iterazione locale è causata da: - Cambiamento di costo di un collegamento - Messaggi dai vicini - Distribuito: ogni nodo contatta i vicini solo quando un suo cammino di costo minimo cambia - i vicini, a loro volta, contattano i propri vicini se necessario - Ogni nodo: aspetta notifica modifica costo da un vicino e ricalcola distance table ### Soluzioni del problema DV Routing Loop - La definizione di un massimo blocca il "counting to infinity" - Per evitare i loop si può usare - Split horizon: non si inviano informazioni su una route di ritorno verso l\'interfaccia da cui la si è appresa - Split horizon with poisoned reverse: le route vengono annunciate con metrica "infinity" sulla rete su cui si trova il loro next hop se apprese dallo stesso, avvelenando la rotta - Trigger Update: gli aggiornamenti delle tabelle di routing sono inviate ogni qualvolta vi è un cambiamento topologico e non solo allo scadere del route timer - Una rete dichiarata irraggiungibile è considerata tale (la sua entry è eliminata) solo allo scadere di un hold-down timer per evitare di accettare falsi update ### ![](media/image36.png)RIP -- Routing Information Protocol - È un protocollo di routing di tipo Distance Vector - È adatto a reti di piccole dimensioni - Usa come metrica gli hop count - Il valore massimo è 15; il valore 16 indica rete irraggiungibile (per evitare il counting to infinity) - Ogni router comunica lo stato della propria tabella di distanze ai router direttamente raggiungibili (routing update ogni 30s o a ogni cambiamento topologico; hold-down timer pari a 120 s) - Esiste in 3 diverse versioni successive #### RIP e stack TCP/IP - RIP è un protocollo di livello applicativo: le tavole di routing RIP sono elaborate da un processo a livello applicazione chiamato routed - RIP usa il protocollo UDP: Piccoli messaggi regolari non necessitano del meccanismo del windowing, di un meccanismo di handshaking o di ri-trasmissioni - I pacchetti sono ricevuti e inviati usando la porta UDP 520 #### Formato messaggi RIP - Ogni messaggio contiene fino a 25 descrittori di route - Nel RIPv2 si trasmette anche la subnet mask associata all'indirizzo - RIPv2 usa i Route Tag per le route esterne (apprese da altri protocolli) e il NextHop per indicare un router diverso da chi ha mandato il messaggio (in genere quando ci sono più router su una LAN) - RIPv2 permette di autenticare i messaggi di routing #### IGRP -- EIGRP - IGRP è un protocollo proprietario CISCO basato su Distance Vector - Usa diverse metriche di costo (ritardo, banda, affidabilità, carico, \...) - Le tabelle di routing sono scambiate (tramite TCP) solo quando si modificano costi/stato - IGRP supporta il multipath routing a costi differenziati: se esistono più route per la stessa destinazione il carico è distribuito tra esse proporzionalmente al costo della route - EIGRP (enhanced-IGRP) è una versione "migliorata" di IGRP che supporta indirizzamento classless con maschere di sottorete a lunghezza variabile (Variable Length Subnet Mask - VLSM) - algoritmo di routing DUAL (Distributed Updating ALgorithm) - algoritmo che garantisce assenza di clicli (loop free): dopo l'incremento di una distanza, la tabella di routing è congelata fino a quando tutti i nodi influenzati sanno del cambiamento - Le specifiche riguardanti gli aspetti fondamentali di EIGRP sono state rese pubbliche da Cisco nel 2013 ed attualmente sono descritte in RFC 7868 Algoritmi di routing Link State -- LS ------------------------------------- - Ogni router impara il suo ambito locale (linee e nodi adiacenti) - trasmette queste informazioni a tutti gli altri router della rete tramite un Link State Packet (LSP) - memorizza gli LSP trasmessi dagli altri router e costruisce una mappa della rete - Calcola, in maniera indipendente, le sue tabelle di instradamento applicando alla mappa della rete l\'algoritmo di Dijkstra, noto come Shortest Path First (SPF) Questo approccio è utilizzato nello standard ISO 10589 (protocollo IS-IS) e nel protocollo OSPF (adottato in reti TCP/IP) ### Formato Update Ogni router genera un Link State Packet (LSP) contenente: - stato di ogni link connesso al router - identità di ogni vicino connesso all\'altro estremo del link - costo del link - numero di sequenza per l'LSP - checksum - Lifetime: la validità di ogni LSP è limitata nel tempo (e.g. un errore sul numero di sequenza potrebbe rendere un LSP valido per anni) ### LSP Flooding Un LSP viene generato periodicamente, oppure quando viene rilevata una variazione nella topologia locale (adiacenze), ossia: - Viene riconosciuto un nuovo vicino - Il costo verso un vicino è cambiato - Si è persa la connettività verso un vicino precedentemente raggiungibile Un LSP è trasmesso in flooding su tutti i link del router. I pacchetti LSP memorizzati nei router formano una mappa completa e aggiornata della rete: Link State Database #### Gestione LSP All\'atto della ricezione di un LSP, il router compie le seguenti azioni: 1. se non ha mai ricevuto LSP da quel router o se l'LSP è più recente di quello precedentemente memorizzato: - memorizza il pacchetto - lo ritrasmette in flooding su tutte le linee eccetto quella da cui l\'ha ricevuto 2. se l'LSP ha lo stesso numero di sequenza di quello posseduto: non fa nulla 3. se l'LSP è più vecchio di quello posseduto: trasmette al mittente il pacchetto più recente #### Gestione di Routing Il router elabora il Link State Database per produrre il Forwarding Database: - si pone come radice dello shortest-path tree - cerca lo shortest path per ogni nodo destinazione - memorizza il vicino (i vicini) che sono sullo shortest path verso ogni nodo destinazione Il Forwarding Database contiene, per ogni nodo destinazione: - l'insieme delle coppie {path, vicino} - la dimensione di tale insieme (percorsi paralleli/uguale costo) ### Vantaggi e Svantaggi - può gestire reti di grandi dimensioni - ha una convergenza rapida - difficilmente genera loop, e comunque è in grado di identificarli ed interromperli facilmente - facile da capire: ogni nodo ha la mappa della rete - molto complesso da realizzare - la prima implementazione ha richiesto alla Digital 5 anni ### Algoritmo di Dijkstra -- iterativo - Ogni nodo ha a disposizione il grafo della rete: i nodi sono i router e gli archi sono le linee di collegamento tra router: agli archi è associato un costo - Ogni nodo usa l\'algoritmo di Dijkstra per costruire lo Shortest Path Tree del grafo, ovvero l'albero dei cammini di costo minimo - Ad ogni nodo si assegna un'etichetta che rappresenta il costo massimo per raggiungere quel nodo - L\'algoritmo modifica le etichette cercando di minimizzarne il valore e di renderle permanenti Inizializzazione - Ogni nodo è la radice - Il nodo è a distanza infinita da tutti tranne da se stesso (0) - Ogni link ha il proprio costo (peso) - Nodi visitati vs. nodi non visitati Iterazioni - Per k nodi servono k iterazioni - Vengono aggiornate le distanze dai vicini - Viene selezionato il nodo a minore distanza - Il nodo più vicino diventa visitato - Alla prossima iterazione si aggiornano le distanze dal nodo visitato - Così via, iterativamente, fino a visitare tutti ### OSPF -- Open Shortest Path First - Implementazione in ambito TCP/IP di algoritmo Link State - Ogni nodo conosce la topologia della rete - Possono essere utilizzate molteplici metriche per ognuno dei servizi previsti dal campo ToS del protocollo IP: Banda Disponibile, Affidabilità, Ritardo - Il miglior percorso è determinato con l'algoritmo di Dijkstra - Maggiore complessità rispetto a DV e necessità di conoscenza approfondita del protocollo - Ogni router ha un suo router ID incluso nei messaggi inviati periodicamente su tutte le interfacce - usato per mantenere adiacenze con altri router sulla stessa rete - si usano indirizzi multicast riservati: 224.0.0.6 in LAN, 224.0.0.5 nell'area - OSPF implementa il routing IGP gerarchico - Limitando la dimensione delle aree e i messaggi tra aree, OSPF è altamente scalabile - Ogni AS è diviso in aree ognuna definita da 4 ottetti (struttura gerarchica) - OSPF opera in maniera indipendente in ogni area ### Link State Advertisement - Periodicamente, ogni nodo invia lo stato dei suoi collegamenti tramite Link State Packet, LSP, in OSPF chiamati Link State Advertisement (LSA) - I router con interfacce solo nella stessa area sono Internal Router e generano LSA che descrivono la sola rete interna - I router tra due aree sono detti Area Border Router e devono avere almeno un'interfaccia verso la Backbone Area (area 0: 0.0.0.0) - I router di bordo dell'intero AS sono detti Boundary Router e inseriscono nei loro LSA informazioni sull'esterno dell'AS - Gli LSA sono inviati dagli Internal Router ai vicini mediante Selective Flooding (i pacchetti identici già ricevuti vengono scartati per evitare loop) - Ogni LSA contiene il router ID e un sequence number incrementato per ogni nuovo LSA generato: ogni router conserva gli LSA più recenti #### Propagazione tra aree - Le informazioni di routing di un'area sono diffuse sulla backbone area dagli area border router e sono propagate fino a raggiungere gli altri area border router - La backbone area deve avere alta affidabilità e buone prestazioni: con pochi router conviene avere un'area - I router conoscono con dettaglio solo la topologia della propria area - Tutte le destinazioni delle altre aree sono viste collegate agli area border router che ne annunciano la presenza - Ogni area border router partecipa allo scambio di LSA nelle aree cui appartiene e ha tante basi dati di informazioni topologiche, una per ogni area di appartenenza - Se su una LAN si affacciano più router, solo uno di essi diventa designated e propaga gli LSA: il DR riceve gli LSA sulla LAN e li trasmette in multicast a tutti gli altri router OSPF sulla LAN - La ricezione degli LSA può essere confermata con pacchetti di ACK - Per ridurre l'overhead da segnalazione, l'LSA è inviato solo quando si ha un effettivo cambiamento dello stato dei link, oppure almeno ogni 30 minuti Pacchetti OSPF -------------- - OSPF incapsula i suoi messaggi direttamente in datagram IP con numero di protocollo 89 - OSPF non usa un protocollo di trasporto - Scelta diversa da RIP e BGP - Meccanismi di affidabilità della comunicazione sono gestiti direttamente da OSPF - L'autenticazione può essere basata su una password in possesso dei router che comunicano o su meccanismi più complessi di cifratura - ![](media/image39.png)Più LSA possono essere contenuti in un singolo Link State Packet - Le basi dati di tutti i router in un'area OSPF devono essere sincronizzate - Tutti i pacchetti OSPF hanno un header comune - Contengono solo il Source IP address perché per l'invio si usa il pacchetto IP con Multicast - L'authentication più semplice è una password ### Hello Packet, DR e BDR - Ogni router manda periodicamente un messaggio HELLO (Type 1 nell'header) ad ogni router direttamente collegato: verifica che sia raggiungibile - Designated Router e Backup DR sulla stessa LAN vengono eletti sulla base della Priority e del Router ID (coincide con l'indirizzo IP) - aiutano a ridurre il traffico di controllo - router con Priority=0 non possono diventare DR, BDR - I router su una LAN si riconoscono perché condividono la subnet (parte dell'indirizzo IP con netmask) LSP e LSA in OSPF ----------------- Ci sono tre tipi di LSP - Link state update: insieme di LSA inviati su un link generati dal router che emette il LSP o da altri router - Link state acknowledgement: avvenuta ricezione di un certo insieme di LSA - Link state request: richiesta invio di uno o più LSA Ci sono cinque tipi di LSA (Type) - Router LSA: informazioni sui router adiacenti a chi genera il LSA - Network LSA: generato dai designated router per descrivere la LAN cui il designated è collegato - Summary LSA: generati dagli area border router per comunicare la raggiungibilità delle altre aree ai router interni - AS boundary router LSA: generati dagli area border router per annunciare la raggiungibilità di un AS boundary router - AS external LSA: generati da un AS boundary router per annunciare destinazioni esterne al dominio di routing ![](media/image41.png)Un LSA "vecchio" (in genere 1 ora) viene rimosso dalla base dati EGP Routing ----------- Negli anni 80 l'architettura di Internet era molto semplice: - c'era un'unica rete backbone - ogni rete fisica era collegata alla backbone da un core router: - ogni core router conosceva le rotte per tutte le reti fisiche Non è accettabile che ci sia un unico proprietario per il backbone di tutta la rete - Non tutte le reti fisiche possono essere collegate direttamente al backbone - Soluzione non scalabile: al crescere del numero di core router diventa impossibile mantenerli tutti aggiornati... Ora la rete internet è un insieme di Reti con Peer Backbone: - prevedono l'esistenza di diverse dorsali: - gli amministratori delle reti backbone devono concordare una politica di routing per evitare la creazione di cicli - i core router delle diverse reti devono scambiarsi informazioni sulle rotte - Routing Gerarchico - Oggi Internet è strutturata come un insieme di Autonomous System (AS): - un AS è una collezione di reti amministrate da un'unica autorità - Ogni AS contiene un numero limitato di reti: - la gestione delle informazioni di routing all'interno dell'AS è più semplice ### Il Routing in presenza di Autonomous System - Ogni AS è responsabile del routing all'interno delle sue reti: routing interno - Gli AS devono scambiarsi informazioni di raggiungibilità: routing esterno - garantisce la correttezza e la consistenza delle informazioni memorizzate nelle tabelle dei router - Ogni AS deve essere identificato da un nome: AS number (16 bit) #### BGP -- Border Gateway Protocol - Consente lo scambio di informazioni utili all'instradamento tra router di frontiera di differenti sistemi autonomi -- AS - TCP è utilizzato a livello di trasporto per lo scambio dei messaggi BGP - Il router di frontiera invia messaggi di open per indicare la sua disponibilità allo scambio di tabelle di routing - La richiesta può essere accettata o rifiutata (sulla base degli accordi stipulati) - La tabella di instradamento contiene, per ogni rete raggiungibile, la sequenza di AS da attraversare (approccio path vector) #### Internet inter-AS routing - BGP (Border Gateway Protocol): è di fatto IL protocollo di routing interdominio: Il collante di Internet - Permette a una subnet di pubblicizzare la propria esistenza e le destinazioni che può raggiungere al resto di Internet: "Sono qui, ecco chi posso raggiungere e come" - BGP fornisce a ciascun AS (Autonomous System) un mezzo per: - eBGP: ottenere informazioni di raggiungibilità delle subnet dagli AS vicini - iBGP: propagare le informazioni di raggiungibilità a tutti i router interni all\'AS - Determinare le "migliori" rotte verso altre reti in base alle informazioni di raggiungibilità e alla politica ### BGP basics BGP session: two BGP routers ("peers") exchange BGP messages over semi-permanent TCP connection: - advertising paths to different destination network prefixes (BGP is a "path vector" protocol) When AS3 gateway 3a advertises path AS3,X to AS2 gateway 2c: - AS3 promises to AS2 it will forward datagrams towards X #### Path attributes and BGP routes BGP advertised route: prefix + attributes - prefix: destination being advertised - two important attributes: - AS-PATH: list of ASes through which prefix advertisement has passed - NEXT-HOP: indicates specific internal-AS router to next-hop AS Policy-based routing: - gateway receiving route advertisement uses import policy to accept/decline path (e.g., never route through AS Y). - AS policy also determines whether to advertise path to other neighboring ASes ### BGP path advertisement - AS2 router 2c receives path advertisement AS3,X (via eBGP) from AS3 router 3a - based on AS2 policy, AS2 router 2c accepts path AS3,X, propagates (via iBGP) to all AS2 routers - ![](media/image44.png)based on AS2 policy, AS2 router 2a advertises (via eBGP) path AS2, AS3, X to AS1 router 1c ### BGP path advertisement (more) Gateway router may learn about multiple paths to destination: - AS1 gateway router 1c learns path AS2,AS3,X from 2a - AS1 gateway router 1c learns path AS3,X from 3a - ![](media/image47.png)based on policy, AS1 gateway router 1c chooses path AS3,X and advertises path within AS1 via iBGP - recall: 1a, 1b, 1d learn via iBGP from 1c: "path to X goes through 1c" - at 1d: OSPF intra-domain routing: to get to 1c, use interface 1 - at 1d: to get to X, use interface 1 - ![](media/image50.png) - recall: 1a, 1b, 1d learn via iBGP from 1c: "path to X goes through 1c" - at 1d: OSPF intra-domain routing: to get to 1c, use interface 1 - at 1d: to get to X, use interface 1 - at 1a: OSPF intra-domain routing: to get to 1c, use interface 2 - at 1a: to get to X, use interface 2 ### BGP messages BGP messages exchanged between peers over TCP connection - OPEN: opens TCP connection to remote BGP peer and authenticates sending BGP peer - UPDATE: advertises new path (or withdraws old) - KEEPALIVE: keeps connection alive in absence of UPDATES; also ACKs OPEN request - NOTIFICATION: reports errors in previous msg; also used to close connection ### Why different Intra-, Inter-AS routing ? Policy: - inter-AS: admin wants control over how its traffic routed, who routes through its network - intra-AS: single admin, so policy less of an issue Scale: - hierarchical routing (route aggregation) saves table size, reduced update traffic Performance: - intra-AS: can focus on performance - ![](media/image52.png)inter-AS: policy dominates over performance ### BGP route selection Router may learn about more than one route to destination AS, selects route based on: 1. local preference value attribute: policy decision 2. shortest AS-PATH 3. closest NEXT-HOP router: hot potato routing 4. ![](media/image54.png)additional criteria ### Routing Gerarchico vs Routing Piatto Il routing gerarchico è usato per migliorare la scalabilità: - con 150 milioni di destinazioni: - non è possibile memorizzare tutte le destinazioni nelle routing table - lo scambio di tabelle di routing così grandi diminuisce notevolmente la banda utilizzata -... ma può condurre a scelte sub-ottime ### Internet Exchange Point (IXP) - Internet Exchange Point (IXP), o Network Access Point (NAP): infrastruttura fisica che permette a diversi Internet Service Provider di scambiare traffico Internet fra loro, interconnettendo i propri Autonomous System attraverso accordi di peering generalmente gratuiti - Scopo: permettere agli ISP di risparmiare una parte della banda che comprano dai loro upstream provider, e di guadagnare in efficienza e in affidabilità - Gli IXP operano di solito realizzando connessioni L2 tra router BGP degli ISP Network Management ------------------ - Autonomous system (detto anche "network" o rete): contiene migliaia di componenti hardware/software che interagiscono tra loro - La complessità della gestione, monitoraggio, configurazione di un AS/rete può essere molto elevata - Network management comprende il deployment, l\'integrazione e il coordinamento degli elementi hardware, software e umani per monitorare, testare, interrogare, configurare, analizzare, valutare e controllare le risorse della rete e degli elementi al fine di soddisfare i requisiti operativi in tempo reale, di prestazioni e di Qualità del Servizio (QoS) a un costo ragionevole. ### Componenti del Network Management - ![](media/image56.png)Server di gestione: applicazione, tipicamente con i gestori di rete (umani) coinvolti nel processo - Protocollo di Network management: utilizzato dal server di gestione per interrogare, configurare e gestire il dispositivo; utilizzato dai dispositivi per informare il server di gestione riguardo a dati ed eventi - Dispositivo gestito: apparecchiatura con hardware e software gestibili e configurabili - Dati: dati di configurazione dello \"stato\" del dispositivo, dati operativi, statistiche del dispositivo ### Diversi approcci alla gestione - CLI (Command Line Interface) l\'operatore invia comandi (digita, esegue script) direttamente sui singoli dispositivi (ad esempio, tramite SSH) - SNMP/MIB l\'operatore interroga/imposta i dati dei dispositivi (MIB) utilizzando il Simple Network Management Protocol (SNMP) - NETCONF/YANG - più astratto, scalabile, olistico - enfasi sulla gestione della configurazione multidispositivo - YANG: linguaggio di modellazione dei dati - NETCONF: comunica azioni/dati compatibili con YANG da/a/tra dispositivi remoti #### Protocollo SNMP Due modi per raccogliere informazioni (MIB info) dal dispositivo o per dare comandi: ![](media/image59.png)request/response mode Trap Mode - SNMP assume che i canali di comunicazione siano connectionless, quindi utilizza come protocollo di livello Transport il protocollo UDP, non garantendo l\'affidabilità dei pacchetti SNMP - Le caratteristiche principali del protocollo sono: - I moduli Agent sono in ascolto sulla porta UDP 161 - Le risposte sono inviate alla Network Management Station (Manager) utilizzando un numero di porta casuale, scelta dinamicamente dal manager - La dimensione massima del pacchetto SNMP è limitata solamente dalla massima dimensione del payload UDP (65507 byte) - I messaggi di errore e le eccezioni (Trap) sono spediti dall\'Agent al Manager in maniera asincrona utilizzando la porta UDP 162 ##### SNMP: Management Information Base (MIB) - I dati operativi (e alcuni dati di configurazione) del dispositivo gestito sono raccolti nel modulo MIB del dispositivo. 400 moduli MIB sono definiti negli RFC; molti altri MIB sono specifici vengono definiti dai produttori - ![](media/image61.png)Structure of Management Information (SMI): linguaggio di definizione dei dati. Esempio: variabili MIB che descrivono il protocollo UDP: #### Struttura delle informazioni di gestione SMI Lo SMI (Structure of Management Information) impone che tutti i managed object abbiano: - un nome che corrisponde ad un Object Identifier (OID), es. 1.3.6.1.2.1.2.1, dove ogni numero rappresenta un livello nell\'albero MIB - una sintassi ossia il tipo di dato dell\'oggetto (ad esempio, intero o reale) - una codifica, ossia come le informazioni associate al managed object sono formattate In questo modo si assicura che i dati possano essere raccolti, interpretati e visualizzati correttamente dai sistemi di gestione di rete #### NETCONF Obiettivo: gestire/configurare attivamente i dispositivi a livello di rete - Opera tra il server di gestione e i dispositivi di rete gestiti - Azioni: recuperare, impostare, modificare, attivare configurazioni - Transazioni atomiche: esegue azioni di commit atomico su più dispositivi. Le modifiche possono essere applicate simultaneamente su più dispositivi in modo completo, o annullate interamente in caso di errore, garantendo che la rete non rimanga in uno stato inconsistente - Query: recupera dati operativi e statistiche - Prevede una fase di registrazione per ricevere notifiche dai dispositivi Utilizza il paradigma delle chiamate di procedura remota (RPC) - Messaggi NETCONF codificati in XML - Trasporto: scambiati su un protocollo di trasporto sicuro e affidabile (usa TLS per la crittografia delle sessioni, un protocollo di livello 6 su TCP) ##### Operazioni - \ Recupera tutta o parte di una configurazione specifica. Un dispositiv