Il 0% ha trovato utile questo documento (0 voti)
34 visualizzazioni69 pagine

L13 Rete Routing

Il documento tratta l'architettura dei router e i concetti di inoltro e routing, evidenziando la differenza tra il piano di controllo e il piano dati. Viene discusso l'algoritmo di routing Distance Vector, il quale consente ai nodi di calcolare il percorso a costo minimo in modo distribuito e iterativo. Inoltre, si analizzano le sfide del routing, come la gestione delle code e le variazioni nei costi dei collegamenti.

Caricato da

Moji Bake
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

Argomenti trattati

  • Tabella di inoltro,
  • Attributi BGP,
  • Aggiornamenti di stato,
  • Autonomia amministrativa,
  • Rete di reti,
  • Routing dinamico,
  • Algoritmi globali,
  • Messaggi di routing,
  • Network Layer,
  • Control Plane
Il 0% ha trovato utile questo documento (0 voti)
34 visualizzazioni69 pagine

L13 Rete Routing

Il documento tratta l'architettura dei router e i concetti di inoltro e routing, evidenziando la differenza tra il piano di controllo e il piano dati. Viene discusso l'algoritmo di routing Distance Vector, il quale consente ai nodi di calcolare il percorso a costo minimo in modo distribuito e iterativo. Inoltre, si analizzano le sfide del routing, come la gestione delle code e le variazioni nei costi dei collegamenti.

Caricato da

Moji Bake
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

Argomenti trattati

  • Tabella di inoltro,
  • Attributi BGP,
  • Aggiornamenti di stato,
  • Autonomia amministrativa,
  • Rete di reti,
  • Routing dinamico,
  • Algoritmi globali,
  • Messaggi di routing,
  • Network Layer,
  • Control Plane

Lo strato di Rete

Architettura di un Router
Reti e Laboratorio III
2023/24

1
Inoltro vs routing

• Forwarding (inoltro): • Routing (instradamento):


trasferire i pacchetti processo decisionale di
sull’appropriato scelta del percorso verso
collegamento in uscita una destinazione
– Usa la tabella di inoltro – determina i valori da
inserire nella tabella di
inoltro
– tramite algoritmi di
routing

Data Plane Control Plane


2
Piano di controllo vs Piano dati

Routing
Algorithm control
plane
data
plane

values in arriving
packet header
0111 1
2
3

Routing decentralizzato:
• Algoritmo di routing in esecuzione su ciascun router
• I router si scambiano messaggi (protocolli di routing) 3
Routing logicamente centralizzato
Remote Controller

control
plane
data
plane
CA
CA CA CA CA
values in arriving
packet header

0111 1
2
3

Un controller remoto interagisce con Control Agents (CA) locali: Software-defined


- Riceve dai CA informazioni sui collegamenti e sul traffico Networking (SDN)
4
- Invia ai CA i valori da inserire nella tabella di inoltro
Architettura di un router
• Nella nostra discussione sull’inoltro e l’instradamento
abbiamo rappresentato il router come una scatola nera
che accetta pacchetti in entrata da una delle porte di
input (interfacce), usa una tabella d’inoltro per trovare
la porta di output e da questa invia il pacchetto.
• Componenti
– Porte di input
– Porte di output
– Processore di routing
– Switching fabric (struttura di commutazione)
5
Architettura di un router

routing, management
control plane (software)
routing opera nell’ordine dei
processor millisecondi

forwarding data
plane (hardware)
opera nell’ordine dei
nanosecondi
switching
fabric

router input ports router output ports

6
Architettura di un router – porte di input

lookup,
link forwarding
line layer switch
termination protocol fabric
(receive)
queueing

Livello fisico:
Ricezione dei bit Ricerca, inoltro, accodamento:
Livello collegamento • Ha una copia della tabella di inoltro, usa i valori
es. Ethernet dell’header per determinare la porta di output
• Elaborazione alla velocità “line rate”
Il numero di porte supportate da un • Accodamento: se la velocità con cui arrivano I
router può variare da un numero
relativamente piccolo nei router datagrammi supera la velocità di inoltro nella
aziendali, a centinaia di porte a 10
Gbps in un router di bordo di un ISP
struttura di commutazione (switching fabric)
Il router Juniper MX2020, per
esempio, supporta fino a 800 porte 7
Ethernet a 100 Gbps
Switching fabric
• trasferisce il pacchetto dal buffer di input al buffer di output
appropriato
• velocità di commutazione: velocità con cui i pacchetti possono
essere trasferiti dagli ingressi alle uscite
– N input: velocità di commutazione auspicabile N volte la velocità di
linea

