Protocolli di routing e stack TCP/IP X-Windows Telnet NIS NFS SNMP FTP Upper Layers BGP Transport TCP ARP RARP Nework Data Link ICMP RPC RIP UDP EGP OSPF IGRP IP Hello Protocolli di routing Algoritmo Link State Distance Vector Protocollo Dijkstra SPF OSPF Bellman-Ford, DUAL EGP, RIP, IGRP EIGRP R1 N C 12.0.0.0 4 20.0.0.0 30 30.0.0.0 30 40.0.0.0 35 Vettore delle distanze di R1 N = Network C = Costo NH = Next Hop Distance Vector R2 N C 12.0.0.0 0 20.0.0.0 10 30.0.0.0 10 40.0.0.0 15 R3 N C NH 12.0.0.0 9 R1 20.0.0.0 15 R4 30.0.0.0 25 R2 40.0.0.0 15 R4 Tabella di routing di R3 Vettore delle distanze di R2 R4 N 10.0.0.0 20.0.0.0 30.0.0.0 40.0.0.0 C 15 10 30 10 Vettore delle distanze di R4 1) quando riceve un messaggio da un router adiacente confronta ogni coppia (destinazione, costo) col contenuto della tabella di routing: a) se la destinazione non è in tabella e il costo dell’annuncio non è infinito allora crea una nuova entry per la nuova destinazione e fa partire un timout timer per la nuova entry; b) se la destinazione è in tabella e il next hop è il router adiacente che ha fatto l’annuncio allora aggiorna il costo ed il next hop nella entry e fa ripartire il timeout timer; c) se la destinazione è nella tabella e il costo indica un percorso migliore allora aggiorna il costo e fa ripartire il timeout timer; 2) quando scatta il timeout timer pone il costo a infinito e fa partire il garbage collection timer; 3) quando scatta il garbage collection timer cancella la entry dalla tabella di routing; 4) ad intervalli regolari trasmette ai router adiacenti un messaggio che riporta tutte le coppie (destinazione, costo) contenute nella tabella di routing. Distance vector algorithm Loop A L1 B Tabella di instradamento di B dopo la caduta del link B --> ? Link B A C local 1 2 Cost= hops 0 1 inf. C L2 Distance Vector proveniente da A A --> ? Link A B C local 1 1 per evitare i loop : when cos t 16 cos t Cost= hops 0 1 2 Distance Vector: cold start Cold start: condizione in cui gli apparati inziano a funzionare tutti contemporaneamente Inizialmete tutti i sistemi dispongono di distance vector che rappresentano se stessi e le stazioni ad essi direttamente collegate •Protocolli “neighbour greetings” •Configurazione manuale Distance Vector: caratteristiche • Vantaggi: – semplice da implementare; – non appesantisce il router in termini di capacità elaborativa e memoria occupata. • Svantaggi: – possono innescarsi dei loop a causa di particolari variazioni della topologia; – converge alla velocità del link più lento e del router più lento; – difficile capirne e prevederne il comportamento su reti grandi: nessun nodo ha una mappa della rete (conoscenza locale); – l’implementazione di meccanismi migliorativi appesantisce notevolmente il protocollo; – hop-count-limit impone l’impiego di questo algoritmo in reti piccole con pochi hop. Routing InformationProtocol (RIP) • è stato originariamente progettato da Xerox per la rete XNS. • È stato introdotto dall’università di Berkeley nell’architettura TCP/IP nel 1982, • Definito come RFC 1058 nel 1988 e aggiornato come RFC 1388 nel 1993. RIP (costo=num hops) A Distance Vector di A A --> ? Cost B 1 64kb/s L8 A B D C E 0 1 1 2 2 L2 F L3 L4 1 Mb/S 1 Mb/S L7 L6 L5 D Distance Vector di D D --> ? Cost D A B E C 0 1 2 1 2 C E Tabella di instradamento di F F --> ? Link Cost F A B C D E local 8 8 7 7 7 0 1 2 3 1 2 A parità di metriche si prende l’entry del DV arrivato per primo RIP: Timer •routing update timer = 30s (intervallo di tempo per l’invio periodico dei distance vector); •route invalid timer = 180s (intervallo di tempo dopo cui una route è dichiarata non più valida (cost = infinito)); Routing update in broadcast No discovery! Loop A = 4 Hop A = 2 Hop Net A Net D R1 X E0 R2 Net B S0 S0 R3 Net C S1 S0 E0 A = 3 Hop A = 5 Hop hop-count-limit in RIP è 15 (16=infinito) Limite nella dimensione della rete (RIP per reti al massimo di 1000 nodi.) Opzioni per la stabilità • Le opzioni usate in RIP per migliorare la stabilità sono: – Split Horizon: un router non annuncia una destinazione sull’interfaccia da cui l’ha appresa – Split Horizon with Poisonous Reverse: se un router perde la connettività verso una rete, dopo aver inserito il valore 16 (inf) nella entry, la mantiene invariata per un determinato numero di periodi di routing updated; inoltre annuncia in broadcast con valore infinito (16) il costo per raggiungere quella rete. Convergenza ancora lenta… – Triggered update ( inviati immediatamente a fronte di cambiamenti nella rete) Loop che coinvolgono più di 2 router… RIP: formato del pacchetto command version zero address family identifier(IP=2) zero IP address zero zero metric ........ UDP port n° 520 RIP: sintesi • • • • • • • • Largamente disponibile Facile da implementare Metrica basata su numero di hop Update periodici (ogni 30 sec.) inviati in broadcast Convergenza lenta Routing loops Count to infinity No load balancing RIP versione 2 • • • • RFC 1723 Può interoperare con RIPv1 Permette di trasferire anche le netmask Routing Update trasmessi in multicast – all’indirizzo di classe D 224.0.0.9 • E’ possibile effettuare l’autenticazione dei messaggi • E’ possibile il subnetting solo se tutti i router della rete hanno la stessa versione (es. RIP2). RIPv2: routing update in multicast I messaggi di update vengono trasmessi in multicast (indirizzo di classe D: 224.0.0.9) RIPv2: formato del pacchetto command version routing domain address family identifier route tag IP address subnet mask next hop metric IGRP • Protocollo Distance Vector proprietario Cisco • Supera i limiti di RIP • Metriche sofisticate contenenti: – ritardo (non misurato, ma associato secondo valori predefiniti a ciascun tipo di sottorete trasmissiva) – banda si tratta di parametri configurati dal gestore in modo statico; se fossero misurati – affidabilità automaticamente, per via dei diversi istanti di misura attuati dai router, si potrebbero – carico • Trasporta anche: innescare dei loop) –numero Hop – lunghezza massima del pacchetto Annunci dell’IGRP vengono inviati ogni 90 secondi Metrica IGRP D - delay (1 - 224) (1 = 10 s) R - reliability (1 - 255) (255 = 100%) L - load (0 - 255) (255 = 100%) B - bandwidth (1.2 - 107) (1 = 1 kbit/s) Bandwidth e Delay sono per default associati al tipo di portante fisico. Es.: Ethernet -> B=10000, D=100 CDN 64 kbit/s -> B=64, D=2000 Per ciascun link B e D possono comunque essere impostati dal gestore Su un determinato percorso: B è calcolata come il minimo sul percorso D è calcolato come la somma sul percorso Il gestore può impostare 5 parametri di peso: k1, k2, k3, k4, k5 Se k5 = 0 : Metrica = (107/ B) [k1+ k2 / (256-L)] + k3 x D Se k5 ‡ 0 : Metrica = Metrica x [ k5 / (R + k4) ] Per default : k1=k3=1; k2=k4=k5=0. IGRP: multipath routing e load balancing • Più entry per una stessa destinazione vengono installate nella tabella di routing (max 6 righe) • Il carico può essere ripartito tra le diverse route in funzione della metrica associata: la distribuzione dei pacchetti su link differenti, verso la stessa destinazione avviene in misura inversamente proporzionale al costo espresso nella tabella. • Sono usate per il multipath routing solo le route con metrica che rientra nel range definito dal gestore Link State Protocols LSP ricevuto da un’interfaccia Link-state database Algoritmo di Dijkstra Tabella di routing LSP ritrasmesso su tutte le altre interfacce Il Link State Packet (LSP) generato da ogni router contiene: •identificativo del router che emette il LSP; •stato di ogni link connesso al router; •identità di ogni vicino connesso all’altro estremo del link •costo del link; •numero di sequenza per il LSP, utilizzato per individuare diverse versioni emesse dallo stesso router per scegliere la più recente. Flooding (1) A E B LSP LSP LSP D C Flooding (2) A B D C E I router A, C, E ritrasmettono il LSP di D su tutte le interfacce tranne quella da cui lo hanno ricevuto LSP Database Costo A C 2 1 3 B LSP DataBase D A B C D E F G H 2 1 E 2 5 1 F E/2 G/1 G/2 H/1 (replicato su ogni Router ) G 4 B/2 A/2 D/3 D/1 B/3 C/1 B/2 F/5 E/5 H/4 D/1 E/2 F/4 G/1 H Tabella di routing: algoritmo di Dijkstra A C 2 1 L 1 Tabella di 3 B routing di B D L 2 A C D E F G H L 3 2 E 2 5 G 1 F H L1 L2 L2 L3 L3 L3 L3 Link State: caratteristiche • Vantaggi: – – – – può gestire reti di grandi dimensioni; ha una convergenza rapida; difficilmente genera loop; ogni nodo ha la mappa della rete. • Svantaggi: – molto complesso da realizzare (la prima implementazione ha richiesto a Digital 5 anni); • È utilizzato nello standard ISO 10589 (IS-IS) e nel protocollo OSPF (molto diffuso su reti TCP/IP di grandi dimensioni). OSPF [Open Shortest Path First] • Protocollo di tipo link state • Definito dall’IETF: – RFC 1247 (1991) – RFC 1583 (1994) - OSPFv2 OSPF [Open Shortest Path First] • • • • • • • Type of service routing Load balancing (più cammini con lo stesso costo) Network partition Message authentication Network/Subnetw/host_specific routing Designed_router to accomodate multiaccess net Virtual Link Type of service routing • OSPF consente l’uso di una metrica per ciascuna delle codifiche ammesse nel campo TOS di IP (D, T, R) • Ogni LSP puo’ contenere una o piu’ metriche • Ogni router calcola un albero distinto per ciascuna metrica • Percorsi diversi per pacchetti con requisiti di servizio diversi Esempio di metrica OSPF RTA 10 128.213.0.0 Costo interfaccia = 108/(bandwidth in bps). 8 RTB 5 5 RTC 192.213.11.0 10 10 RTD 222.211.10.0 5 Load balancing Algoritmo di Dijkstra (Approfondimento) RTA 0 10 10 RTC RTB 128.213.0.0 510 10 5 RTD 15 5 192.213.11.0 MR 222.211.10.0 195 Designed_router to accomodate LSA multiaccess net Designated router LSA LSA Designated router LSA Designed_router = Pseudo nodo LAN Designated router A A B D C B LSP Vicino metrica LSP Vicino metrica A 1 C 1 D 1 Designated router D A 1 C 1 B 1 C LSP Vicino metrica D A 1 B 1 D 1 Rappresentazione secondo l’algoritmo Link State della rete LAN LSP Vicino metrica D 1 A C B Rappresentazione a stella della rete LAN (designed router=pseudo nodo) Routing gerarchico La grandezza del database in cui vengono memorizzati i LSP, il tempo per l’elaborazione delle informazioni di routing e il volume dei messaggi scambiati aumentano al crescere delle dimensioni del dominio! LSP Database Area 0 LSP Database Area 0 LSP Database Area 1 Area #1 Backbone Area #0 LSP Area #2 Database Area 2 LSP Database Area 0 LSP Area #3 Database Area 3 Network partition • OSPF ha il concetto di gerarchia – un AS (dominio OSPF) è suddiviso in aree – le aree contengono un gruppo di reti contigue – le aree sono indicate da un area-id su 32 bit • deve essere specificato per ogni interfaccia – quando un AS ha più di un’area deve esistere una backbone area con area-id = 0 e tutte le altre debbono interconnettersi a questa OSPF: Topology/Link State Database • Un router ha un LSP database distinto per ogni area alla quale appartiene • Tutti i router appartenenti alla stessa area hanno lo stesso database • Il calcolo SPF è effettuato separatamente per ciascuna area • LSP flooding è confinato all’interno di un’area Classificazione dei router Internal Router Area 2 Area 3 Area 0 Area Border Router Backbone Router Area 4 Verso altri domini Autonomous System Boundary Router Ogni area non backbone ha bisogno di un router di frontiera ABR verso l’area 0 da cui riceve informazioni sulle destinazioni esterne e in cui inietta informazioni sulle proprie reti. Aree non direttamente connesse con il backbone:Virtual Link Backbone Area 0 RouterB Area 2 RouterA Virtual Link Area 1 I virtual link sono link logici punto-punto tra coppie di ABR che hanno un’area non backbone in comune (detta transit area) OSPF protocol: Header comune vers type length Router ID Area ID checksum autype authentication authentication OSPF protocol: Type Type Meaning 1 Hello 2 Database description 3 Link status request 4 Link status update 5 Link status acknowledgement Hello Protocol Hello FDDI Hello Hello Il protocollo di Hello è usato per: - monitorare quali router siano attivi; - monitorare quali link siano in funzione; -eleggere il designated-router e il backup-designated-router nelle reti multi-accesso broadcast e non broadcast. Principali campi del pacchetto di Hello BACKUP } ripetuto per ogni neighbor Due router sono vicini o neighbor quando ognuno si riconosce nel pacchetto di hello dell’altro. Database Description message L’adiacenza è lo step successivo al processo di neighboring. I router adiacenti vanno oltre lo scambio dei pacchetti di Hello e procedono allo scambio dei database. Due router diventano adiacenti quando si sincronizzano, cioè quando verificano la situazione dei propri database e si portano in uno stato comune . A tale scopo si utilizza il Database Description Message. LINK STATE REQUEST LINK STATE UPDATE Link state advertisment Adiacenze su LAN 2-Way Ma non adiacenti DR BDR Vengono eletti il DR e il BDR Sulla LAN tutti i router stabiliscono relazioni di neighbor del tipo two-way tra di loro, ma un router diventa adiacente solo con il DR e con il BDR. La sincronizzazione di tutti i router con il DR e con il BDR fa sì che tutti i router abbiano tutti lo stesso database. Tipi di route (approfondimento ) • Un cammino selezionato da OSPF può essere: – intra-area: se è interno ad un’area OSPF – inter-area: se oltrepassa i limiti delle aree – external: se oltrepassa i limiti del dominio OSPF Design Tips • Numero di router per area: – tipicamente il numero massimo è di 40/50 router per area • Numero di neighbors: – minore è il numero di neighbors presenti su una LAN minori sono il numero di adiacenze che un DR o un BDR deve formare – se possibile, evitare che uno stesso router sia DR su più di un segmento • Numero di aree per ABR – gli ABRs mantengono una copia del database per ciascuna delle aree servite – un router non deve stare in più di tre aree, la backbone area più una o due aree non backbone OSPF vs RIP OSPF RIP Scalabilità Buona Bassa Banda Bassa Alta Memoria Alta Bassa CPU Alta Bassa Veloce Lenta Moderata Facile Convergenza Configurazione Algoritmi utilizzati per propagare le informazioni relative al routing nel core system. Vector Distance Shortest Path First (OSPF) (GGP) Usato oggi nel Core in Internet EGP e IGP AS3 AS2 R R R R R R R R R R R R R R R R R Dominio A MR IGP EGP R R Dominio B AS1 218 Problema dell’istradamento InterAS • Le dimensioni: un router della rete backbone deve essere in grado di istradare verso una qualsiasi rete in Internet (anche con l’ausilio di CIRD tali router gestiscono circa 140.000 prefissi..) • I vari AS utilizzano diversi protocolli di routing e quindi diverse metriche; confrontare i valori di tali metriche potrebbe non aver senso. Trovare un percorso “qualsiasi” che permetta di raggiungere la destinazione senza loop EGP AS34 AS1 Net1 Net1 Net16 AS8 For net in AS1 to send traffic to net in AS16: • AS16 must announce to AS8. • AS8 must accept from AS16. • AS8 must announce to AS1 or AS34. • AS1 must accept from AS8 or AS34. For two-way packet flow, similar policies must exist from AS1 to AS16. AS16 Funzioni del protocollo EGP Neighbor acquisition Acquisition request Acquisition confirm Acquisition refuse Cease request Cease confirm Neighbor reachability Hello I-heard-you Routing update Poll request Routing update Error response Error Richiede ad un router di divenire un neighbor Il router accetta Il router rifiuta Richiede la fine della relazione Conferma la fine della relazione Richiede al neighbor di confermare la relazione precedentemente stabilita Conferma Richiede l'update della network reachability Informazioni di network reachability (solo reti interne all’AS se il router non appartiene al Core system) Risposta a messaggi scorretti EGP:routing update No Loop! EGP HEADER EGP: svantaggi • EGP presuppone una relazione “padre/figlio tra i border gateway. Ciò perche’ EGP è stato definito quando Internet aveva una struttura ad albero! Border Gateway Protocol • Router adiacenti comunicano attraverso una connessione di livello trasporto affidabile – TCP port 179 • Protocollo Distance Vector (Path Vector) • Per ogni destinazione IP è fornita la sequenza di Autonomous System (AS) da attraversare – ognuno è identificato con 2 ottetti – nel distance vector puro è indicato solamente il costo – non c’è il problema del conteggio a infinito (“countingto-infinity”) MR 219 Peers (Approfondimento) R Peer AS3 AS2 R R eBGP eBGP R R R R R R R iBGP R R AS1 MR 220 Messaggi BGP • • • • Open Update Keepalive Notification Header comune Marker dimensione tipo Marker: campo a 16 byte riservato all’autenticazione Dimensione: dimensione complessiva del messaggio Tipo: tipo di pacchetto Messaggio Open Marker dimensione tipo versione mio AS Hold time Router che ha inviato mess. open opt dimens. options Un BGR crea una relazione di prossimità aprendo una connessione TCP con il vicino e inviandogli un messaggio di OPEN Messaggio update Marker dimensione tipo Unfeasible route len. Unfeasible route len Percorsi annullati . Attributi percorso Path attribute len Rete notificata Usato per annullare destinazioni già notificate o per notificare un percorso verso nuove destinazioni Messaggio keep-alive Marker dimensione tipo Messaggio Notification Marker dimensione tipo Error sub-code Error data Error code. AS200 Processo di decisione • Per quanto riguarda il processo di decisione, occorre osservare quanto segue: – BGP mantiene un solo path-vector per destinazione: il best-path. La scelta è effettuata in base ad attributi contenuti negli annunci (AS_PATH) e a politiche di routing implementate (route-map, access-list) sul router. – Il path-vector di un annuncio indica quali AS bisogna attraversare per raggiungere una certa destinazione. – L’exterior router può scegliere, tra diversi annunci, di mantenere in memoria ed usare quello relativo a degli AS con cui il proprio AS ha degli accordi per il trasporto di traffico. – Anche gli annunci da propagare vengono scelti in base a politiche di routing; in genere BGP annuncia ai suoi neighbor solo il bestpath. CIDR (1) (Approfondimento) 198.32.0.0/24 198.32.1.0/24 Senza CIDR . . . 198.32.7.0/24 198.32.0.0/24 198.32.1.0/24 198.32.2.0/24 198.32.3.0/24 198.32.6.0/24 198.32.7.0/24 198.32.4.0/24 198.32.5.0/24 198.32.3.0 198.32.0.0 Token Ring 198.32.1.0 MR Token Ring Token Ring 198.32.2.0 Token Ring Token Ring 198.32.5.0 198.32.4.0 Token Ring 198.32.7.0 198.32.6.0 221 CIDR (2) (Approfondimento) Con CIDR 198.32.0.0/21 198.32.0.0/22 198.32.6.0/23 198.32.4.0/23 198.32.3.0 198.32.0.0 Token Ring 198.32.1.0 MR Token Ring Token Ring 198.32.2.0 Token Ring Token Ring 198.32.5.0 198.32.4.0 Token Ring 198.32.7.0 198.32.6.0 222 Macrolezione 6: L’interconnessione di reti eterogenee