Parte terza Routing & forwarding
Routing: due diverse attività forwarding (aspetto esecutivo) scegliere la direzione di uscita su cui inoltrare il datagram (... tramite la tabella) routing (aspetto algoritmico) calcolare la tabella di routing routing ( (forwarding) diretto: : trasmissione di un datagram da A a B direttamente è possibile solo se A e B appartengono alla stessa rete fisica A controlla il net-id dell indirizzo IP del destinatario indiretto: : il mittente deve inviare il datagram ad un router intermedio... 2
come un router processa un datagram IP D controllo versione controllo CHK decrementa TTL [ [0? Scarto e ICMP back to sorgente] ricalcolo CHK IP D = IP router => consegna payload IP D = Indirizzo diretto => ARP + frame [ [frammenti?] consulta tabella => inoltro NextHop => ARP + frame (chi è?) [frammenti?] 3
Gerarchia in Internet Tre livelli network subnet host I router centrali ( (core)) gestiscono i cammini tra network e non tra subnet Malgrado questo i core router devono gestire più di 100,000 networks 4
Tabelle di routing Tabelle piccole solo informazioni sulle reti no informazioni sui singoli host Tabella (N, R) N: indirizzo IP di una rete Destinazione R: indirizzo IP del prossimo router sulla rotta per N 5
esempio F G 15.0.0.0 20.0.0.0 30.0.0.0 40.0.0.0 15.0.0.5 20.0.0.5 20.0.0.6 30.0.0.6 30.0.0.7 H 40.0.0.7 Tabella per router G 20.0.0.0 diretto 30.0.0.0 diretto 15.0.0.0 20.0.0.5 40.0.0.0 30.0.0.7 Raffinamenti: rotta di default utile quando un sito ha solo una connessione al resto della rete (ad esempio un host) comando unix: netstat -r per vedere le tabelle di routing 6
Algoritmo ( (prima versione) Estrai I D, indirizzo destinazione dal datagram Calcola I N : IP ADD rete di destinazione If I N è direttamente collegata Then invia datagram a destinazione su questa rete (risolvi I D ; incapsula datagram ; manda frame) Else If I D compare in Tabella Then inoltra come indicato Else If rotta per default Then inoltra come indicato Else segnala routing error 7
Algoritmo ( (in presenza di subnet) La tabella contiene linee tipo (this-subnet, subnet-mask, next-hop) si esegue IP D AND subnet-mask per isolare net-id e trovarne l indirizzo in tabella 8
esempio 9
tabella per R5 Destinazione next hop 190.3.6.0/24 diretta 190.3.3.0/24 diretta 190.3.1.0/24 190.3.3.2 190.3.7.0/24 190.3.3.2 190.3.9.0/24 190.3.6.8 150.1.0.0/16 190.3.6.8 Default 190.3.6.8 Gli host dovranno conoscere il proprio ind. IP,, la Netmask e l indirizzo del router di default. host H3 avrà: IP = 190.3.6.2 NetMask = 255.255.255.0 (o /24) default router = 190.3.6.8 10
altro esempio Mask=255.255.255.128 subnet=128.96.34.0 128.96.34.5 H1 128.96.34.130 R1 128.96.34.1 Mask=255.255.255.128 subnet=128.96.34.128 H3 128.96.33.14 R2 128.96.34.129 128.96.33.1 H2 128.96.34.139 Mask=255.255.255.0 subnet=128.96.33.0 11
Tabella di R1 subnet mask next-hop 128.96.34.0 255.255.255.128 Interfaccia-0 128.96.34.128 255.255.255.128 Interfaccia-1 128.96.33.0 255.255.255.0 R2 12
Routing: H1 invia un pacchetto a H2 H1: : mask AND IP H2 255.255.255.128 AND 128.96.34.139 = 128.96.34.128 (subnet di H2) H2 non appartiene alla stessa LAN di H1 => H1 invia pacchetto a router di default: R1 R1: : Mask AND IP H2 255.255.255.128 AND 128.96.34.139 = 128.96.34.128 (subnet di H2) match nella seconda riga della tabella => forward su Interfaccia-1 13
Algoritmi di routing Caratteristiche tipiche della rete link e router non affidabili pochi cammini alternativi le caratteristiche di traffico possono cambiare rapidamente Due algoritmi di base distance vector link-state Tutte e due assumono che il router sappia l indirizzo di ciascun vicino il costo per raggiungere ciascun vicino Tutte e due gli algoritmi ammettono che un router scambi informazioni con altri altri router per determinare le informazioni globali necessarie a costruire la tabella di routing 14
Distance vector Ciascun nodo informa i suoi vicini ( (gli altri) della sua opinione riguardo al modo di raggiungere in maniera ottimale tutti gli altri nodi della rete ( (informazioni) Ciascun nodo riceve queste informazioni (distance vector) dai suoi vicini e le usa per migliorare la propria informazione riguardo al cammino migliore per raggiungere ciascuna destinazione Caratteristiche distribuito si adatta a cambiamenti di traffico e guasti delle connessioni non richiede un amministratore centrale 15
operazioni Ogni router mantiene una tabella ( (vector)) contenente una riga per ogni altro router Ogni riga della tabella contiene: la distanza (metrica: numero di hop, ritardo, ecc.) che lo separa dal router in oggetto; la linea in uscita da usare per arrivarci; A intervalli regolari ogni router manda l intera sua tabella a tutti i vicini,, e riceve quelle dei vicini. Quando un router A riceve la tabella da B (suo vicino), verifica quali sarebbero i costi per le varie destinazioni usando come transito B; per le destinazioni in cui tali costi risultano minori di quelli attuali, sostituisce il costo vecchio con quello calcolato e lo stesso fa con il next-hop nella Tabella. In generale, calcola una nuova tabella scegliendo, fra tutte, la concatenazione migliore se stesso -> vicino immediato -> router remoto di destinazione 16
Count-to-infinite Il link A-B non è più disponibile C 'crede' di poter raggiungere A attraverso B (e lo comunica a B) B non può raggiungere A direttamente, quindi cerca di passare attraverso C per farlo Loop... A C B D 17
Link state routing Il distance vector comunica solo il costo per raggiungere la destinazione Negli algoritmi link state, il router conosce l intera topologia e calcola da solo il cammino più breve (shortest path) evita il problema base degli algoritmi distance-vector che è quello di fare un calcolo distribuito (che può essere errato) Elementi chiave il calcolo dei costi di comunicazione con i vicini la disseminazione affidabile della topologia il calcolo del cammino più breve 18
attività scoprire i router adiacenti e i loro ID misurare il costo della comunicazione per ciascun vicino costruire un pacchetto con queste informazioni inviare il pacchetto a tutti i router della rete previa ricezione degli analoghi pacchetti che arrivano dagli altri router, costruire la topologia dell'intera rete calcolare le nuove rotte per ogni altro router (cammino minimo) ==> tabelle di routing 19
Link state: calcolo dei costi Ciascun router, al boot, conosce i vicini inviando un pacchetto speciale ( (HELLO)) su ogni linea punto-punto a cui viene risposto con l ID del router adiacente. Ciascun router misura il costo di comunicazione con i vicini per mezzo di pacchetti che vengono ritornati dai vicini ( (ECHO) Se si considera il carico si possono generare oscillazioni Se non si considera il carico si può scegliere una via meno buona 20
Link state: disseminazione della topologia Ciascun router descrive i suoi vicini con un link state packet (LSP) Usa controlled flooding per distribuire a tutti questa informazione flooding l informazione è trasmessa su tutte le linee di uscita i router riceventi propagano le informazioni ricevute su tutte le loro linee di uscita e così via controlled tiene gli LSP in un LSP database per poter decidere se un LSP ricevuto è significativo (contiene una informazione più recente di quella attualmente nel database) ) ogni LSP deve contenere un numero di sequenza progressivo Ogni volta che un router riceve un LSP più vecchio di quello in memoria, lo elimina senza propagarlo se un LSP è nuovo lo ritrasmette a tutti meno a chi lo ha mandato un LSP non viene mai trasmesso due volte sullo stesso link nella stessa direzione 21
DV vs LS DV: : ogni router comunica solo con i nodi adiacenti: quanto è distante ogni singolo nodo il primo salto per andare in quella direzione Le rotte sono direttamente calcolate dalle tabelle ricevute LS: : ogni router comunica (flood)) con tutti i router della rete quali link sono lui collegati lo stato di questi link Calcola poi le tabelle di routing 22
Routing Information Protocol (RIP) Originariamente progettato dalla Xerox per la propria rete, sviluppato dall Università di Berkley per la propria implementazione di TCP/IP, e standardizzato con RFC 1058 nel 1988. E un Distance Vector,, usa una metrica statica:il costo di un percorso è il numero di hop ossia di linee che esso attraversa. E il problema del count-to-infinity? split horizon non si propagano informazioni su una rotta ai vicini da cui si è avuta la notizia with poisonous reverse distanza - per link caduti - settata espressamente a infinito triggered update si chiede agli altri router l invio di informazioni non appena questi verifichino cambiamenti nella loro tabella Aggiorna la Tabella ogni 30 s. e elimina ogni rotta non aggiornata per 180 s consecutivi 23
RIP Ha come valore massimo del costo 15. Il valore 16 corrisponde ad infinito.. Quindi non permette reti con percorsi con più di 15 router attraversati. La limitazione di cui sopra è legata al fatto che per reti più grandi è troppo lento a convergere Ne esistono due versioni, la seconda (RIPv2) consente l uso del CIDR e una autenticazione Lo scambio di informazioni avviene attraverso il protocollo UDP (livello trasporto) 24
Open Shortest Path First (OSPF) Nasce nel 1990 con l RFC 1247 per sostituire il RIP Link State E stato realizzato per rispondere a diverse esigenze: Open ossia aperto e non proprietario Multi-metrica (anche dinamiche) Capace di autoadattarsi a cambi topologici Routing diversi per tipi di servizi differenti Bilanciamento dei flussi (multi-percorso) Gerarchico Protezione da aggiornamenti fallaci Tunneling 25
gerarchia suddivisione della rete in un set di parti indipendenti ( (aree) connesse attraverso un backbone ( (backbone area) ciascuna area si comporta come una rete indipendente; il database include solo lo stato dei link dell'area, il protocollo di flooding si ferma ai confini dell'area ed i routers calcolano solo le rotte all'interno dell'area costo del protocollo di routing legato alle dimensioni dell'area e non a quelle della rete per connettere l'intera rete, alcuni routers appartengono a più aree - tipicamente a un'area a basso livello e all'area di backbone "area-border routers" ( (ABR) almeno un ABR in ciascun area, per connetterla al backbone 26
struttura effettiva di Internet Internet distingue tre livelli gerarchici principali: Sottoreti o singoli domini di broadcast (LAN) All interno dei quali l instradamento fa uso di ARP. Autonomous System (AS) In cui i protocolli di instradamento prendono il nome di Interior Gatway Protocol (IGP): RIP e OSPF. Backbone In cui i protocolli di instradamento prendono il nome di Exterior Gateway Protocol (EGP): BGP. 27
Autonomous system (AS) Internet è una collezione di AS connessi da backbone ad alta velocità raggruppamenti di network in un dominio riconosciuto, identificato univocamente e unicamente amministrato dal punto di vista del routing interno Ciò che caratterizza un AS è il fatto di essere gestito da una singola autorità GARR è un AS le reti dei grandi ISP sono AS La presenza degli AS fa sì che i router vengano distinti in Interior Router (IR) e Exterior Router (ER). Gli IR instradano entro un AS,, mentre gli ER instradano tra diversi AS 28
Autonomous system a set of routers under a single technical administration, using an interior gateway protocol (IGP) and common metrics to route packets within the autonomous system, and using an exterior gateway protocol (EGP) to route packets to other autonomous systems. Since this classic definition was developed, it has become common for a single autonomous system to use several interior gateway protocols and sometimes several sets of metrics within an autonomous system. The use of the term "autonomous system" stresses that even when multiple IGPs and metrics are used, the administration of an autonomous system appears to other autonomous systems to have a single coherent interior routing plan and to present a consistent picture of what networks are reachable through it. The autonomous system is represented by a number (ASN - 16 bit) assigned by the Internet Assigned Numbers Authority. 29
A network of routers split into 5 Autonomous Systems 30
AS AS sono spesso grandi divisi in Aree (collezioni di reti contigue) all esterno di un area la sua topologia non è visibile ogni AS ha un area dorsale ( (backbone)) chiamata Area0 tutte le aree sono connesse a questa topologia a stella un router connesso a due e più aree fa parte del backbone all interno di ciascuna area ogni router esegue lo stesso algoritmo per calcolare i cammini minimi interni all area se un router connette due aree mantiene due diversi DB, uno per ciascuna area, e calcola i cammini minimi separatamente L instradamento fra due aree viene realizzato in tre parti: Il percorso nell area sorgente fra la sorgente stessa ed un Area Border Router Il percorso fra le due aree tramite il backbone Il percorso nell area destinazione fra l ABR che riceve il pacchetto dal backbone e la destinazione. In pratica si forza un instradamento a stella in cui il backbone rappresenta il centro stella 31
Router di un AS I router di un AS possono essere: interni a un area: si occupano del routing all'interno dell'area; sul confine di un'area: si occupano del routing fra le diverse aree via backbone; nell'area backbone: : si occupano del routing sul backbone; sul confine dell'as: : si occupano del routing fra gli AS (applicando( EGP); possono trovarsi anche sul confine di un'area. 32
Exterior Gateway Protocol Tra router di diverse amministrazioni che non si fidano l uno dell altro che usano diversi modi di calcolare il costo ci si riduce al costo comune più semplice: il numero di hop Problemi di transito 33
routing vs. policy routing Nel caso standard il routing dipende dal costo, dalla topologia e dalla disponibilità Nel caso di policy routing,, i cammini sono scelti anche sulla base di indirizzo di partenza e arrivo domini attraversati quality of service ora del giorno addebiti In generale è un problema irrisolto 34
BGP (Border Gateway Protocol) E il protocollo EGP relativamente recente, definito dal RFC 1654 La versione in uso attualmente è la 4 (BGP4) Permette la cooperazione fra router di AS diversi (chiamati gateway) ) per la realizzazione dell instradamento fra AS Per lo scambio di informazioni fra i nodi usa TCP (porta 179) Visione di Internet per BGP collezione di router che parlano BGP connessi da linee 35
BGP Anche se tutti i router all interno di un AS sono fra loro cooperativi, non è detto che i nodi che interconnettono due AS si fidino l uno dell altro Questo accade in quanto gli AS sono in genere controllati o posseduti da organizzazioni diverse e quindi l instradamento deve dipendere anche dagli accordi fra i diversi AS (transito) 36
BGP Opera in tre passi: Identificazione dei nodi adiacenti Raggiungibilità dei nodi adiacenti Raggiungibilità delle reti Utilizza un algoritmo tipo Distance Vector ( (Path Vector) Distingue tre tipi di reti Stub: che hanno un unica connessione con il backbone e non possono venir usate come transito Multiconnected: : che potenzialmente possono essere usate per transito (se lo permettono) Transit: : costruite per realizzare il transito 37
BGP E' fondamentalmente di tipo distance vector, con due novità: possiede la capacità di gestire politiche di instradamento (derivanti, ad esempio, da leggi nazionali), configurate manualmente nei router mantiene (e scambia con gli altri router) non solo il costo per raggiungere le altre destinazioni, ma anche il cammino completo. Ciò consente di risolvere il problema del count-to-infinity: : se una linea va giù, il router può subito scartare, senza quindi poi distribuirli, tutti i cammini che ci passano. Periodicamente ogni router BGP scambia coi vicini l elenco dei cammini esatti 38
tools http://www.bgp4.as/tools GARR: AS137 http://www.ripe.net/whois?searchtext=as137 Tiscali: AS3228 Libero: AS1267-1268 39