Jncis SP
Jncis SP
Rotte Statiche
Un rotta statica è valida finchè non la rimuovi o finchè ha un next-hop valido. Il next-hop
può essere:
IP direttamente connesso.
Interfaccia
Qualified next hop permette di inserire un secondo IP specificando la route preference (Se
minore di 5 viene scelto come rotta principale)
Label switch path (LSP) in una rete dove è configurato MPLS possiamo assegnare un LSP
come next-hop
community
metric cambia la metrica alla rotta (attenzione non cambia il route preference)
no-retain (default) con questa opzione la rotta viene tolta dalla tabella di forwarding se il
processo di routing è shutdown
next-table supponiamo di avere delle routing instance possiamo definire su quale tabella di
routing cercare la rotta
receive questo comando può essere utilizzato quando importiamo route da una vrf o su una
vrf e quindi vogliamo provare a pingare indirizzi che si raggiungono attraverso interfacce
che non fanno parte della VRF, in questo caso si definisce una statica verso l’ip di
destinazione della ptp con il campo receive.
routing-option static
delle opzioni valide per tutte (a meno di override delle singole route) questo inserendo
tutte le opzioni sotto il campo default
Esempio
root@MX204-Test# show
route [Link]/24 {
next-hop [Link];
preference 4;
defaults {
no-readvertise;
preference 8;
In questo esempio abbiamo indicato come route preference 8 per tutte tranne per la
[Link]/24 che avrà una preference di 4
Rotte Aggregate
Le route aggregate servono per sommarizzare delle route, per essere attiva una rotta
aggregata bisogna che nel route ci sia una contribute route cioè una rotta più specifica
rispetto l’aggregata.
Con il comando show route protocol aggregate detail riusciamo a vedere anche le
contribute route che fanno parte dell’aggregata
Esempio
user@Chardonnay>
Age: 23
Task: Aggregate
AS path: I (LocalAgg)
AS path list:
AS path: I Refcount: 3
Reject
discard
Le opzioni disponibili sono:
brief con questa opzione viene assegnato all’aggregata il più lungo as-path fra gli as-path
delle contribute route
community
full con questa opzione tutti gli as-path delle contribute route vengono inclusi nell’aggregata
metric cambia la metrica alla rotta (attenzione non cambia il route preference)
Anche in questo caso è possibile definire delle opzioni di default inserendole nel menù
routing-option aggregate default
Come si vede nell’esempio il pacchetto A che è destinato ad una contribute route viene
inoltrato correttamente, mentre il pacchetto B viene scartato perchè non c’è nessuna
contribute e matcha solo con l’aggregata
Generated Route
Una generated route è simile l’aggregata e serve a generare delle route sommarizzate. A
differenza delle aggregate (che hanno come next-hop reject o discard) le generate route
hanno un ip come next-hop.
Anche le generate route devono avere almeno una rotta valida per essere attiva, ma a
differenza delle aggregate il contribute route deve avere come next-hop un ip o deve essere
direttamente connesso, se hanno come next-hop reject o discard non vengono scelte come
contribute route.
Ogni generated route selezione fra le contribute route la principale che è di solito quella che
il prefisso più basso come valore numerico.
Es.
Martian Route
routing-options {
martians {
exact
longer
orlonger
prefix-lenght-range
through
upto
instance-import
instance-export
auto-export
Possono essere di tipo Ethernet, ccc, vpls, vlan-ccc, vlan, vlan-vpls. E si ci può configurare
IPv4, IPv6, isis mpls.
inet.3 contiene gli ip di uscita dei MPLS label switch path (LSP)
mpls.0 non è una routing table, ma una switching table. Questa tabella contiene gli MPLS
label
Certe volte può servire copiare delle route che appartengono ad una RIB (Routing
Information Base, o semplicemente tabelle di routing) su altre RIB (anche crearne nuove).
In questo caso utilizziamo le RIB Groups
routing-option {
rib-groups {
<rib-group name> {
import-policy policy-name;(opzionale)
Con questo comando scegliamo solo cosa copiare e dove copiare, ma non viene copiata
nessuna informazione. Per copiare le informazioni dobbiamo configurare i vari protocolli di
routing (in base a quale route dobbiamo copiare):
routing-option {
interface-routes {
rib-group nome-rib-group
Per OSPF
protocols {
ospf {
rib-group nome-rib-group
BGP
protocols {
bgp {
family inet {
unicast {
rib-group bgp-rg;
quello sopra è un esempio si può configurare anche su family inet multicast, family INET6
ecc.
Solo per il traffico IPv4 ed IPv6 puoi utilizzare dei firewall filter utilizzando forwarding class
e routing instance. Questo si chiama Filter Based Forwarding (FBF).
Puoi definire un filtro partendo dal source (ad esempio se due clienti condividono lo stesso
L2, ma devono uscire da fornitori diversi), quindi applichi un filtro nell’interfaccia di
ingresso. Oppure se vuoi duplicare il traffico di un interfaccia d’uscita (port mirroring).
Tu puoi creare un regola di firewall classificando il pacchetto con il non-terminating action
forwarding-class class-name
NB: per inserire nella routing-instance master si deve utilizzare il comando routing-instance
default (master non è un comando valido)
Vediamo la configurazione di P1
In pratica tutto il traffico con source [Link]/24 e [Link]/24 viene inserito nella routing-
instance sp1-route-table, quello con [Link]/24 e [Link]/24 nella sp2-route-table.
set firewall family inet filter filter1 term t1 from source-address [Link]/32
set firewall family inet filter filter1 term t1 then next-interface ge-2/1/1.0
set firewall family inet filter filter1 term t2 from source-address [Link]/32
set firewall family inet filter filter1 term t2 then next-interface ge-2/1/1.1
Nelle rounting-instance possiamo importare delle RIB utilizzando delle policy vedi esempio
Local
Route status (segnato rosso) che comprende active route (+), last active route (-), both
current and last active route (*) . Per le route non attive non viene utilizzata alcuna icona
Protocol name (azzurro) viene indicato il protocollo con cui viene appresa la rotta
Next-hop information una route può avere uno o più next-hop assegnati. In caso di next-hop
multipli allora si può applicare il load balancing
policy-options {
policy-statement please-load-balance-traffic {
then {
load-balance per-packet;
in questo modo creiamo la policy, resta che applicarla all’export della forwarding-table con
il comando
Con show route resolution unresolved vediamo le route hidden per non si riesce a risolvere
il next-hop
OSPF
Ogni router utilizza l’algoritmo di Dijkstra per calcolare ogni path. L’utilizzo dello stesso
link-state database e dello stesso algoritmo permetto una topologia loop-free.
Pacchetti OSPF
Ogni pacchetto OSPF condivide un header di 24 ottetti. Questo serve al router destinatario
di valutare se un pacchetto è valido o no.
1 Hello Packet
2 Database descriptor
Checksum (2 ottetti) contiene il checksum dell’intero pacchetto ad esclusione dei 64-bit del
campo authentication
0 Nessuna autenticazione
1 password
2 MD5
Hello packet
L’Hello packet viene utilizzato per stabilire e mantenere l’adiacenza, è inviato a tutti tramite
l’indirizzo mulicast [Link] sia per connessione broadcast che point-to-point.
Dopo aver scoperto i propri vicini, il router forma l’adiacenza, questa adiacenza richiede che
ogni router invia le informazioni del proprio local database. Per far ciò il router utilizza il
Database Description (DD). In questo pacchetto il router sommarizza il local database
inviando degli LSA (Link-State Advertisement) Header. Il router che riceve questo pacchetto
analizza questa header per capire se deve aggiornare il database
Durante il processo di sincronizzazione del database, il router potrebbe capire che il proprio
database non è aggiornato. Quindi utilizzato il pacchetto Link-State Request per richiedere
uno o più LSA (NB nello stesso pacchetto possono essere richiesti più LSA)
L’affidabilità del protocollo OSPF prevede che ad ogni Link-State Update packet si risponda
con un Link-State Acknowledgment packet
Adiacenza OSPF
DOWN Down è lo stato iniziale, può essere in questo stato quando si configura per la prima
volta OSPF e non ha ricevuto ancora nessun hello packet, oppure non ha ricevuto un hello
packet durante il dead interval e metto down l’adiacenza
Init Questo avviene quando un router riceve un hello packet, ma il proprio Router ID non è
contenuto nel pacchetto (guarda header Hello packet). Questo significa che non c’è ancora
comunicazione bidirezionale.
Attempt stato valido solo per il Non-Broadcast Multi-Access (NBMA) Network. Significa che
un hello packet non è stato ricevuto da un neighbor ed il local router invia un unicast hello
packet al neighbor entro l’hello interval.
2-way indica che il local local router riceve un hello packet con all’interno il proprio router-
id. Significa che la comunicazione bidirezionale è attiva quindi i due router sono OSPF
neighbors
EXStart in questo stato si stabilisce chi sarà il router incaricato del processo di
sincronizzazione del database. Il router con il più alto router ID sarà il master
Loading Se un router ha bisogno di aggiornare la propria tabella allora passa allo stato di
loading ed invia un link-state request packet.
Full i due router hanno completato il processo di sincronizzazione del link-state database
Router LSA
Il primo passo per costruire un network OSPF è quello di annunciare i prefissi connessi.
Queste informazioni sono contenute nei router LSA (type code 1) che mostrano dati sul
local router. Questi includono anche tutti i link connessi al router, le metriche delle
interfacce e la capacità del router OSPF.
Queste LSA type 1 sono scambiati con tutti i router che fanno parte della stessa area, se un
router fa parte di aree diverse avrà un LSA type 1 per ogni area.
Quando colleghiamo due router ognuno di essi genera a LSA type 1 e l’aggiunge al proprio
database. Dopo che i due router diventano adiacenti allora floodano LSA a tutti i vicini.
Questi LSA descrivono tutte le network connesse incluse le interfacce di loopback.
Supponiamo invece che 5 router condividano lo stesso segmento network, ogni router del
segmento vede l’hello packet, perchè inviato all’indirizzo [Link] (ALLSFPRouter), quindi
all'interno del link si formeranno 10 adiacenze.
Questa configurazione però ha un duplice problema, primo ogni router del link invia le
stesse informazioni al resto della rete OSPF, secondo ogni router flooda LSA agli altri router
del link.
Per evitare questi problemi si utilizza il Designed Router (DR) , ogni segmento network
elegge un DR, ogni DR stabilisce l’adiacenza con il resto dei router, i router del segmento
invieranno le informazioni al DR utilizzando l’indirizzo [Link] (AllDRRouter). Il DR
floodare dei LSA TYPE 2 (Network LSA) al resto della rete. Oltre al DR viene eletto anche
Backup Designed Router (BDR). Il BDR resta in ascolto sulla [Link], forma adiacenze con
tutti i router del segmento network e monitora il DR.
L’elezione del DR avviene quando nessun DR è stato eletto, questo si capisce perchè
nell’hello packet non viene indicato nessun DR address. L’elezione del DR si basa su Router
Priority e Router ID. Inizialmente si sceglie il router con Priorità più alta, a parità di priorità
viene scelto quello con ID più alto. Di solito quando si forma un segmento network, ed
ancora non è stato eletto alcun DR, il tempo di attesa (detto WaitTimer) è settato allo stesso
tempo del dead interval per essere certi che tutti i router del segmento ricevano l’hello
packet.
NB: Una volta eletti DR e BDR non sono più cambiati a meno che uno dei due esca dalla rete.
Anche se un router con priorità più alta viene inserito nel segmento, non diventa DR finchè
non cadono DR e BDR, in pratica se cade il DR, il BDR diventa DR ed il nuovo router diventa
BDR per diventare DR deve attendere che il BDR cada.
Di default la priorità è 128. In un DRother le sessioni ospf sono full solo verso DR e BDR,
mentre tra i DRother restano in 2 way
Le aree OSPF sono state definite per limitare il flood LSA, ogni area ha un univoco ID di 32
bit rappressato in ottetti (esempio di area ID [Link]), molti preferiscono utilizzare un
numero intero (es. area 0).
L’area 0 detta anche area backbone è l’area che forma il core del network, collega a tutte le
aree non backbone e redistribuisce le informazioni di router tra queste.
Internal sono router che hanno tutte le interfacce all’interno di una sola area
Area Border Router (ABR) sono router connessi a più area con almeno un’interfaccia
nell’area 0.
Autonomous System Boundary Router (ASBR) inietta route apprese da protocolli esterni
all’interno dell’OSPF
Per trasportare route non ospf (esempio delle statiche) si utilizzano gli AS External LSA
(type code 5) . Oltre alle route esterne deve essere anche conosciuto anche l’indirizzo
dell’ASBR.
Nell’esempio in figura Carbenet è L’ASBR è genera LSA type 5 per annunciare le net della
server farm. Ma L’area 10 e l’area 22 non conosco l’indirizzo di Carbenet, quindi Sangria e
Chardonnay utilizzano degli ASBR summary LSA (type 4), per comunicare le net ASBR nella
propria area.
Con le tecniche viste prima abbiamo ridotto il flood degli lsa, ma non ridotto la tabella di
routing dei vari router. Per far ciò possiamo introdurre delle
Stubby areas
Totally stubby ares
I router di una Stub area hanno un link-date database in quanto l’abr non invia gli lsa type 4
e type 5 (route esterne) per queste route viene creata la default
In una totally stubby area i router dell’area contengono solo le route della propria area ed
una default.
Un Not so Stubby area (NSSA) è un’area stubby che permette alcune solo alcune route
external. Per far ciò si utilizzano gli NSSA external LSA (Type 7) . Un esempio di stubby area
è quando dobbiamo collegare un nostro cliente che non utilizza OSPF e dobbiamo
comunque raggiungere le sue net fig 6.19 in questo caso il router Muscat (che ha funzione di
ASBR) crea degli LSA Type 7, che in pratica invia le route esterne a tutti i router all’interno
dell’area, poi Sangria (che ha funzione ABR) sostituite gli LSA Type 7 con degli LSA type 5 e
li invia alle altre aree
Per configurare OSPF in un router bisogna inserire l’interfaccia logica all’interno del menù
protocol ospf area (dove area può essere un numero decimale, che poi viene tradotto in 4
ottetti, o direttamente i 4 ottetti)
root@R2# show
area [Link] {
interface ge-0/0/0.0;
interface lo0.0 {
passive;
area [Link] {
interface ge-0/0/2.0 {
priority 20;
}
Opzionale di può configurare il numero di route da annunciare con il comando prefix-
export-limit (di default nessun limite), il graceful restart in modo che il local router avverte
il peer prima di riavviare la sessione ed il BFD.
ABR1
ABR2
Con questo comando indichiamo che l’area x è stub e che ai router viene annunciata la
default con metrica y
Il comando stub dice che nell’area non vengono annunciati LSA type 5
una stub area non può contenere un AS boundary router (router di collegamento tra as)
l’area backbone ([Link]) non può essere stub
Nell’esempio precedente l’area 9 deve essere configurata come Not So Stubby Area (NSSA)
in quanto abbiamo delle route esterne (Customer Network).
no-summaries che non fa annunciare dall’ABR gli LSA type 3 all’interno dell’area NSSA. Se
combinato con l’opzione default-metric solo le route interne e la default vengono
annunciate nell’area. Solo l’abr ha necessità di questa opzione perchè è l’unico a creare lsa
type 3
default-lsa Serve a configurare L’ABR per generare la default dentro la NSSA, puoi
configurarlo con le opzioni
metric-type (opzionale) Specifica il tipo di metrica utilizzata per le route esterne. Se Type 1
il costo equivale al costo interno + il costo esterno. Se type 2 il costo assegnato alla rotta
equivale al costo esterno. Di default junos utilizza type 2 e questo costo viene assegnato
all’AS boundary router (router di collegamento tra AS.
Come scritto in precedenza l’area backbone deve essere collegata a tutte le altre aree, se
questo non è possibile si utilizza il virtual link
in questo esempio area 0 ed area 3 non sono collegati ma utilizzando il virtual link si
uniscono
set protocols ospf area [Link] virtual-link neighbor-id [Link] transit-area [Link]
in questo comando specifichiamo il neighbor-id (che è il router id), e l’area che si collega
attraverso il link.
set protocols ospf area [Link] interface interfaccia authentication md5 key-id (key-id è
opzionale) key password
cost = ref-bandwidth/bandwidth
Di default la Lo0 ha metrica zero non viene associata nessuna banda, mentre un’interfaccia
qualsiasi può avere metrica che va da 1 a 65535
Per sommarizzare l’annuncio di alcune route di un’area non backbone si utilizza il comando
Per importare o esportare route non OSPF (esempio le statiche) in OSPF possiamo utilizzare
il comando
policy-statement exportstatic1 {
term exportstatic1 {
then accept;
export exportstatic1;
Dove
DR ID Indica il router ID del DR. Nel caso di PtP c’è scritto [Link]
BDR ID Indica il router ID del BDR. Nel caso di PtP c’è scritto [Link]
Dove
Dead il tempo che rimane prima che il neighbor venga dichiarato non raggiungibile. Ogni
volta che si riceve un hello packet allora il tempo viene settato al valore di dead interval
Con il comando clear ospf neighbor [neighboor-address] si cancellano le adiacenze nel caso
in cui specifichiamo il neighboor cancelliamo solo l’adiacenza con il vicino se non
specifichiamo l’indirizzo cancelliamo tutte le adiacenze.
Con il comando show ospf database visualizziamo la link-state dabase, cioè vediamo tutti gli
LSA suddivisi per area.
I campi sono:
ID Indica L’ID dell’LSA è univoco e definisce LSA. Se c’è un * significa che è ganerato dal
router
AGE indica l’età dell’LSA, comincia da zero e cresce fino a 3600. Quando arriva a 3600 deve
essere aggiornato
OPT viene indicato il valore del campo option field del pacchetto Hello
con il comando clear ospf database purge poniamo tutti gli age degli LSA a 3600 quindi
devono essere tutti aggiornati.
show ospf log mostra i log dei calcoli SPF (Shortest-path-first), questo comando viene
utilizzato per vedere se la rete è stabile infatti quando vengono effettuati diversi calcoli in
poco tempo significa che c’è qualche link che flappa
Creare il file ed indicare il numero di file che verranno creati a rotazione e la dimensione
graceful-restart—Graceful-restart events
hello—Hello packets, which are used to establish neighbor adjacencies and to determine
whether neighbors are reachable
IS-IS
Come OSPF IS-IS è un protocollo Link-state, in IS-IS si utilizzano due livelli, tutti i link-state
database contenuti nel livello sono identici.
Level 2 i router formano un’adiacenza di livello 2 quando entrambi fanno parte di due aree
differenti
Level 1 due router formano un adiacenza di livello 1 quando fanno parte della stessa area.
Per un piccolo numero di router (meno di 200) puoi utilizzare un unico livello, mentre per
numeri grandi puoi configurare il backbone come Livello 2 e gli altri router in altre aree di
livello 1.
Un router di livello 1 contiene tutte le route della propria area, mentre una default per tutte
le altre, un router di livello 2 invece contiene tutte le route.
Router L1
Router L2
La prima parte indica l’area, questo campo comincia con Authority and Format Indicator
(AFI), seguito da Initial Domain Identifier, e finisce con il Domain Specific Part (DSP). Spesso
gli indirizzi cominciano con 0x49 (49 in esadecimale) che rappresenta un NSAP privato.
Il campo system ID deve essere unico nella rete, si può utilizzare il MAC-ADDRESS (ma
questo rende l’indirizzo poco leggibile) o si utilizza l’indirizzo di Loopback compresi gli zeri
nascosti es
Alla fine abbiamo il campo N-Select (SEL) di solito il valore è 0x00 (00 in esadecimale).
Adiacenze IS-IS
Come in OSPF due router per formare un’adiacenza IS-IS utilizzano gli hello-packet, gli stati
sono:
NEW Questo è lo stato quando il proce sta cominciando (riavvio router o nuova
configurazione)
One-Way Un router si trova in questo stato quando ha inviato un hello packet (senza ancora
averne ricevuto uno)
Initializing quando un router riceve un hello packet, Questo stato indica che è la
comunicazione bidirezionale è stabilita
UP Indica che è stata stabilita la piena funzionelità IS-IS
Down indica che non c’è adiacenza. Le cause possono essere area mismatches, expiration
holdtime, authentication failures.
Reject Quando c’è un errore di autenticazione, lo stato passa da questo stato a DOWN
Dopo che due router possono scambiarsi informazioni, ogni router invia la Complete
Sequence Number (CNSP) che è simile all’indice di un libro solo che contiene tutte le
informazioni del link-state database, se ad un router manca qualche route allora invia
Partial Sequence Number PDU (PSNP) che è una richiesta delle route mancanti, l’altro
router risponde con una con un Link-State PDU (LSP) contenete le informazioni richieste,
dopo aver ricevuto le informazioni il router risponde con un PSNP (su point-to-point) o con
un CSNP (su un broadcast link).
IS-IS LAN Hello PDU, esistono 3 tipi di Hello PDU, uno per i link point-to-point e due per i
link broadcast (uno per il Level1 ed uno per il Level2), questo perchè in L1 deve limitarsi
nella propria area, L2 non ha limitazioni.
The Complete Sequence Number PDU (CSNP) contiene la lista completa delle route
contenute nel link-state database (contiene solo la lista non le informazioni come ad
esempio l’indice di un libro). Dai CSNP possiamo identificare lifetime, sequence number e
checksum di tutte le informazione del link-state database del router.
Un router IS-IS utilizza Partial Sequence Number PDU (PSNP) per richiedere informazioni
LSP al vicino. Nei Linl p2p un PSNP è utilizzato per richiedere informazioni e come ack, nei
link broadcast viene utilizzato come ack
Ad un PSNP il router risponde con un Link-state PDU (LSP) che contiene informazioni sui
router della rete, le loro interfacce. Contiene anche la metrica ed informazioni sui vicini.
Ogni PDU contiene dei TLV, esistono diversi TLV ma per l’esame bisogna ricordare solo
TLV 1—Area Addresses
TLV 8—Padding
TLV 10—Authentication
In un link broadcast il Designated Intermediate System aiuta a ridurre i dati nel link-state
database. In pratica il DIS rappresenta il nodo broadcast alla rete, e tutti i router del nodo
hanno adiacenza con lui. Per eleggere un DIS per prima cosa si guarda la priorità (da 0 a
127) viene eletto come DIS il router con priorità più alta. A parità di priorità viene visto il
mac-address, e viene eletto il router con mac più alto. Dopo aver eletto il DIS viene ridotto
l’hello timer, da 27 passa a 9 sec, con un hold-time a 3. Questo significa che vengono inviati
pdu ogni 3 secondi, questo per permettere ad un non DIS router di annunciare la perdita di
connessione con il DIS e riavviare la procedura di elezione del DIS.
A differenza dell’OSPF nel caso in cui venga aggiunto un router con priorità più alta o a
parità di priorità ma con un mac più alto allora quest’ultimo viene eletto DIS.
Di default utilizza la wide-metric che di default è limitata a 63 a meno che non si utilizzi il
comando wide-metric-only in questo caso puoi settare la metrica fino a 2^24 (circa 16
milioni).
Configuration Command
Best practice vuole che l’indirizzo ISO viene assegnato alla loopback con il comando
root@R1# show
unit 0 {
family inet {
address [Link]/32;
family iso {
address 49.0001.0100.0000.0001.00;
Sulle altre interfacce che fanno parte dell’isis bisogna configurare il family ISO
[edit]
mtu 9192;
unit 0 {
family inet {
address [Link]/31;
family iso;
}
[Link]@MX204-MIX> show interfaces terse
iso
inet6 [Link]/64
fe80::a05:e203:84fd:603f/64
mpls
multiservice
[edit protocols]
user@Riesling#
show
isis {
level 1 disable;
interface e3-0/2/0.101;
interface e3-0/2/3.100;
interface lo0.0;
[edit protocols]
user@Cabernet#
show
isis {
interface fe-0/1/0.0 {
level 2 disable;
}
interface e3-0/2/0.101;
interface lo0.0;
L’interfaccia di lo0.0 deve essere sempre inserita perchè annuncia il NET ID, l’interfaccia di
loopback anche se non specificato è sempre passiva.
user@Cabernet>
e3-0/2/0.101 Riesling 2 Up 23
Interfaccia identifica l’interfaccia logica dove IS-IS ha formato l’adiacenza. Se manca bisogna
verificare se non è stata configurata sul protocollo IS-IS o non è stata inserita la family iso
sull’interfaccia
System indica il nome del router con cui è stata instaurata l’adiacenza. Se non viene risolto il
nome c’è il system ID.
UP
DOWN
NEW
One-Way
Initializing
Rejected
Hold indica il tempo prima che la sessione venga cancellata (si rinnova ogni volta riceve
hello packet)
SNPA Il sub-netowrk Point of Attachment, è l’indirizzo data-link utilizzato per raggiungere il
vicino o il broadcast. Di solito il MAC del vicino è utilizzato come SNPA.
user@Cabernet>
Riesling
Restart capable: No
IP addresses: [Link]
Tra le informazioni vediamo la priorità per l’elezione del DIS (in questo caso 0 che indica
che non verrà mai utilizzato per l’elezione del DIS)
user@Cabernet>
Interfaccia identifica l’interfaccia logica dove IS-IS ha formato l’adiacenza. Se manca bisogna
verificare se non è stata configurata sul protocollo IS-IS o non è stata inserita la family iso
sull’interfaccia
Lever 1 DR /Level 2 DR Nella loopback viene indicato passive, nelle p2p viene indicato Point
to point, mentre nelle broadcast viene indicato il nome del router che è stato eletto come
DIS
L1/L2 Metric viene indicata la metrica. Il massimo valore è 63. Ogni Router IS-IS può
calcolare un path cost di 1023
Con il comando show isis host name viene mostrata la risoluzione del system ID. Questo
comando è utile quando si pensa che 2 router hanno lo stesso router ID.
user@Cabernet>
Con il comando show isis spf log mostra la storia dei calcoli SPF (algoritmo di Dijkstra).
Costanti calcoli SPF potrebbero indicare un flap nella rete
user@Cabernet>
Il comando show isis statics è utile per vedere quanti pacchetti sono stati trasmessi, ricevuti
ed elaborati dal router
user@Cabernet>
PSNP 57 57 0 94 0
Unknown 0 0 0 0 0
LSP regenerations: 75
Purges initiated: 5
Il comando show isis route mostra il risultato del calcolo SPF prima che le route vengono
messe nella routing table. Le stesse informazioni si possono vedere con il comando show
route protocol isis, ma questo comando è più comodo per il troubleshooting perchè mostra
ad esempio l’host name e non il next-hop
il comando show isis database con la possibilità di aggiungere detail e extensive mostra il
link-state database
A differenza dell’ospf due router potrebbero avere adiacenza IS-IS anche se non c’è una net,
in quanto IS-IS trasporta le informazioni attraverso le TLV e non attraverso IP come OSPF.
BGP
Per garantire un trasporto affidabile (non del traffico dati, ma del protocollo stesso) bgp
utilizza il TCP su porta 179.
Quando due peers stabiliscono una sessione TCP, i peers possono far affidamento al TCP per
i seguenti servizi:
CHECKSUMS Il checksum è mantenuto sia sul TCP header che sul BGP data
DATA SEQUENCING Ad ogni segmento TCP viene assegnato un numero in modo che il
destinatario possa ordinare i segmenti anche se non li riceve in modo ordinato
FLOW CONTROL ogni peer BGP avvisa l’altro indicando il proprio buffer.
Quando due peers instaurano la sessione bgp, scambiano tutte le route (in base alle policy di
export applicate), dopo questa fase lo scambio di informazioni avviene solo se nuove route
devono essere inviate o alcune non sono più valide.
Se la sessione bgp viene stabilita da due peers (o neighbor) di AS differenti viene detta
external BGP (EBGP) di solito viene instaurata su una ptp ed è buona norma settare il TTL
ad 1.
Se invece i due peers sono dello stesso AS viene detta internal BGP (IBGP) in questo caso il
TTL è settato a 64, ed è buona norma utilizzare come indirizzo le loopback. Per garantire la
raggiungibilità delle route una best practice è utilizzare sessioni full mesh (o i route
reflector).
IDLE è lo stato iniziale, in questo stato vengono rigettate tutte le richieste in ingresso. Dopo
che il processo BGP inizia, inizia una sessione BGP con il remote peer. Il router locale passa
allo stato Connect e resta in ascolto in attesa di una connection dal remote router.
CONNECT in questo stato, il local router è in attesa che venga completata la sessione TCP. Se
la connessione TCP va a buon fine invia un messaggio Open message al peer e passa allo
stato di OpenSent.
Se la sessione TCP fallisce, il local router resetta il timer connectRetry e passa allo stato
Connect. Se il timer connectretry raggiunge lo zero mentre il router è allo stato connect, il
timer viene resettato ed un nuovo tentativo di connessione viene effettuato. Il router resta
sullo stato connect.
ACTIVE in questo stato il router sta provando ad iniziare una connessione TCP con il peer.
Se viene stabilita allora invia un Open message e passo allo stato OpenSent.
Se la connessione fallisce, il local router inizia una nuova sessione, setta il timer
connectRetry a zero e passa allo stato Connect. Tentativi di connessione da parte di remote
peer inaspettati vengono rifiutati.
OPENSENT questo stato è raggiunto dopo che la sessione TCP è stabilita. Il router locale
invia un BGP open message ed aspetta quello del router remoto. Quando un Open message
valido è ricevuto, il router invia un keepalive al messaggio,. Il Peer negozia i parametri della
sessione e passa allo stao di openconfirme.
Se un TCP disconnect è ricevuto il router allora resetta il timer ConnectRetry e passa allo
stato di active state.
Openconfirm Quando il router riceve un valido open message passa allo stato di
openconfirm, il router locale invia un keepalice ed aspetta il keepalive dal peer.
Established questo stato è raggiunto quando il keepalive è ricevuto. Solo in questo stato i
router cominciano a scambiarsi le informazioni di routing.
Open
Update
Notification
Keepalive
L’open message è il primo pacchetto BGp inviato dopo che la connessione TCP è avvenuta.
Permette ai due peers di negoziare i parametri della sessione. Questi parametri includono
BGP version, hold time, authentication data, refresh, e supporto per le Network Layer
Reachability Information (NLRI)
6 per cessare
Ogni router BGP stabilisce delle locazioni di memoria nel quale memorizzare le conoscenze
di routing. Queste locazioni di memoria vengono dette Routing Information Base (RIB). Un
peer BGP mantiene 3 categorie di RIB:
Adjacency-RIB-IN
Local-RIB
Adjacency-RIB-OUT
Una Adjacency-RIB-IN table è creata sul router locale per ogni BGP peer attivo. Tutte le
route (ad eccezioni di quelle che contengono AS Path loop) vengono inserite nella tabella
appropriata.
Dopo aver ricevuto un Update message, il local router applica la policy di import, che può
modificare gli attributi o scartare la rotta. Dopo il router locale esamina tutte le route nelle
Adjacency-RIB-IN per scegliere l’unica destinazione.
Questo best path scelto, viene memorizzato sulla Local-RIB table. Queste sono le route che
vengono utilizzare per il forwarding del traffico.
Per ogni peer attivo viene creata una Adjacenzy-RIB-OUT che contiene le route da
annunciare. Di default vengono copiate tutte le route della Local-RIB ma possono essere
modificate con delle policy.
Vediamo come un router juniper sceglie la rotta da inserire nella local RIB. Se fra tutte le
tabelle Adjacency-RIB-in esiste una sola rotta allora viene inserita nella tabella, altrimenti
vengono eseguiti i seguenti step finchè non si ottiene una sola destinazione (finchè non si
ottiene viene eseguito lo step successivo)
Il next-hop deve essere raggiungibile nella local routing table, altrimenti la rotta viene
scartata
Viene scelta la rotta con il Multiple Exit Discriminator (MED) più basso. Questa step è
eseguito di default, solo per le route che vengono dallo stesso neighboor AS
Il router sceglie le route apprese da eBGP peer rispetto peer iBGP peer. Se restano solo
route apprese in eBgp allora si passa al punto 9.
Se sono utilizzati Route Reflector, viene scelta la rotta con la più corta Cluster-List
Il router sceglie la rotta che viene dal peer che ha il più piccolo Router ID
Il router sceglie la rotta che viene dal peer che ha l’ip più piccolo
* Per ogni iBGP peers verifica le tabelle inet.0 ed inet.3 (per utilizzare gli LSP), in caso di
pareggio si preferisce utilizzare un next-hop dalla tabella inet.3.
Well-done mandatory
well-done discretionary
optional transitive
optional nontransitive
I router BGP devono riconoscere tutti well-know attribute, che devono essere inclusi in
tutte le route. Discretionary possono essere inseriti o no in una determinata rotta. I router
BGP non devono capire gli attributi opzionali ma devono rinunciare se sono transitive, gli
optional nontransitive vengono scartati se non riconosciuti.
Shiraz e Cabernet hanno una sessione eBGP attraverso gli ip [Link] e [Link] dove
shiraz annuncia le net [Link]/16 e [Link]/16, Carbenet una volta ricevuti gli
annunci per le 2 net cambia il next-hop mettendo ad esempio [Link], Cabernet ha il
next-hop raggiungibile, quindi le route sono attive.
Quando Cabernet annuncia le route a Merlot, ad esempio, utilizzando una sessione iBGP non
cambia il next-hop, ma Merlot non ha una rotta valida verso il [Link], quindi le due net
[Link] e [Link] non sono utilizzabili da Merlot. Per ovviare a questo problema di
può:
Settare il campo Next hop attribute, considerato da molti la best practice per una sessione
iBGP, questo metodo permette al router che annuncia di cambiare il valore del Next Hop
Attribute.
L’attributo local preference è un valore numerico che può essere settato attraverso una
routing-policy o una configurazione BGP, se entrambe sono configurate prevale la routing
policy. Questo valore viene utilizzato solo nelle sessioni iBGP e non viene inviato nelle
sessioni eBGP. Più alto è alto è il valore maggiore priorità avrà la rotta nell’essere scelta.
L’attributo ORIGIN (Attributo mandatorio) indica da dove è stata appresa la rotta può avere
3 valori
Se appresa localmente, attraverso un IGP il valore sarà 0 e nell’AS-PATH sarà indicato con I
(i maiscuolo)
Di default un router non annuncerà mai ad un altro peer iBGP route apprese in iBGP, ma
annuncerà tutte le route apprese in eBGP. Per avere una tabella congrua è necessario che
tutti i router abbiamo una sessione iBGP full-mesh.
Esempio di configurazione
Fai attenzione che nella policy next-hop di non combinare il comando next-hop con accept
Definiamo l’aggregato
Una rotta annunciata da un peer va in RIB-IN queste route vengono filtrate dalle policy e
vanno in route-table, le route in route-table vengono filtrate dalle policy e messe in RIB-out
che contiene tutte le route annunciate al peer. Come si nota solo le route attive vengono
annunciate, supponiamo ci sia una rotta BGP inattiva, perchè la stessa viene acquisita in
osfp e quindi con una metrica inferiore, allora la rotta non verrebbe annunciata, per
annunciare la rotta allora possiamo utilizzare il comando advertise-inactive
Notiamo il numero di gruppi, i peers configurati e quelli down. Inoltre per ogni peer
vediamo l’indirizzo, l’as il numero packet (in ed out) , il numero di pacchetti in coda (outQ)
che di solito è a zero, i flap l’ultimo cambio di stato (da quanto tempo è avvenuto), e se
attivo il numero di route attive / ricevute / accettate / dampened
Vediamo così il nome del gruppo, se è internal o external, il numero di peer e gli indirizzi, le
policy di export applicate, ed anche le option (che nell’esempio sopra non ci sono), tra le
option si può trovare se la sessione è multihop se c’è il remote-private, anche l’holdtime che
di default è 90
Esempio
[Link]+179
inet.0: 0/0/0/0
con il comando show route protocol bgp vediamo le route attive apprese in bgp, se una rotta
manca potrebbe esserci un problema di raggiungibilità del next-hop, o potrebbe essere
droppata da una policy.
vediamo tutte le route che il peer ci invia senza che le policy che il cliente ci annuncia, che
non vengono droppate dalle policy di import, per vedere quelle droppate dobbiamo
utilizzare il comando show route recieved-protocol bgp indirizzo-peer hidden
Per vedere invece le route annunciate si utilizza show route advertising-protocol bgp
indirizzo-peer
Un IP tunnel è un canale di comunicazione tra due reti, può utilizzare protocolli che
utilizzano crittografia (tipo IP-SEC) o no come GRE o IP over IP (IP-IP). Quando un paccheto
entra nel tunnel il tunnel incapsula l’intero pacchetto compreso di header e lo consegna
decapsulato al destinatario del tunnel
Il Generic Routing Encapsulation (GRE) tunnel protocol incapsula una varietà di Network
Layer Protocol all’interno di un tunnel ip. L’overhead del tunnel è 24byte.
L’overhead contiene il source address, l’entry point di ingresso, il destination e l’exit point
del tunnel. Il pacchetto GRE è incapsulato in un pacchetto IP con protocol type 47. Il
pacchetto incapsulato all’interno del GRE non viene modificato a meno del campo fiel che
viene decrementato.
Un IP over IP (IP-IP) incapsula un pacchetto ip all’interno di un altro pacchetto IP,
aggiungendo 20 byte di overhead. Anche in questo caso l’unico campo del pacchetto
incapsulato che viene modificato è il TTL che viene decrementato ma resta invariato fino
alla consegna.
Per definire un’interfaccia gre si utilizza gr-x/y/z dove x/y/z identificano su quale pic viene
creato il gre, alcuni apparati lo fanno a livello software il quel caso sarà gr-0/0/0. Stessa
cosa per il tunnnel ip-ip l'interfaccia avrà forma ip-x/y/z.
Per ogni interfaccia si possono creare diverse unit, e si può creare un solo tunnel per unit.
SIa il GRE che l’IP-IP sono stateless significa che sono sempre up, quindi non si è certi che il
remote sia raggiungibile o no, per evitare problemi si utilizzano dei meccanismi di
keepalive, come ad esempio l’oam
Se l’user A trasmette un pacchetto più grande di 1476 all’interno del tunnel settando il bit
don’t fragment il pacchetto all’interno del tunnel viene frammentato perchè l’mtu sul link è
1500, quindi quando il destinatio riceve il pacchetto frammentato con bit DF settato scarta il
pacchetto ed invia un ICMP per far ridurre la dimensione del pacchetto inviato. Per evitare
questo problema o si aumentato MTU ad almeno 1524 oppure si utilizza il comando
clear-dont-fragment-bit
Vediamo una semplice configurazione di tunnel GRE (stessa configurazione può essere
applicata all’ip-ip”
key:Si può assegnare una key (valore che va da 0 a 4,294,967,295) per identificare un
tunnel, NB: questo valore deve essere identico ad entrambi i capi del tunnel.
Per evitare problemi di frammentazione si può far in modo che il router calcoli l’mtu del
path, utilizzando il path mtu discovery, con il comando
Un comando utile per il troubleshooting è
HIGH AVAILABILITY
Graceful restart (GR): Questa funzione consente l'inoltro ininterrotto dei pacchetti e la
soppressione temporanea di tutti gli aggiornamenti del protocollo di routing. GR consente a
un router di passare attraverso stati di convergenza intermedi nascosti al resto della rete.
Nonstop active routing (NSR): Questa funzione utilizza la stessa infrastruttura del passaggio
regolare di RE per preservare le informazioni sull'interfaccia e sul kernel. Tuttavia, NSR
salva anche le informazioni sul protocollo di instradamento eseguendo il processo di
protocollo di instradamento (rpd) sulla RE di backup. Salvando queste informazioni
aggiuntive, NSR è autonomo e non fa affidamento su router ausiliari per assistere la
piattaforma di routing nel ripristino delle informazioni del protocollo di routing. NSR è
vantaggioso nelle reti in cui i router vicini non supportano GR. Come risultato di questa
funzionelità migliorata, NSR è un sostituto naturale di GR. NSR e GR si escludono a vicenda e
non possono essere abilitati contemporaneamente. Si noti che il GRES deve essere
configurato affinchè NSR funzioni correttamente
Virtual Router Redundancy Protocol (VRRP): Questa funzione consente agli host su una LAN
di utilizzare piattaforme di routing ridondanti su quella LAN senza richiedere più della
configurazione statica di un singolo percorso predefinito sugli host. Le piattaforme di
routing VRRP condividono l'indirizzo IP corrispondente al percorso predefinito configurato
sugli host. In qualsiasi momento, una delle piattaforme di routing VRRP è il master (attivo) e
le altre sono i backup. Se il master si guasta, uno dei router di backup diventa il nuovo
router master, fornendo una piattaforma di routing predefinita virtuale e consentendo di
instradare il traffico sulla LAN senza fare affidamento su un'unica piattaforma di routing
GRACEFUL RESTART
Supponiamo R1 deve riavviare un protocollo di routing (OSPF) allora R1 avverte i vicini, con
GR i vicini non perdono le adiacenze OSPF e continuano ad inoltrare i pacchetti.
Per disabilitare il GR possiamo farlo sotto routing-option per disabilitarlo a tutti i protocolli
oppure sotto il protocollo (nell’esempio fatto su BGP)
Per vedere se il GR attivo possiamo utilizzare il comando show bgp neighobr address se lo
vogliamo su un vicino bgp. In questo caso vedremo
BFD
BFD è supportato
Esempio di configurazione
Non è consigliabile settare il minimum-intervall sotto i 300 ms, con questa configurazione si
suppome che il multiple value è tre (che è il default).
BDF è molto utile nei link L3, per gli L2 si utilizza OAM
un comando per avere le informazioni sulle sessioni bfd è show bfd session , per le sessioni
BGP possiamo vederlo facendo show bgp neighboor peer-address vediamo se lo stato è up.
PS: Se lo stato BFD è down ma sul link c’è comunicazione bisogna verificare il firewall
Nel caso di apparati con doppia routing-engine per vedere lo stato si utilizza il comando
show chassis routing-engine
Per far si che entrambe le RE siano accessibili si può utilizzare questa configurazione
Viene configurato il backup-router perchè la RE di backup non ha RPD attivo quindi sfrutta
la backup-ruoter per essere raggiungibile. Quando il GRES è attivo è utile utilizzare il
commit synchronize oppure settarlo sotto system service.
Quando la RE di backup non riceve il keepalive dalla master allora capisce che la master ha
un problema e quindi diventa lei la primaria. La PFE non si riavvia ma si sgancia dalla
vecchia master e si collega alla nuova, dopo aver effettuato il collegamento la nuova RE
master confronta i dati della PFE e se obsoleti invia i messaggi di update, tutto questo
avviene senza che la PFE si blocchi.
Se è attivo il GRES la master prima di inviare gli update alla PFE li invia alla RE backup, se
non attivo li invia solo alla PFE.
una volta attivato noteremo che nella RE master comparirà master, mentre nella backup
backup.
Il NONSTOP ACTIVE ROUTING (NSR) permette alla macchina con doppia RE di switchare da
una RE all’altra senza allerta i nodi vicini. In pratica entrambe le RE fanno girare il demone
RPD. NSR è il sostituto di GR e quindi entrambi non possono essere configurati nella stessa
macchina .
L’Unified in-service software upgrade (ISSU) permette di aggiornare senza dare alcun
disservizio.
Questo protocollo serve a dare ridondanza al gateway di solito i 2 router VRRP sono
collegati alla rete con un semplice switch
I VRRP router comunicano tra loro attraverso pacchetti IP utilizzando l’indirizzo multicast
[Link]
Questi pacchetti hanno TTL 255 e il default interval dei VRRP advertisements è 1secondo, è
importante che i VRRP dello stesso gruppo abbiamo parametri uguali come ad esempio
stesso VRIS o parametri di autenticazione. Il virtual IP è associato ad un virtual mac address
che ha il formato 00-00-5E-00-01-VRID.
Per la scelta del master o backup si utilizza la priorità (maggiore priorità maggiore
preferenza) di default è 100.
Nel caso di fault del master il backup diventa master, se il vecchio master torna up diventa
master solo se c’è configurato l’opzione preempts.
Un comando utile quando dobbiamo configurare diversi VRRP sul router è l’opzione vrrp-
inherit-from
IPv6
Contiene:
Source address
destination address
Una differenza tra IPv4 e IPv6 è che se IPv6 deve frammentare il pacchetto IPv4 utilizza gli
extension header, gli extension header sono 6
Il link local address (indirizzo non ruotabile) identifica un link è formato da i primi 10 bit
1111111010 seguito da 54 0 quindi il prefisso utilizzabile è FE80::/64, gli ultimi 64 bit sono
l’interface identifier. Siccome tutti i link local address cominciano con FE80::/64 non è detto
che siano unici nella rete, quindi sono indirizzi non routabili.
Questo indirizzo viene creato in automatico quando attiviamo la family Inet6, perchè questo
indirizzo è necessario per il discovery, l’autoconfigurazione ed il routing protocol traffic.
Un indirizzo global unicast address è formato da
Format Prefix (FP):formato da 3 bit, il prefisso 001 identifica l’aggregato global unicast
address, questo è l’unico intervallo assegnato da iana.
Global Routing Prefix: i successivi 45 bits sono utilizzati per applicare il più alto di
aggregazione, tipicamente identifica un TIER1.
INTERFACE ID: Gli ultimi 64 bit sono riservati per l’interface ID, consentendo una facile
autoconfigurazione dell’host nella reta
L'interface ID viene calcolato a partire dal mac del dispositivo, essendo il mac di 48 mentre
l’interface ID di 64 viene aggiunto tra il company ID ed il manufacturer Extension ID il
valore FFFE (1111111111111110). Inoltre bisogna invertire il 7 bit del Company id. Questo
processo è detto EUI-64
11 :22:33:44:55:66
11 -> 00010001
00010011 = 13
Router solicitation (RS) message: gli host inviano questo messaggio per scoprire la presenza
e le proprietà dei router sul link. Quando un router IPv6 riceve una richiesta RS da un host,
risponde trasmettendo un messaggio RA. Una RA annuncia l'esistenza del router e fornisce
all'host le informazioni necessarie per eseguire le attività di configurazione automatica.
Prefix list: questa tabella contiene i prefissi IPv6. Quando le voci sono presenti nell'elenco, il
router include le voci nelle RA che il router invia agli host on-link. Ogni volta che un host
riceve una RA, l'host può utilizzare i prefissi per eseguire l'autoconfigurazione dell'indirizzo.
Il processo di neghboor discovery serve a tracciare lo stato di un vicino nel link, il protocollo
utilizza ICMP e ARP per determinare se un vicino è raggiungibile o no.
Quando attiviamo IPv6 i due host sul link creano il link local address a partire dal mac
L’host risponde al RS message con un RA message, questo messaggio contiene una prefix-
list
Con il comando show interface terse vediamo l’ip uncast e il link local address
Inizialmente il comando show ipv6 neighbors è vuoto basta far passare del traffico ip,
(esempio un ping) ed i vicini vengono popolati.
Gli indirizzi multicast IPv6 cominciano con FF
NS Messages
RA Messages
RS Messages
La configurazione del protocollo OSPFv3 (ospf per ipv6) è simile alla configurazione OSPF,
anche il router ID utilizza un indirizzo a 32bit (ipv4) che può essere configurato sotto
ruoting-options
anche i comandi di troubleshooting sono uguali cambia solo OSPF con OSPF3
Il protocollo BGP è identico all’IPv4 cambiano solo gli indirizzi IP del peer ed il local-address
Configure tunnels
6to4
6over4
SWITCHING E BRIDGING
Bridging utilizza la segmentazione per dividere un dominio di collisione in più piccoli bridge
collision domain.
Learning Inizialmente il bridge non ha informazioni, per apprendere informazioni sui mac
lo switch legge tutti i frame in ingresso, se il source max è conosciuto allora lo inserisce in
tabella
Aging Per ogni mac nella Bridge table viene salvato anche il timestamp di quando viene
appresso, se questo valore è maggiore del valore impostato con il comando global-mac-
table-aging-time allora il mac non è più valido
Per vedere la bridge table, si utilizza il comando show bridge mac-table, con il comando
clear bridge mac-table eliminiamo le entri nella bridge table.
Una VLAN è una collezione di host che condivido un dominio di broadcast, una switch port
può operare in modalità:
Trunk porta utilizza per collegare 2 switch, permettono il passaggio di diverse vlan, per far
passare il traffico untagged bisogna settare la native-vlan-id
Per associare il traffico ad una vlan bisogna taggarlo il più comune è l’802.1Q
Priority 3 bits
e l'interfaccia (NB: per una porta access devi configurare la unit 0, non puoi configurare
altre unit)
Se abbiamo diverse vlan da configurare, su bridge domain invece di configurare tutte le vlan
possiamo utilizzare il comando vlan-id-list, per poi applicare le vlan sull’interfaccia come
visto prima
Con il comando show bridge domains vediamo lo stato delle vlan possiamo aggiungere
detail (specificando il nome della vlan) per avere maggiori informazioni
Per monitorare una porta trunk possiamo utilizzare il comando show interface
o show bridge domain
Con il comando show bridge statistics vediamo le statistiche dei bridge ed anche il numero
di mac appresi.
L’MVRP invia PDUs tra tutti gli switch della rete, per scambiarsi le VLAN ID e su quale
interfacce attive.
Leave: Controlla il periodo di tempo che un'interfaccia aspetta nello stato di Leave prima di
passare allo stato unregistered
MVRP utilizza i messaggi MRP per registrare e dichiare MVRP state ed informare gli switch
della rete.
i messaggi sono:
L’MVRP utilizza il pruning vlan per limitare il traffico BUM ai soli dispositivi interessati, non
supporta il VLAN Spanning Tree Protocol (VSTP).
Supponiamo che vogliamo che 2 switch abbiano le stesse vlan, la prima cosa da fare e
verificare che le vlan create siano associate a delle porte access, sulle porte trunk non
dobbiamo definire alcuna vlan,
sui vari router configuriamo il protocollo mvrp inserendo solo le interfacce trunk
Per disabilitare la creazione di vlan dinamiche utilizziamo il comando no-dynamic-vlan
join-timer 200ms
leave-timer 800ms
leaveall-timer 1000ms
Un IRB (Itegrated Routind and Bridging) è un’interfaccia che viene utilizzata come gateway
dagli host nel bridge domain.
Esempio di configurazione:
con l’opzione packet-action drop il router droppa i frames con mac sconosciuto quando ha
la MAC table piena.
Address field
protocol type
VLAN ID
802.1p bits
Il term from non è necessario, ed esiste un discard all implicito per tutti i frame che non
matchano.
Count : Conta il numero di volte che la regola matcha, per vederlo possiamo utilizzare il
comando show firewall
port-mirror abilita l’invio di una copia del frame su di un’interfaccia per effettuare delle
analisi
Virtual Router un singolo chassis è visto come più router, ogni router ha una propria tabella
di routing, protocolli di routing ecc, la default instance è detta default
Virtual Switch un singolo chassis è visto come più switch, ogni switch ha una propria MAC
table, dominio di vlan, spanning tree ecc. Le dafault instance è detta default switch
Nell’esempio precedente di tipo virtual-router, viene creata una tabella associata alla
routing-instance.
o le porte trunk
o la porta IRB
Con il comando bridge domain vediamo tutti i vari bridge all’interno del default switch e
quelli nel virtual-sw-1 che è stato creato con la routing-instance
Per collegare 2 virtual router si possono utilizzare le logical tunnel o anche un loop tra 2
interfacce (una appartenente ad un virtual router ed l’altra interfaccia all’altro virtual
router), per collegare 2 virtual switch invece si può utilizzare solo un loop fisico.
NB: tra 2 virtual switch lo spanning tree non funzione perchè entrambi utilizzano lo stesso
mac come parte del bridge ID
Per attivare le interfacce tunnel (GRE, IP, LT) dobbiamo modificare lo chassis, come
nell’esempio sotto
Oltre alle routing instance, possiamo creare un logical system, che a differenza delle routing
instance ha delle policy a parte, anche la parte di login, non si possono creare più di 16
logical system.
Le proprietà dell’interfacce tipo il mac statico l’encapsulation MTU ecc vengono configurate
nel router principale
esempio
Anche in questo caso per collegare 2 logical system possiamo utilizzare un logical tunnel o
un loop fisico
Possiamo anche creare degli utenti per accedere direttamente al logical system
In pratica viee aggiunto un STAG per aumentare il VLAN ID space, di solito il CTAG viene
utilizzato dai clienti, STAG dal provider
STAG e CTAG hanno lo stesso formato, da protocollo cambia solo il TPID 0x88a8 per STAG, e
0x8100 per CTAG, anche se junos per default utilizza 0x8100 anche per STAG
Esistono due modi per configurare un bridge in Independent Vlan Learning (IVL), che il
metodo visto finora, e Shared VLAN Learning (SVL). Nel primo metodo il MAC learning
avviene per VLAN, quindi il traffico BUM è separato per VLAN. Nel secondo invece il MAC
learning e condiviso come il traffico BUM che viene trasmesso in ogni vlan.
Un frame con C-VLAN ID 112 arriva su ge-1/0/0.112 destinato a un indirizzo MAC esistente
sul lato remoto della rete.
Poichè il dominio bridge è configurato per vlan-id none, il tag C-VLAN viene eliminato (POP)
prima della ricerca nella tabella MAC.
All'arrivo al PEB remoto, assumendo il bridge il dominio è configurato per vlan-id none, i
tag S-VLAN e C-VLAN vengono visualizzati prima della ricerca nella tabella MAC.
SPANNING TREE
Lo spanning tree è un protocollo nato per fornire dei percorsi loop-free in reti L2 ridondate.
Spanning Tree Protocol (STP): La prima versione (802.1d) Ha diversi problemi, i principali
sono lenta convergenza (intorno i 50s), il secondo problema è che ogni modifica akka
topologia comporta che il MAC address viene rimosso dalla bridge table, con un eccessivo
flooding come risultato. Il terzo problema è che STP crea un singolo tree per ogni VLAN,
questo significa che i link ridondati non vengono utilizzati
Rapid Spanning Tree Protocol (RSTP) risolve due dei problemi dell’STP, cioè converge
molto più rapidamente, e limita che il cambio di topologia comporti la rimozione del MAC
dalla bridge table, RSTP continua a non utilizzare i links ridondanti
Multiple Spanning Tree Protocol (MSTP) Migliora l’RSTP creando multipli TREE per
bilanciare il traffico.
Vlan Spanning Tree Protocol (VSTP) Migliora l’RSTP, creando un tree per VLAN (max 253)
per bilanciare il traffico
Terminologia
Bridge ID: Ogni Switch che partecipa all’STP ha un ID unico che è una combinazione tra il
system MAC address ed un priority value configurabile
Root Port: è la porta di un non root-switch più vicina (in termini di costo) al root switch
Root Path cost: è il costo del percorso che va da se stesso al root bridge, ogni non root
switch riceve delle BPDUs che contengono il root path del vicino (switch che invia la BPDU),
per calcolare il Root Path cost, basta aggiungere al root path ricevuto il costo dell’interfaccia
su cui è stato ricevuto
Port Cost: Ogni interfaccia ha un costo, che può essere anche modificato (con un valore che
va da 1 a 200.000.000).
Gli switch che condividono un segmento di rete devono determinare quale switch offre il
path più breve verso il root bridge, questo switch diventa il designated switch e la porta di
questo switch rivolta verso il segmento di rete è detta designed port. Se due switch fornisco
il path più corto verso il root bridge, allora si utilizza il bridge ID per determinare quale
switch utilizzare (il più piccolo è preferito), se invece il percorso più breve è fornito da due
interfacce dello stesso switch, si utilizza il port ID (è un’identificato unico per interfacca in
ogni switch) per determinare il percorso (anche in questo caso il più piccolo è preferito).
quando viene configurato lo switch 2, lo switch invia le BDPU indicando se stesso come root
bridge, gli altri switch che ricevono la BPDU confrontano il loro root bridge, se il loro root
bridge ha priorità minore (o a parità di priorità il mac più piccolo) continua ad annunciare il
proprio root bridge, altrimenti annuncerà il 2 come root bridge.
Una volta eletto il ROOT Bridge, tutte le porte assumono il ruolo di designated port e sono
nello stato forwarding, tutte le root port sono nello stato di forwarding (il root bridge non
ha root ports). Le designated ports sui designated bridges sono in forwarding state. Tutte e
altre porte sono nello stato blocking.
Appena uno switch con STP abilitato si avvia, ogni porta può attraversare una serie di 5
stati:
listening (ascolto): la porta riceve le BPDU ma non apprende MAC o inoltra traffico
forwarding (trasmissione)
Gli stati di Listening e Learning sono due stati transizionale per portare un’interfaccia da
blocking a forwarding.
Quando ogni switch determina tutti gli stati delle porte allora lo STP è fully convergegd.
Lo Rapid Spanning Tree (RSTP) introduce nuove feature per migliorare la convergenza,
RSTP identifica alcuni link come point to point (P2P), quando un p2p cade, il link alternativo
passa allo stato di forwarding senza attendere alcun timer. Inoltre introduce anche la
definizione di edge port: una porta che collega un un dispositivo che non sia un bridge, ed è
sempre in forwarding.
Una Alternate port è una porta che fornisce un path alternativo verso il root bridge, ma ha
un costo maggiore rispetto la root port, riceve le BPDUs ma non inoltra traffico.
Una Backup port è una porta che fornisce un backup alternativo vero un segmento di rete,
non inoltra traffico finchè la designed port è attiva.
L’RSTP utilizza le BPDU come acknowledgment, di default invia le BPDU ogni 2 secondi e se
ne perde 3 allora ricalcola il TREE, quindi rispetto l’STP che impiega di default 50 secondi,
RSTP in 6 secondi capisce che deve ricalcolare il tree
Rispetto lo spanning tree, le interfacce del RSTP passano dallo stato di blocked allo stato di
forwarding più velocemente (non esistono i due stati intermedi listening e learning)
Le alternate port passano in forwarding subito dopo che una root port cade
Le edge port passano subito in forwarding
Le non-edge port passano allo stato di forwarding solo quando ricevono un ok da parte
dello switch collegato
Il link tra Switch A e Root bridge cade, allora lo switch A invia allo switch b un inferior BPDU
(una BPDU che ha un BRIDGE ID superiore), lo switch B allora cambia il ruolo della porta
verso lo switch A passando da backup a designed inviando il superior BPDU (BPDU con root
ID inferiore).
Se uno switch che ha RSTP riceve una STP BPDU, allora converte l’interfaccia che riceve
questa STP BPDU per utilizzare questo tipo di BPDU
L’MSTP (Multiple spanning tree) come l’RSTP fornisce una veloce convergenza, ma a
differenza dell’RSTP si possono creare diversi multiple spanning-tree instance (MSTIs).
Ogni MSTI crea un tree, e l’utente può associare delle vlan ad ogni tree, in modo da
bilanciare il traffico
L’MSTP raggruppa gli switch in cluster detti Multiple spanning-tree (MST) region. Ogni
regione supporta fino a 64bit di MSTI. L’MSTP oltre a dare path ridondati riduce il numero
di BPDU. Siccome la codifica delle regione MSTP avviene dopo che il router riceve delle
RSTP BDPU, un ruoter che riceve una MSTP BPDU ma ha configurato RSTP questa BPDU la
interpreta come una RSTP BPDU.
Ogni regione è definita da un CST e su ogni regione viene eletto un root bridge.
VSTP è un no standard protocollo compatibile con Per-Vlan Spanning Tree+ e Rapid Per-
Vlan Spanning tree.
Crea delle spanning-tree instance per ogni VLAN, e supporta fino a 4096 spanning tree,
ovviamente più vlan aggiungi più risorse cpu sono richieste.
è buona norma bloccare le BPDU nelle porte edge, se la porta fa parte della configurazione
RSTP, possiamo utilizzare questa configurazione
Quando un’interfaccia riceve una BPDU passa allo stato di blocking e non inoltra il frames,
per riattivare l’interfaccia bisogna utilizzare il comando clear error bpdu interfaces.
Per evitare che possano hackerare lo spanning tree inviando superior BDPU le interfacce
che non devono riceve superior BPDU possono essere così configurate
Se questa porta riceve una superior BPDU allora va in blocco e dopo un pò di tempo ritorna
in forwarding senza far nulla
OAM (Operation, Administration and Maintanance) sono una serie di funzioni per
monitorare lo stato di salute della rete, OAM determina
Per verificare se il link è up OAM invia dei messaggi unidirezionali, se un link va down allora
vengono generati dei messaggi di errori AIS (Alarm Indication Signal) e FDI (Forward
Defect Indicator) vediamo l’esempio
Cade il lind da B verso C (ma no da C verso B) il nodo C invia AIS e FDI al nodo D che invia
dei messaggi BDI (Backward Defect Indicator) al nodo A indicando il fault.
distruttive, in pratica si mette in loop l’interfaccia quindi il traffico non passa, ma serve a
testare il circuito
il flag è utilizzato come BDIs per notificare il problema al router remoto, con
Bit 1 Dying Gasp (Un problema esterno è stato riscontrato, es la mancanza di energia)
Gli Event Notification OAMPDUi vengono utilizzati come BDIs. In altre parole, informano il
upstream client che si sono verificati errori nel percorso di ricezione locale. Esistono
quattro diversi tipi di Event Notification OAMPDU:
Variable Request and Response OAMPDU non sono attualmente supportate nel sistema
operativo Junos.
Quando un LFM client riceve un critical event significa che c’è un problema sul link, quindi
mette giù la rotta e se necessario ricalcola lo spanning-tree, tuttavia continua a monitorare
la il link. Per gli altri tipi di eventi si possono configurare delle action-profile ed applicarle
alle interfacce. In questi profili possiamo configurare un syslog, scegliere di mettere down
l’interfaccia o inviare un OAMPDU al peer remoto.
Una Maintance Point (MP) è un’interfaccia sullo switch, ci sono tre tipi di MP:
Maintanance association End Point (MEP) sono interfacce che si trovano sull’edge, e creano
delle relazioni con un singolo MEP, in caso di E-Line EVC (Ethernet Virtual Circuit) o
multipli MEP, in caso di E-LAN EVC. MEP scambiano messaggi CC per essere sicuri che gli
altri MEP siano attivi.
Maintance association intermediate point (MIP) sono opzionali i MIP rispondo ai CFM
message di MEP di livello superiore. Ad esempio nell’immagine sotto se il customer bridge
di livello 5 fa un linktrace, allora le MIP di livello 4 risponderanno ai CFM message
Un MEP forma relazione di neighboor con altri MEP scambiando CC messages, per diventare
vicini devono avere lo stesso mantenance domain, maintenance association, livello e
direzione.
Vedi esempio, la relazione di neighboor deve essere instaurata tra i due customer bridge
Periodicamente una MEP invia dei CC message (Continuity check), questo periodo può
essere configurato fa 100MS, 10ms, 1s,1m,o 10m. Questi messaggi sono messaggi multicast
01-08-C2-00-00-3y dove y indica il domain level. Il remote MEP considera il link in fault se
perde 3 CCM (questo threshold può essere modificato).
Il Loopback protocol serve a verificare i fault di connettività, in pratica viene effettuata una
richiesta loopback, il ricevente inoltra il messaggio utilizzando come destination il source
del messaggio.
Il Linktrace protocol funzione come il traceroute ip, viene inviato un messaggio all’indirizzo
01-80-C2-00-00-3y dove y indica il domain level. Questo messaggio arriva ai MEP ed ai MIP,
i MEP del livello più alto scartano il messaggio, mentre quelli dello stesso livello o i MIP
rispondono.
Per testare il circuito loopato bisogna configurare un arp statica, vediamo il procedimento
Configurazione CFM
In questo esempio abbiamo configurato il MIP che risponderà solo al livello 5 (4+1) perchè
il mep è configurato su livello 4.
NB in questo caso visto che stiamo facendo il traceroute verso un MEP di livello 5
rispondono anche i MIP di livello 4.
Lo switch mantiene un record delle ultime misurazioni, è possibile visionare questo record
con il comando
Link Aggregation Group (LAG) 802.3ad, in pratica aggrega n link come se ne fosse uno solo,
migliorando così la banda e la sicurezza.
Il traffico generato dalla RE (ad esempio il il protocol control traffic) utilizza il link più
piccolo
L’algoritmo load-balancing hash per il traffico IP, utilizza criteri Layer 2, Layer3 e layer 4,
per bilanciare, nessuna configurazione è necessaria
L’algoritmo load-balancing hash per il traffico non IP utilizza solo source e destination MAC
addresses
Per aggregare dei link si può utilizzare Link Aggregation Control Protocol (LACP), gli scambi
vengono effettuati tra gli attori (local interface) e partners (remote interface). Le interfacce
possono essere configurate in active o passive (default). LACP scambia PDUs attraverso
tutte i membri del link per vedere se sono configurati ed attivi.
Di default non ci sono interfacce aggregate configurate per configurarle bisogna modificare
la configurazione dello chassis
L'interfaccia aggregata (ae) rimane down finchè un interfaccia attiva viene aggiunta al LAG.
sotto aggregate puoi configurare anche il tempo ogni quanto un’interfaccia invia LACP
packets
L’MCLAG forma un lag tra due apparati, i due apparati utilizzano l’inter-chassis Control
protocol (ICCP) per scambiarsi informazioni.
Può essere
ACTIVE-STANDBY supportato sia su schede DPC che su schede MPC, in questo caso solo un
PE è attivo.
ACTIVE-ACTIVE supportato solo su schede MPC. Entrambi i link sono attivi, in questo caso è
necessario un Interchassis Link (ICL)
E lo chassis, ed inoltre si deve configurare l’iCCP, prima configuriamo il service-id che deve
essere uguale su entrambi i PE
Le interfacce sono uguali a meno chassis-id e lo status control setting (entrambi si trovano
nel menù mc-ae)
Sotto mc-ae dobbiamo aggiungere il comando mode active-active lasciando il resto come la
prima configurazione
Esempio
Il virtual-chassis
Il core file rappresenta il set di memoria o stack dati che in quel momento era in fault. Di
solito il file viene salvato in /var/tmp ed il nome è nome_processo.core-
tarball.core_number.tgz
Un modo per monitorare lo stato di salute degli apparati è snmp, con il comando health-
monitor
Rate indica il ratio da usare esempio 10 significa che invia 1 pacchetto ogni 10,
set fpc FPC_NUMBER sampling-instance INSTANCE-NAME per tutte le FCP che contengono
interfacce da monitorare.
Ed infine si può applicare una regola di firewall per selezionare il traffico da campionare
NB: ricorda sempre alla fine l’accept ed il term accept per tutto il resto del traffico (il
firewall ha il deny implicito).
MPLS aggiunge un header di 24 bit detto label, con mpls è possibile creare dei label-
switched path (LSP). Altre applicazioni MPLS sono le l2-VPN come Ethernet-VPN o Virtual
private lan service (VPLS).
Fai attenzione l’header MPLS 32bit contiene un campo label di 20 bit, quando diciamo
rimuovere o aggiungere la label mpls non indichiamo il campo label ma l’intero header.
Label (20Bits)
bottom of stack bit (1bit) se settato ad 1 significa che l’header mpls è seguito dal payload, se
settato ad 0 significa che la label mpls è seguita da un’altra label
TTL
Label 0 (Explict null) indica che si deve effettuare l’operazione di pop, ed inoltrare il traffico
utilizzando o le informazioni del payload oppure la label sotto (in caso di label
sovrapposte). Un frame MPLS può essere inviato con label 0
Label 3 (implicit Null) Viene utilizzata solo nel protocollo di signaling MPLS. Viene utilizzata
dall’egress router (l’ultimo hop in un LSP), per richiedere al router precedente di rimuovere
L’header MPLS.
LSP è un path unidirezionale che attraversa il network (lo puoi vedere come un tunnel)
PUSH
SWAP
POP
La LIB viene memorizzata nella tabella mpls.0, questa tabella contiene almeno 4 label create
automaticamente
la 0 Explicit NULL
la 1 router alert
Un LSP è definito dal nome (che deve essere univoco) e dalle label (che vanno da 1000000 a
1048575).
Un LSP statico deve essere configurato
NB: nel PHP invece che swap deve essere utilizzato il comando pop
Quando creiamo un lsp vengono modificate le tabelle mpls.0 e inet.3 non vengono modifiate
la inet.0 o la inet6.0
RSVP
LDP
RSVP nasce come bandwidth reservation protocol, utilizza il network layer (protocol
number 46) e non è protocollo di routing ma di signaling. Esistono sei tipi di messaggi RSVP,
tutti e sei condividono un header comune.
Path questo messaggio è inviato dall’ingress router per richiedere che un LSP sia creato
RESV questo messaggio riserva le risorse incluse la label assegnate agli LSP
PathTear questo messaggio cancella il path e la relativa reservation dal router che riceve
questo messaggio. è originato dal sender o dal router in cui il path state è in timeout. Il verso
è dal Mittente al destinatario
PathErr questo messaggio indica un errore nel processo di path message, viaggia nel verso
opposto del path message
La creazione di un LSP è iniziata dall’ingress router che invia dei path message in
downstream verso l’egress LSR. Questi messaggi sono (vediamo quelli più comuni):
Session Object agisce come session identifier, e contiene gli endpoints LSP più un tunnel-id
(automaticamente assegnato)
RSVP-HOP Object Indica l'indirizzo IP dell'interfaccia sul router che invia il Path Message. Al
router successivo, l'oggetto Hop contiene l'indirizzo IP dell'hop precedente.
Record_route object La lista di tutti gli indirizzi delle interfacce che il path message
attraversa
Explicit_Route Object (ERO) Elenco Strict o loos di router che i path messages RSVP devono
visitare. L'oggetto può contenere strict hops che indicano il percorso esatto da utilizzare.
Oltre allo stricts hop, l'ERO può anche contenere loose hops che indicano un hop che l'LSP
deve attraversare prima di raggiungere l'uscita. Puoi anche usare sia hops strict che loose
nello stesso ERO. NB senza specificare gli hop L’RSVP utilizza l’IGP per scegliere il percorso.
Quanto un path message arriva all’egress router, questo invia indietro verso l’ingress un
RESV message ogni transit LSR che riceve il reverse alloca la nuova label, inoltra il
messaggio al proprio upstream ed installa una nuova entry nella Label Information Base
(LIB).
L’RSVP deve essere refreshato, questo avviene attraverso l’invio dei path message e degli
RESV che di default vengono inviati ogni 30 sec. Di default Se vengono persi 3 messaggi la
sessione cade, questo valore detto keep-multiplier può essere configurato.
RSVP tracking of IGP utilizza l’IGP per monitorare la raggiungibilità del neighboor
Il Patherr indica un errore all’upstream
Gli RSVP teardown messages vengono utilizzati per mettere down LSP, o dall’ingress LSR o
da un transit LSR in caso di fault il PathTear è in direzione del path message
Un ERO è una list di hop che un LSP deve attraversare, questi hops sono identificati con
STRICT o LOOSE, non è detto che LSP segua l’IGP.
Verificare il constraint, in questo caso l’indirizzo indicato nello stricts hops o è l’ip
dell’interfaccia da dove riceve il messaggio o la loopback, in questo caso il costraint è
rimosso dall’ERO ed inviato
L’RRO (Record route Object) viene così compilato ogni router che inoltra il pacchetto
aggiunge l’indirizzo dell’interfaccia da dove lo ha inviato
Per configurare un LSP (configurazione minima) sotto protocol MPLS si deve inserire il
nome dell’LSP e l’end point (di solito la loopback).
Durante la costruzione dell’LSP ogni router riceve una richiesta di reserve bandwidth, se ha
la banda richiesta allora farà parte dell’LSP altrimenti invierà un PathErr.
Il parametro bandwidth non è una policy o rate-limit, se si vuole limitare il traffico si può
utilizzare o l’auto-policing o applicare una policy direttamente nell’lsp
Nel primo esempio utilizziamo l'auto policing applicando l’azione drop a tutte le classi, le
opzioni disponibili sono
class all—Apply the same policer action to all the class types (ct0, ct1, ct2, and ct3).
class ctnumber—Specific class type (ct0, ct1, ct2, or ct3) to which to apply a policer action.
Per ogni interfaccia possiamo anche specificare la percentuale di banda da allocare, esempio
Per configurare un LSP con un path prima si definisce il path (con i nodi loose e strict), e poi
si applica all’LSP con il comando primary
Su ative resv viene indicato il numero di LSP che passano sull’interfaccia, su reserverd la
banda riservata e su Highwater mark la banda massima che è stata riservata sull’interfaccia.
show mpls lsp mostra lo stato degli lsp, opzionale possiamo specificare ingress, egress o
transit
Con i comandi clear rsvp session e clear mpls lsp mettono down gli lsp.
In pratica il router in ingresso setta il TSPEC a 9192 , ogni router invece setta lADSPEC con il
valore minore, alla fine l’egress invia all’ingress il flowspec con il valore calcolato
NB: Dall’esempio vediamo che c’è un MTU di 1500 ma ne possiamo utilizzare solo 1488
perchè tre label (12 bytes) sono utilizzati per
Certe volte è necessario configurare dei p2mp esempio nel caso vpls evpn o multicast. Per
configurare una P2MP bisogna
Nell’esempio precedente vediamo come si applica un P2MP ad una rotta statica (per un
multicast).
I refresh di rsvp sono molto lenti circa 157 secondi, per ottimizzare questi tempi juniper
utilizza l’IGP
Certe volte è importante mantere l’identità dell’LSP fino all’egress router per far ciò si
utilizza il comando ultimate-hop-popping che disabilità il penultimate-hop-popping e fa
l’override dell’explicte-null
Per visualizzare se sul router c’è il Graceful restart o il no-stop routing si utilizza il comando
LDP (Label Distribution Protocol) nasce per uno scopo diverso da RSVP, nasce per scaricare
i router così che non debbano fare il lookup della full table, e non supporta traffic
engineering.
LDP introduce il FEC ( Forwarding Equivalence Class) che sono classi di pacchetti che
vengono trattati allo stesso modo.
Extended Discovery stabilisce rapporti di vicinanza tra router che non sono direttamente
connessi, per far ciò si utilizza l’indirizzo unicast (un esempio è L2CIRCUIT)
L’obiettivo dell’LDP è quello di crare per ogni Egress router un TREE di LSP da tutti i
possibili ingress router. Le Label vengono scambiate da Hop in Hop e per evitare loop segue
l’IGP (motivo per cui non è possibile fare TE)
dove
Error Notification che indicano fatal error che comportano la terminazione della sessione
LDP
Il neighbor discover è un processo simmetrico entrabi i router scambiano degli hello (UDP
646 su indirizzo [Link]) se specificato il transport address questo viene utilizzato per
decidere chi è l’attivo, se non specificato si utilizza il source address del pacchetto hello
Le label vengono assegnate dall’egress verso l’ingress router. La prima label che viene
installata sul router (che è il php) è la label 3 che è la implicit null
Nell’esempio in figura R1 (che è l’egress) invia la net [Link]/32 con label 3(implict null)
l’R2 che è il PHP mette in tabella inet.3 la rete [Link]/32 con nessuna label, e crea una
label (nell’esempio 252) da inviare ad R3, questa lbel viene inserita nella tabella mpls.0
R3 riceve la FEC [Link]/32 label 252 che mette in inet.3 e crea una label per la FEC in
questione (nell’esempio 917, associandola all’operazione da eseguire in questo caso swap
con 252 ed invio ad R2) questo si ripete fino all’ingress
I messaggi di maintenence sessions sono
keepalive
Shutdown
I Keepalice sono gli hello message che di default vengono inviati ogni 5 sec. e di default il
tempo di hold time è 15, questi valori possono essere asimmetrici e configurati.
La configurazione base per LDP richiede che venga inserito il family mpls sull’interfaccia e
che l’interfaccia venga inserita sia su protocol mpls che protocol ldp.
LDP tunneling permette di combinare RSVP e LDP, per far ciò è necessario che i due router
abbiano due tunnell (ed da R2 a R7 e viceversa, per garantire la bidirezionalità) dentro
questi LSPs vengono inviate le label LDP (che vengono scambiate utilizzando la loopback)
Con LDP funzione anche il graceful restart per vedere i valori si utilizza il comando
con show ldp interface vediamo le interfacce che utilizzano LDP ed il numero i vicini per
interfaccia
con show ldp database vediamo le label inviate e ricevuto per un neighbor
Come detto prima tutte gli LSP egress sono inseriti nella inet.3. Un modo per visualizzare
tutte le LDP LSP destination è utilizzare il comando
omettendo il parametro inet.3 vediamo tutte entries LDP installate sul router
Con il comando show mpls label usage vediamo la percentuale del label space utilizzato
RSVP viene integrato anche al BGP, con la policy next-hop self cambiamo il next-hop dei
prefissi, mettendo come next-hop la loopback, se creiamo degli lsp allora nei ruoter ci
saranno due entry per raggiungere la loopback, quella IGP su inet.0 e quella LSP su inet.3
Con RSVP possiamo aggiungere un prefisso raggiungibile attraverso un LSP, questo si fa con
il comando install vediamo un esempio
Se dopo il prefisso aggiungiamo l’opzione active (es. install [Link]/24 active) questa verrà
installa anche in inet.0 come se fosse una statica ma con default preference 7
Di default junos installa gli LSP egress endpoint in inet.3 ed utilizza questi solamente per
risolvere il next-hop BGP, ma se vogliamo possiamo cambiare questo utilizzando il comando
traffic-engineering
Con BGP-IGP inseriemiamo le route e gli egress points sia sulla inet.0 mentre la inet.3 resta
vuota
Può capitare che un link non abbia banda sufficiente quindi il path non può essere creato, di
solito mpls ha dei protocolli di protezione
Link Protection
Link-Node Protection
Sia OSPF che IS-IS possono propagare informazioni addizionali per trasportare informazioni
di traffic engineer
Per configurare il traffic-engineering bisogna indicare il parametro traffic-engineering
all’interno dei protocolli
l’obiettivo del traffic-engineer database è calcolare gli MPLS path all’interno del network,
l’IGP ha tutte le informazioni sulla topologia, l’estensione traffic-engineer aggiunge
informazioni supplementari, queste informazioni devono essere mantenute aggiornate
attraverso il flooding dei link-state update o link-state PDU quando necessario.
Vediamo quale priorità (detto colore) è stata assegnata all’LSP, ci sono 7 livelli, con questo
comando vediamo anche gli indirizzi local e remote, questi possono avere diverse
combinazioni, ogni combinazione rappresenta un tipo di link
Il CSPF è un’evoluzione dell’IGP, in pratica tiene conto di alcuni costrain (es. banda
riservata), se il link non rispetta i costrain allora viene tolto dalla topologia, i link restanti
vengono utilizzati per scegliere il percorso migliore utilizzando IGP. Se con i link restanti
non riusciamo a creare il percorso l’algoritmo restituisce un errore e LSP resta down.
In teoria ogni qualvolta un link libera o alloca della banda significa che tutti i nodi debbano
floodare nella rete questo cambiamento attraverso OSPF LSA o ISIS PDU, questo per
mantenere aggiornato il TE dell’IGP.
Questo significa però un maggiore numero di flood, quindi si è deciso di aggiorarne l’igp
sono se un LSP cambia banda per una valore pari al suo 10% (questo è il valore di default,
che può essere cambiato)
Quando RSVP riceve un messaggio di errore sul link questa informazione viene mantenuta
per 20 secondi (questo valore può essere cambiato con il comando rsvp-error-hold-time 0-
240 sotto protocol mpls) questo per evitare che cspf calcoli inutilmente il path.
Quando nel calcolo CSPF ci sono diversi path, l’algoritmo ne deve scegliere uno, di default lo
sceglie in maniera random senza tener conto della banda disponibile sul path.
Oppure si può utilizzare l’opzione least fill, ciò implica che sceglie il percorso con maggiore
banda disponibile, o most fill che tende ad utilizzare il path con minore banda disponibile
(questa è l’opzione consigliata).
Per configurare l’opzione si utilizzano le opzioni least fill o most fill sotto protocol mpls
label-switch-path nome-lsp
Esistono 32 (da 0 a 31) administrative groups detti anche colori, questi servono a taggare i
link e costringere il path ad utilizzare un determinato colore.
Con il comando show ted database extensive visualizziamo i colori, per configurarli
Pert calcolare il path, CSPF deve avere l’intera visione della rete, cioè in caso di OSPF devono
tutti i router devono essere nella stessa area (stesso livello in caso di IS-IS)
Nel caso in cui i router sono in aree diverse, solo per OSPF si può utilizzare il comando
Per rendere dinamico il calcolo degli lsp si può utilizzare il PCE (Path Computation
Element),. in pratica si delega un server a fare i calcoli. Per far ciò bisogna
Configurare la CPPE
Dichiare il server
Quando il path primario va down, LSP va sul secondario, i tempi di convergenza possono
esseri modificati attraverso:
Revert-timer è il minimo tempo che il circuito deve essere up e stabile prima di spostare il
traffico (Default 60s, se settato a 0 il traffico resterà sul secondario)
con il comando standby il router segnala il secondo path anche se non necessario, questo
serve a ridurre i tempo di signaling in caso di down del primario.
select unconditional da maggiore priorità, significa che utilizzerà questo path a meno che sia
down o degradato
La setup priority viene utilizzata per determinare quale LSP prenderà il posto di un LSP
esistente (ad esempio nel caso in cui l’attuale LSP non abbia banda a sufficienza) vengono
valutate la hold priority dell’esistente con la setup priority del nuovo.
Di default prima di associare il traffico ad un nuovo LSp il preempted LSP è messo down.
Per evitare ciò con la conseguente perdita di traffico si utilizza il soft-preemption
L’MPLS FAST REROUTE permette di segnalare un secondo path che verrà utilizzato nel caso
in cui il primo andasse down. Quando è attivo il router d’ingresso aggiunge un campo ai
messaggi RSVP chiedendo al downstream router di creare un detour LSP. Quando LSP
principale va down se il detour è attivo il traffico viene switchato, se non è attivo viene
inviato un messaggio ResvTear
Il detour di default non ha impostati constraint (quali banda, hop ecc) l’unico constraint
attivo è l'administrative groups (detti anche colori)
con il comando show mpls lsp name name_lsp extensive vediamo le informazioni sul fast-
reroute
Il link protection ha un approccio differente, a differenza del fast reroute che offre un
backup dell’intero LSP, con il link protection prova a creare un backup per l’interfaccia
dov’è configurato il link protection
dopo aver configurato l’interfaccia su protocol RSVP bisogna speficare se il path è link-
protection o node-link-protection
L2VPN
L”VPN fornisce una netta separazione delle network clienti con quelle provider. La
configurazione avviene solo nei PE. La configurazione base prevede
Vediamo la configurazione di un PE
set routing-instances l2vpn1 protocols l2vpn site CE-1 interface ge-0/0/0.0 remote-site-id 2