La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
Questo documento descrive una panoramica tecnica dei micro-loop IS-IS, spiega le condizioni in cui si verificano e descrive i principi e i meccanismi utilizzati per prevenirli.
Cisco raccomanda la conoscenza di base della versione 6 di Intermediate System to Intermediate System (ISIS) Segment Routing (SR).
Le informazioni fornite in questo documento si basano su Device: Network Convergence System (NCS) 540, NCS 5500.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
IS-IS è un protocollo di routing allo stato del collegamento ampiamente implementato utilizzato nelle reti di provider di servizi su larga scala grazie alla sua rapida convergenza e scalabilità. Tuttavia, durante le modifiche alla topologia, ad esempio errori di collegamenti o nodi, possono verificarsi incoerenze di inoltro temporanee, comunemente note come microloop, mentre i router aggiornano le basi di informazioni di inoltro (FIB, Forwarding Information Base) in momenti diversi. Questi microloop causano perdite temporanee dei pacchetti, un aumento della latenza o blocchi del traffico, che possono avere un impatto negativo sulle applicazioni sensibili alla latenza e in tempo reale.
Il protocollo di routing IS-IS sfrutta i meccanismi di prevenzione dei microloop di Segment Routing (SR e SRv6) per impedire tali loop di inoltro transitori durante la convergenza della rete. Questi meccanismi garantiscono l'inoltro senza loop anche durante la transizione della rete a un nuovo stato stabile.

