Inhoud

Inleiding

Voorwaarden

Overzicht van Flex-Algo

Netwerktopologie

netwerk

Flex-Algo-configuratie

Flex-Algo 129 Gedefinieerd door Metric-type TE

Configuratie

Verificatie

Flex-Algo 128 Gedefinieerd door metrische vertraging

Configuratie

Verificatie

Topologie-onafhankelijke Loop-Free Alternate (TI-LFA) en Microloop Avoidance (MLA) op FLEX-ALGO 129

beperkingen van de affiniteitskaart

Configuratie

Verificatie

Configuratie op ABR-2 van de Affinity Map

Verificatie

Conclusie

Opdrachten

Inleiding

Dit document beschrijft het gebruik van Flexible Algorithm (Flex-Algo) in ISIS en geeft relevante opdrachten voor verificatie en probleemoplossing.

Voorwaarden

Vereisten

- Cisco raadt u aan om basiskennis te hebben van ISIS Segment routing traffic engineering.

Gebruikte componenten

- De informatie in dit document is gebaseerd op Device: Aggregation Services Router 9000 (ASR9K).

- De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden gebruikt, zijn gestart met een uitgeklaarde (standaard) configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.

Overzicht van Flex-Algo

- Flexibel algoritme (Flex-Algo) wordt geïdentificeerd door een numerieke waarde in het bereik 0-255; waarden 0-127 zijn gereserveerd, terwijl 128-255 door de gebruiker zijn gedefinieerd.

- Een Flex-Algo wordt gedefinieerd door een metrisch type (Interior Gateway Protocol (IGP), vertragingsmetriek of TE-metriek) en een reeks beperkingen (bijvoorbeeld linkaffiniteit, Shared Risk Link Group (SRLG)).

- Door gebruik te maken van Flex-Algo kunnen netwerken network slicing implementeren, dat wil zeggen logische segmentatie van het netwerk, waarbij path computation beperkt blijft tot de topologie die voldoet aan de gedefinieerde beperkingen.

Afbeelding 1: Prefix-SID Sub-TLV-formaat (met algoritmeveld)

Afbeelding 2: TLV-indeling Flex-Algo Definition (FAD)

Netwerktopologie

Afbeelding 3: Netwerktopologiediagram

netwerk

- Algoritme 128 → Definieert een slice die is geoptimaliseerd voor latentie.

- Algoritme 129 → Definieert een TE-geoptimaliseerde slice.

- ABR1 en ABR2 adverteren hun Flex-Algo Definitions (FAD TLVs) in IS-IS Link-State Protocol Data Unit (LSPs).

- Een FAD-initiator kan elke router in het IS-IS-domein zijn; een router hoeft niet deel te nemen aan elke Flex-Algo om zijn definitie te adverteren.

Flex-Algo-configuratie

router isis core

flex-algo 128

interface Loopback100

passive

address-family ipv4 unicast

prefix-sid index 11 explicit-null

prefix-sid algorithm 128 index 811 explicit-null

Opmerking:

- index 11 - Prefix-SID gebonden aan Flex-Algo 0 (standaard kortste pad eerst (SPF)).

- index 811 - Prefix-SID gebonden aan Flex-Algo 128.

- Flex-Algo Prefix-SID's maken network slicing mogelijk. Voor een bepaald prefix (bijvoorbeeld Loopback100) kunnen meerdere Prefix-SID's worden geadverteerd, elk gekoppeld aan een specifieke Flex-Algo.

- De eerste Prefix-SID (Index 11) wordt automatisch gekoppeld aan Flex-Algo 0 (standaard IGP shortest-path algoritme).

- De tweede Prefix-SID (Index 811) wordt expliciet geassocieerd met Flex-Algo 128, een door de gebruiker gedefinieerd algoritme.

Flex-Algo 129 Gedefinieerd door Metric-type TE

Configuratie

Over ABR2:

router isis core

flex-algo 129

priority 50

metric-type te

advertise-definition

interface Loopback100

address-family ipv4 unicast

prefix-sid algorithm 129 index 92 explicit-null >> Prefix-SID bound to Flex-Algo 129

