Inhalt

Einleitung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Übersicht über Mikroschleifen

Allgemeine Konfiguration

Im Dauerzustand

Abfolge von Ereignissen, wenn die Schnittstelle TenGigE0/0/0/8 (primärer Pfad) auf PE1 ausfällt

Timeline-Zusammenfassung

Schlussfolgerung

Befehle

Einleitung

Dieses Dokument beschreibt einen technischen Überblick über IS-IS-Mikroschleifen, erläutert die Bedingungen, unter denen sie auftreten, und beschreibt die Prinzipien und Mechanismen, die zu ihrer Vermeidung eingesetzt werden.

Voraussetzungen

Anforderungen

Cisco empfiehlt, dass Sie Grundkenntnisse von ISIS (Intermediate System to Intermediate System) Segment Routing (SR) Version 6 haben.

Verwendete Komponenten

Die in diesem Dokument enthaltenen Informationen basieren auf den folgenden Geräten: NCS 540, NCS 5500.

Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.

Übersicht über Mikroschleifen

IS-IS ist ein weit verbreitetes Link-State-Routing-Protokoll, das aufgrund seiner schnellen Konvergenz und Skalierbarkeit in großen Service Provider-Netzwerken verwendet wird. Bei Topologieänderungen wie Verbindungs- oder Knotenausfällen können jedoch vorübergehende Weiterleitungsinkonsistenzen auftreten, die allgemein als Microloops bezeichnet werden, während Router ihre Weiterleitungs-Informationsbasen (FIBs) zu unterschiedlichen Zeiten aktualisieren. Diese Mikroschleifen führen zu vorübergehendem Paketverlust, erhöhter Latenz oder Datenverkehrs-Blackholing, was sich negativ auf Echtzeit- und latenzempfindliche Anwendungen auswirken kann.

Das IS-IS-Routing-Protokoll nutzt Mechanismen zur Vermeidung von Segment Routing (SR und SRv6)-Mikroschleifen, um solche vorübergehenden Weiterleitungsschleifen während der Netzwerkkonvergenz zu verhindern. Diese Mechanismen gewährleisten eine schleifenfreie Weiterleitung, selbst wenn das Netzwerk auf einen neuen stabilen Zustand umgestellt wird.

Abbildung 1: Diagramm der Netzwerktopologie

Allgemeine Konfiguration

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

Im Dauerzustand

Wenn keine Änderungen im Netzwerk vorgenommen werden, wird das Netzwerk 10.10.1.0/24 vom Provider Edge 1 (PE1) über das Border Gateway Protocol (BGP) an den Provider Edge 2 (PE2) weitergegeben, und das Netzwerk 10.10.20.0/24 wird vom PE2 an den PE1 weitergegeben.

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:

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

Anmerkung: Diese 10.10.20.0/24 wird von PE2 auf PE1 mit der Locator-Sid fc00:1000:a820:: und Funktion 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::}

Anmerkung: Im eingeschwungenen Zustand werden die an das Kunden-Edge 2 (CE2) gerichteten Pakete an PE2 mit der IPv6-Header-Zieladresse (Internetprotokoll Version 6) gesendet: fc00:1000:a820:e003::.

Paket wird von PE1 im eingeschwungenen Zustand gesendet.

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)

Anmerkung:

- Quelle: fc00:1000:a811::11 >> Loopback 100 von PE1 als Quelladresse.

- Ziel: fc00:1000:a820:e003:: >> Locator von PE2: -Funktion.

- als Nächstes der IPv6-Transport-Header und dann die IPv4-Nutzlast.

Vorab berechneter primärer und Backup-Pfad über 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

Abfolge von Ereignissen, wenn die Schnittstelle TenGigE0/0/0/8 (primärer Pfad) auf PE1 ausfällt

Abbildung 2: Auftreten der Mikroschleife

Wenn auf PE1 die Verbindung tengig 0/0/8 ausfällt, wird auf dem Backup-Pfad zwischen PE1 und P1 eine Mikroschleife vermutet, die wiederum einen MLA-Mechanismus (Microloop Avoidance) auf PE1 auslöst.

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

