MPLS: ambiente di test – definizione protocolli di rete – ipotesi link-protection and node-protection
05.03 2024 | by massimilianoArchitettura di riferimento MPLS I protocolli di rete presenti sono: Multicast: Monitoring and Management: Quality of Service In questo documento […]
Architettura di riferimento MPLS

I protocolli di rete presenti sono:
- OSPF (IGP)
- BFD (Bidirectional Forwarding Detection)
- MPLS-TE (Traffic-Engineering)
- LDP signalling
- RSVP-TE signalling (Reservation Protocol)
Multicast:
- Multicast SSM (Source Specific Mcast)
- PIM v2
Monitoring and Management:
- LLDP Link Layer Discovery Protocol
- OAM ethernet link-fault-management
- IPSLA (rpm-probe)
- Netflow
Quality of Service
- DSCP
- EXP
In questo documento si focalizzano alcuni ambienti di test significativi, ed in questa fase da non considerare esaustivi per tutti gli scenari possibili che sono oggetto di verifica.
Protocollo OSPF
- Tempi di convergenza sulla base dei parametri di LSA/SFP throttling:
tempo di rilevazione del fault (failure detection)
tempo di propagazione evento (failure propagation)
tempo di ricalcolo del best-path SPT (processing new information)
tempo di aggiornamento della tabella RIB (update routing table)
Il Failure detection è un meccanismo che si basa su messaggi ricorsivi tra ospf peer che ne determina la status UP attraverso parametri di hello-time e dead-time.
BFD è un meccanismo che convalida le operazioni di trasmissione (forwarding) con invio e ricezione periodica di keepalive tra una coppia di router ed ha la facoltà di rilevazione di un fault nell’ordine di sub-seconds.
Il failure propagation è interessato attraverso la configurazione di timers LSA throttling per assicurare una maggiore velocità di propagazione delle informazioni; LSA pacing può essere gestito per aggiornare (refresh) un gruppo di LSA anziché uno per volta appena il tempo (age) di verifica validità si esaurisca.
Il processing new information riguarda il processo di elaborare queste informazioni di nuove LSA per determinare il best-path SPF a seguito di un cambiamento topologico della rete e si configura con SPF throttling attraverso tre valori in milliseconds di cui il primo si occupa di iniziare il ricalcolo del nuovo SPF, il secondo indica un tempo di intervallo tra due differenti ricalcoli in caso di sovrapposizione a causa di change-notification durante il tempo di hold-time ed il terzo rappresenta un tempo di hold-time massimo raggiungibile
Best Practices Cisco suggeriscono di considerare anche un intervallo minimo di consenso per uno stesso LSA per evitare che se questo dovesse arrivare prima dell’intervallo minimo settato questa stessa informazione verrebbe scartata; il comando che ne rappresenta è LSA arrival settato con un valore minore oppure uguale a quello dell’hold-time interval
2. ECMP (equal cost multipath)
3. OSPF LFA LOOP-FREE ALTERNATE FRR
Questa feature permette:
- Trovare un path di backup quando il path principale fallisce entro un valore temporale inferiore a 50 msec;
- Ospf calcola il path di backup attraverso un ordine prestabilito (pre-compuation) installando il backup next-hop nella sua forwarding-table
- Ospf utilizza due metodi per il calcolo del LFA FRR:
per-link: per tutte le prefix che sono raggiungibili attraverso uno stesso link, ospf calcola il path di backup assegnando loro lo stesso indirizzo next-hop
per-prefix: in questo caso ospf utilizza un path di backup su base prefix offrendo un migliore load-balancing (quindi ciascuna prefix può utilizzare differenti links alternativi)
Quando ospf utilizza un path di backup non fa riferimento al best-path su base metrica ma utilizza un algoritmo di tie-break per decidere quale percorso utilizzare
Tra questi algoritmi citiamo SRLG (shared risk link groups), interface protection, broadcast interface protection, node protection, downstream path, ECMP primario e secondario
4. OSPF REMOTE LFA LOOP-FREE ALTERNATE FRR
E’ sicuramente di interesse questa tecnica di FRR, in quanto prevede la possibilità di bypassare un determinato nodo (router) come next-hop path utilizzando una tecnica di tunneling attraverso il protocollo di segnalazione LDP (LSP tunnel).
Si riporta solo per informazione una configurazione tipo:
mpls ip
mpls ldp autoconfig area 0
!
mpls ldp discovery targeted-hello accept
!
router ospf < process >
fast-reroute per-prefix enable area 0 prefix-priority low
fast-reroute keep-all paths
fast-reroute per-prefix remote-lfa tunnel mpls-ldp

