Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Routing.
Il compito del livello di rete è quindi la trasmissione di pacchetti tra
due host arbitrari, che in generale non sono direttamente connessi,
ovvero non hanno un collegamento diretto tra di loro. Nel modello
ISO/OSI, il software del livello di rete è presente in tutti i nodi della
rete, mentre quello dei livelli superiori è presente solo nei nodi
terminali. In dettaglio, le funzioni del livello di rete sono:
Per ogni voce presente nella tabella di routing sono presenti delle
lettere che indicano lo stato della rotta secondo le abbreviazioni
riportate nella tabella table:route-flag :
Etichett
Proprietà Descrizione
a
disabilitata X La rotta è disabilitata cioè non è usata.
attiva A La rotta è usata per inoltrare i pacchetti.
La rotta è stata creata dal software in modo
dinamica D
automatico.
Non verrà esportata e non può essere
modificata direttamente.
connessa C Rotta connessa.
statica S Rotta statica.
rip r Creata attraverso il protocollo RIP.
bgp b Creata attraverso il protocollo BGP.
ospf o Creata attraverso il protocollo OSPF.
mme m Creata attraverso il protocollo MME.
Non considerare i pacchetti indirizzati verso
blackhole B
questa rotta e
non notificare a nessuno l'azione.
non Non considerare i pacchetti indirizzati verso
U
raggiungibile questa rotta ma
notifica la situazione con un messaggio
ICMP.
Non considerare i pacchetti indirizzati verso
proibita P
questa rotta ma
notifica la situazione con un messaggio
ICMP.
Etichette associabili ad una rotta
table:route-fla g
indirizzo di partenza,
indirizzo di destinazione,
interfaccia sorgente,
eventuale marchiatura del routing,
ToS (tipo di servizio) - campo attualmente non utilizzato dal
protocollo IPv4 - non utilizzato da RouterOS nelle regole di
routing, ma fa parte della chiave di ricerca nella cache di
routing.
Rotta predefinita
La rotta con indirizzo di destinazione 0.0.0.0/0 si applica a tutti gli
indirizzi di destinazione. Tale percorso è chiamato rotta predefinita
(default route ) e il router indicato è chiamato default gateway . Se la
tabella di routing contiene una rotta predefinita attiva allora la ricerca
nella tabella di routing avrà sempre successo. Per usare una
analogia è come viaggiare in una città e trovare un cartello stradale
con l'indicazione "tutte le direzioni".
Rotte connesse
Le rotte connesse vengono create automaticamente per ogni rete IP
che ha almeno un'interfaccia abilitata ad essa collegata (come
specificato nella configurazione dell'indirizzo IP). RIB tiene traccia
dello stato delle rotte collegate ma non le modifica. Per ogni rotta
connessa esiste un indirizzo ip in modo tale che:
indirizzo IP,
l'interfaccia.
destinazione;
l'indirizzo di destinazione e maschera di rete;
0.0.0.0/0 se si tratta di una rotta di default.
gateway:
l'indirizzo IP del gateway, deve essere l'indirizzo IP di una
sottorete con IP installato su una delle interfacce del router;
il gateway sotto forma di interfaccia: viene utilizzato quando
il gateway IP è sconosciuto oppure è dinamico ad esempio
nel caso di una connessione punto-punto o seriale.
pref source:
l'indirizzo IP di origine del pacchetto che lascerà il router,
di solito è l'indirizzo IP installato sull'interfaccia su cui si
trova il gateway.
distanza:
viene utilizzata per il calcolo del percorso e per la selezione
della rotta;
il valore varia da 0 a 255
per impostazione predefinita il valore è deciso in base al
protocollo di routing utilizzato:
percorsi connessi: 0
percorsi statici: 1
eBGP: 20
OSPF: 110
RIP: 120
MME: 130
iBGP: 200
si noti che una distanza pari a 255 significa “rejected”.
scope e target scope (letteralmente "ambito e ambito di
applicazione"):
utilizzato per nexthop lookup ricorsivo (vedi più avanti la
sezione scope a pagina scope ) .
Laboratori
Prima di eseguire i laboratori che seguono assicurarsi di aver
risposto correttamente alle domande di riepilogo a pagina
domande-1 .
Soluzioni al laboratorio
{R1}
{R2}
{R3}
/system identity set name=R3
/ip address
add address=192.168.3.1/24 interface=ether1 network=192.168.3.0
add address=23.23.23.3/24 interface=ether2 network=23.23.23.0
/ip route
add distance=1 dst-address=192.168.1.0/24 gateway=23.23.23.2
add distance=1 dst-address=192.168.2.0/24 gateway=23.23.23.2
Domande di riepilogo
domande-1
0 dst=192.168.1.0/24 gateway=192.168.1.1
1 dst=192.168.1.0/25 gateway=192.168.1.2
Quale gateway sarà usato per raggiungere l'ip 192.168.1.5?
1. Entrambi, metà del traffico attraverso 192.168.1.1 e l'altra
metà attraverso 192.168.1.1
2. Attraverso 192.168.1.1
3. Attraverso 192.168.1.2
4. La rotta necessaria non è presente nella tabella di routing
3. Il valore predefinito della distanza per una rotta connessa è:
1. 255
2. 1
3. 10
4. 0
4. Una rotta può avere contemporaneamente il flag D e S?
1. Sì
2. No
5. Una rotta può avere contemporaneamente il flag A,DC e S?
1. Sì
2. No
6. Nella tabella di routing sono presenti le seguenti rotte:
Soluzioni
1. b, 1
2. c, attraverso 192.168.1.2 in quanto si tratta della sotto rete più
specifica .
3. d, 0
4. No, D=dinamic, S=static, si escludo a vicenda.
5. Sì, si tratta di una rotta (A)ttiva, (C)onnessa ed inserita
(S)taticamente.
6. c, attraverso 192.168.1.2 in quanto si tratta della sotto rete più
specifica; la distanza viene valutata in seguito.
1. 10.10.20.1
2. 10.10.20.1
3. 10.10.20.1
4. 11.11.11.1
5. 11.11.11.1
6. Per la rete 10.10.10.0/24 bisogna impostare il gateway
11.11.11.2; per la rete 10.10.20.0/24 bisogna impostare il
gateway 11.11.11.2 .
Routing statico avanzato
«Di qua di là prima o poi da qualche parte amico si arriverà» Jovanotti
ECMP - passo 2
ecmp-add-masquerade
Laboratorio
ecmp
Per questo laboratorio sono necessari tre router e due pc.
ECMP
Obiettivo di questo laboratorio è comprendere come aggiungere
rotte statiche che abbiano la stessa destinazione ma gateway
differenti in modo da realizzare un semplice bilanciamento del
carico in uscita di tipo ECMP. L'obiettivo è realizzare la
configurazione della figura ecmp-lab1 . Nello specifico i due pc
devono riuscire a navigare in internet utilizzando i due router R2 e
R3, situazione verificabile mediante il comando trace eseguito dai
due pc.
ECMP - laboratorio
ecmp-lab1
{R3}
/system identity set name=R3
/ip address
add address=192.168.13.3/24 interface=ether3
network=192.168.13.0
/ip dhcp-client add disabled=no interface=ether1
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1
{R1}
/system identity set name=R1
/interface bridge add fast-forward=no name=bridge-lan
/interface bridge port
add bridge=bridge-lan interface=ether1
add bridge=bridge-lan interface=ether5
/ip address
add address=192.168.12.1/24 interface=ether2
network=192.168.12.0
add address=192.168.13.1/24 interface=ether3
network=192.168.13.0
add address=192.168.1.1/24 interface=bridge-lan
network=192.168.1.0
/ip pool add name=lan ranges=192.168.1.100-192.168.1.200
/ip dhcp-server
add address-pool=lan disabled=no interface=bridge-lan
name=lan
/ip dhcp-server network
add address=192.168.1.0/24 dns-server=8.8.8.8
gateway=192.168.1.1 \
netmask=24
#
# Parte rilevante ai fini del laboratorio
#
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether2
add action=masquerade chain=srcnat out-interface=ether3
/ip route add distance=1 gateway=192.168.13.3,192.168.12.2
Laboratorio
distance
Per questo laboratorio sono necessari tre router e due pc.
Distanz a
Obiettivo di questo laboratorio è comprendere come influisce il
valore della distanza nella selezione della rotta attiva.
Opzione "Check-gateway"
check-gateway RouterOS mette a disposizione un meccanismo di
controllo dei gateway che viene eseguito in background.
Periodicamente (ogni 10 secondi) viene controllato il gateway
inviando una richiesta echo ICMP (ping) o una richiesta ARP (arp);
se non viene ricevuta alcuna risposta dal gateway entro 10 secondi,
la richiesta scade (timeout). Dopo due timeout il gateway è
considerato irraggiungibile. Viceversa per un gateway considerato
irraggiungibile, dopo aver ricevuto di nuovo una risposta, il gateway
è considerato raggiungibile e il contatore del timeout viene
ripristinato.
E' importante notare che se si attiva la funzione Check-Gateway per
una rotta allora tutte le rotte con lo stesso gateway sottostarranno
allo stesso controllo.
Laboratorio
check-gateway
Per questo laboratorio sono necessari tre router e due pc.
Check-gateway
Obiettivo di questo laboratorio è comprendere come influisce il
meccanismo di controllo della vitalità di un router (check-gateway)
nella selezione della rotta attiva.
Politiche di routing
Quando la decisione per l'inoltro del pacchetto usa informazioni
addizionali, come ad esempio l'indirizzo sorgente del pacchetto, si
parla di "politica di routing". La politica di routing è realizzata
attraverso delle liste da cui vengono selezionate le diverse tabelle di
routing basandosi sull'indirizzo di destinazione, l'indirizzo sorgente,
l'interfaccia sorgente ed una eventuale marcatura del routing stesso.
Per fare questo è necessario marcare il traffico per poi assegnarlo
ad una specifica tabella di routing. La marcatura del pacchetto per
una specifica tabella di routing viene gestita dal firewall (IP >
Firewall > Mangle ) e può riguardare il singolo pacchetto oppure
l'intera connessione. Per questioni di performance si preferisce
marcare il primo pacchetto di una connessione e poi marcare
conseguentemente tutta la connessione: in questo modo il firewall
utilizzerà una minore quantità di CPU per la gestione. Il secondo
passo per una politica di routing è la creazione di tabelle di routing
specifiche per il traffico marcato. Per impostazione predefinita, il
router utilizza la tabella di routing main (principale) ma si possono
creare tabelle di routing aggiuntive e configurare il router affinché
utilizzi una tabella specifica. Per fare questo si può agire su due
versanti:
Usando IP > Route > Rules si può specificare l'uso di una tabella
di routing in base ad alcuni parametri (si veda la figura policy-
routing-rule ) come ad esempio:
indirizzo di destinazione,
marcatura della rotta presente nel pacchetto,
interfaccia di arrivo.
Laboratorio
{R1}
/system identity set name=R1
/interface bridge add fast-forward=no name=bridge-lan
/interface bridge port
add bridge=bridge-lan interface=ether1
add bridge=bridge-lan interface=ether5
/ip address
add address=192.168.12.1/24 interface=ether2
network=192.168.12.0
add address=192.168.13.1/24 interface=ether3
network=192.168.13.0
add address=192.168.1.1/24 interface=bridge-lan
network=192.168.1.0
/ip pool add name=lan ranges=192.168.1.100-192.168.1.200
/ip dhcp-server
add address-pool=lan disabled=no interface=bridge-lan
name=lan
/ip dhcp-server network
add address=192.168.1.0/24 dns-server=8.8.8.8
gateway=192.168.1.1 \
netmask=24
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether2
add action=masquerade chain=srcnat out-interface=ether3
Caso reale
Bill ha un router Mikrotik con una linea ADSL fornita dal provider
ISP1 che collega i client della sua rete ad internet. Bill aggiunge una
seconda linea ADSL con il provider ISP2 e vuole che questa sia solo
per alcuni utenti specifici, VIP che stanno pagando un po' di soldi
extra per una migliore velocità, in quanto l'attuale collegamento con
ISP1 è intasata dal traffico degli altri utenti.
Soluzione
Ambito (scope)
scope Il meccanismo del check gateway, descritto nella sezione
check-gateway a pagina check-gateway , può rilevare problemi di
connessione solo nel router più vicino. Se il problema si verifica
dopo il gateway più vicino, il controllo del gateway non può rilevalo.
Per ovviare a questo inconveniente e per selezionare
efficientemente il prossimo router a cui inoltrare il traffico si possono
utilizzate tecniche che definiscono l'ambito (scope ) del routing
stesso. La ricerca del nexthop fa parte del processo di selezione del
percorso: le rotte installate nella FIB devono avere un'interfaccia
associata a ciascun indirizzo gateway, in questo modo l'indirizzo del
gateway è direttamente raggiungibile tramite questa interfaccia. Con
l'espressione ricerca ricorsiva del nexthop si intende la ricerca del
gateway e dell'interfaccia da usare per dar seguito alla rotta anche
se è presente un gateway non direttamente collegato al router.
Questo è dovuto al fatto che alcune rotte (ad es. IBGP) possono
avere un indirizzo gateway che si trova a diversi hop da questo
router. Per installare tali percorsi nella FIB è necessario trovare
l'indirizzo del gateway direttamente raggiungibile (un nexthop
immediato), che sarà utilizzato per raggiungere l'indirizzo gateway di
questa rotta.
La ricerca del nexthop viene eseguita solo nella tabella di routing
principale anche per le rotte con una marcatura diversa di routing.
Durante questa ricerca è necessario limitare la serie di percorsi che
possono essere utilizzati per cercare nexthops immediati; questo
risultato è ottenuto utilizzando le proprietà scope e target-scope.
Esempio
Caso reale
Esempio
Tipi di rotte
Ci sono dei tipi di rotte che vengono usate per bloccare la rete o un
indirizzo dst di destinazione con comportamenti diversi:
Laboratorio
{R2}
/system identity set name=R2
/ip address add address=12.12.12.2/24 interface=ether1
/ip address add address=23.23.23.2/24 interface=ether2
/ip route
add distance=1 dst-address=192.168.1.0/24
gateway=12.12.12.1
add distance=1 dst-address=192.168.3.0/24
gateway=23.23.23.3
{R3}
/system identity set name=R3
/ip address add address=23.23.23.3/24 interface=ether1
/ip address add address=192.168.3.1/24 interface=ether2
/ip route
add distance=1 dst-address=192.168.1.0/24
gateway=23.23.23.2
2. Si assegnino ai due pc i rispettivi indirizzi ip statici indicati in
figura route-type-lab .
3. Dal primo pc si esegua il comando ping 192.168.3.2 e
successivamente si analizzi il risultato del comando.
4. Nel router R2 si cambi il tipo di rotta come di seguito e dopo
ogni cambiamento si ripeta il ping precedente analizzato il
risultato del comando:
{R2}
/ip route add
# Secondo test
dst-address=192.168.3.0/24 gateway=23.23.23.3
type=blackhole
# Terzo test
dst-address=192.168.3.0/24 gateway=23.23.23.3 route-
type=prohibit
# Primo test
dst-address=192.168.3.0/24 gateway=23.23.23.3 route-
type=unreachable
Con la rotta:
{R2}
/ip route add dst-address=192.168.3.0/24
gateway=23.23.23.3
Si ottiene:
PC-1> ping 192.168.3.2
84 bytes from 192.168.3.2 icmp_seq=1 ttl=61 time=6.317
ms
84 bytes from 192.168.3.2 icmp_seq=2 ttl=61 time=1.753
ms
84 bytes from 192.168.3.2 icmp_seq=3 ttl=61 time=1.607
ms
84 bytes from 192.168.3.2 icmp_seq=4 ttl=61 time=2.905
ms
84 bytes from 192.168.3.2 icmp_seq=5 ttl=61 time=3.034
ms
Con la rotta:
{R2}
/ip route add dst-address=192.168.3.0/24 type=blackhole
Si ottiene:
PC-1> ping 192.168.3.2
192.168.3.2 icmp_seq=1 timeout
192.168.3.2 icmp_seq=2 timeout
192.168.3.2 icmp_seq=3 timeout
192.168.3.2 icmp_seq=4 timeout
192.168.3.2 icmp_seq=5 timeout
Con la rotta:
{R2}
/ip route add dst-address=192.168.3.0/24 type=prohibit
Si ottiene:
PC-1> ping 192.168.3.2
*12.12.12.2 icmp_seq=1 Communication administratively
prohibited
*12.12.12.2 icmp_seq=2 Communication administratively
prohibited
*12.12.12.2 icmp_seq=3 Communication administratively
prohibited
*12.12.12.2 icmp_seq=4 Communication administratively
prohibited
*12.12.12.2 icmp_seq=5 Communication administratively
prohibited
Con la rotta:
{R2}
/ip route add dst-address=192.168.3.0/24
type=unreachable
Si ottiene:
PC-1> ping 192.168.3.2
*12.12.12.2 icmp_seq=1 Destination host unreachable
*12.12.12.2 icmp_seq=2 Destination host unreachable
*12.12.12.2 icmp_seq=3 Destination host unreachable
*12.12.12.2 icmp_seq=4 Destination host unreachable
*12.12.12.2 icmp_seq=5 Destination host unreachable
Sorgente preferita
pref-src La proprietà pref-src, utilizzabile durante la scrittura di una
rotta statica, indica quale degli indirizzi IP locali è da utilizzare per i
pacchetti originati localmente ed inviati tramite questa rotta. E'
importante considerare che:
Domande di riepilogo
domande-2
Soluzioni
1. 10.
2. Sì.
3. Prima (si veda lo schema a pagina packet-flow ).
4. No, la a proprietà pref-src indica quale degli indirizzi IP locali è
da utilizzare per i pacchetti originati localmente ed inviati tramite
una specifica rotta.
5. Sì.
6. No, vengono copiati nella FIB ECMP tutti i gateway nexthop
raggiungibili.
7. No, bisogna indicare tutti gli indirizzi verso cui il masquerade
agisce.
8. a, per connessione. Si vedano le domande di approfondimento
a pagina ecmp-domanda .
Routing dinamico
Il routing avanzato si avvale di protocolli di routing statici e dinamici
(vedi figura routing-protocols a pagina routing-protocols ); i router
che usano protocolli di tipo statico gestiscono una tabella di
instradamento realizzata ed aggiornata manualmente
dall’amministratore di rete, mentre i router che usano protocolli
dinamici provvedono da se a creare ed aggiornare tale tabella
trovando informazioni presso altri router dinamici e su tutti i loro
segmenti. I router dinamici contengono informazioni costantemente
aggiornate sui possibili percorsi attraverso la rete, nonché
informazioni sui colli di bottiglia e sulle interruzioni del collegamento.
Tali informazioni permettono loro di individuare la strada più
efficiente, disponibile in un determinato momento, per inoltrare un
pacchetto dati alla sua destinazione. Le reti sono raggruppate in
Autonomous system (AS), cioè in gruppi di router e di reti controllate
e gestiti da un'unica entità. Gli AS sono identificati tramite un numero
intero, univoco a livello mondiale, assegnato dalla stessa autorità
che rilascia gli indirizzi internet. I router che instradano i messaggi
all'interno dello stesso AS sono detti interior router o anche internal
router , mentre quelli che instradano i messaggi tra AS diversi sono
detti exterior router .
Questo tipo di approccio si basa sul fatto che ciascun router tiene
traccia della distanza e della direzione (vector ) di tutte le possibili
destinazioni nell'ambito dell'internetwork. Il modo in cui possono
essere calcolate le distanze presenti nelle tabelle di routing
dipendono da diverse caratteristiche della comunicazione come ad
esempio:
OSPF
OSPF è l'acronimo di Open Shortest Path First. Questo protocollo di
routing si basa sulla tecnologia link state, a differenza di RIP che è
invece basato sull'algoritmo distance vector. In OSPF esistono un
database distribuito, una procedura di flooding e una definizione di
adjacency. OSPF appartiene alla classe IGP e pertanto opera
internamente a ciascun Autonomous System (AS). Il protocollo
scambia i messaggi LSA (Link State Advertisement), letteralmente
"annuncio sullo stato del link", con tutti quei router che appartengono
al medesimo AS, ed essendo di tipo link state, utilizza l'algoritmo
SPF per calcolare il percorso più breve verso ciascuna rotta. Inoltre
essendo Internet costituita da molti AS, talvolta abbastanza grandi e
non facilmente gestibili, OSPF offre la possibilità di suddividere gli
AS in Aree numerate, (denominate aree OSPF e identificate da un
numero di 32 bit detto area-id) ciascuna delle quali è formata da una
o più reti. Ciò comporta che la topologia ed i dettagli interni ad una
certa area, non siano visibili all'esterno di essa. Ciascun AS ha un
area backbone (spina dorsale) chiamata Area 0, la quale ha lo scopo
di far comunicare le diverse aree appartenenti al medesimo AS.
All'interno di ogni area, ciascun router, mantiene lo stesso database
realizzato con lo scambio di messaggi LSA, calcola il cammino
minimo da sé, verso ogni altro router appartenete alla medesima
area, incluso il router che è connesso alla backbone ("area-border
routers" ABR). Come descritto in figura ospf-definizioni ci deve
essere perlomeno un ABR in ciascun area, per connetterla al
backbone. Gli ABR mantengono numerosi database, uno per
ciascuna area alla quale appartengono ed ogni area include un set
di sottoreti IP. Oltre agli ABR, possiamo distinguere ancora 2
tipologie di router:
Internal router : sono i router che gestiscono il traffico
all'interno della stessa area
Autonomous System Boundary Router (ASBR) : sono
gateway per il traffico esterno e convertono i percorsi nel
dominio OSPF appresi da altri protocolli come BGP e EIGRP.
Area
Aree OSFP
aree
Il protocollo OSPF consente di raggruppare i router in insiemi
chiamati area . Ogni area esegue una copia separata dell'algoritmo
di routing, ciò significa che ogni area ha il proprio database di link-
state e l'albero del percorso più breve corrispondente. La struttura di
un'area è invisibile alle altre aree, questo isolamento della
conoscenza rende il protocollo più scalabile in quanto il calcolo della
tabella di routing richiede meno risorse della CPU e il traffico di
routing è ridotto. Tuttavia, le impostazioni multi-area creano ulteriore
complessità e per questo non è consigliabile separare le aree con
meno di 50 router anche se il numero massimo di router in un'area
dipende principalmente dalla potenza della CPU che si ha a
disposizione per il calcolo della tabella di routing. Ogni area è
identificata da un area-id univoco all'interno di un AS. In ogni AS
deve sempre essere presente un'area con area-id = 0.0.0.0 (il
backbone). Questa area speciale, il backbone letteralmente "spina
dorsale", contiene sempre tutti i router di confine dell'area ed è
responsabile della distribuzione delle informazioni di routing tra aree
non backbone. Considerato questo particolare ruolo l'area di
backbone deve essere contigua, cioè non devono esserci segmenti
sconnessi; tuttavia, non è necessario che i router di confine dell'area
siano fisicamente collegati alla dorsale: la connessione ad essa può
essere simulata utilizzando un collegamento virtuale. L'argomento
verrà trattato nella sezione virtual-link a pagina virtual-link attraverso
un laboratorio specifico. Quindi una rete con protocollo OSPF attivo
viene inizialmente identificata come Area 0. Nel caso di espansione
della rete, possono essere create altre aree adiacenti all’area 0, con
valori compresi nell'intervallo 0-4294967295. Un gruppo di aree
genera un sistema autonomo OSPF (OSPF Autonomous System).
Alcune sigle utilizzate dal protocollo:
Metrica
OSPF su RouterOS
In questa e nelle sezioni successive si declineranno i concetti finora
esposti relativi ad OSPF secondo la terminologia e la logica di
RouterOS. La configurazione generale di OSPF si trova nella voce
Routing > OSPF > Instance e mette a disposizione i seguenti
parametri (si veda la figura istanza ):
add-area
Aggiunta di una rete connessa all'area.
add-network
Laboratorio
{R2}
/ip address add interface=ether1 address=12.12.12.2/24
/ip address add interface=ether2 address=23.23.23.2/24
{R3}
/ip address add interface=ether2 address=23.23.23.3/24
/ip address add interface=ether1 address=192.168.3.1/24
Dal PC-2:
PC-2> ping 192.168.3.1
84 bytes from 192.168.3.1 icmp_seq=1 ttl=64 time=2.903 ms
84 bytes from 192.168.3.1 icmp_seq=2 ttl=64 time=0.484 ms
PC-2> ping 23.23.23.3
84 bytes from 23.23.23.3 icmp_seq=1 ttl=64 time=0.569 ms
84 bytes from 23.23.23.3 icmp_seq=2 ttl=64 time=0.330 ms
PC-2> ping 23.23.23.2
23.23.23.2 icmp_seq=1 timeout
23.23.23.2 icmp_seq=2 timeout
R2:
[admin@R2] > /ip route print
Flags: X - disabled, A - active, D - dynamic, C - connect,
o - ospf
# DST-ADDRESS PREF-
SRC GATEWAY DISTANCE
0 ADC
12.12.12.0/24 12.12.12.2 ether1
0
1 ADC
23.23.23.0/24 23.23.23.2 ether2
0
R3:
[admin@R3] > /ip route print
Flags: X - disabled, A - active, D - dynamic, C - connect,
o - ospf
# DST-ADDRESS PREF-
SRC GATEWAY DISTANCE
0 ADC
23.23.22.0/24 23.23.23.3 ether2
0
1 ADC
192.168.2.0/24 192.168.3.1 ether1
0
{R2}
/routing ospf area add name=area-1 area-id=0.0.0.1
/routing ospf area add name=area-2 area-id=0.0.0.2
{R3}
/routing ospf area add name=area-2 area-id=0.0.0.2
{R2}
/routing ospf network add network=12.12.12.0/24
area=backbone
/routing ospf network add network=23.23.23.0/24
area=backbone
{R3}
/routing ospf network add network=192.168.3.0/24 area=area-
2
/routing ospf network add network=23.23.23.0/24
area=backbone
R2:
[admin@R2] > /ip route print
Flags: X - disabled, A - active, D - dynamic, C - connect,
o - ospf
# DST-ADDRESS PREF-
SRC GATEWAY DISTANCE
0 ADC
12.12.12.0/24 12.12.12.2 ether1
0
1 ADC
23.23.23.0/24 23.23.23.2 ether2
0
2 ADo
192.168.1.0/24 12.12.12.1
110
3 ADo
192.168.3.0/24 23.23.23.3
110
R3:
[admin@R3] > /ip route print
Flags: X - disabled, A - active, D - dynamic, C - connect,
o - ospf
# DST-ADDRESS PREF-
SRC GATEWAY DISTANCE
0 ADo
12.12.12.0/24 23.23.23.2
110
1 ADC
23.23.23.0/24 23.23.23.3 ether2
0
2 ADo
192.168.1.0/24 23.23.23.2
110
3 ADC
192.168.3.0/24 192.168.3.1 ether1
0
Interfaccia di loopback
Virtual link
Laboratorio
lab-virtual-link
Per questo laboratorio sono necessari tre router e due pc.
Virtual link tra aree
Obiettivo di questo laboratorio è collegare attraverso un virtual link
aree non adiacenti all'area di backbone.
DR e BDR
DR e BDR in RouterOS
dr-bdr-routeros
Neighbors State
Gli LSA sono propagati tramite un pacchetto Link State Update che
può contenere più di un annuncio, ognuno però propagato un solo
hop in avanti. Viceversa per garantire la affidabilità del processo di
propagazione è bene che gli acknowledgment siano ritrasmessi uno
alla volta (sebbene possano essere parimenti raggruppati) in un
pacchetto di tipo Link State Acknowledgement. Uno degli elementi
tipici del processo di propagazione è anche la Retrasmission List
che, in ogni router, tiene conto dei LSA ricevuti che ancora non
abbiano avuto acknowledgement. Ogni interfaccia avrà quindi una
determinata lista di ritrasmissione opportunamente settata tenendo
conto della velocità di tale interfaccia. Queste informazioni sono
visibili usando il menù Routing > OSPF > LSA (vedi figura lsa ).
Tipi di reti
Point-to-Point
Questo è di gran lunga il tipo di rete più semplice ed il punto di
partenza più semplice per comprendere le altre topologie. Una rete
point-to-point è un collegamento tra esattamente due punti (o
router). Un pacchetto inviato da uno dei router avrà sempre
esattamente un destinatario sul collegamento locale.
Point-to-Point
Broadcast
Broadcast
broadcast
Nelle reti Ethernet un singolo pacchetto trasmesso da un dispositivo
può essere moltiplicato dal mezzo (in questo caso un swith Ethernet)
in modo che ogni altro punto finale riceva una copia. Ciò è
vantaggioso non solo per il risparmio di larghezza di banda che ne
consegue ma anche perché questo facilità la scoperta automatica
dei vicini. Nell'esempio riportato in figura broadcast , R1 può
eseguire il multicast (una trasmissione destinata solo a determinati
destinatari) di un messaggio di Hello OSPF su tutto il segmento,
sapendo che tutti gli altri router OSPF collegati al segmento lo
riceveranno e risponderanno con il proprio messaggio multicast. Di
conseguenza, i vicini possono identificarsi rapidamente e formare le
adiacenze senza conoscere prima gli indirizzi. I router OSPF su un
segmento multiaccess eleggeranno un router designato (DR) e un
router designato di backup (BDR) con cui tutti i router non designati
formeranno un'adiacenza. Questo per garantire che il numero di
adiacenze mantenute non cresca troppo; un segmento contenente
dieci router richiederebbe 45 connessioni per formare una mesh, ma
solo 17 quando sono presenti un DR e un BDR.
Non-Broadcast
Non-Broadcast
non-broadcast
Si noti che nella topologia del frame relay visibile in figura non-
broadcast , R1 deve predisporre e trasmettere un singolo pacchetto
per ogni destinazione che desidera raggiungere. Oltre a essere
inefficiente per quanto riguarda la larghezza di banda, questa
limitazione richiede che il router conosca gli indirizzi dei suoi vicini
prima che possa comunicare con loro. OSPF può operare su una
rete non broadcast nelle due modalità multi-accesso non broadcast
(NBMA) o point-to-multipoint. Ciascuna di queste topologie affronta
l'assenza di capacità di trasmissione da una prospettiva diversa.
{Non-Broadcast Multi-Access (NBMA)} Un segmento NBMA emula
la funzione tipica di una rete broadcast. Ogni router sul segmento
deve essere configurato con l'indirizzo IP di ciascuno dei suoi vicini. I
pacchetti OSPF Hello vengono poi trasmessi singolarmente come
pacchetti unicast a ciascun vicino adiacente. Come in una vera rete
broadcast, un DR e BDR sono eletti per limitare il numero di
adiacenze formate. E' importante ricordare che in una rete NBMA è
necessario specificare i vicini manualmente (vedi figura add-nbma ).
Laboratorio
Type-1
type-1
5. Si imposti l'istanza OSPF del router R1 per ridistribuire la rotta
statica con metrica Type-2:
{R1}
/routing ospf instance set redistribute-static=as-type-2
numbers=0
6. Sul router R3 si veda la metrica della rotta propagata (Routing
> OSPF > Routes ):
Type-2
type-2
7. Si noti il cambio del costo associato alla rotta.
Tipi di aree
Una rete OSPF è divisa in aree. Esse sono gruppi logici non
sovrapposti di router le cui informazioni possono essere riassunte
rispetto al resto della rete. Sono definite diversi tipi di aree "speciali":
Area standard
Area standard
Vengono propagati i seguenti LSA:
Area stub
Area stub
Per Stub Area si intendono quei tipi di area che non ricevono rotte
esterne. Le rotte esterne saranno poi definite e distribuite da un altro
protocollo di routing. Quindi, le stub area necessitano di relegare ad
una rotta di default il traffico di scamdio con le rotte esterne al
dominio di appartenenza. Vengono propagati i seguenti LSA:
Area Not-So-Stubby
Area Not-So-Stubby
Identificata anche come NSSA, una not-so-stubby area è un tipo di
stub area che può importare rotte esterne di AS e mandarle al
backbone, ma non può ricevere tali rotte esterne di AS dal backbone
o da altre aree. Vengono propagati i seguenti LSA:
Interfaccie passive
Interfaccia passiva
interface-passive
Costo
Ridondanza
Soluzioni
Si va dalla semplice rete multihomed verso due provider alle reti che
fanno peering con altri parter o reti di clienti, tramite un peering
privato o tramite un peering pubblico presso un IXP (Internet
Exchange Point) (es: MIX-IT). Ovviamente, proprio grazie alla
selezione dei path link vector, ogni cliente che deve raggiungere i
servizi erogati utilizzerà il percorso con lunghezza minore. Un
esempio:
Criticità e requisiti
Laboratorio
Laboratorio
bgp-lab2
Per questo laboratorio sono necessari tre router e un pc.
Semplice infrastruttura BGP multihomed.
Obiettivo di questo laboratorio è realizzare questa
configurazione che può essere utilizzata per la condivisione del
carico tra ISP o un ISP come principale e altri ISP come link di
backup.
{R3}
/system identity set name=R3
/ip pool
add name=dhcp_pool0 ranges=10.1.1.2-10.1.1.254
add name=dhcp_pool1 ranges=10.1.2.2-10.1.2.126
add name=dhcp_pool2 ranges=10.1.2.130-10.1.2.254
/ip dhcp-server
add address-pool=dhcp_pool0 disabled=no
interface=ether3 name=dhcp1
add address-pool=dhcp_pool1 disabled=no
interface=ether4 name=dhcp2
add address-pool=dhcp_pool2 disabled=no
interface=ether5 name=dhcp3
/ip address
add address=192.168.1.2/24 interface=ether1
network=192.168.1.0
add address=192.168.2.2/24 interface=ether2
network=192.168.2.0
add address=10.1.1.1/24 interface=ether3
network=10.1.1.0
add address=10.1.2.1/25 interface=ether4
network=10.1.2.0
add address=10.1.2.129/25 interface=ether5
network=10.1.2.128
/ip dhcp-server network
add address=10.1.1.0/24 gateway=10.1.1.1
add address=10.1.2.0/25 gateway=10.1.2.1
add address=10.1.2.128/25 gateway=10.1.2.129
Filtri in uscita verso ISP2 (si noti l'aumento del path come
descritto a pagina prepend ):
/routing filter
# Accettiamo le nostre reti e anteponiamo il percorso
AS tre volte
add chain=isp2-out prefix=10.1.1.0/24 action=accept
set-bgp-prepend=3
add chain=isp2-out prefix=10.1.2.0/24 action=accept
set-bgp-prepend=3
# Buttiamo tutto il resto
add chain=isp2-out action=discard
/routing filter
add chain=isp1-in action=discard
add chain=isp2-in action=discard
/ip route
add gateway=192.168.1.1 check-gateway=ping
add gateway=192.168.2.1 distance=30 check-gateway=ping
Link utili
Lo standard 802.1q
802.1q è il nome del protocollo di incapsulamento utilizzato
nel processo di trunking nelle reti Ethernet. Il protocollo
802.1q non segue la logica dell'incapsulamento ma viene
implementato aggiungendo 4 bytes (32 bit) nell'header
Ethernet (figura frame ).
Tipi di porte
VLAN su RouterOS
vlan-simple Per comprendere come RouterOS gestisce le
VLAN si consideri lo schema di figura lab-vlan1 .
{R2}
/system identity set name=R2
#
# Definizione della porta di core (trunk)
#
/interface vlan
add interface=ether1 name=vlan10 vlan-id=10
add interface=ether1 name=vlan20 vlan-id=20
#
# Definizione dei bridge per le porte edge
#
/interface bridge
add fast-forward=no name=bridgevlan10
add fast-forward=no name=bridgevlan20
#
# Estrazione delle vlan dai bridge
#
/interface bridge port
add bridge=bridgevlan10 interface=vlan10
add bridge=bridgevlan20 interface=vlan20
add bridge=bridgevlan20 interface=ether3
add bridge=bridgevlan10 interface=ether2
trunk-lab
Per questo laboratorio sono necessari tre router ed almeno
un pc.
VLAN
Obiettivo di questo laboratorio è l'apprendimento di come
propagare un trunk tra diversi switch.
{R2}
/system identity set name=R2
/interface bridge
add fast-forward=no name=bridgevlan10
add fast-forward=no name=bridgevlan20
add name=bridgevlan1030
/interface vlan
add interface=bridgevlan1030 name=vlan10 vlan-id=10
add interface=bridgevlan1030 name=vlan20 vlan-id=20
add interface=bridgevlan1030 name=vlan30 vlan-id=30
/interface bridge port
add bridge=bridgevlan10 interface=vlan10
add bridge=bridgevlan20 interface=vlan20
add bridge=bridgevlan10 interface=ether1
add bridge=bridgevlan20 interface=ether2
add bridge=bridgevlan1030 interface=ether4
add bridge=bridgevlan1030 interface=ether3
/interface bridge vlan
add bridge=bridgevlan1030 tagged=ether3,ether4 vlan-
ids=10,30
{R3}
/system identity set name=R3
/interface bridge
add fast-forward=no name=bridgevlan10
add fast-forward=no name=bridgevlan30
/interface vlan
add interface=ether4 name=vlan10 vlan-id=10
add interface=ether4 name=vlan30 vlan-id=30
/interface bridge port
add bridge=bridgevlan10 interface=vlan10
add bridge=bridgevlan30 interface=vlan30
add bridge=bridgevlan10 interface=ether1
add bridge=bridgevlan30 interface=ether3
Laboratorio
VLAN - laboratorio
lab-vlan2
L'infrastruttura di rete da configurare è quella di figura lab-
vlan2 . Sul router R1, nelle schede di rete ether1, ether2 ed
ether3 sono attivi tre dhcp server che rilasciano gli indirizzi
IP relativi ad ognuna delle tre VLAN. Il router R2 si
comporta come uno switch con VLAN.
1. Prima di tutto si creano delle nuove interfacce
indicando il VLAN ID. Ogni interfaccia VLAN fa
riferimento ad una interfaccia fisica che determina il
trunk.
Mikrotik RouterOS
HP
vlan 10
name "vlan10"
untagged 1
tagged 3
exit
vlan 20
name "vlan20"
untagged 2
tagged 3
exit
Cisco IOS
vlan database
vlan 10
vlan 20
exit
configure terminal
interface FastEthernet1/2
switchport mode access
switchport access vlan 10
!
interface FastEthernet1/3
switchport mode access
switchport access vlan 20
!
interface FastEthernet1/1
switchport mode trunk
switchport trunk allowed vlan all
!
Mikrotik RouterOS
HP
vlan 10
name "vlan10"
untagged 1
tagged 3-4
exit
vlan 20
name "vlan20"
untagged 2
tagged 3
exit
vlan 30
name "vlan30"
tagged 3-4
exit
Cisco IOS
vlan database
vlan 10
vlan 20
vlan 30
exit
configure terminal
interface FastEthernet1/1
switchport mode access
switchport access vlan 10
!
interface FastEthernet1/2
switchport mode access
switchport access vlan 20
!
interface FastEthernet1/3
switchport mode trunk
switchport trunk allowed vlan all
!
interface FastEthernet1/4
switchport mode trunk
switchport trunk allowed vlan all
!
Unnumbered IP
unnumbered
Nell'infrastruttura di figura unnumbered sono presenti due
router R1 e R2, ciascuno dei quali è parte delle reti
10.22.0.0/24 e 10.23.0.0/24 rispettivamente. Per connettere
questi router usando le VLAN come carrier sono utilizzate
la seguenti configurazioni che fanno uso di IP unnumbered:
{R1}
/system identity set name=R1
/ip address add address=10.22.0.1/24 interface=ether1
/interface vlan add interface=ether2 vlan-id=10
name=vlan10
/ip address add address=10.22.0.1/32 interface=vlan10
network=10.23.0.1
/ip route add gateway=10.23.0.1 dst-
address=10.23.0.0/24
{R2}
/system identity set name=R2
/ip address add address=10.23.0.1/24 interface=ether1
/ interface vlan add interface=ether2 vlan-id=10
name=vlan10
/ip address add address=10.23.0.1/32 interface=vlan10
network=10.22.0.1
/ip route add gateway=10.22.0.1 dst-
address=10.22.0.0/24
Domande di riepilogo
domande-4
1. E' possibile creare una configurazione dove VLAN e
interfacce PPTP convivono in un bridge?
1. Sì
2. No
2. E' possibile creare una rete punto-punto wireless dove
la connessione tra le due antenne si comporti come un
trunk VAN?
1. Sì
2. No
Soluzioni
Tunnel
{«Vieni a fare un giro giù con me, ragazza \\ nel tunnel
dell'amore»} Dire Straits
Tunnel
Il termine tunneling si riferisce a un insieme di tecniche per
cui un protocollo viene incapsulato in un protocollo dello
stesso livello o di livello superiore per realizzare
configurazioni particolari. La sicurezza della comunicazione
è ottenuta attraverso la cifratura dei dati che sono inseriti
all'interno del tunnel e l'autenticazione degli end-point. I
pacchetti dei dati sono modificati all'invio mediante
l'aggiunta di un'intestazione che permetterà di attraversare
il tunnel; successivamente, quando saranno arrivati alla
destinazione, alla fine del tunnel, l'intestazione verrà
rimossa restituendo il pacchetto originario. Spesso i termini
"tunnel" e "VPN" vengono usati come sinonimi, ma non è
un approccio corretto. Protocolli che definiscono tunnel:
IPIP – IP Tunnel
EoIP – Ethernet Over IP
VLAN – Virtual Lan
MPLS – Multi Protocol Label Switching
Gre Tunnel
Protocolli che definiscono VPN:
PPPoE – PointToPointProtocol Over Ethernet
PPTP – PointToPoint Tunnel Protocol
L2TP – Layer 2 Tunnel Protocol
OpenVPN – Open Virtual Private Network
IPSec – IP Security
SFTP – Secure Socket Tunnel Protocol
In questo testo affronteremo:
IPIP – IP Tunnel - pagina ipip
EoIP – Ethernet Over IP - pagina eoip
VLAN – Virtual Lan - pagina vlan
MPLS – Multi Protocol Label Switching - pagina mpls
IPSec – IP Security - pagina ipsec
RouterOS mette a disposizione diversi tipi di tunnel e VPN:
PPTP, L2TP, PPPoE, EoIP, SSTP, OpenVPN, ecc. Le
tipologie che si possono utilizzare sono visibili nella lista
delle interfacce virtuali (vedi figura vpn-list ).
IP-in-IP
ipip L'implementazione del tunneling IP-in-IP, anche detto
brevemente IPIP, su MikroTik RouterOS è conforme a RFC
2003; molti router, tra cui Cisco e Linux, supportano questo
protocollo. Il tunnel IPIP è un protocollo semplice che
incapsula i pacchetti IP in un tunnel tra due router.
L'interfaccia del tunnel IPIP appare come un'interfaccia
sotto l'elenco delle interfacce ma non è possibile inserire
l'interfaccia IPIP come porta in un bridge. Il protocollo
aggiunge le seguenti possibilità ad una infrastruttura di rete:
può essere usato per trasportare le reti intranet
attraverso internet;
può essere usato al posto del source routing .
Incapsulamento IP-in-IP.
IP_in_IP_Encapsulation
Per incapsulare un pacchetto IP in un altro pacchetto IP
(vedi figura IP_in_IP_Encapsulation ), una intestazione
esterna viene aggiunta con il SourceIP, il punto di ingresso
del tunnel e della destinazione, il punto di uscita del tunnel.
Mentre fa questo, il pacchetto interno non è modificato
(eccetto il campo TTL, che è decrementato). I campi Do not
Fragment e Type Of Service sono copiati nel pacchetto
esterno. Se la dimensione del pacchetto è maggiore della
MTU del percorso allora il pacchetto viene frammentato
durante l'incapsulamento in quanto l'intestazione esterna
deve essere inclusa. All'arrivo a destinazione il pacchetto
verrà riassemblato.
GRE vs IPIP
Incapsulamento IPIP.
ipip_encapsulation
Il GRE (definito in RFC 2784 e aggiornato da RFC 2890) fa
un passo in più rispetto a IP-in-IP, aggiungendo
un'intestazione aggiuntiva all'interno e all'esterno delle
intestazioni IP (vedi figura gre_encapsulation ).
Incapsulamento GRE.
gre_encapsulation
Questa aggiunta permette al protocollo GRE di:
incapsulare qualsiasi protocollo di livello tre (rispetto a
solo IP);
aggiunge un checksum aggiuntivo (che non è utile per
TCP/IPv4);
specificare una chiave per il tunnel;
applicare il sequenziamento dei pacchetti.
Di contro queste funzionalità hanno un costo aggiuntivo di
overhead; nei casi in cui le funzionalità GRE non siano
necessarie, IPIP è una ottima scelta.
Laboratorio
Tunnel IPIP.
ipip
1. Colleghiamo i router come in figura ipip .
2. Configuriamo i router R1, R2 e R3 per la connettività di
base:
{R1}
/system identity set name=R1
/ip address
add address=10.10.10.30/24 interface=ether1
{R2}
/system identity set name=R2
/interface bridge add name=bridge1
/interface bridge port add interface=ether1
bridge=bridge1
/interface bridge port add interface=ether2
bridge=bridge1
/ip address
add address=10.10.10.30/24 interface=bridge1
{R3}
/system identity set name=R3
/ip address
add address=10.10.10.31/24 interface=ether1
{R3}
/interface ipip add name=ipip local-
address=10.10.10.31 \
remote-address=10.10.10.30
/ip address add address=192.168.200.2/30
interface=ipip
{R3}
/ip address
add address=192.168.2.1/24 interface=ether2
/ip pool
add name=dhcp_pool0 ranges=192.168.2.2-
192.168.2.254
/ip dhcp-server
add address-pool=dhcp_pool0 disabled=no
interface=ether2 name=dhcp1
/ip dhcp-server network
add address=192.168.2.0/24 gateway=192.168.2.1
{R3}
/ip route add dst-address=192.168.1.0/24
gateway=192.168.200.1
EoIP
eoip
Laboratorio
{R2}
/system identity set name=R2
/interface bridge add name=bridge1
/interface bridge port add interface=ether1
bridge=bridge1
/interface bridge port add interface=ether2
bridge=bridge1
/ip address
add address=10.10.10.30/24 interface=bridge1
{R3}
/system identity set name=R3
/ip address
add address=10.10.10.31/24 interface=ether1
{R3}
{R3}
/interface bridge add name=bridge1
/interface bridge port add interface=ether2
bridge=bridge1
/interface bridge port add interface=eoip
bridge=bridge1
/ip address
add address=192.168.200.2/24 interface=bridge1
PC-1> show ip
NAME : PC-1
IP/MASK : 192.168.200.198/24
PC-2> show ip
NAME : PC-2
IP/MASK : 192.168.200.197/24
PC-1> ping 192.168.200.197
84 bytes from 192.168.200.197 icmp_seq=1 ttl=64
time=2.266 ms
84 bytes from 192.168.200.197 icmp_seq=2 ttl=64
time=4.836 ms
84 bytes from 192.168.200.197 icmp_seq=3 ttl=64
time=1.444 ms
84 bytes from 192.168.200.197 icmp_seq=4 ttl=64
time=1.636 ms
84 bytes from 192.168.200.197 icmp_seq=5 ttl=64
time=1.546 ms
IPsec
ipsec
In tunnel mode
In transport mode
IPsec/XAuth
Al MUM 2018 di Berlino, Tomas Kirnak ha tenuto un
interessante talk sul protocollo IPsec/XAuth spesso
chiamato "Cisco IPsec". Le slide del talk sono disponibili al
link http://bit.ly/2RlSeEg mentre una descrizione dettagliata
del protocollo è disponibile al link http://bit.ly/2RmuWOD .
Spesso le VPN vengono utilizzate da parte degli
amministratori di rete per gestire da remoto le reti dei
clienti, altre volte ci sono richieste da qualche utente che
deve lavorare da postazioni remote oppure da aziende che
devono accedere per gestire qualche apparato. In sintesi
possiamo dire che spesso la configurazione richiesta è
client-to-site con il client che si trova dietro una rete NAT. Ci
sono molte opzioni utilizzabili per offrire al cliente queste
opportunità:
PPTP (molto insicura )
SSTP
OpenVPN
L2TP / IPSec
IPSec Xauth mode-config
IKEv2
La scelta di IPsec/Xauth mode-config è molto interessante
in quanto:
è supportata da quasi tutti i sistemi operativi anche
mobile,
non è TCP-based,
supporta chiavi, certificati e password condivisa,
il router invia in automatico al client la configurazione
delle rotte (in questo modo si può limitare cosa il client
vede della rete di destinazione), dei dns (così il client
può risolvere nomi locali),...
ci sono software free per semplificare ulteriormente la
configurazione dei client.
Come primo passo è necessario preparare la
configurazione che successivamente sarà inviata ai client.
Gran parte della configurazione viene dedotta
automaticamente da quanto impostato nel peer e nel suo
profilo. Impostando nella configurazione del peer generate-
policy=port-strict le policy IPsec vengono generate
automaticamente.
IPsec/XAuth - configurazione da inviare ai client
Pacchetto MPLS.
mpls-label
Ora un po' di teoria del routing: in una rete senza
connessione, come la rete IP, il cammino seguito da un
pacchetto tra la sorgente e la destinazione viene
determinato mediante la composizione di operazioni di
instradamento elementari ed indipendenti eseguite dai
router che sono attraversati dal pacchetto. Ogni router
sceglie il router successivo verso cui rilanciare il pacchetto.
Tale scelta è eseguita esaminando l’header del pacchetto e
accedendo ad una tabella di instradamento che è
aggiornata mediante l’utilizzazione di un protocollo di
instradamento. Si tratta della tabella Router Information
Base (RIB) introdotta a pagina rib . La scelta del next-hop
operata da un router può essere modellata come la
concatenazione di due funzioni distinte:
1. la suddivisione dell’insieme dei
pacchetti da rilanciare in una serie di sottoinsiemi
distinti, denominati FEC (Forwarding Equivalent Class
);
2. l’associazione di una FEC ad uno
specifico next-hop.
Secondo questo modello, i pacchetti appartenenti ad una
stessa FEC saranno rilanciati da un router verso lo stesso
nexthop. In particolare, in una rete IP, un router
classificherà due pacchetti, che recano due indirizzi di
destinazione diversi A e B, come appartenenti alla stessa
FEC se nella tabella di instradamento del router esiste un
prefisso X per cui tale prefisso rappresenta la
corrispondenza di lunghezza maggiore (longest match ) per
entrambi gli indirizzi A e B. In questa visione, ogni router
esegue, indipendentemente dagli altri, la propria
classificazione dei pacchetti in FEC e quindi due pacchetti
che sono classificati come appartenenti alla stessa FEC in
un router possono appartenere a FEC diverse in un altro
router. Il protocollo MPLS agisce in modo diverso: così
come definito nel RFC 3031 il protocollo MPLS assegna
una FEC ad un pacchetto una volta per tutte, al momento in
cui il pacchetto entra in una rete MPLS. La FEC assegnata
al pacchetto è codificata in un’etichetta (label ), di
lunghezza breve e fissa, trasportata nell’header del 6
pacchetto stesso. Quando il router attraverso cui il
pacchetto è entrato in una rete MPLS rilancia il pacchetto,
questi assegna al pacchetto il valore della label che sarà
utilizzata dal router successivo per effettuare la
commutazione. Quando un pacchetto entra in un router, la
label è utilizzata infatti come indice per l’accesso diretto ad
una tabella che conterrà il valore del next-hop e il valore
della nuova etichetta. La vecchia etichetta è sostituita con
la nuova e il pacchetto è rilanciato verso il router
successivo. E’ il caso di sottolineare che una volta che ad
un pacchetto sia stata assegnata una label, la
commutazione del pacchetto stesso è effettuata
esaminando esclusivamente la label senza tenere conto del
valore degli altri campi dell’header IP.
LSP tunnel
Laboratorio
{station}
/system identity set name=station
# Configurazione dell'access point wireless
(station)
/interface wireless
set wlan1 disabled=no ssid=MPLS band=5ghz
mode=station
# Configurazione dell'indirizzo IP
/ip address
add address=172.16.0.2/30 interface=wlan1
# Abilitazione LDP
/mpls ldp
set enabled=yes lsr-id=172.16.0.2 transport-
address=172.16.0.2
/mpls ldp interface
add interface=wlan1
# Configurazione del tunnel VPLS
/interface vpls
add name=vpls1 remote-peer=172.16.0.1 vpls-id=1:1
disabled=no
# Aggiunta del bridge e delle porte
/interface bridge add name=bridge1
/interface bridge port
add bridge=bridge1 interface=ether1
add bridge=bridge1 interface=vpls1
OSPF
cisco-routeros-ospf
Cisco IOS Mikrotik RouterOS
L'indirizzo IP più alto
dell'interfaccia di L'IP più basso di
Router ID loopback attiva, in qualsiasi interfaccia
alternativa l'IP più alto attiva.
dell'interfaccia attiva.
Costo fisso pari a 10
Costo di
per ogni link ma
default Dipendono dal tipo di
modificabile nella
per link.
configurazione di
interfaccia
OSPF.
Hello ad intervalli fissi di
10 secondi, Dead ad
Tempi di Dipendono dal tipo di
intervalli fissi di 40,
OSPF rete.
modificabili nella
configurazione di OSP.
Stub Area Type 3 LSA per default Per le Totally Stubby
sono annunciate nelle Area stesso
Stub Area by default, se comportamento di IOS.
non configurate come Se si abilita l'opzione
Totally Stubby Area LSA “Inject Summary
LSAs” allora vengono
annunciati le LSA Type
3 nelle Stub Area
Si usa “Routing Filters”
Si usa il comando
per permettere/negare
"distribute-list" per
Filtraggio che delle rotte siano
permettere/negare
delle rotte installate nella RIB, ma
l'installazione di rotte
possono essere filtrate
dentro la RIB
solo LSA di Tipo 5.
Per default la subnet
mask dell'interfaccia di
rounting è forza ad Senza fare nulla è
Interfacci
essere /32; se si vuole annunciata qualsiasi
a di
una diversa subnet sottorete si indichi per
loopback
mask bisogna l'interfaccia di loopback.
impostare l'interfaccia
come "point-to-point"
Commando Cisco IOS Commando Mikrotik RouterOS
show ip ospf neighbor routing ospf neighbor print
show ip ospf interface routing ospf interface print
show ip ospf1 routing ospf instance print detail
show ip ospf database routing ospf lsa print
show ip route ospf ip route print where ospf=yes
show ip ospf rib routing ospf route print
show ip ospf border- routing ospf area-border-router
routers print
show ip ospf border- routing ospf as-border-router
routers print
Cisco(config)#router ospf1 routing ospf instance
Cisco(config-
/routing ospf instance set 0
router)#router-id
router-id=203.0.113.2
203.0.113.1
Cisco(config- /routing ospf network add
router)#network area=backbone
203.0.113.1 0.0.0.0 area 0 network=203.0.113.2/32
Cisco(config-
/routing ospf network add
router)#network
area=backbone
203.0.113.128 0.0.0.7
network=203.0.113.128/29
area 0
Cisco(config-
/routing ospf interface add
router)#interface
dead-interval=4s
GigabitEthernet0/0
Cisco(config-if)# ip ospf hello-interval=1s
network point-to-point interface=ether1
Cisco(config-if)# ip ospf
network-type=point-to-point
dead-interval 4
Cisco(config-if)# ip ospf
hello-interval 1
MPLS