Table des matières

Introduction

Conditions préalables

Exigences

Composants utilisés

Présentation de Microloop

Configuration générique

En Régime Permanent

Séquence d’événements lorsque l’interface TenGigE0/0/0/8 (chemin principal) sur PE1 tombe en panne

Récapitulatif du calendrier

Conclusion

Commandes

Introduction

Ce document décrit une vue d'ensemble technique des micro-boucles IS-IS, explique les conditions dans lesquelles elles se produisent et décrit les principes et les mécanismes utilisés pour les empêcher.

Conditions préalables

Exigences

Cisco vous recommande d'avoir des connaissances de base sur le routage de segment (SR) ISIS (Intermediate System to Intermediate System) version 6.

Composants utilisés

Les informations contenues dans ce document sont basées sur Device : Network Convergence System (NCS) 540, NCS 5500.

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.

Présentation de Microloop

IS-IS est un protocole de routage à état de liens largement déployé, utilisé dans les réseaux de fournisseurs de services à grande échelle en raison de sa convergence et de son évolutivité rapides. Cependant, lors de modifications topologiques telles que des pannes de liaison ou de noeud, des incohérences de transfert passagères, communément appelées microboucles, peuvent se produire lorsque les routeurs mettent à jour leurs bases d’informations de transfert (FIB) à différents moments. Ces micro-boucles entraînent une perte de paquets temporaire, une latence accrue ou un blocage du trafic, ce qui peut avoir un impact négatif sur les applications en temps réel et sensibles à la latence.

Le protocole de routage IS-IS exploite les mécanismes d’évitement de micro-boucle du routage de segment (SR et SRv6) afin d’empêcher de telles boucles de transfert transitoires pendant la convergence du réseau. Ces mécanismes assurent un transfert sans boucle même lorsque le réseau passe à un nouvel état stable.

Figure 1. Schéma de topologie du réseau

Configuration générique

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 <>

En Régime Permanent

En l'absence de modification dans le réseau, le réseau 10.10.1.0/24 est annoncé par le périphérique PE1 (Provider Edge 1) via le protocole BGP (Border Gateway Protocol) au périphérique PE2 (Provider Edge 2), et le réseau 10.10.20.0/24 est annoncé par le périphérique PE2 au périphérique 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:

Remarque : fc00:1000:a810:e003::/64 >> fc00:1000:a810 ## locator of PE1, e003 ## function.

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

Remarque : Cette adresse 10.10.20.0/24 est reçue de PE2 sur PE1 avec le sid de localisation fc00:1000:a820:: et la fonction 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::}

Remarque : En état stable, les paquets destinés à la périphérie client 2 (CE2) sont envoyés à PE2 avec l'adresse de destination d'en-tête du protocole Internet version 6 (IPv6) fc00:1000:a820:e003::.

Paquet envoyé par PE1 en état stable.

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)

Remarque :

- Src : fc00:1000:a811::11 >> boucle 100 de PE1 utilisée comme adresse source.

- Dst : fc00:100:a820:e003:: >> localisateur de PE2 : fonction.

- l'en-tête de transport IPv6, puis la charge utile IPv4.

Chemin principal et chemin de secours par calcul via Topology-Independent - Loop-Free Alternate (TI-LFA).

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

Séquence d’événements lorsque l’interface TenGigE0/0/0/8 (chemin principal) sur PE1 tombe en panne

Figure 2. Occurrence de micro-boucles

Sur PE1, lorsque la liaison teng 0/0/8 tombe en panne, sur le chemin de secours entre PE1 et P1, une micro-boucle est suspectée qui déclenche à son tour un mécanisme d'évitement de micro-boucle (MLA) sur 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

Lorsque l'interface TenGigE0/0/0/8 est désactivée, il y a d'abord un événement de réacheminement rapide (FRR), c'est-à-dire que le trafic est envoyé sur le chemin 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

À 08:30:10:307, il y a une contiguïté de suppression IS-IS.

RP/0/RP0/CPU0:PE1#show isis lsp last 20

08:30:10:307    1  Te0/0/0/8          DELADJ

À 08:30:10:358, Label Switched Path (LSP) a été reçu, Small Form-Factor Pluggable (SFP) a été calculé et uloop a été activé.

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

En voyant ces événements plus en détail dans IS-IS trace, dans ce cas, le délai de mise à jour RIB (Routing Information Base) configuré est : 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

État RIB au moment où MLA est actif.

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

État CEF (Cisco Express Forwarding) au moment où MLA est actif.

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 paquet provenant de PE1 est transféré via P1 avec un identificateur de microsegment (uSID) de P2s comme première destination active. Lorsque le paquet atteint P2, le comportement SRv6 associé à l'uSID déclenche la décapsulation de l'en-tête de routage de segment (SRH), après quoi le paquet d'origine est transféré à PE2 sous le transfert MLA.

Figure 3. Chemin emprunté pendant l’accord de niveau de service

Paquet transféré par PE1 et P1 pendant 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)

Après décapsulation, le paquet d'origine est envoyé par P2 et le SRH est supprimé par P2 pendant 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)

Après la convergence (après le délai de mise à jour RIB), le SRH inséré est supprimé et le paquet est envoyé sur le meilleur chemin IGP (Interior Gateway Protocol) convergé.

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

Récapitulatif du calendrier

Heure

Action

Mécanisme

08:30:10.244

Panne de liaison, déplacement du trafic vers le chemin de secours

TI-LFA

08:30:10:307

LSP reçu, nouveau SPF (Shortest Path First) calculé

MLA (déclenché)

08:30:10.358

La mise à jour RIB est retardée, le trafic utilise le tunnel MLA

MLA (actif)

08:31:15.893

Expiration du délai, chemin final installé dans FIB

Convergence complète

Conclusion

Ce document a détaillé comment les chemins uSID SRv6 IS-IS annoncés prennent en charge MLA pendant la convergence du réseau. En codant l'intention topologique ordonnée directement dans la liste uSID, le trafic est dirigé via une séquence déterministe de noeuds, assurant un transfert sans boucle même lorsque les calculs IS-IS SPF sont temporairement incohérents sur le réseau.

Pendant la convergence, les paquets sortant des PE d'entrée prennent la séquence uSID précalculée, traversant les noeuds P intermédiaires sans dépendre des décisions de tronçon suivant IGP transitoires. Le comportement de décapsulation au niveau du point d'extrémité uSID désigné assure une transition nette vers le transfert natif une fois le segment protégé terminé. Cette interaction étroitement couplée entre les mises à jour du plan de contrôle IS-IS et les comportements du plan de données uSID SRv6 permet un réacheminement rapide et déterministe.

Le MLA basé sur IS-IS uSID offre une solution évolutive, sensible à la topologie et simple sur le plan opérationnel pour la convergence sans micro-boucle, ce qui le rend bien adapté aux grands réseaux compatibles SRv6 où le réacheminement rapide et l'orientation déterministe du trafic sont essentiels.

Commandes

- #show isis instance <> ipv6 microloop évitement <préfixe> detail

- #show isis