interface HundredGigE0/1/0/2

point-to-point

address-family ipv4 unicast

fast-reroute per-prefix

fast-reroute per-prefix ti-lfa

te-metric flex-algo 20 level 2 >> 20 is the TE metric value for this link , need to be enabled on the links only between those routers participating in Flex-Algo 129

Verificatie

PE3#show isis flex-algo 129

IS-IS core Flex-Algo Database

Flex-Algo 129:

Level-2:

Definition Priority: 100

Definition Source: ASR9906-2-ABR-1.00

Definition Equal to Local: No

Definition Metric Type: TE

Definition Flex-Algo Prefix Metric: No

<snip>

FRR Disabled: No

Microloop Avoidance Disabled: No

UCMP Disabled: No

Data Plane Segment Routing: Yes

Data Plane IP: Yes

PE3#show isis database 55A1-2-PE4.00-00  verbose internal

IS-IS core (Level-2) Link State Database

LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL  Len  Received  From           On          Reason

55A1-2-PE4.00-00      0x00000149   0xfe2f        995  /1200         0/0/0     282  09:21:39  ASR9910-4-ABR-2 Hu0/1/0/0    Flooded

<snip>

TLV code:242 length:28

Router Cap:     10.10.44.44 D:0 S:0

SubTLV code:2 length:9

Segment Routing: I:1 V:0, SRGB Base: 16000 Range: 8000

SubTLV code:23 length:2

Node Maximum SID Depth:

Label Imposition: 12

SubTLV code:19 length:3

SR Algorithm:

Algorithm: 0

Algorithm: 1

Algorithm: 129

SubTLV code:29 length:1

IP Algorithm:

Algorithm: 129

TLV code:22 length:117

Metric: 10         IS-Extended ASR9910-4-ABR-2.00

SubTLV code:4 length:8

Local Interface ID: 32, Remote Interface ID: 38

SubTLV code:6 length:4

Interface IP Address: 10.10.244.44

SubTLV code:8 length:4

Neighbor IP Address: 10.10.244.2

SubTLV code:9 length:4

Physical BW: 10000000 kbits/sec

SubTLV code:16 length:9

Application Specific Link Attributes:

L flag: 0, SA-Length: 1, UDA-Length: 1

Standard Applications: 0x10 FLEX-ALGO

User Defined Applications: 0x10

SubTLV code:18 length:3

Admin. Weight: 20 >>>>>>>>>> configured TE metric

PE3#show isis topology flex-algo 129

IS-IS core paths to IPv4 Unicast (Level-2) routers

System Id        Metric     Next-Hop        Interface        SNPA

ASR9910-4-ABR-2   20        ASR9910-4-ABR-2  Hu0/1/0/0       *PtoP*        >> 1 hop away from PE3

55A1-2-PE4        40        ASR9910-4-ABR-2  Hu0/1/0/0       *PtoP*        >> 2 hops away from PE3

PE3#show isis database 55A1-2-01EEA29-PE4.00-00  verbose internal

IS-IS core (Level-2) Link State Database

LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL  Len  Received  From           On          Reason

55A1-2-01EEA29-PE4.00-00  0x00000149   0xfe2f        995  /1200         0/0/0     282  09:21:39  ASR9910-4-01F8486-ABR-2 Hu0/1/0/0   Flooded

TLV code:242 length:28

Router Cap:     10.10.44.44 D:0 S:0

SubTLV code:2 length:9

Segment Routing: I:1 V:0, SRGB Base: 16000 Range: 8000

SubTLV code:23 length:2

Node Maximum SID Depth:

Label Imposition: 12

SubTLV code:19 length:3

SR Algorithm:

Algorithm: 0

Algorithm: 1

Algorithm: 129

SubTLV code:29 length:1

IP Algorithm:

Algorithm: 129

TLV code:22 length:117

Metric: 10         IS-Extended ASR9910-4-01F8486-ABR-2.00

SubTLV code:4 length:8

Local Interface ID: 32, Remote Interface ID: 38

SubTLV code:6 length:4

Interface IP Address: 10.10.244.44