R1 punto di vista: R2 ed R3 appartengono al concetto di P-Space calcolato via SPF con R1 come root path per raggiungere le destinazione target senza passare per il link failed;
R5 punto di vista: R3 ed R4 appartengono al concetto di Q-Space calcolato via SPF con R5 come root path
R3 appartiene al concetto di PQ-Space in quanto appartiene sia a P che a Q space; il PQ router è usato come endpoint del tunnel MPLS remote-LSA
RSVP-TE
La segnalazione Traffic-Engineering è affidato al protocollo RSVP-TE dove abbiamo i seguenti parametri oggetto di verifica:
label: utilizzata nei messaggi di tipo resv per la costruzione di una distribuzione di label in modalità downstream on demand tra tutti i nodi della rete
label request: utilizzato nei messaggi di tipo path per la richiesta di una label binding ad ogni hop
label explicit: contiene una lista di hop che definiscono il percorso segnalato
record route: è un’insieme di informazioni riguardo gli hop e le label segnalate lungo il percorso
session attribute: è una lista di attributi richiesti per un determinato LSP (priority, protection, etc…)
La selezione di un path LSP è delegato al nodo headend (PE di ingresso) e può essere fatto in modo statico o dinamico.
Il meccanismo di Fast-Reroute lavora sulla base di un pre-segnalato path di backup dove in caso di fault del path primario, un nodo è in grado di commutare il traffico sul path di backup.
FRR utilizza due meccanismi di protezione e sono
- facility backup: utilizza il label stacking per re-ruotare multipli LSP protetti da un singolo LSP di backup
- one-to-one backup: ogni LSP-TE richiede un dedicato tunnel di backup
Link Protection: quando un nodo segnala un LSP con link-protection tutti i router lungo il percorso cercano di associare il tunnel LSP-TE con un backup tunnel verso il NHOP downstream; questo significa che un qualsiasi nodo può diventare un potenziale PLR segnalando la sua disponibilità in termini di protezione ed utilizza il record-route come segnalazione
Quando un link fallisce, il nodo PLR (Point of Local Repair) re-ruota il path LSP-TE in un nuovo tunnel LSP-TE di backup e questo stabilisce un pushing delle label del tunnel di backup on-top allo stack di label precedentemente creato con il tunnel primario (cioè prima del fault).
Link Protection lavora anche come protezione nei confronti di un fault che coinvolge un gruppo di link/interface allo stesso tempo (vedi SLRG shared-risk links groups).
Node Protection: questa tecnica utilizza un LSP-TE di backup destinato al PLR next-next hop (NNHOP); le funzionalità di segnalazione sono uguali a quelle del link-protection.
mpls traffic-eng administrative-weight # (di default è il valore di metrica IGP)
mpls traffic-eng attribute flags < flag > #(di default = 0)
ip rsvp bandwidth < bw > # (di default = 75% del valore di capacità della interfaccia fisica)
!
tunnel mpls traffic-eng affinity # utilizzato per includere/escludere un path
tunnel mpls traffic-eng priority # utilizzato per valori di priorità su base setup ed holding)
!
tunnel mpls traffic-eng path-option 10 explicit name < name > # utilizzo di un path in modo esplicito
tunnel mpls traffic-eng path-option 20 dynamic # utilizzo di un path in modo dinamico (CSPF)
tunnel mpls traffic-eng fast-reroute # richiesta di protezione
!
mpls traffic-eng reoptimize timer frequency # permette di stabilire un tempo di riottimizzazione del percorso
Ipotesi Link-Protection: condizione di partenza

Ipotesi Link-Protection: fault link-2

Ipotesi Link-Protection: fault link-4 (inter-P router)

Ipotesi Node-Protection: fault-node PE2

Ipotesi Node-Protection: fault-node P router

Si riportano per completezza alcuni comandi ed output in ottica doppio vendor Cisco e Juniper

