Upload
anjelo-colli
View
237
Download
2
Embed Size (px)
Citation preview
Protocolli di routing e stack TCP/IP
Data Link
RIP
ICMP
BGP
OSPF IGRP HelloARPRARP
FTP
Telnet
X-Windows
TCP
NFS
NIS
Transport
Nework
Upper Layers
SNMP
EGP
IP
UDP
RPC
Protocolli di routing
Algoritmo Protocollo
Link State
DistanceVector
Dijkstra SPF
Bellman-Ford,
OSPF
EGP, RIP, IGRP
EIGRPDUAL
Distance Vector
C4
3030
N12.0.0.020.0.0.030.0.0.040.0.0.0 35
costo = 5costo = 15
costo
. = 5
R1R2
R3
R4N = NetworkC = CostoNH = Next Hop
C0
1010
N12.0.0.020.0.0.030.0.0.040.0.0.0 15
C151030
N10.0.0.020.0.0.030.0.0.040.0.0.0 10
C9
1525
N12.0.0.020.0.0.030.0.0.040.0.0.0 15
NHR1R4
R4R2
Tabella dirouting di R3
Vettore delledistanze di R1
Vettore delledistanze di R4
Vettore delledistanze di R2
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
B --> ?
BAC
Link
local12
Cost=hops
01
inf.
Tabella di instradamento di B dopo la caduta del link
A --> ?
ABC
Link
local11
Cost=hops
012
Distance Vector proveniente da A
L1 L2A B C
ttwhen
loopievitareper
cos16cos
:
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)
1
L2
L3 L4
L6 L5
L8
L7
A --> ?
ABDCE
Cost
01122
Distance Vector di A
D --> ?
DABEC
Cost
01212
Distance Vector di DF --> ?
FABCDE
Link
local88777
Cost
012312
Tabella di instradamento di F
A parità di metriche si prende l’entry del DV arrivato per primo
B
C
ED
A
F
64kb/s
1 Mb/S1 Mb/S
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 = 3 Hop
A = 2 Hop
A = 5 Hop
A = 4 Hop
Net A
Net B Net C
Net D
E0S0 S0 S1 S0E0
R1 R2 R3
XX
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.
– Triggered update ( inviati immediatamente a fronte di cambiamenti nella rete)
Convergenza ancora lenta…
Loop che coinvolgono più di 2 router…
address family identifier(IP=2)
command version
IP address
zero
zero
metric
zero
zero
RIP: formato del pacchetto
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).
I messaggi di update vengono trasmessi in multicast
RIPv2: routing update in multicast
(indirizzo di classe D: 224.0.0.9)
RIPv2: formato del pacchetto
address family identifier
command version
IP address
subnet mask
next hop
metric
routing domain
route tag
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–affidabilità–carico
• Trasporta anche:–numero Hop– lunghezza massima del pacchetto
si tratta di parametri configurati dal gestore in modo statico; se fossero misurati automaticamente, per via dei diversi istanti di misura attuati dai router, si potrebbero innescare dei loop)
Annunci dell’IGRP vengono inviati ogni 90 secondi
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=100CDN 64 kbit/s -> B=64, D=2000
Per ciascun link B e D possono comunque essere impostati dal gestoreSu un determinato percorso:
B è calcolata come il minimo sul percorsoD è 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.
Metrica IGRP
• 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
IGRP: multipath routing e load balancing
Link State Protocols
Link-statedatabase
Tabella di routing
LSP ricevutoda un’interfaccia
Algoritmo di Dijkstra
LSP ritrasmesso sututte 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) B
CD
A
E
LSP
LSP
LSP
B
CD
A
E
I router A, C, E ritrasmettono il LSP di D su tutte le interfacce tranne quella da cui lo hanno ricevuto
Flooding (2)
LSP Database
(replicato su ogni Router)
A B/2B A/2 D/3 E/2C D/1D B/3 C/1 G/1E B/2 F/5 G/2F E/5 H/4G D/1 E/2 H/1H F/4 G/1
F
E
DB
AC2
1
3
2
1
2
5
4
1
H
G
Costo
LSP DataBase
L1L2L2L3L3L3L3
ACDEFGH
Tabella di
routing di B
H
G
F
E
DB
AC
21
3
2
2
5
1
L 1
L 2
L 3
Tabella di routing: algoritmo di Dijkstra
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
• 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
OSPF [Open Shortest Path First]
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 OSPFRTA
RTB
RTC
RTD
10
10
8
10
5
5
128.213.0.0
192.213.11.0
222.211.10.0
5
Costo interfaccia =
108/(bandwidth in bps).
Load balancing
MR 195
RTA
RTB RTC
RTD
10
128.213.0.0
010
5
222.211.10.0
5
10
192.213.11.0
5
Algoritmo di Dijkstra(Approfondimento)
10
15
Designed_router to accomodate multiaccess net
Designated router
LSA
LSA
Designated router
LSA
LSA
Designed_router = Pseudo nodo
Designated router
LAN
Rappresentazione secondo l’algoritmo Link State della rete LAN
A BC
D
AB
CD
D
LSPVicino metrica
A 1C 1D 1
LSPVicino metrica
A 1B 1D 1
Designated router
Rappresentazione a stella della rete LAN(designed router=pseudo nodo)
AB
C
LSPVicino metrica
A 1C 1B 1
LSPVicino metrica
D 1
Routing gerarchico
BackboneArea #0
Area #1 Area #2 Area #3
LSP DatabaseArea 0
LSP DatabaseArea 1
LSP DatabaseArea 0
LSP DatabaseArea 0
LSP DatabaseArea 2
LSP DatabaseArea 3
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!
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
Verso altri domini
Area 4
Area 0
Area 2 Area 3
Internal Router
Backbone Router
Area Border Router
Autonomous SystemBoundary 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
BackboneArea 0
Area 2
Area 1
Virtual Link RouterA
RouterB
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
versRouter ID
checksumauthenticationauthentication
autypeArea ID
type length
OSPF protocol: Type
Type Meaning
1 Hello
2 Database description
3 Link status request
4 Link status update
5 Link status acknowledgement
Hello
HelloHello
FDDI
Hello Protocol
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.
}ripetuto per ogni neighbor
Principali campi del pacchetto di Hello
BACKUP
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
DR BDR
2-Way
Adiacenze su LAN
Ma non adiacenti
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
Buona
Bassa
Bassa
Alta
Bassa
Bassa
Alta
Alta
Lenta
Facile
Veloce
Moderata
RIP
Scalabilità
Banda
Memoria
CPU
Convergenza
Configurazione
Algoritmi utilizzati per propagare le informazioni relative al routing
nel core system.
Vector Distance
(GGP)
ShortestPath First (OSPF)
Usato oggi nel Core in Internet
MR 218
EGP e I GP
AS3
AS1
AS2
R
Dominio A
R RDominio B
R R
R
R
R
R
R
R R
R
RR
R
R
R
R
IGPEGP
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
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.
AS1
AS8
AS34
AS16Net1Net1Net16
EGP
Neighbor acquisition Acquisition request Richiede ad un router di divenire un neighbor Acquisition confirm Il router accetta Acquisition refuse Il router rifiuta Cease request Richiede la fine della relazione Cease confirm Conferma la fine della relazione Neighbor reachability Hello Richiede al neighbor di confermare la relazione precedentemente stabilita I-heard-you Conferma Routing update Poll request Richiede l'update della network reachability Routing update Informazioni di network reachability (solo reti
interne all’AS se il router non appartiene al Core system) Error response Error Risposta a messaggi scorretti
Funzioni del protocollo EGP
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!
MR 219
Border Gateway Protocol
• Router adiacenti comunicano attraverso una connessione di livello trasporto affidabile– TCP
• Protocollo Distance 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 (“counting-
to-infinity”)
port 179
(Path Vector)
MR 220
Peers (Approfondimento)
AS1
AS2
R R R R
R
R
R
AS3
R
RR
R
R Peer
eBGPeBGP
iBGP
Messaggi BGP
• Open
• Update
• Keepalive
• Notification
Header comune
Marker
dimensione tipo
Marker: campo a 16 byte riservato all’autenticazioneDimensione: dimensione complessiva del messaggioTipo: tipo di pacchetto
options
Messaggio Open
Marker
dimensione tipo versionemio AS Hold time
Router che ha inviato mess. openopt dimens.
Un BGR crea una relazione di prossimità aprendo una connessione TCP con il vicino e inviandogli un messaggiodi OPEN
Messaggio update
Percorsi annullati
Marker
dimensione tipo Unfeasible route len.
Unfeasible route len
Attributi percorsoPath 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
Error data
Marker
dimensione tipo Error code.
Error sub-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 best-path.
MR 221
CIDR (1) (Approfondimento)
TokenRing
TokenRing
198.32.0.0
198.32.7.0
198.32.6.0198.32.1.0198.32.2.0
TokenRing
TokenRing
198.32.0.0/24198.32.1.0/24198.32.2.0/24198.32.3.0/24
198.32.6.0/24198.32.7.0/24
198.32.0.0/24198.32.1.0/24
.
.
.
198.32.7.0/24
TokenRing
TokenRing 198.32.5.0
198.32.4.0
198.32.4.0/24198.32.5.0/24
198.32.3.0
Senza CIDR
MR 222
TokenRing
TokenRing
198.32.0.0
198.32.7.0
198.32.6.0198.32.1.0198.32.2.0
TokenRing
TokenRing
198.32.0.0/22198.32.6.0/23
198.32.0.0/21
TokenRing
TokenRing 198.32.5.0
198.32.4.0
198.32.4.0/23
198.32.3.0
Con CIDR
CIDR (2) (Approfondimento)
Macrolezione 6:L’interconnessione di reti eterogenee