SubTLV code:8 length:4

Neighbor IP Address: 10.10.244.2

SubTLV code:9 length:4

Physical BW: 10000000 kbits/sec

SubTLV code:16 length:9

Application Specific Link Attributes:

L flag: 0, SA-Length: 1, UDA-Length: 1

Standard Applications: 0x10 FLEX-ALGO

User Defined Applications: 0x10

SubTLV code:18 length:3

Admin. Weight: 20 >>>>>>>>>> configured TE metric

Flex-Algo 128 Gedefinieerd door metrische vertraging

Configuratie

router isis core

flex-algo 128

priority 100

metric-type delay

advertise-definition

performance-measurement

interface HundredGigE0/1/0/0

delay-measurement >>> this CLI needs to be enabled only on those interfaces between those routers participating in Flex-Algo 128

!

!

interface HundredGigE0/1/0/3

delay-measurement

Verificatie

PE1#show isis flex-algo 128

IS-IS core Flex-Algo Database

Flex-Algo 128:

Level-2:

Definition Priority: 100

Definition Source: ASR9906-2-ABR-1.00

Definition Equal to Local: No

Definition Metric Type: Delay

Definition Flex-Algo Prefix Metric: No

Opmerking: Op PE2 wordt de prestatie-meetinterface HundredGigE0/1/0/1 >> link tussen PE2 en ABR 1 delay-measurement adverteren-delay 100 >> delay statisch geconfigureerd. Dit verhoogt de vertragingsmetriek met +100 in de richting van PE2 naar PE1, vandaar dat de vertraging om ABR 1 te bereiken vanaf PE2 100 is.

PE1#show isis database ASR-9904-5-PE2.00-00 verbose internal

IS-IS core (Level-2) Link State Database

LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd ATT/P/OL LSP Length

ASR-9904-5-PE2.00-00  0x00000231   0x6084        1131 /1200         0/0/0   310

<snip>

TLV code:242 length:25

<snip>

SubTLV code:19 length:3

SR Algorithm:

Algorithm: 0

Algorithm: 1

Algorithm: 128

TLV code:22 length:144

Metric: 10         IS-Extended ASR9906-2-ABR-1.00

SubTLV code:4 length:8

Local Interface ID: 17, Remote Interface ID: 22

SubTLV code:6 length:4

Interface IP Address: 10.10.221.22

SubTLV code:8 length:4

Neighbor IP Address: 10.10.221.1

SubTLV code:9 length:4

Physical BW: 99999998 kbits/sec

SubTLV code:33 length:4

Link Average Delay: 100 us

SubTLV code:34 length:8

Link Min/Max Delay: 100/100 us

SubTLV code:35 length:4

Link Delay Variation: 0 us

SubTLV code:16 length:14

Application Specific Link Attributes:

L flag: 0, SA-Length: 1, UDA-Length: 1

Standard Applications: 0x10 FLEX-ALGO

User Defined Applications: 0x10

SubTLV code:34 length:8

Link Min/Max Delay: 100/100 us >>> delay calculated on this link due to the confoguration

PE2#show isis topology flex-algo 128

IS-IS core paths to IPv4 Unicast (Level-2) routers

System Id                Metric    Next-Hop                 Interface       SNPA

ASR9906-2-ABR-1          100       ASR9906-2-ABR-1          Hu0/1/0/1       *PtoP*

ASR9906-1-PE1            112       ASR9906-2-ABR-1          Hu0/1/0/1       *PtoP*

Wanneer er geen handmatige advertentie-vertraging is geconfigureerd op de interface en met behulp van het standaard vertragingsmeetprofiel dat is ingeschakeld op de interface, worden sondes op de koppelingen verzonden om de vertraging op de interface te meten.

ABR-1#show performance-measurement sessions

----------------------------------------------------------------------------------------------------------------------------------------------------------------

0/1/CPU0

----------------------------------------------------------------------------------------------------------------------------------------------------------------

Transport type              : Interface

Measurement type            : Delay Measurement

Interface name              : HundredGigE0/1/0/0

Nexthop                     : Unknown

Delay Measurement session:

Session ID                   : 4097

Profile Keys:

Profile name                 : default

Profile type.                : Interface Delay Measurement

Last advertisement:

Advertised at: Sep 26 2025 14:00:36.179 (247623.282 seconds ago)

Advertised reason: Periodic timer, min delay threshold crossed

Advertised delays (uSec): avg: 12, min: 12, max: 13, variance: 0

A flag set: False

Next advertisement:

Threshold check scheduled in 2 more probes (roughly every 120 seconds)

Aggregated delays (uSec): avg: 12, min: 11, max: 12, variance: 1

Rolling average (uSec): 11

Current computation:

Started at: Sep 29 2025 10:47:17.373 (22.88 seconds ago)

Packets Sent: 8, received: 8

Measured delays (uSec): avg: 12, min: 11, max: 12, variance: 1 >>>>>>>>>>>> the delay measured using probes on this interface

Next probe scheduled at: Sep 29 2025 10:47:47.369 (in 7.908 seconds)

Next packet will be sent in 1.908 seconds

Packet sent every 3.0 seconds

Responder IP : 10.10.111.11

Number of Hops : 1

ABR-1#show isis database ASR9906-1-PE1.00-00 verbose internal

IS-IS core (Level-2) Link State Database

LSPID               LSP Seq Num LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL LSP Length

ASR9906-1-PE1.00-00 0x00000777  0x13ef         497 /1200         0/0/0    370

<snip>

TLV code:22 length:197

Metric: 10 IS-Extended ASR9906-2-ABR-1.00

SubTLV code:4 length:8

Local Interface ID: 40, Remote Interface ID: 21

SubTLV code:6 length:4

Interface IP Address: 10.10.111.11

SubTLV code:8 length:4

Neighbor IP Address: 10.10.111.1

SubTLV code:9 length:4

Physical BW: 99999998 kbits/sec

SubTLV code:33 length:4

Link Average Delay: 12 us >>>>>>>>>>>>>> the calculated delay is propagated via ISIS which is used by the Headend router to calculate the path with minimum delay

SubTLV code:34 length:8

Link Min/Max Delay: 12/13 us

SubTLV code:35 length:4

Link Delay Variation: 0 us

SubTLV code:16 length:14

Application Specific Link Attributes:

L flag: 0, SA-Length: 1, UDA-Length: 1

Standard Applications: 0x10 FLEX-ALGO

User Defined Applications: 0x10

SubTLV code:34 length:8

Link Min/Max Delay: 12/13 us

PE1#show isis topology flex-algo 128

IS-IS core paths to IPv4 Unicast (Level-2) routers

System Id                 Metric    Next-Hop                 Interface       SNPA

ASR9906-2-ABR-1           12        ASR9906-2-ABR-1          Hu0/1/0/0       *PtoP*

ASR-9904-5-PE2            24        ASR9906-2-ABR-1          Hu0/1/0/0       *PtoP*

Opmerking:

- Van PE1 naar ABR 1 te bereiken is er slechts 12 ons vertraging

- Van PE1 naar PE2 is er 24 vertraging

Topologie-onafhankelijke Loop-Free Alternate (TI-LFA) en Microloop Avoidance (MLA) op FLEX-ALGO 129

Afbeelding 4: Netwerktopologiediagram gebruikt om TI-LFA en MLA voor Flex-Algo 129 aan te tonen

ABR-1#show isis fast-reroute flex-algo 129 10.10.2.2/32  detail

L2 10.10.2.2/32 [20/115] Label: 16092, medium priority

Installed Sep 17 10:40:08.503 for 00:16:25

via 10.10.12.2, HundredGigE0/1/0/1, Label: Exp-Null-v4, ASR9910-4-ABR-2, SRGB Base: 16000, Weight: 0

Backup path: TI-LFA (link), via 10.10.221.22, HundredGigE0/1/0/3 ASR-9904-5-PE2, SRGB Base: 16000, Weight: 0, Metric: 60

P node: ASR9910-3-PE3.00 [10.10.33.33], Label: 16933 >>>>>>>>>> TI-LFA precomputed path for FRR