Figura 1. Diagramma della topologia di rete
interface Loopback100
ipv6 address <>
interface <>
ipv6 enable
router isis <>
is-type level-2-only
net <>
address-family ipv6 unicast
metric-style wide
microloop avoidance segment-routing ## enables Microloop avoidance mechanism
microloop avoidance rib-update-delay <> ## specify the time in ms
router-id Loopback100
segment-routing srv6
locator <>
interface Loopback100
address-family ipv6 unicast
interface <>
point-to-point
address-family ipv6 unicast
fast-reroute per-prefix
fast-reroute per-prefix ti-lfa ## enables topology-independent loop-free alternates (TI-LFA)
segment-routing
srv6
encapsulation
source-address <>
!
locators
locator <>
micro-segment behavior unode psp-usd ## enables SRv6 Micro-SIDs (uSIDs) the PSP-USD (Penultimate Segment Pop - Ultimate Segment Pop) flavor
prefix <configure the locator >
router bgp <>
vrf <>
address-family <> unicast
segment-routing srv6 ## steering the packet using SRv6 uSID
locator <>
Quando non vi sono modifiche nella rete, la rete 10.10.1.0/24 viene annunciata da Provider Edge 1 (PE1) tramite Border Gateway Protocol (BGP) a Provider Edge 2 (PE2), la rete 10.10.20.0/24 viene annunciata da PE2 a PE1.
RP/0/RP0/CPU0:PE1#show bgp vrf mobility 10.10.1.0/24 detail
BGP routing table entry for 10.10.1.0/24, Route Distinguisher: 10.10.11.11:0
SRv6-VPN SID: fc00:1000:a810:e003::/64
Local
0.0.0.0 from 0.0.0.0 (10.10.11.11), if-handle 0x3c000090
Origin incomplete, metric 0, localpref 100, weight 32768, valid, redistributed, best, group-best, import-candidate
Received Path ID 0, Local Path ID 1, version 8
Extended community:
Nota: fc00:1000:a810:e003::/64 >> fc00:1000:a810 ## localizzatore di PE1, e003 ## funzione.
RP/0/RP0/CPU0: PE1#show bgp vrf mobility 10.10.20.0/24 detail
Local
fc00:1000:a822::22 (metric 2000) from fc00:1000:a822::22 (10.10.22.22), if-handle 0x00000000
Received Label 0xe0030
Origin incomplete, metric 0, localpref 100, valid, internal, best, group-best, import-candidate, imported
Received Path ID 0, Local Path ID 1, version 714
Extended community:
PSID-Type:L3, SubTLV Count:1, R:0x00,
SubTLV:
T:1(Sid information), Sid:fc00:1000:a820::, F:0x00, R2:0x00, Behavior:63, R3:0x00, SS-TLV Count:1
SubSubTLV:
T:1(Sid structure):
Length [Loc-blk,Loc-node,Func,Arg]:[32,16,16,0], Tpose-len:16, Tpose-offset:48
Source AFI: VPNv4 Unicast, Source VRF: default, Source Route Distinguisher: 10.10.22.22:2
Nota: Questo file 10.10.20.0/24 viene ricevuto da PE2 su PE1 con il sid di localizzazione fc00:1000:a820:: e funzione e0030.
RP/0/RP0/CPU0: PE1#show route vrf mobility 10.10.20.0/24 detail
Known via "bgp 100", distance 200, metric 0, type internal
Routing Descriptor Blocks
fc00:1000:a822::22, from fc00:1000:a822::22
<snip>
SRv6 Headend: H.Encaps.Red [f3216], SID-list {fc00:1000:a820:e003::}
Nota: In modalità stazionaria i pacchetti destinati a Customer Edge 2 (CE2) vengono inviati a PE2 con l'indirizzo di destinazione dell'intestazione IPv6 (Internet Protocol versione 6) fc00:1000:a820:e003::.
Pacchetto inviato da PE1 in stato stabile.
Frame 2: 136 bytes on wire (1088 bits), 136 bytes captured (1088 bits)
Ethernet II, Src: Cisco_a7:8a:0d (c4:b2:39:a7:8a:0d), Dst: Cisco_ff:d4:16 (a0:b4:39:ff:d4:16)
Destination: Cisco_ff:d4:16 (a0:b4:39:ff:d4:16)
Source: Cisco_a7:8a:0d (c4:b2:39:a7:8a:0d)
Type: IPv6 (0x86dd)
Internet Protocol Version 6, Src: fc00:1000:a811::11, Dst: fc00:1000:a820:e003::
0110 .... = Version: 6
<0110 .... = Version: 6 [This field makes the filter match on "ip.version == 6" possible]>
.... 0000 0000 .... .... .... .... .... = Traffic Class: 0x00 (DSCP: CS0, ECN: Not-ECT)
.... 0000 0000 0000 1110 1111 = Flow Label: 0x000ef
Payload Length: 82
Next Header: IPIP (4)
Hop Limit: 254
Source Address: fc00:1000:a811::11
<Source or Destination Address: fc00:1000:a811::11>
<[Source Host: fc00:1000:a811::11]>
<[Source or Destination Host: fc00:1000:a811::11]>
Destination Address: fc00:1000:a820:e003::
<Source or Destination Address: fc00:1000:a820:e003::>
<[Destination Host: fc00:1000:a820:e003::]>
<[Source or Destination Host: fc00:1000:a820:e003::]>
Internet Protocol Version 4, Src: 10.10.1.2, Dst: 10.10.20.2
0100 .... = Version: 4
.... 0101 = Header Length: 20 bytes (5)
Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
Nota:
Percorso di backup e primario per calcolo tramite TI-LFA (Loop-Free Alternate) indipendente dalla topologia.
RP/0/RP0/CPU0:PE1#show cef ipv6 fc00:1000:a820::
via fe80::a2b4:39ff:feff:d416/128, TenGigE0/0/0/9, 11 dependencies, weight 0, class 0, backup (TI-LFA) [flags 0xb00]
path-idx 0 NHID 0x0 [0x8ef0f2b0 0x0]
next hop fe80::a2b4:39ff:feff:d416/128, Repair Node(s): fc00:1000:a802::2
local adjacency
SRv6 H.Insert.Red SID-list {fc00:1000:a802::}
via fe80::9ee1:76ff:feca:e8a8/128, TenGigE0/0/0/8, 4 dependencies, weight 0, class 0, protected [flags 0x400]
path-idx 1 bkup-idx 0 NHID 0x0 [0x8f2db710 0x0]
next hop fe80::9ee1:76ff:feca:e8a8/128

