INSTRADAMENTOINSTRADAMENTO IN INTERNET IN INTERNET
Micolucci Marianna
n.matr. 3028856
Univ. “G. D’ Annunzio”
Corso di “reti di calcolatori e sicurezza”
Prof. Bistarelli
2004/2005 CLEIS
SommarioSommario
Cos’è un ASCos’è un AS Algoritmi di instradamento intra AS (rip e Algoritmi di instradamento intra AS (rip e
ospf)ospf) Algoritmi di instradamento inter AS (bgp)Algoritmi di instradamento inter AS (bgp) Perché protocolli diversiPerché protocolli diversi
Protocolli di instradamentoProtocolli di instradamento
Funzione: determinare il percorso seguito da Funzione: determinare il percorso seguito da un datagram dalla sorgente alla destinazioneun datagram dalla sorgente alla destinazione
2 macroclassi : 2 macroclassi : protocolli all’interno di un AS (Rip, Ospf)protocolli all’interno di un AS (Rip, Ospf)protocolli tra AS multipli (Bgp)protocolli tra AS multipli (Bgp)
Sistema Autonomo : ASSistema Autonomo : AS
I router vengono aggregati in regioni: I router vengono aggregati in regioni: Un AS è Un AS è insieme di routers sotto un'unica insieme di routers sotto un'unica
amministrazione tecnica (sotto il controllo di un amministrazione tecnica (sotto il controllo di un unico ente)unico ente)..
Un "AS“ gestisce una propria "politica di routing" Un "AS“ gestisce una propria "politica di routing"
Ogni AS avrà uno o più router responsabili di Ogni AS avrà uno o più router responsabili di instradare I pacchetti all’ esterno ( Exterior instradare I pacchetti all’ esterno ( Exterior Router Gateway)Router Gateway)
a
b
b
aaC
A
Bd
A.a
A.c
C.bB.a
cb
c
Instradamento inter-AS e intra AS
nel gateway A.c
A.a, A.c, B.a, C.b sono router gareway
Porzione del percorso che usa il protocollo inter-AS
Porzione del percorso che usa il protocollo intra-AS
RIP: Routing Information ProtocolRIP: Routing Information Protocol
Protocollo Distance Vector le (informazioni Protocollo Distance Vector le (informazioni sono vettori di percorsi invece che sono vettori di percorsi invece che
distanze)distanze) Link a costo 1Link a costo 1
Max percorso=15 Max percorso=15 Scambio tabelle di instradamento (30 sec.)Scambio tabelle di instradamento (30 sec.)
Messaggio di replica del RIP (Avvisi)
Il router inoltre può:Il router inoltre può:
Modificare la sua Modificare la sua tabella locale di rilancio tabella locale di rilancio (es. dopo 180 sec non (es. dopo 180 sec non ha notizie da un vicino)ha notizie da un vicino)
Propagare informazione Propagare informazione ai vicini ai vicini
Richiedere Richiedere informazioni sul costo informazioni sul costo dei vicini verso una dei vicini verso una destinazione destinazione
messaggio di richiestamessaggio di richiesta
Command : può avere due valori (1 Command : può avere due valori (1 se è un messaggio di richiesta o 2 se se è un messaggio di richiesta o 2 se è messaggio di aggiornamento). è messaggio di aggiornamento).
Version : per indicare la versione del Version : per indicare la versione del protocollo. protocollo.
Address Family Identifier : è Address Family Identifier : è sempre uguale a 2 per il protocollo sempre uguale a 2 per il protocollo IP IP
IP Address : è l' indirizzo di IP Address : è l' indirizzo di destinazione può essere una rete o destinazione può essere una rete o una sottorete una sottorete
Metric : è l' hop count e puo' Metric : è l' hop count e puo' assumere un valore compreso tra 1 e assumere un valore compreso tra 1 e 16. 16.
Campo Zeros Fornisce la Campo Zeros Fornisce la compatibilità verso protocolli compatibilità verso protocolli precedenti, inoltre può essere usato precedenti, inoltre può essere usato per riservare spazio per utilizzi per riservare spazio per utilizzi futuri. futuri.
Tutti i campi sono espressi come Tutti i campi sono espressi come interi a 32 bit che vengono trasmessi interi a 32 bit che vengono trasmessi in ordine di rete, ossia prima il byte in ordine di rete, ossia prima il byte piu' significativo. piu' significativo.
Address familyAddress family
IdentifierIdentifier
IP addressIP address
Must be zero Must be zero
Must be zero Must be zero
MetricMetric
Pacchetto RIP
command
Version
(=1)
Must be zero
Must be zero
RIP: come funzionaRIP: come funziona
Rete di destinaz. Router successivo N.hop verso la dest. w A 2
y B 2 z B 7
x -- 1…. …. ....
w x y
z
A
C
D B
Rotabella di routing di D
..
..
RIP: come funzionaRIP: come funziona
Rete di destinazione Router successivo N.di hop verso la dest. w A 2
y B 2 z B A 7 5
x -- 1…. …. ....Tabella di routing di D dopo l’ avviso di A
w x y
z
A
C
D B
Dest Succ. N.hops w - - x - - z C 4 …. … ...
Avviso dal router A
Cosa succede ai vari livelli?Cosa succede ai vari livelli?
Udp porta 520Udp porta 520 RIP è un protocollo dello strato dell’ RIP è un protocollo dello strato dell’
applicazione che funziona su UDPapplicazione che funziona su UDP
Fisico
Collegamento
rete tabelle di (IP) rilancio
Trasporto (UDP)
routed
Fisico
Collegamento
Rete (IP)
Trasporto (UDP)
routed
Tabelle di rilancio
OSPF: Open Shortest Path FirstOSPF: Open Shortest Path First
Protocollo basato sullo stato dei linkProtocollo basato sullo stato dei link Suddivisione della rete in parti indipendenti Suddivisione della rete in parti indipendenti
(aree) connesse attraverso la “backbone”(aree) connesse attraverso la “backbone”
ciascun router mantiene lo stesso database realizzato mediante lo scambio di messaggi LSA e calcola il cammino minimo da sé, verso ogni altro router appartenete alla medesima area, incluso il router che è connesso alla backbone
Il costo del protocollo è proporzionale al formato dell’ area e non della rete
Miglioramenti di OSPFMiglioramenti di OSPF
SicurezzaSicurezza Percorsi multipli con lo stesso costoPercorsi multipli con lo stesso costo Supporto per instradamento Multicast e Supporto per instradamento Multicast e
unicastunicast Supporto della gerarchia all’ interno del Supporto della gerarchia all’ interno del
dominio di un singolo routerdominio di un singolo router
Un AS OSPF può essere configurato in aree:
Sono all’ esterno della backbone ed eseguono solo l’ instradamento intra AS
ABR:Appartengono sia ad un area che alla backbone, almeno uno per ogni area
Eseguono l’ instradamento entro la backbone ma non sono router di bordo area
ASBR: Scambia informazioni di instradamento con router di altri AS
I router OSPF della stessa area condividono un database I router OSPF della stessa area condividono un database composto di record link state (LS). composto di record link state (LS).
4 tipi con header comune:4 tipi con header comune:
router, rete, sommario per rete ip, sommario per router di confine, router, rete, sommario per rete ip, sommario per router di confine, esterno esterno
Link_State_ID: identificativo dell’LSA scelto dall’Advertising Router, ma il significato preciso può variare a seconda di Type Advertising Router: uno degli indirizzi IP del router (quello selezionato come OSPF_ROUTER_ID) Sequence number: puo' variare tra 1-N e N-2, dove N = 231. Quando un router invia il primo LSA, il numero di sequenza sara' il numero negativo 1-N; questo numero verra' regolarmente incrementato per i successivi LSA. Lenght: la totale lunghezza del record, inclusi i 20 bytes dell'header
ROUTER LINK ROUTER LINK ADVERTISEMENTADVERTISEMENT
Riporta informazioni su tutti i router adiacenti e Riporta informazioni su tutti i router adiacenti e le LAN cllegatele LAN cllegate
Propagato solo all’ interno dell’ areaPropagato solo all’ interno dell’ area
E: se il router è un Area Border Router (External) B: se il router è un AS Boundary Router (Border)
NETWORK LINK ADVERTISEMNTNETWORK LINK ADVERTISEMNT
Generato dal Designed routered elenca tutti i Generato dal Designed routered elenca tutti i router presenti sulla LANrouter presenti sulla LAN
Network Mask: Netmask della rete di transito Attached Router: Indirizzo IP di tutti i router che vi si affacciano sulla LAN Link_State_ID (dell’header LSA): è il corrispondente indirizzo IP dell’interfaccia del Designated Router collegata alla rete di transito
NETWORK SUMMARY LINK NETWORK SUMMARY LINK ADVERTISEMENTADVERTISEMENT
Generato da un area border router (diversi Generato da un area border router (diversi rispetto ad ogni area con cui è collegato)rispetto ad ogni area con cui è collegato)
E’ usato dagli ABR per riassumere e E’ usato dagli ABR per riassumere e propagare informazioni su un’ area.propagare informazioni su un’ area.
EXTERNAL LINKEXTERNAL LINK
Riportano le informazioni Riportano le informazioni relative a destinazioni relative a destinazioni esterne al dominio esterne al dominio
Sono generati dagli AS Sono generati dagli AS Border Router e vengono Border Router e vengono propagati a tutti i router propagati a tutti i router del dominio OSPF.del dominio OSPF.
Comprendono una Comprendono una destinazione per LSA destinazione per LSA (come i Summary Links).(come i Summary Links).
Campo LS Type = 5Campo LS Type = 5
I PROTOCOLLI IN OSPFI PROTOCOLLI IN OSPF
Hello ExchangeHello Exchange
FloodingFlooding
• Version: Indica la corrente versione di OSPF
• Type: il tipo di pacchetto OSPF trasportato
• Packet Lenght : numero di bytes del pacchetto
• Router_ID: indirizzo IP scelto per identificare il router
• Area_ID: numero che identifica univocamente l’area all’interno del dominio Un valore 0 identifica il backbone.
• Checksum: calcolato sull'intero pacchetto
• Authentication Type: Identifica l'algoritmo di identificazione
0: No authentication 1: Simple authentication 2: Cryptographic authentication
IL PROTOCOLLO "HELLO”IL PROTOCOLLO "HELLO” Verifica l’ operatività dei linkVerifica l’ operatività dei link viene trasmesso tra nodi vicini e mai propagatoviene trasmesso tra nodi vicini e mai propagato
Network Mask: netmask associata all’interfaccia da cui viene emesso il pacchetto Hello Interval: comunica ogni quanti secondi viene emesso un pacchetto di Hello Options: vengono definiti solo gli ultimi 2 bit E: (router è in grado di inviare e ricevere route esterne) T(il router è in grado di gestire il routing TOS) Priority: serve per l’elezione del Designed Router e viene settato da management. Dead_Interval: intervallo di tempo di validità dei pacchetti di Hello ricevuti. DR, BDR: indirizzo del Designated Router Neighbor: lista di router_ID da cui è stato ricevuto il pacchetto di Hello negli ultimi Dead_Interval secondiIL link è dichiarato operativo se i pacchetti possono scorrere in entrambe le direzioni ed entrambi i router hanno lo stesso valore del bit E.
Il Protocollo ExchangeIl Protocollo Exchange
Quando due routers OSPF stabiliscono la Quando due routers OSPF stabiliscono la connessione su di un link punto a punto, devono connessione su di un link punto a punto, devono sincronizzare i propri database sincronizzare i propri database
La sincronizzazione iniziale avviene tramite il La sincronizzazione iniziale avviene tramite il protocollo "exchange"; di seguito sara' il protocollo protocollo "exchange"; di seguito sara' il protocollo flooding ad occuparsi di mantenere sincronizzati i flooding ad occuparsi di mantenere sincronizzati i database. database.
Il protocollo Exchange e' asimmetrico; il primo step Il protocollo Exchange e' asimmetrico; il primo step del protocollo consiste nel selezionare un "master" del protocollo consiste nel selezionare un "master" e uno "slave" e solo di seguito i due routers si e uno "slave" e solo di seguito i due routers si scambieranno la descrizione dei propri database scambieranno la descrizione dei propri database
Il router che vuole iniziare la procedura emette un Il router che vuole iniziare la procedura emette un pacchetto vuoto "Database Description e l’ altro pacchetto vuoto "Database Description e l’ altro router risponde emettendo un pacchetto DD di router risponde emettendo un pacchetto DD di "Acknowledgment“."Acknowledgment“.
Il primo router può quindi iniziare ad inviare le Il primo router può quindi iniziare ad inviare le descrizioni da lui possedute descrizioni da lui possedute
IL PROTOCOLLO "FLOODING"IL PROTOCOLLO "FLOODING" Il protocollo flooding viene utilizzato per diffondere (processo di forwarding) a tutta la rete il Il protocollo flooding viene utilizzato per diffondere (processo di forwarding) a tutta la rete il
nuovo stato di un link.nuovo stato di un link. Questi aggiornamenti vengono inviati, attraverso il pacchetto di "Link State Update", nel Questi aggiornamenti vengono inviati, attraverso il pacchetto di "Link State Update", nel
caso di:caso di: un cambiamento di stato del linkun cambiamento di stato del link allo scadere di un timer (normalmente 60 min)allo scadere di un timer (normalmente 60 min) Il pacchetto "Link State Update", che caratterizza il campo "Type" dell'header comune con Il pacchetto "Link State Update", che caratterizza il campo "Type" dell'header comune con
il valore 4il valore 4
Gli LSA del pacchetto Link State Update vengono normalmente riconosciuti, attraverso una conferma dell'avvenuta ricezione, con il pacchetto di Link State Acknowledgment, che caratterizza il campo "Type" dell'header comune con il valore 5
BGP: border gateway protocolBGP: border gateway protocolprotocollo di instradamento inter ASprotocollo di instradamento inter AS
Comunicazione solo tra router confinanti Comunicazione solo tra router confinanti (Pari BGP)(Pari BGP)
Scambio di informazioni sui percorsiScambio di informazioni sui percorsi Indirizzamento verso retiIndirizzamento verso reti AS identificati da un numero (ASN)AS identificati da un numero (ASN) Scambi di annunciScambi di annunci
Ogni router di frontiera rappresenta le Ogni router di frontiera rappresenta le destinazioni interne come se fossero destinazioni interne come se fossero
localilocali
Annuncio BGPAnnuncio BGPinviati da pari a pari con una connessione punto inviati da pari a pari con una connessione punto
puntopunto
Contiene indirizzo di rete di destinazioneContiene indirizzo di rete di destinazione
attributiattributi
Protocollo tcp porta 179
Le informazioni possono essere scambiate tra due AS solo se una sessione Le informazioni possono essere scambiate tra due AS solo se una sessione peering è attivapeering è attivaLa sessione peering è una connessione TCP tra i due ASLa sessione peering è una connessione TCP tra i due AS
attività del BGPattività del BGP
Ricezione di annunci sui percorsi da parte dei vicini Ricezione di annunci sui percorsi da parte dei vicini attaccatiattaccati
Filtraggio: gli annunci possono essere filtrati sulla base di: Filtraggio: gli annunci possono essere filtrati sulla base di: Una lista di prefissi validiUna lista di prefissi validi Una lista di numeri di AS Una lista di numeri di AS
Selezione del percorso secondo la politica di Selezione del percorso secondo la politica di instradamento (accordi commerciali, questioni legali, instradamento (accordi commerciali, questioni legali, preferenze locali)preferenze locali)
Invio di annunci sui percorsi ai viciniInvio di annunci sui percorsi ai vicini
I percorsi vengono immagazzinati nel RIB I percorsi vengono immagazzinati nel RIB (informazioni base di routing suddiviso come (informazioni base di routing suddiviso come
segue: segue: ADJ-RIB-INADJ-RIB-IN : contiene tutti i percorsi appresi : contiene tutti i percorsi appresi
da messaggi UPDATE, che vengono dati in da messaggi UPDATE, che vengono dati in input al processo decisionale. input al processo decisionale.
LOC-RIBLOC-RIB : contiene le informazioni di routing : contiene le informazioni di routing locale, cioè all'interno dell'AS, che il BGP locale, cioè all'interno dell'AS, che il BGP speaker ha selezionato in base alla politica speaker ha selezionato in base alla politica locale che viene stabilita dall'amministratore. locale che viene stabilita dall'amministratore.
ADJ-RIB-OUTADJ-RIB-OUT : contiene le informazioni di : contiene le informazioni di routing che il BGP speaker locale ha routing che il BGP speaker locale ha selezionato e che sono annunciate ai suoi selezionato e che sono annunciate ai suoi interlocutori (peers). interlocutori (peers).
Intestazione messaggi BGPIntestazione messaggi BGP Precede ogni messaggio BGP ed identifica il tipo di Precede ogni messaggio BGP ed identifica il tipo di
messaggiomessaggio Marker (16 byte): scelto in accordo tra le due parti per Marker (16 byte): scelto in accordo tra le due parti per
sincronizzare i messaggi. Questa funzione non è sincronizzare i messaggi. Questa funzione non è fornita da TCPfornita da TCP
Length (2 byte): lunghezza del messaggio tra 19 e Length (2 byte): lunghezza del messaggio tra 19 e 4096 byte4096 byte
Type: tipo di messaggio BGPType: tipo di messaggio BGP
Tipologie di messaggi BGPTipologie di messaggi BGP
OPEN: permette di stabilire un contatto OPEN: permette di stabilire un contatto con un pari con un pari
UPDATE: per annunciare un percorso UPDATE: per annunciare un percorso verso una data destinazioneverso una data destinazione
KEEPALIVE:per far conoscere ad un pari KEEPALIVE:per far conoscere ad un pari che il sender è attivoche il sender è attivo
NOTIFICATION: quando viene rilevato un NOTIFICATION: quando viene rilevato un erroreerrore
OPENOPEN Utilizzato per aprire una connessione peerUtilizzato per aprire una connessione peer Il campo Hold specifica il massimo numero di secondi tra due Il campo Hold specifica il massimo numero di secondi tra due
messaggi successivimessaggi successivi Un router bgp è caratterizzato dall’asn e da un indentificatore Un router bgp è caratterizzato dall’asn e da un indentificatore
unico a 32 bit che deve usare per tutte le connessioni peeringunico a 32 bit che deve usare per tutte le connessioni peering
Parametri opzionali: ad esempio per l’autenticazioneParametri opzionali: ad esempio per l’autenticazione
OPENOPEN
Il router destinatario di un messaggio Il router destinatario di un messaggio OPEN risponde con un KEEPALIVEOPEN risponde con un KEEPALIVE
Connessione aperta quando entrambi i Connessione aperta quando entrambi i router inviano un messaggio OPEN ed router inviano un messaggio OPEN ed un messaggio KEEPALIVEun messaggio KEEPALIVE
UPDATEUPDATE Announcement = prefix + Announcement = prefix + attributes valuesattributes values Annuncia nuove reti raggiungibili ed Annuncia nuove reti raggiungibili ed
eventualmente l’instradamentoeventualmente l’instradamento Annuncia reti precedentemente annunciate Annuncia reti precedentemente annunciate
non più raggiungibilinon più raggiungibili
KEEPALIVEKEEPALIVE
Verifica periodicamente la connessione Verifica periodicamente la connessione TCP tra entità peerTCP tra entità peer
Più efficiente rispetto ad inviare Più efficiente rispetto ad inviare periodicamente messaggi di periodicamente messaggi di instradamentoinstradamento
Intervallo KEEPALIVE ogni 1/3 di HOLD Intervallo KEEPALIVE ogni 1/3 di HOLD time, mai inferiore a 1 sec.time, mai inferiore a 1 sec.
NOTIFICATIONNOTIFICATION
Controllo o segnalazione erroriControllo o segnalazione errori BGP invia un messaggio di notifica e BGP invia un messaggio di notifica e
chiude la connessione TCP chiude la connessione TCP Errori:Errori:
Errore nell’intestazione del messaggioErrore nell’intestazione del messaggio Errore nel messaggio OPENErrore nel messaggio OPEN Errore nel messaggio UPDATEErrore nel messaggio UPDATE Timer di attesa scadutoTimer di attesa scaduto Fine (connessione terminata)Fine (connessione terminata)
Due routers BGP neighbors inizialmente si Due routers BGP neighbors inizialmente si scambieranno le intere routing tables, dopodichè scambieranno le intere routing tables, dopodichè solo le modifiche attraverso messaggi solo le modifiche attraverso messaggi UPDATEUPDATE. .
Dopo la connessione il primo messaggio ad Dopo la connessione il primo messaggio ad essere spedito è quello OPEN che l'interlocutore essere spedito è quello OPEN che l'interlocutore
confermerà con un messaggio KEEPALIVE. I confermerà con un messaggio KEEPALIVE. I messaggi KEEPALIVE sono trasmessi messaggi KEEPALIVE sono trasmessi periodicamente per mantenere attiva la periodicamente per mantenere attiva la
connessione. Il messaggio NOTIFICATION connessione. Il messaggio NOTIFICATION viene trasmesso quando si rileva un errore nella viene trasmesso quando si rileva un errore nella
trasmissione o per speciali condizioni. trasmissione o per speciali condizioni.
Riassumendo il BGP…Riassumendo il BGP…
PERCHE’ DUE TIPI DI PERCHE’ DUE TIPI DI PROTOCOLLO ?PROTOCOLLO ?
PoliticaPolitica ScalaScala PrestazioniPrestazioni
AS2 (OSPF
intra-AS routing)
AS1 (RI P intra-AS
routing) BGP
AS3 (OSPF intra-AS
routing)
BGP
R1 R2
R3
R4
R5
Top Related