Prefix label: 16092

Backup-src: ASR9910-4-ABR-2.00

P: No, TM: 60, LC: No, NP: No, D: No, SRLG: Yes

src ASR9910-4-ABR-2.00-00, 10.10.2.2, prefix-SID index 92, R:0 N:1 P:1 E:1 V:0 L:0, Alg:129

Opmerking:

- 16933 PE3 Flex-Algo 129 label

- 16092 ABR -2 Flex-Algo 129 label

- Het TI-LFA-pad is ook beperkt met de logische netwerkslice van flex algo 129

Op ABR-1 wanneer de verbinding tussen ABR 1 en 2 wordt uitgeschakeld, wordt de MLA-tunnel geactiveerd:

ABR-1 #show isis microloop avoidance 10.10.2.2/32 flex-algo 129 detail

10.10.2.2/32 participated in 1 of 6 microloop avoidance events

number start     spf             duration  cleanup        duration  pins: ipv4   ipv6

---    ---       ---               ---     ---               ---        ---     ---

5      restart   10:59:16.440     0 ms    10:59:16.643                   3      0

trigger: Link down, near node: ASR9906-2-ABR-1.00, far node: ASR9910-4-ABR-2.00

via 10.10.221.22, Hu0/1/0/3, Labels: 16933

In zowel de TI-LFA als de MLA voert Flex-Algo 129 zijn eigen beperkte SPF uit, berekent een snelle omleidingstunnel die Algo 129-beperkingen respecteert en alleen FLEX-ALGO 129-labels gebruikt.

beperkingen van de affiniteitskaart

- Affiniteit is een 32-bits attribuut dat is gekoppeld aan een IGP-link, die administratief is toegewezen door de operator.

- Elke bitpositie komt overeen met een semantische betekenis die door de operator wordt gedefinieerd.

- Deze affiniteitsbits worden geadverteerd in de IGP (OSPF/IS-IS) als onderdeel van de TE-attributen van de link.

Wanneer een Flex-Algo zijn kortste padstructuur (SPF) berekent, past deze affiniteitsbeperkingen toe tijdens padselectie:

- Inclusief-willekeurig (IA): Het berekende pad moet ten minste één link doorkruisen die een van de opgegeven affiniteitsbits heeft ingesteld.

- Inclusief-All (IAll): Het berekende pad mag alleen links doorkruisen die gezamenlijk alle opgegeven affiniteitsbits bevatten.

- Exclude-Any (EA): Het berekende pad moet alle links vermijden die een van de opgegeven affiniteitsbits bevatten.

Configuratie

Op ABR 1 en 2:

On ABR 1and 2

router isis core

affinity-map ALGO-129 bit-position 6

flex-algo 129

priority 100

metric-type te

advertise-definition

affinity exclude-any ALGO-129

Plaats deze configuratie op de FAD geadverteerd.

Verificatie

PE4#show isis database ASR9906-2-ABR-1.00-00  verbose internal

IS-IS core (Level-2) Link State Database

LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL  Len  Received  From           On          Reason

ASR9906-2-ABR-1.00-00  0x0000023f   0xa89f        871  /1200         0/0/0     453  11:12:43  ASR9906-1-PE1 Hu0/0/0/5   Flooded

TLV code:242 length:44

Router Cap:     10.10.1.1 D:0 S:0

<snip>

SubTLV code:19 length:4

SR Algorithm:

Algorithm: 0

Algorithm: 1

Algorithm: 128

Algorithm: 129

SubTLV code:26 length:4

Flex-Algo Definition:

Algorithm: 129 Metric-Type: 2 Alg-type: 0 Priority: 100

SubTLV code:1 length:4

Flex-Algo Exclude-Any Ext Admin Group: >>> FAD to exclude any link with this bit position set

0x00000040

PE4#show isis flex-algo 129

IS-IS core Flex-Algo Database

Flex-Algo 129:

Level-2:

Definition Priority: 100

Definition Source: ASR9906-2-ABR-1.00

Definition Equal to Local: No

Definition Metric Type: TE

Definition Flex-Algo Prefix Metric: No