memory

memory bus Matrice di


commutazione
(crossbar) 8
Architettura di un router – porte di output
datagram
switch buffer link
fabric layer line
protocol termination
queueing (send)

 buffering richiesto quando i datagrammi arrivano dalla


struttura di commutazione ad una velocità maggiore della
velocità di trasmissione sul collegamento in uscita
 Scheduling: politiche per definire l’ordine di trasmissione dei
datagrammi

9
Ritardi e perdite
• Si possono formare code di pacchetti sia
presso le porte di ingresso sia presso quelle di
uscita
• La lunghezza della coda dipende da vari
fattori, tra cui: la quantità di traffico di rete, le
velocità relative della struttura di
commutazione e della linea

10
Lo strato di Rete
Routing

11
Protocolli di Routing
Obiettivo: determinare mobile network
percorsi “buoni” dagli host national or global ISP
mittenti agli host destinatari,
attraverso nodi intermedi applicatio

(router) n
transport
network

• percorso: sequenza di
link
physical networ networ
k k

router che i pacchetti


link link
physica physica
l l

attraversano dall’host networ


k networ
k

sorgente alla destinazione


link
physica link networ
l physica k datacenter
l link network

finale
physica
l

applicatio

• “buono”: costo minore, più enterprise


n
transport

veloce, meno congestionato


network
network link
physical

• routing: una delle principali


sfide in ambito networking!

Network Layer: 5-12


Routing
Rappresentiamo una rete di reti come un grafo

• Nodi: router
• Arco: collegamenti tra router
• Grafo pesato
• Costo associato all’arco: distanza tra i nodi, numero di hop,
distanza, bandwidth disponibile ecc. 13
Graph abstraction: costi
5
c(x,x’) = costo del link (x,x’)
3 e.g., c(w,z) = 5
v w 5
2
u 2 1 z Costo definite dall’operatore di
3 rete, es.: può essere 1,
1 2
x y inversamente proporzionale
1 alla bandwidth o alla
congestione

Costo percorso (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)

key question: qual è il cammino a costo minimo tra u e z ?


routing algorithm: algoritmo che calcola il cammino a costo minimo

4-14
Classificazione algoritmi di Routing
global

How fast
do routes
change? static dynamic

decentralized

global or decentralized information?


Routing statico e dinamico
• Nel routing statico le righe (entry) della tabella vengono
configurate manualmente dall’operatore. Tale metodo
viene usato per reti di piccole dimensioni e la cui topologia
non varia molto, dove è possibile prevedere tutti i possibili
percorsi di un pacchetto IP nella rete.

• Nel routing dinamico esistono protocolli specifici che


provvedono automaticamente ad inserire nella tabella del
router le entry relative ai possibili percorsi. Viene usato
nelle reti di medie-grandi dimensioni e con topologia
variabile (grandi reti locali private e Internet)

16
Algoritmi di instradamento
globali/decentralizzati
• Gli algoritmi di instradamento si possono classificare in:
• Globali, se si basano sulla conoscenza della topologia di tutta la
rete. Il calcolo può essere fatto in un unico sito (es. SDN) o in più
nodi, utilizzando informazioni sulla connettività di tutti i nodi e sui
costi di tutti i link (es. algoritmo Link State).
– L’algoritmo riceve in ingresso informazioni su tutti i collegamenti tra i
nodi e i loro costi.
• Decentralizzati, quando nessun nodo conosce la topologia di tutta
la rete, all’inizio ha informazioni solo sui nodi e link vicini. Il calcolo
del percorso è iterativo e distribuito (es. algoritmo Distance Vector).
– Ogni nodo elabora un vettore di stima dei costi (distanze) verso tutti gli
altri nodi nella rete.
– Il cammino a costo minimo viene calcolato in modo distribuito e
iterativo scambiandosi informazioni con i nodi vicini.
17
Algoritmo Distance Vector
• Distribuito
– ciascun nodo riceve parte delle informazioni da
uno o più nodi direttamente connessi (vicini),
effettua calcoli e comunica i risultati ai vicini
• Iterativo
• Asincrono: non richiede che tutti i nodi
operino al passo con gli altri