OSPF Neighbor
PE1#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
10.255.255.1 0 FULL/ – 00:00:32 1.1.1.5 GigabitEthernet0/1
root@P1> show ospf neighbor
Address Interface State ID Pri Dead
1.1.1.2 em0.0 Full 10.255.255.2 128 33
1.1.1.6 em1.0 Full 10.255.255.10 1 33
OSPF Database Cisco
PE1#show ip ospf database
OSPF Router with ID (10.255.255.10) (Process ID 1)
Router Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# Checksum Link count
10.255.255.1 10.255.255.1 235 0x80000004 0x00AD0C 4
10.255.255.2 10.255.255.2 228 0x80000004 0x00485D 4
10.255.255.10 10.255.255.10 364 0x80000003 0x00B87E 4
10.255.255.20 10.255.255.20 230 0x80000003 0x0078BC 3
Type-10 Opaque Link Area Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# Checksum Opaque ID
1.0.0.0 10.255.255.10 648 0x80000001 0x00ACFD 0
1.0.0.0 10.255.255.20 569 0x80000001 0x00D4C1 0
1.0.0.1 10.255.255.1 377 0x80000001 0x001CFC 1
1.0.0.1 10.255.255.2 244 0x80000001 0x0020F6 1
1.0.0.2 10.255.255.10 364 0x80000001 0x00418A 2
1.0.0.3 10.255.255.1 365 0x80000001 0x0022B0 3
1.0.0.3 10.255.255.2 236 0x80000001 0x00D112 3
1.0.0.3 10.255.255.20 231 0x80000001 0x002295 3
1.0.0.4 10.255.255.1 235 0x80000001 0x00EBF6 4
1.0.0.4 10.255.255.2 230 0x80000001 0x006A53 4
OSPF Database Junos
root@P1> show ospf database
OSPF database, Area 0.0.0.0
Type ID Adv Rtr Seq Age Opt Cksum Len
Router *10.255.255.1 10.255.255.1 0x80000004 250 0x22 0xad0c 72
Router 10.255.255.2 10.255.255.2 0x80000004 244 0x22 0x485d 72
Router 10.255.255.10 10.255.255.10 0x80000003 380 0x22 0xb87e 72
Router 10.255.255.20 10.255.255.20 0x80000003 246 0x22 0x78bc 60
OpaqArea 1.0.0.0 10.255.255.10 0x80000001 663 0x20 0xacfd 28
OpaqArea 1.0.0.0 10.255.255.20 0x80000001 585 0x20 0xd4c1 28
OpaqArea*1.0.0.1 10.255.255.1 0x80000001 391 0x22 0x1cfc 28
OpaqArea 1.0.0.1 10.255.255.2 0x80000001 259 0x22 0x20f6 28
OpaqArea 1.0.0.2 10.255.255.10 0x80000001 380 0x20 0x418a 132
OpaqArea*1.0.0.3 10.255.255.1 0x80000001 379 0x22 0x22b0 136
OpaqArea 1.0.0.3 10.255.255.2 0x80000001 251 0x22 0xd112 136
OpaqArea 1.0.0.3 10.255.255.20 0x80000001 247 0x20 0x2295 132
OpaqArea*1.0.0.4 10.255.255.1 0x80000001 250 0x22 0xebf6 136
OpaqArea 1.0.0.4 10.255.255.2 0x80000001 246 0x22 0x6a53 136
LDP ADJ and MPLS Forwarding-Table Cisco
PE1#show mpls ldp neighbor
Peer LDP Ident: 10.255.255.1:0; Local LDP Ident 192.168.255.10:0
TCP connection: 10.255.255.1.646 – 192.168.255.10.23153
State: Oper; Msgs sent/rcvd: 10/5; Downstream
Up time: 00:00:07
LDP discovery sources:
GigabitEthernet0/1, Src IP addr: 1.1.1.5
Addresses bound to peer LDP Ident:
1.1.1.1 1.1.1.5
PE1#show mpls forwarding-table
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
16 No Label 1.1.1.0/30 0 Gi0/1 1.1.1.5
17 No Label 1.1.1.8/30 0 Gi0/1 1.1.1.5
18 [T] Pop Label 192.168.255.20/32 0 Tu20 point2point
19 Pop Label 10.255.255.1/32 0 Gi0/1 1.1.1.5
LDP ADJ and MPLS-LSP Status Junos
root@P1> show ldp neighbor
Address Interface Label space ID Hold time
1.1.1.2 em0.0 10.255.255.2:0 12
1.1.1.6 em1.0 192.168.255.10:0 12
!
ospf {
traffic-engineering;
area 0.0.0.0 {
}
interface lo0.0;
root@P1> show mpls lsp
Ingress LSP: 0 sessions
Total 0 displayed, Up 0, Down 0
Egress LSP: 0 sessions
Total 0 displayed, Up 0, Down 0
Transit LSP: 2 sessions
To From State Rt Style Labelin Labelout LSPname
192.168.255.10 192.168.255.20 Up 1 1 SE 299856 0 to-pe1
192.168.255.20 192.168.255.10 Up 1 1 SE 299872 299856 to-pe2
Total 2 displayed, Up 2, Down 0
MPLS TE Tunnel Cisco
PE1#show mpls traffic-eng tunnels tunnel 20
Name: to-pe2 (Tunnel20) Destination: 192.168.255.20
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 10, type dynamic (Basis for Setup, path weight 3)
Config Parameters:
Bandwidth: 0 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
AutoRoute: enabled LockDown: disabled Loadshare: 0 bw-based
auto-bw: disabled
Active Path Option Parameters:
State: dynamic path option 10 is active
BandwidthOverride: disabled LockDown: disabled Verbatim: disabled
InLabel : –
OutLabel : GigabitEthernet0/1, 299872
RSVP Signalling Info:
Src 192.168.255.10, Dst 192.168.255.20, Tun_Id 20, Tun_Instance 29
RSVP Path Info:
My Address: 1.1.1.6
Explicit Route: 1.1.1.5 1.1.1.2 1.1.1.10 192.168.255.20
Record Route: NONE
Tspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits
RSVP Resv Info:
Record Route: 10.255.255.1 1.1.1.5(299872) 10.255.255.2
1.1.1.2(299856) 192.168.255.20(0)
Fspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits
Shortest Unconstrained Path Info:
Path Weight: 3 (TE)
Explicit Route: 1.1.1.5 1.1.1.2 1.1.1.10 192.168.255.20
History:
Tunnel:
Time since created: 1 hours, 43 minutes
Time since path change: 1 hours, 14 minutes
Number of LSP IDs (Tun_Instances) used: 29
Current LSP:
Uptime: 1 hours, 14 minutes
Selection: reoptimization
Prior LSP:
ID: path option 10 [28]
Removal Trigger: path error
PE1#