Exclude Any Affinity Bit Positions: 6

Pad genomen van PE4 naar PE3 wanneer de link affiniteitskaart niet is geconfigureerd op een van de links:

PE4#traceroute sr-mpls labels 16933 lsp-end-point 10.10.33.33

Type escape sequence to abort.

0 10.10.244.44 MRU 1500 [Labels: 16933/explicit-null Exp: 0/0] >>>>>>>>>>>>>>>>>>>> PE4

L 1 10.10.244.2 MRU 1500 [Labels: explicit-null/explicit-null Exp: 0/0] 5 ms >>>>>>>>ABR2

! 2 10.10.32.33 4 ms >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>PE3

Figuur 5: traceroute tussen PE4 naar PE3 zonder Affiniteitskaart Gedefinieerd

Configuratie op ABR-2 van de Affinity Map

router isis core

affinity-map ALGO-129 bit-position 6 >> define the bit position and associate it with a name

router isis core

interface HundredGigE0/1/0/2 >>> link between ABR-2 to PE3

affinity flex-algo ALGO-129 >>>>> link affinity map

point-to-point

address-family ipv4 unicast

fast-reroute per-prefix

fast-reroute per-prefix ti-lfa

te-metric flex-algo 20 level 2

Verificatie

PE4#show isis database ASR9910-4-ABR-2.00-00  verbose internal

<snip>

TLV code:22 length:193

<snip>

SubTLV code:6 length:4

Interface IP Address: 10.10.32.2

SubTLV code:8 length:4

Neighbor IP Address: 10.10.32.33

SubTLV code:9 length:4

Physical BW: 99999998 kbits/sec, 12499999744 bytes/sec

SubTLV code:16 length:21

Application Specific Link Attributes:

L flag: 0, SA-Length: 1, UDA-Length: 1

Standard Applications: 0x10 FLEX-ALGO

User Defined Applications: 0x10

SubTLV code:14 length:4

Ext Admin Group:

0x00000040 >>>>>> link affinity flooded via IGP

SubTLV code:3 length:4

Affinity: 0x00000040

SubTLV code:18 length:3

Admin. Weight: 20

Volgens de FAD voor Flex Algo 129 van PE4 naar PE3, moet het elke link met affiniteitskaartbitpositie 6 uitsluiten.

PE4#traceroute sr-mpls labels 16933 lsp-end-point 10.10.33.33

0 10.10.244.44 MRU 1500 [Labels: 16933/explicit-null Exp: 0/0]

L 1 10.10.244.2 MRU 1500 [Labels: 16933/explicit-null Exp: 0/0] 5 ms >>>>>>>>>>>>> ABR2

L 2 10.10.12.1 MRU 1500 [Labels: 16933/explicit-null Exp: 0/0] 4 ms >>>>>>>>>>>>>> ABR1

L 3 10.10.221.22 MRU 1500 [Labels: explicit-null/explicit-null Exp: 0/0] 15 ms >>> PE2

! 4 10.10.233.33 4 ms >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> PE3

Afbeelding 6: Pad genomen van PE4 naar PE3 na het configureren van de affiniteitskaart

Opmerking: Op dezelfde manier kunnen we met behulp van "inclusief alle" en "inclusief alle" in de FAD van een flexalgo de berekening van het pad beïnvloeden van het kopuiteinde naar het staartuiteinde.

Conclusie

Dit document beschrijft het gebruik van Flexible Algorithm (Flex-Algo) om een IS-IS-domein logisch in meerdere netwerksegmenten te verdelen. Elk segment kan zijn eigen regels en beperkingen voor de berekening van het pad definiëren, waardoor een gedifferentieerde behandeling van verkeersstromen mogelijk wordt op basis van SLA-vereisten of verkeersgevoeligheid.

Opdrachten

show isis flex-algo <>

show isis flex-algo 129 neighbors

show isis topology flex-algo

show isis database <> verbose detail

show isis route <>  flex-algo <> detail

show mpls forwarding labels <> detail

show isis microloop avoidance <> flex-algo <>  detail

show isis fast-reroute flex-algo <>  <prefix> detail