18
Algoritmo Distance Vector

dxy

Equazione di Bellman-Ford
Formula per trovare il percorso a costo minimo tra un nodo sorgente x
e un nodo destinazione y, tramite dei nodi intermedi (vicini v)
supponendo che:
- Costo c(x,z) tra nodo sorgente x e il vicino z sia noto
- Distanza minima tra vicino z e destinazione y sia nota (dzy)
19
Distance vector algorithm
Bellman-Ford equation
dxy := costo del cammino a costo minimo da x a y
allora
dxy = minv {c(x,v) + dvy }
distanza dal vicino v alla destinazione y
costo da x al vicino v

min su tutti i vicini v di x


c(x,b) dby

20
Distance vector algorithm
• Ciascun nodo x inizia con una stima delle distanze verso
tutti i nodi in N
• Dxy = stima del costo minimo da x a y per ogni y є N
• Il nodo x mantiene quindi le seguenti informazioni:
– Conosce il costo del collegamento verso ciascun vicino v:
c(x,v)
– x mantiene il suo vettore distanza Dx = [Dxy : per ogni y є
N]
– Riceve i vettori distanza dei suoi vicini. Per ogni vicino v, x
mantiene
Dv = [Dvy : per ogni y є N ]
21
Distance vector algorithm
• Idea di base:
• Ogni nodo invia una copia del proprio vettore distanza a
ciascuno dei suoi vicini.
• Quando un nodo x riceve un nuovo vettore distanza, DV, da
qualcuno dei suoi vicini v, lo salva e usa l’equazione di
Bellman-Ford per aggiornare il proprio vettore distanza
Dxy = min {c(x,v) + Dvy } per ogni y є N

• Finché tutti i nodi continuano a cambiare i propri DV in


maniera asincrona, ciascuna stima dei costi Dxy converge
all’effettivo costo del percorso a costo minimo dxy

22
Distance vector algorithm

• Iterativo, asincrono: ogni


iterazione locale è causata
da:
– cambio del costo di uno dei
collegamenti locali
– ricezione da qualche vicino
di un vettore distanza
aggiornato.
• Distribuito:
– Ogni nodo aggiorna i suoi
vicini solo quando il
proprio DV cambia.
– i vicini avvisano i rispettivi
vicini solo se necessario.
23
Distance vector routing
Vettori distanza iniziali dei nodi di una rete

24
Distance vector routing
Aggiornamento dei vettori di distanza

25
Distance vector routing: algoritmo

D[y] = minv [ c[me_stesso][v]+Dv[y] ]