Figura 2. Presenza di microcircuiti
In PE1, quando il collegamento tengig 0/0/8 diventa inattivo, nel percorso di backup tra PE1 e P1, si sospetta un micro-loop che a sua volta attiva il meccanismo MLA (Microloop avoidance) in PE1.
RP/0/RP0/CPU0:PE1#show logging
RP/0/RP0/CPU0:Mar 21 08:30:10.244 UTC: ifmgr[307]: %PKT_INFRA-LINK-5-CHANGED : Interface TenGigE0/0/0/8, changed state to Administratively Down
Quando l'interfaccia TenGigE0/0/0/8 è inattiva, per prima cosa viene generato un evento Fast Reroute (FRR), ossia il traffico viene inviato sul percorso TI-LFA.
RP/0/RP0/CPU0:PE1#show cef trace
Mar 21 08:30:10.244 fib/common/frr 0/RP0/CPU0 43# t5991 Common: FRR-ITF-EVENT: proto=3 type=0 ifh=0x3c0000a0
Mar 21 08:30:10.244 fib/common/frr 0/RP0/CPU0 13# t5991 IPv6: FRR-LOOKUP-DONE: evt=0, ifh=0x3c0000a0, main_ifh=0, proto=1
Mar 21 08:30:10.244 fib/common/frr 0/RP0/CPU0 12# t5991 IPv6: FRR-ITF-EVENT: Global Active; handle:0x3c0000a0[0x0]
Mar 21 08:30:10.244 fib/common/frr 0/RP0/CPU0 13# t5991 IPv6: FRR-ITF-EVENT: FRR Active; handle:0x3c0000a0[0x0]
Mar 21 08:30:10.244 fib/common/frr 0/RP0/CPU0 1# t5991 IPv6: FRR-EVENT: evt=0, notify protocol=1, ifh=0x0, switched=111768 ns
Mar 21 08:30:10.244 fib/common/fast 0/RP0/CPU0 20# t5991 Common: PLAT-UPD-FAST: Proto=common, Obj[FIB_DATA_TYPE2_ALL]=0, flags=0 Acttype=FRR_EOD
Alle 08:30:10:307, è presente un'adiacenza di eliminazione IS-IS.
RP/0/RP0/CPU0:PE1#show isis lsp last 20
08:30:10:307 1 Te0/0/0/8 DELADJ
Alle 08:30:10:358, è stato ricevuto Label Switched Path (LSP), è stato calcolato Small Form-Factor Pluggable (SFP) ed è stato attivato uloop.
RP/0/RP0/CPU0:PE1#show isis spf-log detail
08:30:10:358 FSPF 2 5 2 PE1.00-00 DELADJ LINKBAD
Delay: 50ms (since first trigger)
46257ms (since end of last calculation)
Trigger Link: P3.00
Trigger Next Hop: P3
New LSP Arrivals: 0
SR uloop: Link Down
Per visualizzare questi eventi più dettagliatamente nella traccia IS-IS, in questo caso il tempo di ritardo dell'aggiornamento della base di informazioni di routing (RIB, Routing Information Base) configurato è: 65535 ms ~ 65 sec.
RP/0/RP0/CPU0:PE1#show isis trace all
Mar 21 08:30:10.308 isis/Mring_2801/std 0/RP0/CPU0 t8712 isis_roca_event_schedule_result_debug:329 SPF_TRIGGER_PRIMARY L2 IPv6 Unicast
Mar 21 08:30:10.308 isis/Mring_2801/spf 0/RP0/CPU0 t8712 isis_roca_spf_linkchanged_trigger:2609 SPF_TRIGGER_LINKCHANGED_ADD L2 IPv6 Unicast 0370.0011.0011.00
Mar 21 08:30:10.358 isis/Mring_2801/std 0/RP0/CPU0 6669# t8712 isis_roca_event_start:1541 SPF_ROCA_START L2 IPv6 Unicast SPF Type: Full >>>>>>>>. SPF was trigger
Mar 21 08:30:10.358 isis/Mring_2801/sr_ 0/RP0/CPU0 t8712 isis_roca_sr_uloop_prep:3069 SR_ULOOP_SPF_PREP_START L2 IPv6 Unicast SPF Type: Full>>>>>>>> uloop activated and uloop path installed
Mar 21 08:30:10.358 isis/Mring_2801/sr_ 0/RP0/CPU0 8451# t8712 isis_roca_uloop_install_exp_path:3915 SR_ULOOP_DETAIL_ADD_EXP_PATH L2 IPv6 Unicast SPF Type: Full
Mar 21 08:30:10.358 isis/Mring_2801/sr_ 0/RP0/CPU0 t8712 isis_roca_prefix_update_run:1040 SR_ULOOP_SPF_START_DELAYED_UPD_TIMER_8 L2 IPv6 Unicast SPF Type: Full 65535 >>>>>> the MLA timer has began
Mar 21 08:30:10.864 isis/Mring_2801/std 0/RP0/CPU0 t8712 isis_roca_frr_run:1538 SPF_FRR_DEFERRED_ULOOP L2 IPv6 Unicast
Mar 21 08:31:15.893 isis/Mring_2801/sr_ 0/RP0/CPU0 t8712 isis_ip_rib_worker_delayed_update_run:2344 SR_ULOOP_EVENT_DELAYED_UPDATE L2 IPv6 Unicast >> after 65 seconds the rib is updated and MLA is deactivated
Stato RIB al momento in cui MLA è attivo.
RP/0/RP0/CPU0:PE1#show route ipv6 fc00:1000:a820:: detail
Routing entry for fc00:1000:a820::/48
Routing Descriptor Blocks
fe80::a2b4:39ff:feff:d416, from fc00:1000:a822::22, via TenGigE0/0/0/9
Route metric is 6000
<snip>
SRv6 Headend: H.Insert.Red [f3216], SID-list {fc00:1000:a802::} ##this locator of P2 is inserted before the SRH
Stato Cisco Express Forwarding (CEF) nel momento in cui MLA è attivo.
RP/0/RP0/CPU0: PE1#show cef ipv6 fc00:1000:a820:: detail
local adjacency to TenGigE0/0/0/9
<snip>
via fe80::a2b4:39ff:feff:d416/128, TenGigE0/0/0/9, 10 dependencies, weight 0, class 0 [flags 0x0]
SRv6 H.Insert.Red SID-list {fc00:1000:a802::} ## P node (locator of P2)sid is inserted into the packet
Load distribution: 0 (refcount 9)
Hash OK Interface Address
0 Y TenGigE0/0/0/9 fe80::a2b4:39ff:feff:d416
Un pacchetto proveniente da PE1 viene inoltrato tramite P1 con l'uSID (Micro-Segment Identifier) P2s come prima destinazione attiva. Quando il pacchetto raggiunge il valore P2, il comportamento SRv6 associato all'uSID attiva la decapsulamento dell'intestazione di routing del segmento (SRH), dopodiché il pacchetto originale viene inoltrato a PE2 in modalità di inoltro MLA.