Wenn die Schnittstelle TenGigE0/0/0/8 ausgefallen ist, tritt zuerst ein Fast Reroute (FRR)-Ereignis auf, d. h., der Datenverkehr wird über den TI-LFA-Pfad gesendet.

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

Um 08:30:10:307 gibt es eine IS-IS-Löschadjazenz.

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

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

Um 08:30:10:358 wurde ein Label Switched Path (LSP) empfangen, der Small Form-Factor Pluggable (SFP) berechnet und die Loop-Nachricht aktiviert.

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

Wenn Sie diese Ereignisse genauer in der IS-IS-Verfolgung sehen, beträgt die konfigurierte Aktualisierungsverzögerung für die Routing Information Base (RIB) in diesem Fall: 65535 ms ~ 65 s

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

RIB-Status, wenn MLA aktiv ist.

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

Cisco Express Forwarding (CEF)-Status zu dem Zeitpunkt, an dem MLA aktiv ist.

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

Ein vom PE1 stammendes Paket wird über P1 mit P2s Micro-Segment Identifier (uSID) als erstem aktiven Ziel weitergeleitet. Wenn das Paket P2 erreicht, löst das mit der uSID verknüpfte SRv6-Verhalten die Entkapselung des Segment Routing Header (SRH) aus. Anschließend wird das ursprüngliche Paket unter MLA-Weiterleitung an PE2 weitergeleitet.

Abbildung 3: Der Pfad, der während MLA verwendet wurde

Paket von PE1 und P1 während MLA weitergeleitet.

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)

Nach der Entkapselung wird das ursprüngliche Paket von P2 gesendet und die SRH von P2 während MLA entfernt.

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)

Nach der Konvergenz (nach dem RIB-Aktualisierungsverzögerungs-Timer) wird das eingefügte SRH entfernt, und das Paket wird über den konvergenten IGP-Pfad (Interior Gateway Protocol) gesendet.

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

Timeline-Zusammenfassung

Zeit

Aktion

Mechanismus

08:30:10.244

Verbindungsausfall, Datenverkehrsverschiebung zum Backup-Pfad

TI-LFA

08:30:10:307

LSP empfangen, neuer Shortest Path First (SPF) berechnet

MLA (ausgelöst)

08:30:10.358

RIB-Aktualisierung verzögert, Datenverkehr nutzt MLA-Tunnel

MLA (aktiv)

08:31:15.893

Ablaufdatum des Verzögerungszeitgebers, endgültiger Pfad in FIB installiert

Vollständige Konvergenz

Schlussfolgerung

In diesem Dokument wird detailliert beschrieben, wie von IS-IS angekündigte SRv6-uSID-Pfade MLA während der Netzwerkkonvergenz unterstützen. Durch die Kodierung geordneter topologischer Absichten direkt in die uSID-Liste wird der Datenverkehr durch eine deterministische Folge von Knoten geleitet, wodurch eine schleifenfreie Weiterleitung auch dann gewährleistet ist, wenn die IS-IS-SPF-Berechnungen im Netzwerk vorübergehend inkonsistent sind.

Während der Konvergenz durchlaufen Pakete, die von Eingangs-PEs ausgehen, die vorab berechnete uSID-Sequenz, ohne dass Entscheidungen über einen vorübergehenden IGP Next-Hop getroffen werden müssen. Das Entkapselungsverhalten am designierten uSID-Endpunkt stellt einen sauberen Übergang zurück zur nativen Weiterleitung sicher, sobald das geschützte Segment abgeschlossen ist. Diese enge Verknüpfung zwischen IS-IS-Updates auf Kontrollebene und SRv6 uSID-Verhalten auf Datenebene ermöglicht ein schnelles und deterministisches Rerouting.

Das IS-IS uSID-basierte MLA ist eine skalierbare, topologieorientierte und einfach zu bedienende Lösung für mikroschleifenfreie Konvergenz und eignet sich daher hervorragend für große SRv6-fähige Netzwerke, in denen schnelles Rerouting und deterministische Datenverkehrssteuerung von entscheidender Bedeutung sind.

Befehle

- #show isis-Instanz <> IPv6-Mikroschleifenvermeidung <Präfix> Detail

- #show isis