26
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} Dx(z) = min{c(x,y) +
= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
node x cost to cost to
table x y z x y z
x 0 2 7 x 0 2 3

from
y ∞∞ ∞ y 2 0 1
from

z ∞∞ ∞ z 7 1 0

node y cost to
table x y z y
2 1
x ∞ ∞ ∞
x z
from

y 2 0 1 7
z ∞∞ ∞

node z cost to
table x y z
x ∞∞ ∞
from

y ∞∞ ∞
z 7 1 0
time
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} Dx(z) = min{c(x,y) +
= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
node x cost to cost to cost to
table x y z x y z x y z
x 0 2 7 x 0 2 3 x 0 2 3

from
y ∞∞ ∞ y 2 0 1
from

y 2 0 1

from
z ∞∞ ∞ z 7 1 0 z 3 1 0
node y cost to cost to cost to
table x y z x y z x y z y
2 1
x ∞ ∞ ∞ x 0 2 7 x 0 2 3 x z
from

y 2 0 1 y 2 0 1 7
from

y 2 0 1

from
z ∞∞ ∞ z 7 1 0 z 3 1 0

node z cost to cost to cost to


table x y z x y z x y z
x ∞∞ ∞ x 0 2 7 x 0 2 3
from

from

y 2 0 1 y 2 0 1
from

y ∞∞ ∞
z 7 1 0 z 3 1 0 z 3 1 0
time
Distance vector: link cost changes
Se cambia il costo del 1
collegamento: y
4 1
 Il nodo rileva il cambiamento del x z
costo 50
 Ricalcola il vettore distanza
 Se il DV cambia, avvisa i vicini

t0 : y si accorge del cambiamento di costo, aggiorna il DV,


informa i vicini.
“good
news t1 : z riceve il DV di y, aggiorna la sua tabella, aggiorna il suo
travels costo minimo verso x , invia il suo DV ai suoi vicini.
fast”
t2 : y riceve l’aggiornamento di z, aggiorna la tabella. I costi minimi
di y non cambiano.
5-29
Distance vector: link cost changes
 bad news travels slow – problema 60
“count to infinity"! y
4 1
 varie iterazioni prima che x z
l’algoritmo si stabilizzi 50

 Count-to-infinity problem

y si accorge che il collegamento verso x ha un nuovo costo di 60, ma z ha


detto che la sua distanza da x è 5. Quindi y calcola la nuova distanza verso x,
6, e invia una notifica a z.
z apprende che il percorso verso x tramite y ha costo 6, così aggiorna la sua
distanza verso x (7) e invia una notifica a y
Il ciclo proseguirà per 44 iterazioni (scambi di messaggi tra y e z), fino a
quando z considera il costo del proprio percorso attraverso y maggiore di
50.
A questo punto, z determina che il percorso a costo minimo verso x passa
attraverso la connessione diretta a x, e y instraderà verso x passando per z.
5-30
DV: count-to-infinity problem

• Split-horizon with Poisoned reverse


Se nodo X inoltra a V i pacchetti destinati a Z allora
– X invia a V DX[Z]=
– le rotte ricevute tramite un'interfaccia devono essere
pubblicizzate indietro da quell'interfaccia con una
metrica non raggiungibile
– A route learned through an interface will be advertised
as unreachable through that same interface
– https://tools.ietf.org/html/rfc7868#page-38

31
Link-state algorithm
• Algoritmo «globale»
• La topologia di rete e tutti i costi dei collegamenti sono
noti a tutti i nodi attraverso il “link-state broadcast”.
• Tutti i nodi dispongono delle stesse informazioni
• Calcola il cammino a costo minimo da un nodo
(origine) a tutti gli altri nodi della rete.
– Algoritmo di Dijkstra
– È iterativo: dopo la k-esima iterazione i cammini a costo
minimo verso k nodi di destinazione sono noti.
• Crea una tabella d’inoltro per quel nodo

32
Link-state database

33
LSP
LSP (LS Packet) creati ed inviati da ciascun nodo

34
Notazione
• c(x,y): costo del collegamenti dal nodo x al nodo y
– ∞ se non sono adiacen .
• D(v): costo del cammino dal nodo origine alla
destinazione v per l’iterazione corrente
• p(v): immediato predecessore di v lungo il cammino
• N': sottoinsieme di nodi per cui il cammino a costo
minimo dall’origine è definitivamente noto

35
Dijsktra’s Algorithm
1 Inizializzazione del nodo u:
2 N' = {u}
3 Per tutti i nodi v
4 se v è adiacente a u
5 allora D(v) = c(u,v)
6 altrimenti D(v) = ∞
7
8 Loop
9 trova w non in N' tale che D(w) sia minimo
10 aggiungi w a N'
11 aggiorna D(v) per tutti v adiacenti a w e non in N' :
12 D(v) = min( D(v), D(w) + c(w,v) )
13 /* il nuovo costo verso v è il vecchio costo verso v oppure il
costo del cammino minimo noto verso w più il costo da w a v */
14 Finché tutti i nodi sono in N'

4-36
Algoritmo di Dijkstra: esempio
Step N' D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z)
0 u 2,u 5,u 1,u ∞ ∞
1 ux 2,u 4,x 2,x ∞
2 uxy 2,u 3,y 4,y
3 uxyv 3,y 4,y
4 uxyvw 4,y
5 uxyvwz

v 3 w
2 5
u 2 1 z
3
1 2
x 1
y

37
LS vs DV
• Complessità dei messaggi: • Robustezza: cosa avviene se un
– LS: con n nodi, E collegamenti, router funziona male?
implica l’invio di O(nE) messaggi. • LS:
– DV: richiede scambi tra nodi – un router può comunicare via
broadcast un costo sbagliato per uno
adiacenti. dei suoi collegamenti connessi (ma
• Velocità di convergenza: non per altri).
– LS: l’algoritmo O(n2 ) richiede – I nodi si occupano di calcolare
O(nE) messaggi. soltanto le proprie tabelle.

– DV: può convergere lentamente. • DV:


Può presentare cicli – un nodo può comunicare cammini a
d’instradamento. Può presentare costo minimo errati a tutte le
destinazioni.
il problema del conteggio
– la tabella di ciascun nodo può essere
all’infinito.
usata degli altri.
– Un calcolo errato si può diffondere
per l’intera rete.
38
Struttura di Internet

39
Instradamento gerarchico
• La visione di una rete costituita da un insieme di
router omogenei interconnessi è semplicistica
– Problemi di scalabilità e autonomia amministrativa
• Nella realtà i router sono organizzati in sistemi
autonomi (AS).
– un AS è un gruppo di router sotto lo stesso controllo
amministrativo
• Es. router e collegamenti di un ISP possono formare un unico AS
• Un ISP può comunque partizionare la sua rete in più AS
– gli AS decidono autonomamente i protocolli e le politiche
di routing che intendono adottare al loro interno
40
Instradamento gerarchico
• I protocolli di routing all’interno di un AS sono detti
Interior Gateway Protocol (IGP)
• I protocolli di routing fra AS sono detti Exterior
Gateway Protocol (EGP)
• Quindi, all'interno di un sistema autonomo:
– i router sono sotto uno stesso controllo amministrativo
– usano lo stesso protocollo di routing intra-AS (es, RIP,
OSPF)

41
Protocolli di instradamento
• Internet partizionata in sistemi autonomi (AS)
– AS stub: collegato solo a un altro AS
– AS multihomed: collegato a più di un altro AS (ma
trasporta – come lo stub - solo traffico di cui è origine o
destinazione)
– AS di transito

Lista di AS italiani:
https://ipinfo.io/countries/it

42
Routing INTRA-AS e routing INTER-AS
• INTRA-AS routing protocol determina (da solo) rotte per le
destinazioni interne ad AS
– Routing Information Protocol (RIP) - Algoritmo tipo DV
– Open Shortest Path First (OSPF) - Algoritmo di tipo LS
• INTRA-AS e INTER-AS routing protocol determinano (insieme)
rotte per le destinazioni esterne all’AS
• Border gateway protocol BGP
– INTER-AS routing protocol (standard de facto)
– Consente di conoscere le destinazioni raggiungibili attraverso sistemi
autonomi vicini
– Propaga le informazioni di raggiungibilità ai router interni del proprio AS
– Determina percorsi buoni verso le sottoreti di destinazione
43
Protocolli

44
RIP (Routing Information Protocol)
• Intra-AS
• Metrica = #sottoreti attraversate (max 15)
– Inclusa la rete dove si trova la destinazione
• Distance Vector con Poisoned Reverse ("inf"=16)

45
Esempio

46
RIP
• Processo demone routed
(UDP, porta 520)
• Esempio tabella di inoltro:

• Aggiornamenti inviati ogni 30sec o se tabella inoltro cambia 47


RIP: algoritmo

Un nodo invia la tabella di inoltro ai propri vicini (periodi di circa


30 secondi)
Nodo R riceve advertisement da vicino V con DV[Y]:
DR[Y] = 1+ DV[Y] Aggiunge un hop (c(x,v)) e
considera come next-hop V

Il nuovo percorso da R a Y viene inserito in tabella se:


• se è un percorso non presente nella tabella e quindi viene
aggiunto
• se DV[Y]+1< DRold[Y] costo ricevuto inferiore a quello del
vecchio percorso
• Se V è nextHop del vecchio e nuovo percorso, ma il costo è
cambiato (diminuito o incrementato) 48
OSPF (Open Shortest Path First)
• Intra-AS
• Link State
• metrica: può deciderla
l’amministratore: latenza, affidabilità,
banda, numero di hop, ecc.

• OSPF usa IP (n. prot. 89) 49


OSPF gerarchico
• AS può essere partizionato in aree (per ridurre flooding di Link State
Packet), una delle quali fa da dorsale (backbone area)

 two-level hierarchy: local area, backbone.


• link-state advertisements flooded only in area, or backbone
• each node has detailed area topology; only knows direction to reach
other destinations
area border routers: boundary router:
“summarize” distances to connects to other
backbone ASes
destinations in own area, backbone router:
advertise in backbone runs OSPF limited
to backbone
local routers:
• flood LS in area only area 3
• compute routing within
area
internal
• forward packets to outside routers
area 1
via area border router
area 2
Sistemi autonomi interconnessi

inter-AS

51
Esempio
X

– AS1 scopre (grazie a INTER-AS routing protocol) che una


sottorete X è raggiungibile via AS2 (a cui AS1 è collegato
mediante il gateway 1b)
– AS1 propaga (con INTER-AS routing protocol) tale
informazione al suo interno
– Un router R (es. 1d in figura) di AS1 riceve l’informazione
“rete X raggiungibile via AS2”:
Aggiorna (se necessario) la tabella di inoltro

52
BGP (Border Gateway Protocol)
• BGP4: unico protocollo INTER-AS usato in Internet
• protocollo di tipo distance-vector decentralizzato e asincrono
• Coppie di router si scambiano info su connessioni TCP: sessioni BGP esterne e sessioni
interne

53
BGP
• Aggregazione indirizzi
– destinazioni rappresentate da prefissi CIDR
• BGP mette a disposizione di ciascun router un modo per:
– Ottenere informazioni sulla raggiungibilità dei prefissi di
sottorete da parte dei sistemi confinanti
• In particolare, BGP consente a ciascuna sottorete di comunicare la
propria esistenza al resto di Internet. Basta che una sottorete invii
un annuncio “Esisto, son qui” e BGP si assicura che lo sappiano
tutti i router di Internet
– Determinare i percorsi “ottimi” verso le sottoreti.
• Un router può venire a conoscenza di più cammini verso uno
specifico prefisso; per determinare il migliore, esegue localmente
BGP, sulla base delle informazioni di raggiungibilità e delle
politiche del sistema
54
BGP
• Pubblicizzare un prefisso significa impegnarsi a
instradare pacchetti destinati a reti in quel
prefisso

• Distribuzione di informazioni su raggiungibilità:


eBGP: gateway riceve informazioni da gateway di altri AS
su sessione eBGP
iBGP: gateway distribuisce informazioni ai router interni
della propria rete su sessioni iBGP
altro gateway dell’AS può ri-pubblicizzare info con eBGP ...
55
eBGP, iBGP connections

2b

2a 2c

1b 3b
2d
1a 1c ∂
3a 3c
AS 2
1d 3d

AS 1 eBGP connectivity AS 3
logical iBGP connectivity

1c gateway routers run both eBGP and iBGP protocols

Network Layer: 5-56


BGP
• Advertisement (ADV) BGP
– “route” = prefisso + attributi
– i due attributi più importanti sono
• AS_PATH
– sequenza degli AS attraversati nel path pubblicizzato dall’advertisement
– usato per
– scartare advertisement già ricevuti
– scegliere tra più percorsi per lo stesso prefisso
• NEXT_HOP
– L'attributo NEXT-HOP indica l'indirizzo IP del primo router lungo un percorso
annunciato (al di fuori dell'AS che riceve l'annuncio) a un dato prefisso di rete

NEXT_HOP

Per AS1 NEXT_HOP verso


X prefisso X è l’interfaccia di
2a
57
BGP
• Policy-based routing
– Politiche di importazione
– Il gateway che riceve un route advertisement una import
policy per accettare/rifiutare il percorso (e.g., never route
through AS Y).
– Si usa l’AS policy anche per determinare se annunciare
(advertise) il percorso ad altri AS vicini
• Scelta delle rotte
– router può ricevere più di 1 rotta per lo stesso prefisso
– Sequenza di regole (principale)
1. Attributo di “preferenza locale” (LOCAL-PREF scelta da
amministratore o impostato dai router dell’AS)  vengono
selezionati quelli coi valori più alti
2. Shortest AS-PATH
3. Closest NEXT-HOP interface (“hot potato routing”)
58
BGP basics

 BGP session: two router BGP (“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
AS 3 3b
AS 1b 3a 3c
1
1a 1c AS 2 3d
2b
1d BGP advertisement:
2a 2c X
AS3, X
2d

Network Layer: 5-59


BGP path advertisement

AS 3 3b
AS 1b 3a 3c
1
1a 1c AS 2 3d X
2b
1d AS3, X
AS2,AS3,X 2a 2c

2d

 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
 based on AS2 policy, AS2 router 2a advertises (via eBGP) path AS2, AS3, X to
AS1 router 1c

Network Layer: 5-60


BGP path advertisement (more)

AS 3 3b
AS 1b AS3,X 3a 3c
AS3,X
1 AS3,X
1a 1c AS 2 3d X
2b
AS3,X
1d AS3, X
AS2,AS3,X 2a 2c

2d

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
 based on policy, AS1 gateway router 1c chooses path AS3,X and advertises path
within AS1 via iBGP

Network Layer: 5-61


IPv6

Motivazioni (e soluzioni)
– Esaurimento indirizzi a 32 bit
 indirizzi a 128 bit
– Velocizzare elaborazione e forwarding pacchetti
 lunghezza fissa (40 byte) dell’header
 eliminato checksum
– Risparmiare ai router costo frammentazione
 ICMPv6: msg “packet too big” (sorgente deve preoccuparsi della
frammentazione)
– Facilitare QoS
 introdotta “flow label” per identificare datagram appartenenti allo stesso
“flow”
(p.e. insiemi di pacchetti che richiedono un trattamento speciale come QoS p.e. audio-
video, high-priority traffic) 62
Dual stack

63
Tunneling and encapsulation

A B Ethernet connects two E F


Ethernet IPv6 routers
connecting two IPv6 IPv6 IPv6 IPv6 IPv6
routers:
IPv6 datagram
Link-layer frame The usual: datagram as payload in link-layer frame

IPv4 network A B E F
connecting two
IPv6 routers IPv6 IPv6/v4 IPv6/v4 IPv6

IPv4 network

Network Layer: 4-64


Tunneling and encapsulation

A B Ethernet connects two E F


Ethernet IPv6 routers
connecting two IPv6 IPv6 IPv6 IPv6 IPv6
routers:
IPv6 datagram
Link-layer frame The usual: datagram as payload in link-layer frame

IPv4 tunnel A B IPv4 tunnel E F


connecting IPv6 routers
connecting two
IPv6 routers IPv6 IPv6/v4 IPv6/v4 IPv6

IPv6 datagram
IPv4 datagram tunneling: IPv6 datagram as payload in a IPv4 datagram

Datagrammi IPv6 come payload di datagrammi tra (interfacce di) router IPv4
Network Layer: 4-65
Tunneling

A B IPv4 tunnel E F
connecting IPv6 routers
logical view:
IPv6 IPv6/v4 IPv6/v4 IPv6

A B C D E F
physical view:
IPv6 IPv6/v4 IPv4 IPv4 IPv6/v4 IPv6

flow: X src:B src:B src:B flow: X


src: A dest: E dest: E src: A
dest: F
dest: E
dest: F
Flow: X Flow: X Flow: X
Src: A Src: A Src: A
Note source data Dest: F Dest: F Dest: F data
and destination
addresses! data data data

A-to-B: E-to-F:
B-to-C: B-to-C: B-to-C:
IPv6 IPv6
IPv6 inside IPv6 inside IPv6 inside
IPv4 IPv4 IPv4

Network Layer: 4-66


Tunneling

67
1https://www.google.com/intl/en/ipv6/statistics.html
68
Riferimenti e immagini da:
• Computer Networks: A Top-Down Approach", B.
A. Forouzan, F. Mosharraf, McGraw Hill.
• Jim Kurose and Keith Ross, Computer
Networking: A Top-Down Approach, Settima
Edizione, Pearson, 2017

Potrebbero piacerti anche