Figura 3. Percorso utilizzato durante MLA
Pacchetto inoltrato da PE1 e P1 durante MLA.
Frame 1: 160 bytes on wire (1280 bits), 160 bytes captured (1280 bits)
Ethernet II, Src: Cisco_a7:8a:0d (c4:b2:39:a7:8a:0d), Dst: Cisco_ff:d4:16 (a0:b4:39:ff:d4:16)
Internet Protocol Version 6, Src: fc00:1000:a811::11, Dst: fc00:1000:a802:: >> during MLA the 1st active destination locator is of P2
0110 .... = Version: 6
<0110 .... = Version: 6 [This field makes the filter match on "ip.version == 6" possible]>
.... 0000 0000 .... .... .... .... .... = Traffic Class: 0x00 (DSCP: CS0, ECN: Not-ECT)
.... 0000 0000 0000 1110 1111 = Flow Label: 0x000ef
Payload Length: 106
Next Header: Routing Header for IPv6 (43) >> indicates the next header is a SRH
Hop Limit: 254
Source Address: fc00:1000:a811::11
<Source or Destination Address: fc00:1000:a811::11>
<[Source Host: fc00:1000:a811::11]>
<[Source or Destination Host: fc00:1000:a811::11]>
Destination Address: fc00:1000:a802::
<Source or Destination Address: fc00:1000:a802::>
<[Destination Host: fc00:1000:a802::]>
<[Source or Destination Host: fc00:1000:a802::]>
Routing Header for IPv6 (Segment Routing) >>>>>>>>> SRH header which contains the orginal PE2 locator
Next Header: IPIP (4)
Length: 2
[Length: 24 bytes]
Type: Segment Routing (4)
Segments Left: 1
Last Entry: 0
Flags: 0x00
Tag: 0000
Address[0]: fc00:1000:a820:e003:: >>>>>>>>>>>>>>>> PE2 locator : function
Internet Protocol Version 4, Src: 10.10.1.2, Dst: 10.10.20.2
0100 .... = Version: 4
.... 0101 = Header Length: 20 bytes (5)
Dopo la decapsulazione, il pacchetto originale viene inviato da P2 e l'SRH rimosso da P2 durante l'MLA.
Frame 1: 136 bytes on wire (1088 bits), 136 bytes captured (1088 bits)
Ethernet II, Src: Cisco_87:d8:58 (b0:a6:51:87:d8:58), Dst: Cisco_af:48:01 (c8:47:09:af:48:01)
Internet Protocol Version 6, Src: fc00:1000:a811::11, Dst: fc00:1000:a820:e003::
0110 .... = Version: 6
<0110 .... = Version: 6 [This field makes the filter match on "ip.version == 6" possible]>
.... 0000 0000 .... .... .... .... .... = Traffic Class: 0x00 (DSCP: CS0, ECN: Not-ECT)
.... 0000 0000 0000 1110 1111 = Flow Label: 0x000ef
Payload Length: 82
Next Header: IPIP (4)
Hop Limit: 252
Source Address: fc00:1000:a811::11
<Source or Destination Address: fc00:1000:a811::11>
<[Source Host: fc00:1000:a811::11]>
<[Source or Destination Host: fc00:1000:a811::11]>
Destination Address: fc00:1000:a820:e003::
<Source or Destination Address: fc00:1000:a820:e003::>
<[Destination Host: fc00:1000:a820:e003::]>
<[Source or Destination Host: fc00:1000:a820:e003::]>
Internet Protocol Version 4, Src: 10.10.1.2, Dst: 10.10.20.2
Data (62 bytes)
Dopo la convergenza (dopo il timer di ritardo dell'aggiornamento RIB), l'SRH inserito viene rimosso e il pacchetto viene inviato al percorso IGP (Interior Gateway Protocol) convergente.
RP/0/RP0/CPU0: PE1#show cef ipv6 fc00:1000:a822::22/128
local adjacency to TenGigE0/0/0/9
Prefix Len 128, traffic index 0, precedence n/a, priority 1
via fe80::a2b4:39ff:feff:d416/128, TenGigE0/0/0/9, 9 dependencies, weight 0, class 0 [flags 0x0]
path-idx 0 NHID 0x0 [0x8ef0f2b0 0x0]
next hop fe80::a2b4:39ff:feff:d416/128
local adjacency
|
Ora |
Azione |
Meccanismo |
|
08:30:10.244 |
Errore di collegamento, traffico spostato sul percorso di backup |
TI-LFA |
|
08:30:10:307 |
LSP ricevuto, calcolato nuovo SPF (Shortest Path First) |
MLA (attivato) |
|
08:30:10.358 |
L'aggiornamento RIB è ritardato, il traffico sta utilizzando il tunnel MLA |
MLA (attivo) |
|
08:31:15.893 |
Scadenza del timer ritardata, percorso finale installato in FIB |
Convergenza completa |
In questo documento viene descritto in che modo i percorsi uSID SRv6 annunciati da IS-IS supportano MLA durante la convergenza di rete. Codificando le finalità topologiche ordinate direttamente nell'elenco uSID, il traffico viene indirizzato attraverso una sequenza deterministica di nodi, garantendo l'inoltro senza loop anche quando i calcoli IS-IS SPF sono temporaneamente incoerenti in tutta la rete.
Durante la convergenza, i pacchetti in uscita dai PE in entrata prendono la sequenza uSID precalcolata, attraversando i nodi P intermedi senza affidarsi a decisioni di hop successivo IGP transitorie. Il comportamento di decapsulamento all'endpoint uSID designato garantisce una transizione pulita verso l'inoltro nativo una volta completato il segmento protetto. Questa interazione strettamente accoppiata tra gli aggiornamenti del control-plane IS-IS e i comportamenti del data-plane uSID SRv6 consente un reindirizzamento rapido e deterministico.
MLA basato su uSID IS-IS fornisce una soluzione scalabile, con riconoscimento della topologia e semplice da utilizzare per una convergenza priva di microloop, che la rende particolarmente adatta per le reti di grandi dimensioni abilitate per SRv6 in cui è fondamentale reindirizzare rapidamente il traffico e gestirlo in modo deterministico.
| Revisione | Data di pubblicazione | Commenti |
|---|---|---|
1.0 |
30-Jan-2026
|
Versione iniziale |
Feedback