cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
9794
Views
20
Helpful
10
Comments
xthuijs
Cisco Employee
Cisco Employee
Table of Contents
          Technology Introduction
          IOS XR Implementation 
          Features and Configuration
               Segment Routing in ISIS
                    Configuration Summary
                    Enabling Segment routing under ISIS
                    Configuring Mapping Server
                    Complete configuration using a sample topology
               Segment Routing in OSPF
               Segment Routing in BGP  (BGP Prefix-SID)
          Segment Routing using SRTE as Transport (OSPF/ISIS)
               SRTE using ISIS
                      SRTE Tunnel Setup based on Dynamically Allocated Path
                      SRTE Tunnel Setup based on Preconfigured Path
                      SRTE Tunnel Setup based on Destination Segment
               SRTE using OSPF
               Binding SID
                    SRTE tunnel in the Core
                    RSVP tunnel in the Core
          Generalized Protection
               Quick recap on current LFA FRR options
               Configuring TI-LFA
               TI-LFA  scenarios
                    Repair node is a direct neighbor
                    Repair node is a PQ node
                    The repair is a Q node, neighbor of the last P node
                    Node protection
                    SRLG Protection
                    Micro-Loop Avoidance
          LDP to SR Migration
               LDP and SR Coexistence
               LDP and SR Interconnect
          Services
               L3VPN & L2VPN Service
               Inter-AS Option B

 

 

Technology Introduction

 

 

Segment Routing (SR) leverages the source routing and tunneling paradigms. A node steers a packet through a controlled set of instructions, called segments, by prepending the packet with an SR header. A segment can represent any instruction, topological or service-based. SR allows to enforce a flow through any topological path and service chain while maintaining per-flow state only at the ingress node of the SR domain. The Segment Routing architecture can be directly applied to the MPLS dataplane with a little change on the forwarding plane. It requires minor extension to the existing link-state routing protocols. Segment Routing can also be applied to IPv6 with a new type of routing extension header.

 

A segment is encoded as an MPLS label. An ordered list of segments is encoded as a stack of labels. The segment to process is on the top of the stack. Upon completion of a segment, the related label is popped from the stack.  Segment-routing MPLS data-plane operations are push, swap, and pop as per the traditional MPLS forwarding.

 

Following segments types are defined in segment routing 

 

Prefix Segment

 

A node segment (or node SID, or N-SID) is associated with a node in the SR network, and is a globally known within the network. It represents the ECMP-aware shortest path to the node. A prefix-SID (or P-SID) represents the ECMP-aware IGP shortest path to the prefix (which is attached to one or more nodes in the network).

 

Adjacency Segment

 

An adjacency segment (or Adj-SID, or A-SID) is associated with an adjacency on a router. It is locally significant. Packets with such SID are forced to be sent over that adjacency (regardless any existing IGP paths).

The job of the SR control plane is to set up the MPLS forwarding table on each router in such a way to allow this to happen.

 

BGP Peering Segment

 

The BGP segment is a local segment signaled by BGP Link State (topology information) to a SDN controller; it is used to steer traffic onto a BGP peer or over specific links.

 

BGP Prefix Segment

 

The BGP prefix segment is a global segment signaled by BGP associated to a prefix that is used to steer traffic along the ECMP-aware shortest path to the BGP prefix.

 

Advatanges

 

  • Simplify the Transport by having few protocols to operate
  • Fewer protocols interations to troubleshoot
  • Less state to maintain by routers
  • Re-uses MPLS data plane without any change

IGP + LDP vs  IGP (ISIS & OSPF) with SR extension

–Remove one protocol: LDP

–No LDP and IGP interaction, ex. no IGP-LDP sync required

RSVP-TE traffic engineering vs SR traffic engineering (SR TE)

–Remove one protocol: RSVP

–No RSVP state on the Routers, a much simple and scalable solution

RSVP-TE FRR, IP FRR vs SR FRR

–Simpler operation, no RSVP required, no T-LDP (for LDP FRR) required

–Topology independent sub millisecond FRR

 

 

 

 


IOS XR Implementation 

 

 

SR architecture in IOS-XR involves multiple components and interaction between them:

 

  1. Routing Protocols
  2. RIB - Routing Information Base
  3. FIB - Forwarding Information Base
  4. LSD - Link State Database

Routing Information Base

RIB is Routing Information Base which consolidates routing information from different routing protocols (such as static, connected, local, IGP, BGP) to resolve routing paths for network destinations.

 

Label Switching Database

LSD provides the following functions

  • Allocate and free local labels
  • Enable/disable MPLS on given interface
  • Ability to setup label forwarding entries or rewrites.

Forwarding Information Base

  • FIB stores Routing information in a format suitable for forwarding
  • Populates the software forwarding table to be used by Netio (software switching path)
  • Manages and populates the Hardware tables for Hardware Forwarding

Bulk Content Downloader

Download forwarding information from RIB/LSD  to FIB

 

Features and Configuration

 

Segment Routing in ISIS

 

Configuration Summary

 

  1. Enable Segment routing under ISIS
    • metric-style needs to be configured as wide
    • Optional segment routing block config
  2. Configure Prefix-SID/Node-SID for loopback interface
  3. Configure mapping server to specify prefix-SID mapping (optional)

 

Enabling Segment routing under ISIS

 

 

SR global block configuration (Optional)

 

SRGB can be different on each router but recommended that all nodes to use the same range

 

 

router isis <instance>
segment-routing global-block 48000 56000

RP/0/RSP0/CPU0:R1#sho mpls label table application isis detail | i SRGB
  (Lbl-blk SRGB, vers:0, (start_label=48000, size=8001)

 

Notes

 

  • SR label range can NOT start below 16,000
  • The default SR global block is : 16,000 - 24,000. Its soft reserved, once we reach OOR LSD can start using this range 16k-24k for dynamic label allocation
  • SRGB configuration is NOT address-family specific because the “SR-Capabilities Sub-TLV” of router capability TLV defined in is not address-family specific
  • If  CLI results in enlarging or moving the default SRGB, then it is OK to require a reload but only if there are clients who have labels in the new range
  • Before configuring SRGB, administrator needs to make sure that portion of the label base that is being configured for Segment-Routing is free and is not being used by any other MPLS LSD clients

 

Enable Segment Routing

 

router isis <instance>
 address-family ipv4 unicast
  segment-routing mpls
address-family ipv6 unicast
segment-routing mpls

RP/0/RSP0/CPU0:R1#sh mpls interfaces
Interface                  LDP      Tunnel   Static   Enabled
-------------------------- -------- -------- -------- --------
Bundle-Ether13             No       No      No       Yes
Bundle-Ether23             No       No      No       Yes
Bundle-Ether34             No       No      No       Yes
TenGigE0/2/0/8             No       No      No       Yes

 

What does this command do ?

  • ISIS will enable MPLS on any interface on which ISIS is active or passive for respective address-family
  • Will add SR Capability sub-TLV to Router Capability TLV
  • Will add Adjacency-SID sub-TLV to Extended IS Reachability TLVs

SR-Capabilities sub-TLV

 

SR data-plane capability and label ranges are advertied using SR-Capability sub TLV

 

 

Type

Length

Flags

Range

I

V

H

         

SID/Label Sub-TLV

          

Type: 2

Flags:

I - MPLS IPv4 flag

V - MPLS IPv6 flag

H - SR-IPv6 flag

Range : SRGB range

SID/Label sub-TLV : Starting lable of SRGB 

 

Adjacency-SID sub-TLV

Locally significant between neighbors

Automatically allocated for each adjacency

Different Adjacency-SID for L1 and L2 adjacencies between same neighbors

Advertised from dynamic label pool range, Always encoded as an absolute (i.e. not indexed) value

 

 

Type

Length

Flags

Weight

F

B

V

L

S

     

SID/Label

 

Type : 31

Flags

F: Address-Family, unset: IPv4, set: IPv6 (0 = IPv4)

B: Backup, adjacency being protected or not

V: Value, always set, Adj-SID carries a value

L: Local, always set , Adj-SID has local significance

S: always unset, Adj-SID refers to a set of adjacencies

Weight: The value represents the weight of the Adj-SID for the purpose of load balancing.

 

 

Configure Node-SID

 

Local node-SID Configuration

 

router isis core
 interface Loopback0
  address-family ipv4 unicast
   prefix-sid index/absolute <ipv4 value>
address-family ipv6 unicast
prefix-sid index/absolute <ipv6 value>

What does this command do ?

  • ISIS adds Prefix-SID Sub-TLV to advertise Node-SID

Prefix-SID Sub-TLV

 

Type

Length

Flags

Algorithm

R

N

P

E

V

L

   

SID/Label

 

Type : 3

Flags

R: Re-advertisement, set if the prefix is propagated from another level or from redistribution

N: Node-SID, set if the prefix-SID is a node-SID

P: no-PHP, set if the penultimate hop must NOT pop the prefix-SID before forwarding the packet

E: Explicit-Null, set if penultimate hop must replace prefix-SID with Explicit-Null label

V: Value, set if prefix-SID carries a value (not an index)

L: Local, set if prefix-SID has local significance

Algotithm : Identify the algorithm to which the prefix-SID is associated (currently "0", SPF based)

 

Notes

 

  • A nodal segment is unique within the AS and can be configured as abosulte or index value
    • With index, the absolute prefix-SID is calculated by adding the index to SRGB base (example with SRGB base 10000 and index 101, the abosulte Prefix-SID value become 100101)
    • Alternatively an absolute value can be configured from the SRGB block using  “prefix-sid absolute 50101” command
  • If the interface has more than one IP address, node-SID subTLV is only attached to the first IP address
  • No two interfaces can have the same node-SID value

 

Configuring Mapping Server

 

SR Mapping Server (SRMS)

 

Mapping Server centrally assigns prefix-SIDs for some or all of the known prefixes. A router must be able to act as a mapping server, mapping client, or both. Main functions

  • Advertise Prefix-to-SID mappings in IGP on behalf of other non-SR-capable nodes prefix-to-sid mappings are configured on the Mapping Server
  • Enable SR-capable nodes to interwork with (non-SR-capable) LDP nodes, a Mapping Server is required for SR/LDP interworking

 

Mapping server

  • Mapping server is a control plane mechanism and its position is comparable to a BGP Route-reflector
  • Allows the user to configure non-overlapping SID mapping entries to specify the prefix-SIDs for some or all prefixes.
  • ISIS advertises the local SID-mapping policy in 'SID/Label Binding TLV'
  • Mapping server must be resilient, redundancy should be provided

Mapping client:

  • Receives and parses remotely received SID/Label Binding TLV to create remote SID-mapping entries.Using the remotely learnt and locally configured mapping entries, construct the non-overlapping consistent active mapping policy.
  • IGP instance uses the active mapping policy to (re)calculate the prefix-SIDs of some or all prefixes.

 

SRMS restrictions

 

  • Mapping Server does not support in non-default VRF
  • Does not support a scenario where SID-mapping entries learned through one routing protocol instance are used by another routing protocol instance to determine the prefix-SID of a prefix.
  • Currently ASR9K does not support SR forwarding for redistrbuted connected/static routes using ISIS.

 

segment-routing
 mapping-server
  prefix-sid-map
   address-family ipv4
    1.0.0.0/30 1000 range 1000 --> Allocate prefix sids for 1000 prefixes starting from 1.0.0.0/30
    40.0.0.0/30 2001 range 4000
    100.0.0.0/24 6001 range 2000
    110.0.0.0/24 8001 range 1000
   !
   address-family ipv6
    5000:1::/120 16000 range 4000
    5000:3::/120 20001 range 4000
   !
  !
RP/0/RSP0/CPU0:R1#sho segment-routing mapping-server prefix-sid-map ipv4        
Mon May  2 22:01:57.771 PDT
Prefix               SID Index    Range        Flags
100.0.0.0/24         6001         2000         
110.0.0.0/24         8001         1000         
1.0.0.0/30           1000         1000         
40.0.0.0/30          2001         4000         

Number of mapping entries: 4
RP/0/RSP0/CPU0:R1#sho segment-routing mapping-server prefix-sid-map ipv6
Mon May  2 22:01:58.796 PDT
Prefix                                        SID Index    Range        Flags
5000:1::/120                                  16000        4000         
5000:3::/120                                  20001        4000         

Number of mapping entries: 2
RP/0/RSP0/CPU0:R1#

 

Complete configuration using a sample topology

 

  • Its recomended to have the same SRGB on all nodes in a SR domain, but for demostration configuring a different block on R4
  • "R1" act as mapping server and R2, R3 & R4 as SRMS client.

 

R1 Configuration

 

 

Loopback Config

interface Loopback0 ipv4 address 1.1.1.1 255.255.255.255 ipv6 address 2002:1:1:1::1/128 ! ISIS config

router isis core set-overload-bit on-startup wait-for-bgp is-type level-2-only net 39.752f.0100.0014.0000.9000.0001.0000.0000.a19d.00 segment-routing global-block 100000 132000 ---> overwrite default SRGB nsr nsf cisco log adjacency changes address-family ipv4 unicast metric-style wide redistribute connected segment-routing mpls ---> enable segment routing segment-routing prefix-sid-map advertise-local -- > mapping server advertisements ! address-family ipv6 unicast single-topology adjacency-check disable segment-routing mpls segment-routing prefix-sid-map advertise-local ! interface Bundle-Ether12 circuit-type level-2-only point-to-point hello-padding sometimes address-family ipv4 unicast ! address-family ipv6 unicast ! interface Bundle-Ether13 circuit-type level-2-only point-to-point hello-padding sometimes address-family ipv4 unicast ! address-family ipv6 unicast ! interface Bundle-Ether20 circuit-type level-2-only point-to-point hello-padding sometimes address-family ipv4 unicast ! address-family ipv6 unicast interface Loopback0 passive circuit-type level-2-only point-to-point csnp-interval 65535 hello-padding sometimes address-family ipv4 unicast ---> Nodal-SID config prefix-sid index 1 ! address-family ipv6 unicast prefix-sid index 11 ! ! interface TenGigE0/0/0/0/1 circuit-type level-2-only point-to-point hello-padding sometimes address-family ipv4 unicast ! address-family ipv6 unicast ! Mapping server config

segment-routing global-block 48000 56000 mapping-server prefix-sid-map address-family ipv4 1.0.0.0/30 1000 range 1000 40.0.0.0/30 2001 range 4000 ! address-family ipv6 5000:1::/120 16000 range 4000 5000:3::/120 20001 range 4000 ! !

 

R2 Configuration
 

Loopback config

interface Loopback0 ipv4 address 2.2.2.2 255.255.255.255 ipv6 address 2002:2:2:2::1/128 !

ISIS config router isis core is-type level-2-only net 39.752f.0100.0014.0000.9000.0002.0000.0000.a19e.00 log adjacency changes address-family ipv4 unicast metric-style wide fast-reroute per-link use-candidate-only propagate level 2 into level 1 route-policy PASS segment-routing mpls segment-routing prefix-sid-map receive ---> Mapping server client ! address-family ipv6 unicast single-topology segment-routing mpls segment-routing prefix-sid-map receive ! interface Bundle-Ether12 circuit-type level-2-only point-to-point hello-padding sometimes address-family ipv4 unicast ! address-family ipv6 unicast ! ! interface Bundle-Ether23 circuit-type level-2-only point-to-point hello-padding sometimes address-family ipv4 unicast ! address-family ipv6 unicast ! ! interface Loopback0 address-family ipv4 unicast prefix-sid index 2 ! address-family ipv6 unicast prefix-sid index 12 ! !

 

 R3 Configuration

 

Loopback config

interface Loopback0 ipv4 address 3.3.3.3 255.255.255.255 ipv6 address 2002:3:3:3::3/128 ! ISIS config router isis core is-type level-2-only net 39.752f.0100.0014.0000.9000.0002.0000.0000.a199.00 log adjacency changes lsp-refresh-interval 3283 max-lsp-lifetime 3600 address-family ipv4 unicast metric-style wide fast-reroute per-link use-candidate-only metric 16777214 propagate level 2 into level 1 route-policy PASS segment-routing mpls
segment-routing prefix-sid-map receive
! address-family ipv6 unicast single-topology segment-routing mpls segment-routing prefix-sid-map receive ! interface Bundle-Ether23 circuit-type level-2-only point-to-point hello-padding sometimes address-family ipv4 unicast metric 10 ! address-family ipv6 unicast metric 10 ! ! interface Bundle-Ether34 circuit-type level-2-only point-to-point csnp-interval 65535 hello-padding sometimes address-family ipv4 unicast metric 10 ! address-family ipv6 unicast metric 10 ! ! interface Loopback0 address-family ipv4 unicast prefix-sid index 3 ! address-family ipv6 unicast prefix-sid index 13 ! !

 

R4 Configuration

 

 

Looback Config
interface Loopback0 ipv4 address 4.4.4.4 255.255.255.255 ipv6 address 2002:4:4:4::4/128 !
ISIS Config

router isis core is-type level-2-only net 39.752f.0100.0014.0000.9000.0002.0000.0000.a19b.00 segment-routing global-block 64000 96000 log adjacency changes address-family ipv4 unicast metric-style wide fast-reroute per-link use-candidate-only segment-routing mpls segment-routing prefix-sid-map receive ! address-family ipv6 unicast single-topology segment-routing mpls segment-routing prefix-sid-map receive ! interface Bundle-Ether34 circuit-type level-2-only point-to-point hello-padding sometimes address-family ipv4 unicast metric 10 ! address-family ipv6 unicast metric 10 ! ! interface Loopback0 address-family ipv4 unicast prefix-sid index 4 ! address-family ipv6 unicast prefix-sid index 14 ! ! interface TenGigE0/3/0/12 circuit-type level-2-only point-to-point hello-padding sometimes address-family ipv4 unicast metric 10 ! address-family ipv6 unicast metric 10 ! !

 

Show Command Verification

 

 


RP/0/RSP0/CPU0:R1#show isis adjacency detail IS-IS core Level-2 adjacencies: System Id Interface SNPA State Hold Changed NSF IPv4 IPv6 BFD BFD Spirent-1 Te0/0/0/0/1 *PtoP* Up 27 22:48:57 No None None Area Address: 00.0001 Neighbor IPv4 Address: 110.0.2.2* Adjacency SID: 72040 ----> Adjacency SIDs allocated from dynamic pool Non-FRR Adjacency SID: 72041 Neighbor IPv6 Address: fe80::1:1* Adjacency SID: 24004 Non-FRR Adjacency SID: 24005 Topology: IPv4 Unicast Topology: IPv6 Unicast Chkpt ID: 0x40002bf8 R2 BE12 *PtoP* Up 4 22:38:51 Yes Init None Area Address: 39.752f.0100.0014.0000.9000.0002 Neighbor IPv4 Address: 12.0.0.1* Adjacency SID: 72036 Non-FRR Adjacency SID: 72037 Neighbor IPv6 Address: fe80::226:98ff:fe00:52d7* Adjacency SID: 24008 Non-FRR Adjacency SID: 24009 Topology: IPv4 Unicast Topology: IPv6 Unicast Chkpt ID: 0x40002e78 RP/0/RSP0/CPU0:R1# show isis database detail verbose R2 Sun May 1 18:51:27.794 PDT IS-IS core (Level-2) Link State Database LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL R2.00-00 0x00000068 0xcd50 813 0/0/0 Area Address: 39.752f.0100.0014.0000.9000.0002 NLPID: 0xcc NLPID: 0x8e Hostname: R2 IP Address: 2.2.2.2 IPv6 Address: 2002:2:2:2::1 Router Cap: 2.2.2.2, D:0, S:0 Segment Routing: I:1 V:1, SRGB Base: 100000 Range: 32001 --> Capability Sub TLV :- SRGB block and the I(IPv4) and V(IPv6) flag Metric: 10 IS-Extended R3.00 Interface IP Address: 23.0.0.1 Neighbor IP Address: 23.0.0.2 Interface IPv6 Address: 2300::1 Neighbor IPv6 Address: 2300::2 ADJ-SID: F:0 B:1 V:1 L:1 S:0 weight:0 Adjacency-sid:24002 --> Adj Sub TLV:- Weight, Label and Flags (F=AF,B=backup,V=Value,L=Local,S=Set) ADJ-SID: F:0 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24003 ADJ-SID: F:1 B:1 V:1 L:1 S:0 weight:0 Adjacency-sid:24004 ADJ-SID: F:1 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24005
Metric: 10 IS-Extended R1.00 Interface IP Address: 12.0.0.1 Neighbor IP Address: 12.0.0.2 Interface IPv6 Address: 1000::2 Neighbor IPv6 Address: 1000::1 ADJ-SID: F:0 B:1 V:1 L:1 S:0 weight:0 Adjacency-sid:24000 ADJ-SID: F:0 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24001 ADJ-SID: F:1 B:1 V:1 L:1 S:0 weight:0 Adjacency-sid:24006 ADJ-SID: F:1 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24007 Metric: 16777214 IP-Extended 2.2.2.2/32 Prefix-SID Index: 2, Algorithm:0, R:0 N:1 P:0 E:0 V:0 L:0 --> Prefix-SID Sub TLV:- Label, Algorithm(0=SPF) and Flags(R=Readvertisement,N=Node-SID,P=no-PHP,E=Explicit-Null,L=Local,V=Value) Metric: 10 IP-Extended 12.0.0.0/30 Metric: 10 IP-Extended 23.0.0.0/30 Metric: 10 IPv6 1000::/96 Metric: 10 IPv6 2002:2:2:2::1/128 Prefix-SID Index: 12, Algorithm:0, R:0 N:1 P:0 E:0 V:0 L:0 Metric: 10 IPv6 2300::/126 Total Level-2 LSP count: 1 Local Level-2 LSP count: 0 RP/0/RSP0/CPU0:R1#show mpls lsd forwarding application isis --> All allocated Adj SIDs In_Label, (ID), Path_Info: <Type> 24000, (SR Adj Segment IPv6, index=1, type=0, intf=Te0/0/0/0/0, nh=fe80::1), 1 Paths 1/1: IPv6, 'default':6U, Te0/0/0/0/0, nh=Link-local, lbl=Pop, flags=0x0 () 24001, (SR Adj Segment IPv6, index=3, type=0, intf=Te0/0/0/0/0, nh=fe80::1), 1 Paths 1/1: IPv6, 'default':6U, Te0/0/0/0/0, nh=Link-local, lbl=Pop, flags=0x0 () 24002, (SR Adj Segment IPv6, index=1, type=0, intf=Hu0/1/0/0, nh=fe80::6:1), 1 Paths 1/1: IPv6, 'default':6U, Hu0/1/0/0, nh=Link-local, lbl=Pop, flags=0x0 () 24003, (SR Adj Segment IPv6, index=3, type=0, intf=Hu0/1/0/0, nh=fe80::6:1), 1 Paths 1/1: IPv6, 'default':6U, Hu0/1/0/0, nh=Link-local, lbl=Pop, flags=0x0 () 24004, (SR Adj Segment IPv6, index=1, type=0, intf=Te0/0/0/0/1, nh=fe80::1:1), 1 Paths 1/1: IPv6, 'default':6U, Te0/0/0/0/1, nh=Link-local, lbl=Pop, flags=0x0 () 24005, (SR Adj Segment IPv6, index=3, type=0, intf=Te0/0/0/0/1, nh=fe80::1:1), 1 Paths 1/1: IPv6, 'default':6U, Te0/0/0/0/1, nh=Link-local, lbl=Pop, flags=0x0 () 24006, (SR Adj Segment IPv6, index=1, type=0, intf=Hu0/1/0/1, nh=fe80::7:1), 1 Paths 1/1: IPv6, 'default':6U, Hu0/1/0/1, nh=Link-local, lbl=Pop, flags=0x0 () 24007, (SR Adj Segment IPv6, index=3, type=0, intf=Hu0/1/0/1, nh=fe80::7:1), 1 Paths 1/1: IPv6, 'default':6U, Hu0/1/0/1, nh=Link-local, lbl=Pop, flags=0x0 () 24008, (SR Adj Segment IPv6, index=1, type=0, intf=BE12, nh=fe80::226:98ff:fe00:52d7), 1 Paths 1/1: IPv6, 'default':6U, BE12, nh=Link-local, lbl=Pop, flags=0x0 () 24009, (SR Adj Segment IPv6, index=3, type=0, intf=BE12, nh=fe80::226:98ff:fe00:52d7), 1 Paths 1/1: IPv6, 'default':6U, BE12, nh=Link-local, lbl=Pop, flags=0x0 () 72029, (SR Adj Segment IPv4, index=1, type=0, intf=Hu0/1/0/0, nh=110.0.7.2), 1 Paths 1/1: IPv4, 'default':4U, Hu0/1/0/0, nh=110.0.7.2, lbl=Pop, flags=0x0, ext_flags=0x0 72030, (SR Adj Segment IPv4, index=3, type=0, intf=Hu0/1/0/0, nh=110.0.7.2), 1 Paths 1/1: IPv4, 'default':4U, Hu0/1/0/0, nh=110.0.7.2, lbl=Pop, flags=0x0, ext_flags=0x0 72031, (SR Adj Segment IPv4, index=1, type=0, intf=Hu0/1/0/1, nh=110.0.8.2), 1 Paths 1/1: IPv4, 'default':4U, Hu0/1/0/1, nh=110.0.8.2, lbl=Pop, flags=0x0, ext_flags=0x0 72032, (SR Adj Segment IPv4, index=3, type=0, intf=Hu0/1/0/1, nh=110.0.8.2), 1 Paths 1/1: IPv4, 'default':4U, Hu0/1/0/1, nh=110.0.8.2, lbl=Pop, flags=0x0, ext_flags=0x0 72036, (SR Adj Segment IPv4, index=1, type=0, intf=BE12, nh=12.0.0.1), 1 Paths 1/1: IPv4, 'default':4U, BE12, nh=12.0.0.1, lbl=Pop, flags=0x0, ext_flags=0x0 72037, (SR Adj Segment IPv4, index=3, type=0, intf=BE12, nh=12.0.0.1), 1 Paths 1/1: IPv4, 'default':4U, BE12, nh=12.0.0.1, lbl=Pop, flags=0x0, ext_flags=0x0 72038, (SR Adj Segment IPv4, index=1, type=0, intf=Te0/0/0/0/0, nh=110.0.1.2), 1 Paths 1/1: IPv4, 'default':4U, Te0/0/0/0/0, nh=110.0.1.2, lbl=Pop, flags=0x0, ext_flags=0x0 72039, (SR Adj Segment IPv4, index=3, type=0, intf=Te0/0/0/0/0, nh=110.0.1.2), 1 Paths 1/1: IPv4, 'default':4U, Te0/0/0/0/0, nh=110.0.1.2, lbl=Pop, flags=0x0, ext_flags=0x0 72040, (SR Adj Segment IPv4, index=1, type=0, intf=Te0/0/0/0/1, nh=110.0.2.2), 1 Paths 1/1: IPv4, 'default':4U, Te0/0/0/0/1, nh=110.0.2.2, lbl=Pop, flags=0x0, ext_flags=0x0 72041, (SR Adj Segment IPv4, index=3, type=0, intf=Te0/0/0/0/1, nh=110.0.2.2), 1 Paths 1/1: IPv4, 'default':4U, Te0/0/0/0/1, nh=110.0.2.2, lbl=Pop, flags=0x0, ext_flags=0x0
RP/0/RSP0/CPU0:R1#sho segment-routing mapping-server prefix-sid-map ipv4 detail
Mon May  2 22:10:28.994 PDT
Prefix
100.0.0.0/24
    SID Index:      6001
    Range:          2000
    Last Prefix:    100.7.207.0/24
    Last SID Index: 8000
    Flags:          
110.0.0.0/24
    SID Index:      8001
    Range:          1000
    Last Prefix:    110.3.231.0/24
    Last SID Index: 9000
    Flags:          
1.0.0.0/30
    SID Index:      1000
    Range:          1000
    Last Prefix:    1.0.15.156/30
    Last SID Index: 1999
    Flags:          
40.0.0.0/30
    SID Index:      2001
    Range:          4000
    Last Prefix:    40.0.62.124/30
    Last SID Index: 6000
    Flags:          

Number of mapping entries: 4
RP/0/RSP0/CPU0:R1#show route 40.0.0.0/30 detail Sun May 1 18:54:09.411 PDT Routing entry for 40.0.0.0/30 Known via "isis core", distance 115, metric 41, labeled SR(SRMS), type level-2 Installed May 1 17:23:18.280 for 01:30:51 Routing Descriptor Blocks 12.0.0.1, from 110.0.3.2, via Bundle-Ether12 Route metric is 41 Label: 0x18e71 (102001) Tunnel ID: None Binding Label: None Extended communities count: 0 Path id:1 Path ref count:0 NHID:0xa(Ref:1010) Route version is 0x30 (48) Local Label: 0x18e71 (102001) IP Precedence: Not Set QoS Group ID: Not Set Flow-tag: Not Set Fwd-class: Not Set Route Priority: RIB_PRIORITY_NON_RECURSIVE_LOW (8) SVD Type RIB_SVD_TYPE_LOCAL Download Priority 2, Download Version 86491 No advertising protos.
RP/0/RSP0/CPU0:R1#show cef 40.0.0.0/30 detail Sun May 1 18:54:15.020 PDT 40.0.0.0/30, version 86491, internal 0x1000001 0x81 (ptr 0x761024c0) [1], 0x0 (0x7211a9f8), 0xa28 (0x72332430) Updated May 1 17:23:18.465 Prefix Len 30, traffic index 0, precedence n/a, priority 2 gateway array (0x71ff7ea8) reference count 3018, flags 0x68, source rib (7), 0 backups [1007 type 5 flags 0x8401 (0x7235d150) ext 0x0 (0x0)] LW-LDI[type=5, refc=3, ptr=0x7211a9f8, sh-ldi=0x7235d150] gateway array update type-time 1 May 1 17:15:47.628 LDI Update time May 1 17:15:47.628 LW-LDI-TS May 1 17:23:18.465 via 12.0.0.1/32, Bundle-Ether12, 6 dependencies, weight 0, class 0 [flags 0x0] path-idx 0 NHID 0x0 [0x71a71b54 0x0] next hop 12.0.0.1/32 local adjacency local label 102001 labels imposed {102001} Load distribution: 0 (refcount 1007) Hash OK Interface Address 0 Y Bundle-Ether12 12.0.0.1
RP/0/RSP0/CPU0:R1#show mpls forwarding prefix ipv4 unicast 40.0.0.0/30 detail Sun May 1 18:54:37.213 PDT Local Outgoing Prefix Outgoing Next Hop Bytes Label Label or ID Interface Switched ------ ----------- ------------------ ------------ --------------- ------------ 102001 102001 SR Pfx (idx 2001) BE12 12.0.0.1 22325237 Updated: May 1 17:23:18.466 Version: 86491, Priority: 2 Label Stack (Top -> Bottom): { 102001 } NHID: 0x0, Encap-ID: N/A, Path idx: 0, Backup path idx: 0, Weight: 0 MAC/Encaps: 14/18, MTU: 1500 Packets Switched: 28482 Traffic-Matrix Packets/Bytes Switched: 0/0
RP/0/RSP0/CPU0:R1#sho mpls forwarding labels 102001 detail Sun May 1 18:54:50.865 PDT Local Outgoing Prefix Outgoing Next Hop Bytes Label Label or ID Interface Switched ------ ----------- ------------------ ------------ --------------- ------------ 102001 102001 SR Pfx (idx 2001) BE12 12.0.0.1 22440454 Updated: May 1 17:23:18.466 Version: 86491, Priority: 2 Label Stack (Top -> Bottom): { 102001 } NHID: 0x0, Encap-ID: N/A, Path idx: 0, Backup path idx: 0, Weight: 0 MAC/Encaps: 14/18, MTU: 1500 Packets Switched: 28632 Traffic-Matrix Packets/Bytes Switched: 0/0 RP/0/RSP0/CPU0:R1#show cef 40.0.0.0/30 hardware egress detail location 0/0/CPU0 Sun May 1 18:55:27.655 PDT 40.0.0.0/30, version 86491, internal 0x1000001 0x81 (ptr 0x5717fb84) [1], 0x0 (0x57ef36ac), 0xa28 (0x5b497e90) Updated May 1 17:23:18.482 local adjacency 12.0.0.1 Prefix Len 30, traffic index 0, precedence n/a, priority 2 gateway array (0x56eb0fa0) reference count 3018, flags 0x68, source rib (7), 0 backups [1007 type 5 flags 0x8401 (0x5b0747d4) ext 0x0 (0x0)] LW-LDI[type=5, refc=3, ptr=0x57ef36ac, sh-ldi=0x5b0747d4] gateway array update type-time 1 May 1 17:15:47.642 LDI Update time May 1 17:15:47.642 LW-LDI-TS May 1 17:23:18.482 via 12.0.0.1/32, Bundle-Ether12, 7 dependencies, weight 0, class 0 [flags 0x0] path-idx 0 NHID 0xa [0x5b9f6a78 0x0] next hop 12.0.0.1/32 local adjacency local label 102001 labels imposed {102001} LEAF - HAL pd context : sub-type : IPV4, ecd_marked:0, has_collapsed_ldi:0 collapse_bwalk_required:0, ecdv2_marked:0 Leaf H/W Result: Physical Result: 0x11703800 (LE) Raw Data0: 0x11830003 c33d0000 00000000 00000000 Raw Data1: 0x00000000 00000000 001e0000 00000000 leaf_resolve_control_byte0 valid: 1 match: 1 rec_fs: 0 recursive: 0 leaf_resolve_control_byte1 fwd: 1 default_rte: 0 dc_rte: 0 ifib_lookup: 0 fast_switch: 0 feature_lkup: 0 non_recursive: 1 leaf_resolve_control_byte2 vrf_fallback: 0 any_label_valid: 0 bgp_pa_valid: 0 fast_switch: 0 nh_id_valid: 0 exception: 0 more_features: 0 valid_bit: 0 ecmp_size: 3 non_recursive_fwd_entry nrldi_ptr: 0x3dc3(LE) fallback_vrfid: 0x0 prefix_length: 30 l2tpv3ov6_xid: 0x0 subscriber_hash: 0x0 QPPB QOS Group: 0 lisp_eid_sample: 0 QPPB QOS Group_valid: 0 QPPB Prec_valid: 0 QPPB Prec: 0 l2tpv3ov6_xid: 0x0, cookie bits Hi: 0 Lo: 0 (size 0 bytes) l2tpv3ov6_de_cookie_hi: 0x0 Physical Result: 0x11703800 (LE) Raw Data0: 0x11830003 c33d0000 00000000 00000000 Raw Data1: 0x00000000 00000000 001e0000 00000000 leaf_resolve_control_byte0 valid: 1 match: 1 rec_fs: 0 recursive: 0 leaf_resolve_control_byte1 fwd: 1 default_rte: 0 dc_rte: 0 ifib_lookup: 0 fast_switch: 0 feature_lkup: 0 non_recursive: 1 leaf_resolve_control_byte2 vrf_fallback: 0 any_label_valid: 0 bgp_pa_valid: 0 fast_switch: 0 nh_id_valid: 0 exception: 0 more_features: 0 valid_bit: 0 ecmp_size: 3 non_recursive_fwd_entry nrldi_ptr: 0x3dc3(LE) fallback_vrfid: 0x0 prefix_length: 30 l2tpv3ov6_xid: 0x0 subscriber_hash: 0x0 QPPB QOS Group: 0 lisp_eid_sample: 0 QPPB QOS Group_valid: 0 QPPB Prec_valid: 0 QPPB Prec: 0 l2tpv3ov6_xid: 0x0, cookie bits Hi: 0 Lo: 0 (size 0 bytes) l2tpv3ov6_de_cookie_hi: 0x0l2tpv3ov6_de_cookie_lo: 0x0 l2tpv3ov6_leaf_adj: 0x0 urpf_ptr: 0x0 nrLDI eng ctx: flags: 0x1, proto: 2, npaths: 0, nbuckets: 1 ldi_tbl_idx: 0x3dc3, ecd_ref_cft: 0 pbts_ldi_tbl_idx: 0x0, fastnrldi:0x0 fastpbts:0x0 NR-LDI H/W Result for path 0 [index: 0x3dc3 (BE), common to all NPs]: Raw Data0: 0x11520cff cd33008a 00000a00 0418e711 Raw Data1: 0x18e71102 000f98fe c6200000 00000000 ldi_resolve_control_byte0: bvi: 0 pbts: 0 match: 1 valid: 1 ldi_collapsed: 0 ldi_resolve_control_byte1: mldp_sr_te_ldi_mod_tbl: 0 default_action: 1 sr_te_lspa_valid: 0 te_IpFrr_adj: 0 label_1_valid: 1 sr_te_ldi_or_lspa: 0 local_label_valid: 1 ldpBkup_label_valid: 0 ldi_resolve_control_byte2: dm_stats_valid: 1 pwhe_nrldi: 0 nh_id_valid: 1 ipldp_FRR_TE: 0 bvi: 0 np_bit_map: 0xff label_stats_index: 0xc6fe98 igp_local_label: 102001 exp: 0 eos: 1 output_label: 102001 exp: 0 eos: 1 Adj (non_te): tx_adj_ptr: 0x33cd(LE) rx_adj_ptr: 0x8a(LE) nhindex: 0x4000a(LE) TX H/W Result for NP:0 (index: 0x33cd (BE)): Raw Data0: 0x11040000 9800dc05 5c97c600 00000000 Raw Data1: 0x00269800 52d70000 00000000 00000000 adj_resolve_control_byte0 pppoe_adj: 0 match: 1 valid: 1 iptunl_adj: 0 adj_resolve_control_byte1 tx_adj_null0: 0 tx_punt: 0 pwhe: 0 tx_drop: 0 golf_bvi: 0 default_action: 1 adj_resolve_control_byte2 gre_ipv6_transp: 0 pwhe_vc11: 0 routed_sub_adj: 0 pwhe: 0 FLAGS gre_adj: 0 lisp_adj: 0 pwhe_cw: 0 ipinip_adj: 0 df: 0 tos_reflect: 0 uidb_index : 0x98 (LE) l3_mtu : 1500 adj_stats_index : 0xc6975c dest_mac : 0x0026.9800.52d7 collapsed_bkup lag: 0 drop: 0 nh_id_valid: 0 out_lbl_invalid: 0 match: 0 vqi/lag-id: 0x0 nhindex: 0x0 ifhandle: 0x0 output_label: 158080 exp: 0 eos: 0 local_label: 339312 exp: 0 eos: 0 NHINDEX H/W Result for NP:0 (index: 0x4000a (BE)): Physical Result: 0x110800009800dc055c9bc600000000000026980052d702000f20000000000000 (LE) NHINDEX STATS: pkts 28927000, bytes 22735085186 (all NPs combined) TX H/W Result for NP:1 (index: 0x33cd (BE)): Raw Data0: 0x11040000 9800dc05 9d90c600 00000000 Raw Data1: 0x00269800 52d70000 00000000 00000000 adj_resolve_control_byte0 pppoe_adj: 0 match: 1 valid: 1 iptunl_adj: 0 adj_resolve_control_byte1 tx_adj_null0: 0 tx_punt: 0 pwhe: 0 tx_drop: 0 golf_bvi: 0 default_action: 1 adj_resolve_control_byte2 gre_ipv6_transp: 0 pwhe_vc11: 0 routed_sub_adj: 0 pwhe: 0 FLAGS gre_adj: 0 lisp_adj: 0 pwhe_cw: 0 ipinip_adj: 0 df: 0 tos_reflect: 0 uidb_index : 0x98 (LE) l3_mtu : 1500 adj_stats_index : 0xc6909d dest_mac : 0x0026.9800.52d7 collapsed_bkup lag: 0 drop: 0 nh_id_valid: 0 out_lbl_invalid: 0 match: 0 vqi/lag-id: 0x0 nhindex: 0x0 ifhandle: 0x0 output_label: 158080 exp: 0 eos: 0 local_label: 339312 exp: 0 eos: 0 NHINDEX H/W Result for NP:1 (index: 0x4000a (BE)): Physical Result: 0x110800009800dc051d93c600000000000026980052d702000f20000000000000 (LE) NHINDEX STATS: pkts 28927000, bytes 22735085186 (all NPs combined) TX H/W Result for NP:2 (index: 0x33cd (BE)): Raw Data0: 0x11040000 9800dc05 9d90c600 00000000 Raw Data1: 0x00269800 52d70000 00000000 00000000 adj_resolve_control_byte0 pppoe_adj: 0 match: 1 valid: 1 iptunl_adj: 0 adj_resolve_control_byte1 tx_adj_null0: 0 tx_punt: 0 pwhe: 0 tx_drop: 0 golf_bvi: 0 default_action: 1 adj_resolve_control_byte2 gre_ipv6_transp: 0 pwhe_vc11: 0 routed_sub_adj: 0 pwhe: 0 FLAGS gre_adj: 0 lisp_adj: 0 pwhe_cw: 0 ipinip_adj: 0 df: 0 tos_reflect: 0 uidb_index : 0x98 (LE) l3_mtu : 1500 adj_stats_index : 0xc6909d dest_mac : 0x0026.9800.52d7 collapsed_bkup lag: 0 drop: 0 nh_id_valid: 0 out_lbl_invalid: 0 match: 0 vqi/lag-id: 0x0 nhindex: 0x0 ifhandle: 0x0 output_label: 158080 exp: 0 eos: 0 local_label: 339312 exp: 0 eos: 0 NHINDEX H/W Result for NP:2 (index: 0x4000a (BE)): Physical Result: 0x110800009800dc051d93c600000000000026980052d702000f20000000000000 (LE) NHINDEX STATS: pkts 28927000, bytes 22735085186 (all NPs combined) TX H/W Result for NP:3 (index: 0x33cd (BE)): Raw Data0: 0x11040000 9800dc05 9d90c600 00000000 Raw Data1: 0x00269800 52d70000 00000000 00000000 adj_resolve_control_byte0 pppoe_adj: 0 match: 1 valid: 1 iptunl_adj: 0 adj_resolve_control_byte1 tx_adj_null0: 0 tx_punt: 0 pwhe: 0 tx_drop: 0 golf_bvi: 0 default_action: 1 adj_resolve_control_byte2 gre_ipv6_transp: 0 pwhe_vc11: 0 routed_sub_adj: 0 pwhe: 0 FLAGS gre_adj: 0 lisp_adj: 0 pwhe_cw: 0 ipinip_adj: 0 df: 0 tos_reflect: 0 uidb_index : 0x98 (LE) l3_mtu : 1500 adj_stats_index : 0xc6909d dest_mac : 0x0026.9800.52d7 collapsed_bkup lag: 0 drop: 0 nh_id_valid: 0 out_lbl_invalid: 0 match: 0 vqi/lag-id: 0x0 nhindex: 0x0 ifhandle: 0x0 output_label: 158080 exp: 0 eos: 0 local_label: 339312 exp: 0 eos: 0 NHINDEX H/W Result for NP:3 (index: 0x4000a (BE)): Physical Result: 0x110800009800dc051d93c600000000000026980052d702000f20000000000000 (LE) NHINDEX STATS: pkts 28927000, bytes 22735085186 (all NPs combined) RX H/W Result on NP:0 [Adj ptr:0x8a (BE)]: Raw Data0: 0x91010000 00000b00 02000f20 00000000 adj_resolve_control_byte0 match: 1 valid: 1 iptunl_adj: 0 default_action: 1 remote_rack: 0 adj_resolve_control_byte1 adj_down: 0 mgscp_en: 0 rx_lag_hash_en: 0 rx_lag_adj: 1 pwhe: 0 ipsec: 0 cgn_enabled: 0 adj_resolve_control_byte2 nh_id_cap: 0 rx_lag_adj: 0 mid_fs_leaf: 0 rx_adj_null0: 0 rp_destined: 0 rx_punt: 0 rx_drop: 0 FLAGS gre_adj: 0 pwhe_adj: 0 gre_ipv6_transp: 0 lag_id : 0xb if_handle : 0x2000f20 RX H/W Result on NP:1 [Adj ptr:0x8a (BE)]: Raw Data0: 0x91010000 00000b00 02000f20 00000000 adj_resolve_control_byte0 match: 1 valid: 1 iptunl_adj: 0 default_action: 1 remote_rack: 0 adj_resolve_control_byte1 adj_down: 0 mgscp_en: 0 rx_lag_hash_en: 0 rx_lag_adj: 1 pwhe: 0 ipsec: 0 cgn_enabled: 0 adj_resolve_control_byte2 nh_id_cap: 0 rx_lag_adj: 0 mid_fs_leaf: 0 rx_adj_null0: 0 rp_destined: 0 rx_punt: 0 rx_drop: 0 FLAGS gre_adj: 0 pwhe_adj: 0 gre_ipv6_transp: 0 lag_id : 0xb if_handle : 0x2000f20 RX H/W Result on NP:2 [Adj ptr:0x8a (BE)]: Raw Data0: 0x91010000 00000b00 02000f20 00000000 adj_resolve_control_byte0 match: 1 valid: 1 iptunl_adj: 0 default_action: 1 remote_rack: 0 adj_resolve_control_byte1 adj_down: 0 mgscp_en: 0 rx_lag_hash_en: 0 rx_lag_adj: 1 pwhe: 0 ipsec: 0 cgn_enabled: 0 adj_resolve_control_byte2 nh_id_cap: 0 rx_lag_adj: 0 mid_fs_leaf: 0 rx_adj_null0: 0 rp_destined: 0 rx_punt: 0 rx_drop: 0 FLAGS gre_adj: 0 pwhe_adj: 0 gre_ipv6_transp: 0 lag_id : 0xb if_handle : 0x2000f20 RX H/W Result on NP:3 [Adj ptr:0x8a (BE)]: Raw Data0: 0x91010000 00000b00 02000f20 00000000 adj_resolve_control_byte0 match: 1 valid: 1 iptunl_adj: 0 default_action: 1 remote_rack: 0 adj_resolve_control_byte1 adj_down: 0 mgscp_en: 0 rx_lag_hash_en: 0 rx_lag_adj: 1 pwhe: 0 ipsec: 0 cgn_enabled: 0 adj_resolve_control_byte2 nh_id_cap: 0 rx_lag_adj: 0 mid_fs_leaf: 0 rx_adj_null0: 0 rp_destined: 0 rx_punt: 0 rx_drop: 0 FLAGS gre_adj: 0 pwhe_adj: 0 gre_ipv6_transp: 0 lag_id : 0xb if_handle : 0x2000f20 Load distribution: 0 (refcount 1007) Hash OK Interface Address 0 Y Bundle-Ether12 12.0.0.1

 

 

 

Segment Routing in OSPF

 

 

R1 Configuration

 

 

router ospf core
 router-id 1.1.1.1
 segment-routing global-block 200000 232000 
 segment-routing mpls
 segment-routing forwarding mpls
 segment-routing prefix-sid-map advertise-local 
 redistribute connected
 area 0
  interface Bundle-Ether12
  !
  interface Loopback0
   prefix-sid index 1
  !
  interface TenGigE0/0/0/0/0
  !
  interface TenGigE0/0/0/0/1
  !
  interface HundredGigE0/1/0/0
  !
  interface HundredGigE0/1/0/1
  !
  interface HundredGigE0/1/0/2

 

 

R2 Configuration

 

 

router ospf core
 router-id 2.2.2.2
 segment-routing global-block 200000 232000
 segment-routing mpls
 segment-routing forwarding mpls
 redistribute connected
 address-family ipv4
 area 0
  interface Bundle-Ether12
  !
  interface Bundle-Ether23
  !
  interface Loopback0
   prefix-sid index 2
  !

 

 

R3 Configuration

 

router ospf core
 router-id 3.3.3.3
 segment-routing global-block 200000 232000
 segment-routing mpls
 segment-routing forwarding mpls
 redistribute connected
 address-family ipv4
 area 0
  interface Bundle-Ether23
  !
  interface Bundle-Ether34
  !
  interface Loopback0
   prefix-sid index 3
  !

 

 

 

R4 Configuration

 

router ospf core
 router-id 4.4.4.4
 segment-routing global-block 200000 232000
 segment-routing mpls
 segment-routing forwarding mpls
 redistribute connected
 address-family ipv4
 area 0
  interface Bundle-Ether34
  !
  interface Loopback0
   prefix-sid index 4
  !
  interface TenGigE0/3/0/12
  !
  interface TenGigE0/3/0/13
  !

 

Show Command Verification

 

Listing only OSPF specific commands

 

 

RP/0/RSP0/CPU0:R1#show ospf database opaque-area self-originate


            OSPF Router with ID (1.1.1.1) (Process ID core)

                Type-10 Opaque Link Area Link States (Area 0)
  LS age: 501
  Options: (No TOS-capability, DC)
  LS Type: Opaque Area Link
  Link State ID: 4.0.0.0
  Opaque Type: 4
  Opaque ID: 0
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000006
  Checksum: 0xbcfd
  Length: 52

    Router Information TLV: Length: 4
    Capabilities:
      Graceful Restart Helper Capable
      Stub Router Capable
      All capability bits: 0x60000000

    Segment Routing Algorithm TLV: Length: 2
      Algorithm: 0
      Algorithm: 1

    Segment Routing Range TLV: Length: 12
      Range Size: 32001

        SID sub-TLV: Length 3
         Label: 200000

  LS age: 501
  Options: (No TOS-capability, DC)
  LS Type: Opaque Area Link
  Link State ID: 7.0.0.1
  Opaque Type: 7
  Opaque ID: 1
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000006
  Checksum: 0xdbb5
  Length: 44

    Extended Prefix TLV: Length: 20
      Route-type: 1
      AF        : 0
      Flags     : 0x40
      Prefix    : 1.1.1.1/32

      SID sub-TLV: Length: 8
        Flags     : 0x0
        MTID      : 0
        Algo      : 0
        SID Index : 1

  LS age: 1005
  Options: (No TOS-capability, DC)
  LS Type: Opaque Area Link
  Link State ID: 7.0.0.2
  Opaque Type: 7
  Opaque ID: 2
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000005
  Checksum: 0xaaec
  Length: 48

    Extended Prefix Range TLV: Length: 24
      AF        : 0
      Prefix    : 1.0.0.0/30
      Range Size: 1000
      Flags     : 0x0

      SID sub-TLV: Length: 8
        Flags     : 0x60
        MTID      : 0
        Algo      : 0
        SID Index : 1000

  LS age: 1005
  Options: (No TOS-capability, DC)
  LS Type: Opaque Area Link
  Link State ID: 7.0.0.3
  Opaque Type: 7
  Opaque ID: 3
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000005
  Checksum: 0x4579
  Length: 48

    Extended Prefix Range TLV: Length: 24
      AF        : 0
      Prefix    : 40.0.0.0/30
      Range Size: 4000
      Flags     : 0x0

      SID sub-TLV: Length: 8
        Flags     : 0x60
        MTID      : 0
        Algo      : 0
        SID Index : 2001

  LS age: 1005
  Options: (No TOS-capability, DC)
  LS Type: Opaque Area Link
  Link State ID: 7.0.0.4
  Opaque Type: 7
  Opaque ID: 4
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000005
  Checksum: 0xb8f6
  Length: 48

    Extended Prefix Range TLV: Length: 24
      AF        : 0
      Prefix    : 100.0.0.0/24
      Range Size: 2000
      Flags     : 0x0

      SID sub-TLV: Length: 8
        Flags     : 0x60
        MTID      : 0
        Algo      : 0
        SID Index : 6001

  LS age: 1005
  Options: (No TOS-capability, DC)
  LS Type: Opaque Area Link
  Link State ID: 7.0.0.5
  Opaque Type: 7
  Opaque ID: 5
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000005
  Checksum: 0x5563
  Length: 48

    Extended Prefix Range TLV: Length: 24
      AF        : 0
      Prefix    : 110.0.0.0/24
      Range Size: 1000
      Flags     : 0x0

      SID sub-TLV: Length: 8
        Flags     : 0x60
        MTID      : 0
        Algo      : 0
        SID Index : 8001

  LS age: 501
  Options: (No TOS-capability, DC)
  LS Type: Opaque Area Link
  Link State ID: 8.0.0.21
  Opaque Type: 8
  Opaque ID: 21
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000007
  Checksum: 0x33d6
  Length: 60

    Extended Link TLV: Length: 36
      Link-type : 2
      Link ID   : 12.0.0.1
      Link Data : 12.0.0.2

     Adj sub-TLV: Length: 7
        Flags     : 0xe0
        MTID      : 0
        Weight    : 0
        Label     : 24010

     Adj sub-TLV: Length: 7
        Flags     : 0x60
        MTID      : 0
        Weight    : 0
        Label     : 24011

  LS age: 501
  Options: (No TOS-capability, DC)
  LS Type: Opaque Area Link
  Link State ID: 8.0.3.46
  Opaque Type: 8
  Opaque ID: 814
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000007
  Checksum: 0x7f82
  Length: 68

    Extended Link TLV: Length: 44
      Link-type : 2
      Link ID   : 110.0.2.1
      Link Data : 110.0.2.1

     LAN Adj sub-TLV: Length: 11
       Flags      : 0xe0
       MTID       : 0
       Weight     : 0
       Neighbor ID: 192.0.0.55
       Label     : 24023

     LAN Adj sub-TLV: Length: 11
       Flags      : 0x60
       MTID       : 0
       Weight     : 0
       Neighbor ID: 192.0.0.55
       Label     : 24024

 

 

Segment Routing in BGP  (BGP Prefix-SID)

 

There are two ways to carry SR labels in BGP

 

  • Assign SR label index using route-policy and advertise using network/redistribution command - "set label-index" command.
  • Preserve the labels from IGP using redistribuion. 

In order to demostrate we are using "route-policy" way in eBGP and redustrbution method in IBGP example shown below

 

 Note : In XR RIB complains label add error if we try to allocate different labels from different protocols for the same prefix, so be careful when we use redistribution. 

 

 

 R1 Configuration

 

 

sh run router bg
router bgp 10
 bgp router-id 1.1.1.1
 mpls activate
  interface Bundle-Ether12
 !
 bgp graceful-restart
 bgp log neighbor changes detail
 bgp bestpath med always
 bgp bestpath compare-routerid
 ibgp policy out enforce-modifications
 bgp bestpath as-path multipath-relax
 address-family ipv4 unicast
  network 1.1.1.1/32 route-policy SET(1001)
  allocate-label all
 !
 neighbor 12.0.0.1
  remote-as 20
  address-family ipv4 labeled-unicast
   route-policy PASS in
   route-policy PASS out
  !
 !
route-policy SET($sid)
  set label-index $sid
end-policy
!
RP/0/RSP0/CPU0:PE1#sh run router static 
router static
 address-family ipv4 unicast
  0.0.0.0/0 1.81.0.1
  12.0.0.1/32 Bundle-Ether12
  100.0.0.0/24 110.0.1.2
  110.0.20.0/24 110.0.1.2
  110.0.100.0/24 110.0.1.2
  223.255.254.0/24 1.81.0.1

 

R2 Configuration

 

 

router bgp 20
 bgp router-id 2.2.2.2
 mpls activate
  interface Bundle-Ether12
  interface Bundle-Ether23
 !
 bgp graceful-restart
 bgp log neighbor changes detail
 bgp bestpath med always
 bgp bestpath compare-routerid
 ibgp policy out enforce-modifications
 bgp bestpath as-path multipath-relax
 address-family ipv4 unicast
  allocate-label all
 !
 neighbor 12.0.0.2
  remote-as 10
  address-family ipv4 labeled-unicast
   route-policy PASS in
   route-policy PASS out
  !
 !
 neighbor 23.0.0.2
  remote-as 30
  address-family ipv4 labeled-unicast
   route-policy PASS in
   route-policy PASS out
  !
 !
!

RP/0/RSP1/CPU0:P2#  RP/0/RSP1/CPU0:Jul 23 03:18:48.372 : ce_switch_srv[54]: %PLATFORM-VKG_SERDES-3-OPERATION_FAIL : Failed to Heart beat failed, error code Bad address  

RP/0/RSP1/CPU0:P2#sh run router static 
router static
 address-family ipv4 unicast
  0.0.0.0/0 1.80.0.1
  12.0.0.2/32 Bundle-Ether12
  23.0.0.2/32 Bundle-Ether23
  223.255.0.0/16 1.80.0.1
 !

 

R3 Configuration

 

 

 

router bgp 30
 bgp router-id 3.3.3.3
 bgp graceful-restart
 bgp log neighbor changes detail
 bgp bestpath med always
 bgp bestpath compare-routerid
 ibgp policy out enforce-modifications
 bgp bestpath as-path multipath-relax
 address-family ipv4 unicast
  allocate-label all
 !
 neighbor 23.0.0.1
  remote-as 20
  graceful-restart
  address-family ipv4 labeled-unicast
   route-policy PASS in
   route-policy PASS out
  !
 !
 neighbor 34.0.0.1
  remote-as 40
  address-family ipv4 labeled-unicast
   route-policy PASS in
   route-policy PASS out
  !
 !
!

RP/0/RSP0/CPU0:P3# sh run router static 
router static
 address-family ipv4 unicast
  23.0.0.1/32 Bundle-Ether23
  34.0.0.1/32 Bundle-Ether34
  223.255.0.0/16 1.80.0.1
 !

 

R4 Configuration

 

router bgp 40
 bgp router-id 4.4.4.4
 mpls activate
  interface Bundle-Ether34
 !
 bgp graceful-restart
 bgp log neighbor changes detail
 bgp bestpath med always
 bgp bestpath compare-routerid
 ibgp policy out enforce-modifications
 bgp bestpath as-path multipath-relax
 address-family ipv4 unicast
  network 4.4.4.4/32 route-policy SET(1004)
  allocate-label all
 !
 neighbor 34.0.0.2
  remote-as 30
  graceful-restart
  address-family ipv4 labeled-unicast
   route-policy PASS in
   route-policy PASS out
  !
 !
!

RP/0/RSP0/CPU0:PE4#    sh run router static 
router static
 address-family ipv4 unicast
  0.0.0.0/0 1.80.0.1
  10.1.0.0/24 4.4.4.4
  34.0.0.2/32 Bundle-Ether34
 !
!

RP/0/RSP0/CPU0:PE4#sh run segment-routing 
segment-routing
 global-block 200000 232000
 mapping-server
  prefix-sid-map
   address-family ipv4
    1.0.0.0/30 1000 range 4000
    11.0.0.0/30 9001 range 4000
    40.0.0.0/30 5001 range 4000
    110.0.0.0/24 500 range 100
   !
   address-family ipv6
    5000:1::/120 16000 range 4000
    5000:3::/120 30000 range 8000
   !
  !

 

Verification

 

 

RP/0/RSP0/CPU0:PE1#sh bgp  1.1.1.1/32
BGP routing table entry for 1.1.1.1/32
Versions:
  Process           bRIB/RIB  SendTblVer
  Speaker                 20          20
    Local Label: 3
Last Modified: Jul 21 00:36:31.206 for 1d09h
Paths: (1 available, best #1)
  Advertised to peers (in unique update groups):
    12.0.0.1        
  Path #1: Received by speaker 0
  Advertised to peers (in unique update groups):
    12.0.0.1        
  Local
    0.0.0.0 from 0.0.0.0 (1.1.1.1)
      Origin IGP, metric 0, localpref 100, weight 32768, valid, local, best, group-best
      Received Path ID 0, Local Path ID 0, version 20
      Prefix SID Attribute Size: 10
      Label Index: 1001
RP/0/RSP0/CPU0:PE1#sho cef 1.1.1.1/32
1.1.1.1/32, version 6, attached, receive
  Updated Jul 18 23:44:34.752
  Prefix Len 32
  internal 0x3006041 (ptr 0x721bd2e8) [3], 0x0 (0x7215aa90), 0x0 (0x0)


RP/0/RSP0/CPU0:PE4#sh bgp  1.1.1.1/32
BGP routing table entry for 1.1.1.1/32
Versions:
  Process           bRIB/RIB  SendTblVer
  Speaker                 31          31
    Local Label: 201001
Last Modified: Jul 21 20:13:50.917 for 22:12:09
Paths: (1 available, best #1)
  Not advertised to any peer
  Path #1: Received by speaker 0
  Not advertised to any peer
  30 20 10
    34.0.0.2 from 34.0.0.2 (3.3.3.3)
      Received Label 201001
      Origin IGP, localpref 100, valid, external, best, group-best
      Received Path ID 0, Local Path ID 0, version 31
      Origin-AS validity: not-found
      Prefix SID Attribute Size: 10
      Label Index: 1001
RP/0/RSP0/CPU0:PE4#  sho cef  1.1.1.1/32
1.1.1.1/32, version 185, internal 0x5000001 0x80 (ptr 0x71ece2f0) [1], 0x0 (0x71dd7e20), 0xa08 (0x722de140)
 Updated Jul 21 20:13:50.839
 Prefix Len 32, traffic index 0, precedence n/a, priority 4
   via 34.0.0.2/32, 3 dependencies, recursive, bgp-ext [flags 0x6020]
    path-idx 0 NHID 0x0 [0x723a66b4 0x0]
    recursion-via-/32
    next hop 34.0.0.2/32 via 24000/0/21
     local label 201001 


RP/0/RSP0/CPU0:P3#sh bgp  1.1.1.1/32
BGP routing table entry for 1.1.1.1/32
Versions:
  Process           bRIB/RIB  SendTblVer
  Speaker                 53          53
    Local Label: 201001
Last Modified: Jul 22 01:36:54.987 for 22:13:28
Paths: (1 available, best #1)
  Advertised to update-groups (with more than one peer):
    0.2 
  Path #1: Received by speaker 0
  Advertised to update-groups (with more than one peer):
    0.2 
  20 10
    23.0.0.1 from 23.0.0.1 (2.2.2.2)
      Received Label 201001
      Origin IGP, localpref 100, valid, external, best, group-best
      Received Path ID 0, Local Path ID 1, version 53
      Origin-AS validity: not-found
      Prefix SID Attribute Size: 10
      Label Index: 1001
RP/0/RSP0/CPU0:P3#  
RP/0/RSP0/CPU0:P3#sho cef  1.1.1.1/32
1.1.1.1/32, version 264, internal 0x5000001 0x80 (ptr 0x71e2c434) [1], 0x0 (0x71dfdad8), 0xa08 (0x722de2f8)
 Updated Jul 22 01:36:54.806
 Prefix Len 32, traffic index 0, precedence n/a, priority 4
   via 23.0.0.1/32, 3 dependencies, recursive, bgp-ext [flags 0x6020]
    path-idx 0 NHID 0x0 [0x723a63c0 0x0]
    recursion-via-/32
    next hop 23.0.0.1/32 via 24000/0/21
     local label 201001 
     next hop 23.0.0.1/32 BE23         labels imposed {ImplNull 201001}
RP/0/RSP0/CPU0:P3#      sho cef  1.1.1.1/32
1.1.1.1/32, version 264, internal 0x5000001 0x80 (ptr 0x71e2c434) [1], 0x0 (0x71dfdad8), 0xa08 (0x722de2f8)
 Updated Jul 22 01:36:54.806
 Prefix Len 32, traffic index 0, precedence n/a, priority 4
   via 23.0.0.1/32, 3 dependencies, recursive, bgp-ext [flags 0x6020]
    path-idx 0 NHID 0x0 [0x723a63c0 0x0]
    recursion-via-/32
    next hop 23.0.0.1/32 via 24000/0/21
     local label 201001 
     next hop 23.0.0.1/32 BE23         labels imposed {ImplNull 201001}

RP/0/RSP1/CPU0:P2#sh bgp  1.1.1.1/32
BGP routing table entry for 1.1.1.1/32
Versions:
  Process           bRIB/RIB  SendTblVer
  Speaker                 29          29
    Local Label: 201001
Last Modified: Jul 21 18:23:10.837 for 1d09h
Paths: (1 available, best #1)
  Advertised to update-groups (with more than one peer):
    0.2 
  Path #1: Received by speaker 0
  Advertised to update-groups (with more than one peer):
    0.2 
  10
    12.0.0.2 from 12.0.0.2 (1.1.1.1)
      Received Label 3
      Origin IGP, metric 0, localpref 100, valid, external, best, group-best
      Received Path ID 0, Local Path ID 0, version 29
      Origin-AS validity: not-found
      Prefix SID Attribute Size: 10
      Label Index: 1001
RP/0/RSP1/CPU0:P2# sho cef 1.1.1.1/32
1.1.1.1/32, version 231, internal 0x5000001 0x80 (ptr 0x71ed65e4) [1], 0x0 (0x71e72108), 0xa00 (0x722e6320)
 Updated Jul 21 18:23:10.679
 Prefix Len 32, traffic index 0, precedence n/a, priority 4
   via 12.0.0.2/32, 3 dependencies, recursive, bgp-ext [flags 0x6020]
    path-idx 0 NHID 0x0 [0x71ed6728 0x723af1ac]
    recursion-via-/32
    next hop 12.0.0.2/32 via 12.0.0.2/32
     local label 201001 
     next hop 12.0.0.2/32 BE12         labels imposed {ImplNull ImplNull}

 

 

 

 

 

 

 

router bgp 100
 nsr
 bgp router-id 100.30.3.0
 bgp graceful-restart
 ibgp policy out enforce-modifications
 address-family ipv4 unicast
  redistribute isis ring40 route-policy ring40_loopbacks
  allocate-label all
 ! !
 neighbor-group IBR
  remote-as 100
  update-source Loopback30
  address-family ipv4 labeled-unicast
   maximum-prefix 100000 75
   next-hop-self
  !
 !
 neighbor-group RRC
  remote-as 100
  update-source Loopback40
  address-family ipv4 labeled-unicast
   route-reflector-client
   next-hop-self
  !
 !
 

 

 

Segment Routing using SRTE as Transport (OSPF/ISIS)

 

SRTE using ISIS

 

 

Enable Traffic Eng under ISIS
router isis core address-family ipv4 unicast metric-style wide fast-reroute per-link use-candidate-only mpls traffic-eng level-2-only mpls traffic-eng router-id 1.1.1.1 maximum-paths 32 propagate level 2 into level 1 route-policy PASS redistribute connected segment-routing mpls segment-routing prefix-sid-map receive segment-routing prefix-sid-map advertise-local ! ! ipv4 unnumbered mpls traffic-eng Loopback0

MPLS traffic eng config

mpls traffic-eng
interface bundle-ether 12
interface bundle-ether 13

 

 

 

  Following options are available to setup an SRTE tunnel

 

 

RP/0/RSP0/CPU0:R3(config-if)#path-option 1  ?       
  dynamic          Setup based on dynamically allocated path
  explicit         Setup based on preconfigured path
  segment-routing  Setup based on destination segment

 

 

  SRTE Tunnel Setup based on Dynamically Allocated Path

 

 

 

 

 

SRTE Tunnel creation based on Dynamic path

RP/0/RSP0/CPU0:R1#sh run int tunnel-te 100 interface tunnel-te100 ipv4 unnumbered Loopback0 autoroute announce ! destination 4.4.4.4 path-option 1 dynamic segment-routing ! RP/0/RSP0/CPU0:R1#sh mpls traffic-eng tunnels 100 Name: tunnel-te100 Destination: 4.4.4.4 Ifhandle:0x2010760 Signalled-Name: R1_t100 Status: Admin: up Oper: up Path: valid Signalling: connected path option 1, (Segment-Routing) type dynamic (Basis for Setup, path weight 20) G-PID: 0x0800 (derived from egress interface properties) Bandwidth Requested: 0 kbps CT0 Creation Time: Sun May 15 19:55:37 2016 (00:31:39 ago) Config Parameters: Bandwidth: 0 kbps (CT0) Priority: 7 7 Affinity: 0x0/0xffff Metric Type: TE (global) Path Selection: Tiebreaker: Min-fill (default) Protection: any (default) Hop-limit: disabled Cost-limit: disabled Path-invalidation timeout: 10000 msec (default), Action: Tear (default) AutoRoute: enabled LockDown: disabled Policy class: not set Forward class: 0 (default) Forwarding-Adjacency: disabled Autoroute Destinations: 0 Loadshare: 0 equal loadshares Auto-bw: disabled Path Protection: Not Enabled BFD Fast Detection: Disabled Reoptimization after affinity failure: Enabled SRLG discovery: Disabled History: Tunnel has been up for: 00:31:39 (since Sun May 15 19:55:37 PDT 2016) Current LSP: Uptime: 00:31:39 (since Sun May 15 19:55:37 PDT 2016) Segment-Routing Path Info (IS-IS core level-2) Segment0[Link]: 13.0.0.1 - 13.0.0.2, Label: 24009 Segment1[Link]: 34.0.0.2 - 34.0.0.1, Label: 24017 Displayed 1 (of 2) heads, 0 (of 0) midpoints, 0 (of 0) tails Displayed 1 up, 0 down, 0 recovering, 0 recovered heads

RP/0/RSP0/CPU0:R1#sho cef 40.0.0.1 detail
Sun May 15 23:36:07.778 PDT
40.0.0.0/30, version 261492807, internal 0x1000001 0x81 (ptr 0x75b54ebc) [1], 0x0 (0x74fecbe0), 0xa28 (0x7445c068)
 Updated May 15 23:36:06.408
 Prefix Len 30, traffic index 0, precedence n/a, priority 2
  gateway array (0x7203e5dc) reference count 4002, flags 0x28, source rib (7), 0 backups
                [4003 type 1 flags 0x8401 (0x7235cb10) ext 0x0 (0x0)]
  LW-LDI[type=1, refc=1, ptr=0x74fecbe0, sh-ldi=0x7235cb10]
  gateway array update type-time 1 May 15 23:36:06.407
 LDI Update time May 15 23:36:06.408
 LW-LDI-TS May 15 23:36:06.408
   via 4.4.4.4/32, tunnel-te100, 7 dependencies, weight 0, class 0 [flags 0x0]
    path-idx 0 NHID 0x0 [0x71b08038 0x0]
    next hop 4.4.4.4/32
    local adjacency
     labels imposed {105001}

    Load distribution: 0 (refcount 4003)

    Hash  OK  Interface                 Address
    0     Y   tunnel-te100              point2point  

 

 

 

  SRTE Tunnel Setup based on Preconfigured Path

 

 

 

 

SRTE Tunnel Creation based on Explicit Path

RP/0/RSP0/CPU0:R1#sh run int tunnel-te 300 interface tunnel-te300 ipv4 unnumbered Loopback0 autoroute announce ! destination 4.4.4.4 path-option 1 explicit name SR-Explicit segment-routing ! RP/0/RSP0/CPU0:R1#sh run explicit-path name SR-Explicit explicit-path name SR-Explicit index 1 next-address strict ipv4 unicast 12.0.0.2 index 2 next-address strict ipv4 unicast 23.0.0.2 index 3 next-address strict ipv4 unicast 34.0.0.2 ! RP/0/RSP0/CPU0:R1#sh mpls traffic-eng tunnels 300 Name: tunnel-te300 Destination: 4.4.4.4 Ifhandle:0x20107a0 Signalled-Name: R1_t300 Status: Admin: up Oper: up Path: valid Signalling: connected path option 1, (Segment-Routing) type explicit SR-Explicit (Basis for Setup) G-PID: 0x0800 (derived from egress interface properties) Bandwidth Requested: 0 kbps CT0 Creation Time: Sun May 15 20:24:30 2016 (00:03:01 ago) Config Parameters: Bandwidth: 0 kbps (CT0) Priority: 7 7 Affinity: 0x0/0xffff Metric Type: TE (global) Path Selection: Tiebreaker: Min-fill (default) Protection: any (default) Hop-limit: disabled Cost-limit: disabled Path-invalidation timeout: 10000 msec (default), Action: Tear (default) AutoRoute: enabled LockDown: disabled Policy class: not set Forward class: 0 (default) Forwarding-Adjacency: disabled Autoroute Destinations: 0 Loadshare: 0 equal loadshares Auto-bw: disabled Path Protection: Not Enabled BFD Fast Detection: Disabled Reoptimization after affinity failure: Enabled SRLG discovery: Disabled History: Tunnel has been up for: 00:03:01 (since Sun May 15 20:24:30 PDT 2016) Current LSP: Uptime: 00:03:01 (since Sun May 15 20:24:30 PDT 2016) Segment-Routing Path Info (IS-IS core level-2) Segment0[Link]: 12.0.0.2 - 12.0.0.1, Label: 24013 Segment1[Link]: 23.0.0.1 - 23.0.0.2, Label: 24001 Segment2[Link]: 34.0.0.2 - 34.0.0.1, Label: 24017 Displayed 1 (of 2) heads, 0 (of 0) midpoints, 0 (of 0) tails Displayed 1 up, 0 down, 0 recovering, 0 recovered heads

RP/0/RSP0/CPU0:R1#sho cef 40.0.0.1 detail
Sun May 15 23:35:15.193 PDT
40.0.0.0/30, version 261480798, internal 0x1000001 0x81 (ptr 0x75b54ebc) [1], 0x0 (0x74fecbe0), 0xa28 (0x744754f0)
 Updated May 15 23:35:13.059
 Prefix Len 30, traffic index 0, precedence n/a, priority 2
  gateway array (0x72042268) reference count 4002, flags 0x28, source rib (7), 0 backups
                [4003 type 1 flags 0x8401 (0x7235c990) ext 0x0 (0x0)]
  LW-LDI[type=1, refc=1, ptr=0x74fecbe0, sh-ldi=0x7235c990]
  gateway array update type-time 1 May 15 23:35:13.058
 LDI Update time May 15 23:35:13.059
 LW-LDI-TS May 15 23:35:13.059
   via 4.4.4.4/32, tunnel-te300, 7 dependencies, weight 0, class 0 [flags 0x0]
    path-idx 0 NHID 0x0 [0x71b07d98 0x0]
    next hop 4.4.4.4/32
    local adjacency
     labels imposed {105001}

    Load distribution: 0 (refcount 4003)

    Hash  OK  Interface                 Address
    0     Y   tunnel-te300              point2point    

 

 

  SRTE Tunnel Setup based on Destination Segment

 

 

 

SRTE Tunnel Creation based on Destination Segment

RP/0/RSP0/CPU0:R1#sh run int tunnel-te 200 interface tunnel-te200 ipv4 unnumbered Loopback0 autoroute announce ! destination 4.4.4.4 path-option 1 segment-routing ! RP/0/RSP0/CPU0:R1#sh mpls traffic-eng tunnels 200 Name: tunnel-te200 Destination: 4.4.4.4 Ifhandle:0x20107e0 Signalled-Name: R1_t200 Status: Admin: up Oper: up Path: valid Signalling: connected path option 1, type segment-routing (Basis for Setup) G-PID: 0x0800 (derived from egress interface properties) Bandwidth Requested: 0 kbps CT0 Creation Time: Sun May 15 20:36:00 2016 (00:04:45 ago) Config Parameters: Bandwidth: 0 kbps (CT0) Priority: 7 7 Affinity: 0x0/0xffff Metric Type: TE (global) Path Selection: Tiebreaker: Min-fill (default) Protection: any (default) Hop-limit: disabled Cost-limit: disabled Path-invalidation timeout: 10000 msec (default), Action: Tear (default) AutoRoute: enabled LockDown: disabled Policy class: not set Forward class: 0 (default) Forwarding-Adjacency: disabled Autoroute Destinations: 0 Loadshare: 0 equal loadshares Auto-bw: disabled Path Protection: Not Enabled BFD Fast Detection: Disabled Reoptimization after affinity failure: Enabled SRLG discovery: Disabled History: Tunnel has been up for: 00:04:45 (since Sun May 15 20:36:00 PDT 2016) Current LSP: Uptime: 00:04:45 (since Sun May 15 20:36:00 PDT 2016) Segment-Routing Path Info (IS-IS core level-2) Segment0[Node]: 4.4.4.4, Label: 100004 Displayed 1 (of 3) heads, 0 (of 0) midpoints, 0 (of 0) tails Displayed 1 up, 0 down, 0 recovering, 0 recovered heads

RP/0/RSP0/CPU0:R1#show cef 40.0.0.1 detail
Sun May 15 23:36:57.992 PDT
40.0.0.0/30, version 261504816, internal 0x1000001 0x81 (ptr 0x75b54ebc) [1], 0x0 (0x74fecbe0), 0xa28 (0x7232e650)
 Updated May 15 23:36:56.989
 Prefix Len 30, traffic index 0, precedence n/a, priority 2
  gateway array (0x720421ec) reference count 3769, flags 0x28, source rib (7), 0 backups
                [3770 type 1 flags 0x8401 (0x7235cb90) ext 0x0 (0x0)]
  LW-LDI[type=1, refc=1, ptr=0x74fecbe0, sh-ldi=0x7235cb90]
  gateway array update type-time 1 May 15 23:36:56.988
 LDI Update time May 15 23:36:56.989
 LW-LDI-TS May 15 23:36:56.989
   via 4.4.4.4/32, tunnel-te200, 7 dependencies, weight 0, class 0 [flags 0x0]
    path-idx 0 NHID 0x0 [0x71b080e0 0x0]
    next hop 4.4.4.4/32
    local adjacency
     labels imposed {105001}

    Load distribution: 0 (refcount 3770)

    Hash  OK  Interface                 Address
    0     Y   tunnel-te200              point2point    
RP/0/RSP0/CPU0:R1#  

 

 

SRTE using OSPF

 

 

router ospf core
 router-id 1.1.1.1
 segment-routing global-block 200000 232000
 segment-routing mpls
 segment-routing forwarding mpls
 segment-routing prefix-sid-map advertise-local
 redistribute connected
 area 0
  mpls traffic-eng
  interface Bundle-Ether12
  !
  interface Bundle-Ether13
  !
  interface Loopback0
   prefix-sid index 1
  !
  interface TenGigE0/0/0/0/0
   network broadcast
  !
  !
 !
 mpls traffic-eng router-id 1.1.1.1

 

 

Binding SID

 

Router allocates a locally significant binding SID label (static/dynamic) for each RSVP/SR TE tunnel interface, which can be used to enforce traffic engineering (TE) policy using RSVP-TE or SR-TE label switching path (LSP) tunnel. If the topmost label of an incoming packet is the binding SID, the packet is steered to the appropriate LSP tunnel. As such, a SID can be used by an upstream router to steer traffic originating from a downstream router into the appropriate TE path. 

 

 

 

 

For illustration, instead of PCE we are creating a SRTE tunnel on R1 to push the binding SID label

 

SRTE tunnel in the Core

 

 

R1 Configuration
interface tunnel-te15 ipv4 unnumbered Loopback0 autoroute announce ! destination 5.5.5.5 path-option 1 explicit name SR-R1-R5 segment-routing ! explicit-path name SR-R1-R5 index 1 next-label 100002 index 2 next-label 24005 ----> Push Binding SID of SRTE Tunnel-25 (R2--> R5) ! R2 Configuration interface tunnel-te25 ipv4 unnumbered Loopback0 destination 5.5.5.5 path-option 1 explicit name SR_R2-R5 segment-routing ! explicit-path name SR_R2-R5 index 1 next-address strict ipv4 unicast 4.4.4.4 index 2 next-address strict ipv4 unicast 5.5.5.5 ! RP/0/RSP1/CPU0:R2#sho mpls traffic-eng tunnels            

Name: tunnel-te25  Destination: 5.5.5.5  Ifhandle:0x20004e0
  Signalled-Name: R2_t25
  Status:
    Admin:    up Oper:   up   Path:  valid   Signalling: connected

    path option 1, (Segment-Routing) type explicit SR_R2-R5 (Basis for Setup)
    G-PID: 0x0800 (derived from egress interface properties)
    Bandwidth Requested: 0 kbps  CT0
    Creation Time: Mon Jun 13 08:43:18 2016 (02:47:19 ago)
<output skipped>
  Segment-Routing Path Info (IS-IS core level-2)
    Segment0[Node]: 4.4.4.4, Label: 100004
    Segment1[Node]: 5.5.5.5, Label: 100005
Displayed 1 (of 1) heads, 0 (of 0) midpoints, 0 (of 0) tails
Displayed 1 up, 0 down, 0 recovering, 0 recovered heads


R1 to R5 path Verification
RP/0/RSP0/CPU0:R1#traceroute 5.5.5.5                 

Type escape sequence to abort.
Tracing the route to 5.5.5.5

 1  13.0.0.2 [MPLS: Labels 100002/24005 Exp 0] 1 msec  0 msec  0 msec
 2  23.0.0.1 [MPLS: Label 24005 Exp 0] 0 msec  0 msec  0 msec
 3  24.0.0.2 [MPLS: Label 100005 Exp 0] 0 msec  0 msec  0 msec (R2 replaced binding SID label (24005) with tunnel-25 (100005) label))
 4  45.0.0.2 1 msec  *  0 msec
RP/0/RSP0/CPU0:R1#

 

RSVP tunnel in the Core

 

 

R1 Configuration

interface tunnel-te15 ipv4 unnumbered Loopback0 autoroute announce ! destination 5.5.5.5 path-option 1 explicit name SR-R1-R5 segment-routing ! explicit-path name SR-R1-R5 index 1 next-label 100002 index 2 next-label 4005 ---> Push binding SID of RSVP Tunnel 15 (R2--> R5) ! R2 RSVP TE configuration
interface tunnel-te25 ipv4 unnumbered Loopback0 destination 5.5.5.5 binding-sid mpls label 4005 --- > Statically configured Binding SID path-option 1 explicit name SR_R2-R5 ! RP/0/RSP1/CPU0:R2#sh run explicit-path name SR_R2-R5 explicit-path name SR_R2-R5 index 1 next-address strict ipv4 unicast 4.4.4.4 index 2 next-address strict ipv4 unicast 5.5.5.5 !

RP/0/RSP1/CPU0:R2#sho mpls traffic-eng tunnels              
Name: tunnel-te25  Destination: 5.5.5.5  Ifhandle:0x20004e0
  Signalled-Name: R2_t25
  Status:
    Admin:    up Oper:   up   Path:  valid   Signalling: connected

    path option 1,  type explicit SR_R2-R5 (Basis for Setup, path weight 210)
    G-PID: 0x0800 (derived from egress interface properties)
    Bandwidth Requested: 0 kbps  CT0
    Creation Time: Mon Jun 13 08:43:18 2016 (02:45:15 ago)
<output skipped>
  Path info (IS-IS core level-2):
  Node hop count: 2
  Hop0: 24.0.0.2
  Hop1: 45.0.0.2
  Hop2: 5.5.5.5
Displayed 1 (of 1) heads, 0 (of 0) midpoints, 0 (of 0) tails
Displayed 1 up, 0 down, 0 recovering, 0 recovered heads
R1 to R5 path Verification
RP/0/RSP0/CPU0:R1#traceroute 5.5.5.5                

Type escape sequence to abort.
Tracing the route to 5.5.5.5

 1  13.0.0.2 [MPLS: Labels 100002/4005 Exp 0] 1 msec  0 msec  0 msec
 2  23.0.0.1 [MPLS: Label 4005 Exp 0] 0 msec  0 msec  0 msec
 3  24.0.0.2 [MPLS: Label 24000 Exp 0] 0 msec  0 msec  0 msec
 4  45.0.0.2 0 msec  *  0 msec
RP/0/RSP0/CPU0:R1#

 

 

 

 

 

 

Generalized Protection

 

Quick recap on current LFA FRR options

 

  • Per-Link
  • Per-Prefix
  • Remote LFA

LFA (Loop-free-alternative) FRR pre-compute a loop free alternate path and installs into the forwarding plane LFA’s are calculated based on route inequalities specified in RFC 5286.

 

Terminologies

 

 

Following ineqality conditions are considered while computing LFA path.

 

Loop Free Alternative

Inequality 1: D(N,D) < D(N,S) + D(S,D)

“Path is loop-free because N’s best path is not through local router.” Traffic sent to backup next hop is not sent back to S

Downstream path

Inequality 2: D(N,D) < D(S,D)

“Neighbor router is closer to the destination than local router.” Loop-free is guaranteed even with multiple failures (if all repair-paths are downstream path)

Node Protection

Inequality 3: D(N,D) < D(N,E) + D(E,D)“N's path to D must not go through E.”

“The distance from the node N to the prefix via the primary next-hop is strictly greater than the optimum distance from the node N to the prefix.“

Loop free link protecting for broadcast Link

Inequality 4: D(N,D) < D(N,PN) + D(PN,D)

The link from S to N should not be the same as the protected link

The link from N to D should not be the same as the protected link

 

Refer https://clnv.s3.amazonaws.com/2015/usa/pdf/BRKRST-3020.pdf for more details

 

 

Per Link

 

Per-link LFA provides link protection by installing a backup path for a given primary/protected link, backup path is calculated based on the inequality condition #1.

 

  • Less CPU intensive compared to per-prefix
  • Low coverage, does not work in all scenarios
  • Backup link carry traffic for all destinations and could create congetion, which makes per-link a bad option from capacity planning perspective

Per Prefix

 

Per Prefix determines the backup path for each prefix and allow us to have  have different backup paths for different prefixes.

 

  • More complex calculations than per link LFA, computation is for each neighbor of S and per prefix
  • High coverage compared to per-link but it’s also more CPU intensive.
  • Load share traffic among multiple backup paths
  • Per-Prefix LFA won’t be possible in every topology, for example ring.

 

Remote LFA

 

Directly conneted LFA does not cover all topologies, notably ring based topologies are not well protected by LFAs alone because there is no neighbor of the point of local repair (PLR) that has a cost to the destination without traversing the failure that is cheaper than the cost to the destination via the failure.

Remote LFA addresses this problem by creating a MPLS based tunnel, it tunnel the packets to a router which can deliver the packets without going across the failed Link

 

 

How to find the drop-off router

 

 

 

 

 

 

 Advantages

  • Simplified configuration

  • Link and node protection

  • Link and path protection

     
  • LFA (loop-free alternate) paths

  • Support for both IP and Label Distribution Protocol (LDP) core

     
  • LFA FRR is supported with equal cost multipath (ECMP).

 

Disadvantages

  • LDP must be enabled everywhere
  • Enable Targeted LDP Everywhere
  • No other tunneling mechanisms other than MPLS are supported
  • PQ node is link protecting only, not node protecting
  • PQ node calculations are only executed if there are unprotected paths for Protectable Prefixes
  • A targeted LDP session to PQ node will only be built if none exists yet
  • No Remote LFA for per-link

 

 

Topology Independent LFA (TI-LFA) 

 

TI-LFA is a segment routing based LFA FRR, which brings

 

  • Simplicity
  • Entirely automated
  • No directed LDP session
  • No RSVP-TE tunnels
  • Incremental deployment
  • Applicable to LDP primary traffic
  • Optimal backup path along post convergence path
  • Prevents transient congestion and suboptimal routing

 

Configuring TI-LFA

 
Configuring TI-LFA under ISIS
router isis core
 interface Bundle-Ether12
  address-family ipv4 unicast
   fast-reroute per-prefix
   fast-reroute per-prefix ti-lfa
Configuring TI-LFA under OSPF
router ospf core area 0 interface Bundle-Ether12 fast-reroute per-prefix fast-reroute per-prefix ti-lfa enable

 

 

 

TI-LFA  scenarios

 

  • Repair node is a direct neighbor
  • Repair node is a PQ node
  • The repair is a Q node, neighbor of the last P node
  • Node protection
  • SRLG protection

 

 

Repair node is a direct neighbor

 

 

 

RP/0/RSP0/CPU0:R1#sh run router isis core int bundle-ether 12
router isis core
 interface Bundle-Ether12
  circuit-type level-2-only
  bfd minimum-interval 100
  bfd multiplier 3
  bfd fast-detect ipv4
  point-to-point
  csnp-interval 65535
  hello-padding sometimes
  hello-interval 1
  hello-multiplier 5
  address-family ipv4 unicast
   fast-reroute per-prefix
   fast-reroute per-prefix ti-lfa
   metric 10
  !
  address-family ipv6 unicast
   metric 10
  !

RP/0/RSP0/CPU0:R1#sh isis fast-reroute 210.0.0.0/30 detail L2 210.0.0.0/30 [21/115] low priority via 13.0.0.2, Bundle-Ether13, R3, SRGB Base: 100000, Weight: 0 --> Primary FRR backup via 12.0.0.1, Bundle-Ether12, R2, SRGB Base: 100000, Weight: 0, Metric: 141 --> Backup P: No, TM: 141, LC: No, NP: No, D: No, SRLG: Yes src Spirent-1.00-00, 110.0.6.2, prefix-SID index 700, R:0 N:0 P:0 E:0 V:0 L:0
RP/0/RSP0/CPU0:R1#sho cef 210.0.0.1 210.0.0.0/30, version 189961, internal 0x1000001 0x83 (ptr 0x735c9330) [1], 0x0 (0x72145720), 0xa28 (0x73541390) Updated Jun 2 09:58:33.711 Prefix Len 30, traffic index 0, precedence n/a, priority 2 via 12.0.0.1/32, Bundle-Ether12, 10 dependencies, weight 0, class 0, backup [flags 0x300] path-idx 0 NHID 0x0 [0x71a379b0 0x0] next hop 12.0.0.1/32 local adjacency local label 100700 labels imposed {100700} via 13.0.0.2/32, Bundle-Ether13, 10 dependencies, weight 0, class 0, protected [flags 0x400] path-idx 1 bkup-idx 0 NHID 0x0 [0x7153068c 0x0] next hop 13.0.0.2/32 local label 100700 labels imposed {100700}
RP/0/RSP0/CPU0:R1#sho route 210.0.0.1 Routing entry for 210.0.0.0/30 Known via "isis core", distance 115, metric 21, labeled SR(SRMS), type level-2 Installed Jun 2 09:58:33.705 for 00:00:32 Routing Descriptor Blocks 12.0.0.1, from 110.0.6.2, via Bundle-Ether12, Backup Route metric is 141 13.0.0.2, from 110.0.6.2, via Bundle-Ether13, Protected Route metric is 21 No advertising protos.
RP/0/RSP0/CPU0:R1#sho cef 210.0.0.1 hardware egress location 0/0/CPU0 Thu Jun 2 09:59:17.570 PDT 210.0.0.0/30, version 189961, internal 0x1000001 0x83 (ptr 0x57a0115c) [1], 0x0 (0x592a23c0), 0xa28 (0x5951c344) Updated Jun 2 09:58:33.713 local adjacency 13.0.0.2 Prefix Len 30, traffic index 0, precedence n/a, priority 2 via 12.0.0.1/32, Bundle-Ether12, 11 dependencies, weight 0, class 0, backup [flags 0x300] path-idx 0 NHID 0x6 [0x58bac3b8 0x0] next hop 12.0.0.1/32 local adjacency local label 100700 labels imposed {100700} via 13.0.0.2/32, Bundle-Ether13, 11 dependencies, weight 0, class 0, protected [flags 0x400] path-idx 1 bkup-idx 0 NHID 0x2 [0x57e3fb10 0x0] next hop 13.0.0.2/32 local label 100700 labels imposed {100700} LEAF - HAL pd context : sub-type : IPV4, ecd_marked:0, has_collapsed_ldi:0 collapse_bwalk_required:0, ecdv2_marked:0 Leaf H/W Result: Physical Result: 0x11525600 (LE) Raw Data0: 0x11830003 39540000 00000000 00000000 Raw Data1: 0x00000000 00000000 001e0000 00000000 leaf_resolve_control_byte0 valid: 1 match: 1 rec_fs: 0 recursive: 0 leaf_resolve_control_byte1 fwd: 1 default_rte: 0 dc_rte: 0 ifib_lookup: 0 fast_switch: 0 feature_lkup: 0 non_recursive: 1 leaf_resolve_control_byte2 vrf_fallback: 0 any_label_valid: 0 bgp_pa_valid: 0 fast_switch: 0 nh_id_valid: 0 exception: 0 more_features: 0 valid_bit: 0 ecmp_size: 3 non_recursive_fwd_entry nrldi_ptr: 0x5439(LE) fallback_vrfid: 0x0 prefix_length: 30 l2tpv3ov6_xid: 0x0 subscriber_hash: 0x0 QPPB QOS Group: 0 QPPB QOS Group_valid: 0 QPPB Prec_valid: 0 QPPB Prec: 0 l2tpv3ov6_xid: 0x0, cookie bits Hi: 0 Lo: 0 (size 0 bytes) l2tpv3ov6_de_cookie_hi: 0x0 Physical Result: 0x11525600 (LE) Raw Data0: 0x11830003 39540000 00000000 00000000 Raw Data1: 0x00000000 00000000 001e0000 00000000 leaf_resolve_control_byte0 valid: 1 match: 1 rec_fs: 0 recursive: 0 leaf_resolve_control_byte1 fwd: 1 default_rte: 0 dc_rte: 0 ifib_lookup: 0 fast_switch: 0 feature_lkup: 0 non_recursive: 1 leaf_resolve_control_byte2 vrf_fallback: 0 any_label_valid: 0 bgp_pa_valid: 0 fast_switch: 0 nh_id_valid: 0 exception: 0 more_features: 0 valid_bit: 0 ecmp_size: 3 non_recursive_fwd_entry nrldi_ptr: 0x5439(LE) fallback_vrfid: 0x0 prefix_length: 30 l2tpv3ov6_xid: 0x0 subscriber_hash: 0x0 QPPB QOS Group: 0 QPPB QOS Group_valid: 0 QPPB Prec_valid: 0 QPPB Prec: 0 l2tpv3ov6_xid: 0x0, cookie bits Hi: 0 Lo: 0 (size 0 bytes) l2tpv3ov6_de_cookie_hi: 0x0l2tpv3ov6_de_cookie_lo: 0x0 l2tpv3ov6_leaf_adj: 0x0 urpf_ptr: 0x0 nrLDI eng ctx: flags: 0x1, proto: 2, npaths: 0, nbuckets: 1 ldi_tbl_idx: 0x5439, ecd_ref_cft: 0 pbts_ldi_tbl_idx: 0x0, fastnrldi:0x0 fastpbts:0x0 NR-LDI H/W Result for path 0 [index: 0x5439 (BE), common to all NPs]: Raw Data0: 0x11da0aff 1a000300 00001895 c11895c1 Raw Data1: 0x1895c102 000b944f c9000000 000000e0 ldi_resolve_control_byte0: bvi: 0 pbts: 0 match: 1 valid: 1 ldi_collapsed: 0 ldi_resolve_control_byte1: mldp_sr_te_ldi_mod_tbl: 0 default_action: 1 sr_te_lspa_valid: 0 te_IpFrr_adj: 1 label_1_valid: 1 sr_te_ldi_or_lspa: 0 local_label_valid: 1 ldpBkup_label_valid: 1 ldi_resolve_control_byte2: dm_stats_valid: 1 pwhe_nrldi: 0 nh_id_valid: 0 ipldp_FRR_TE: 1 bvi: 0 np_bit_map: 0xff label_stats_index: 0xc94f94 igp_local_label: 100700 exp: 0 eos: 1 output_label: 100700 exp: 0 eos: 1 Adj (te_nh): te_nh_adj_ptr: 0x1a (LE) te_nh_control: reserved: 0 doNotIncStatsIng: 1 isMPinNR_LDI: 0 uturn_check: 1 SR_bkup_label: 0 exp: 0 eos: 0 backup_LDP_label: 100700 exp: 0 eos: 1 PQ_label: 0 exp: 0 eos: 0 Primary TE-NH H/W Result for NP:0 (index: 0x1a (BE)): Raw Data0: 0x31000000 00000000 00688bc6 00000000 Raw Data1: 0x00001900 0000c533 009f0000 00000000 cb0 sr_te_head: 0 default_action: 1 backup_indication: 0 match: 1 valid: 1 cb1 te_nh_incomplete: 0 tp_path_ss: 0 tunl_over_tunl: 0 cb2 te_nh_incomplete: 0 TE_local_label: 0 exp: 0 eos: 0 TE_tunnel_label: 0 exp: 0 eos: 0 merge_point_label: 0 exp: 0 eos: 0 te_nh_stats_ptr: 0xc68b68 tx_adj_ptr: 0x33c5(LE) bu_te_nh_ptr: 0x19(LE) rx_adj_ptr: 0x9f(LE) Primary RX H/W Result for NP:0 (index: 0x9f (BE)): Raw Data0: 0x91010000 00000c00 02000be0 00000000 adj_resolve_control_byte0 match: 1 valid: 1 iptunl_adj: 0 default_action: 1 remote_rack: 0 adj_resolve_control_byte1 adj_down: 0 mgscp_en: 0 rx_lag_hash_en: 0 rx_lag_adj: 1 pwhe: 0 ipsec: 0 cgn_enabled: 0 adj_resolve_control_byte2 nh_id_cap: 0 rx_lag_adj: 0 mid_fs_leaf: 0 rx_adj_null0: 0 rp_destined: 0 rx_punt: 0 rx_drop: 0 FLAGS gre_adj: 0 pwhe_adj: 0 gre_ipv6_transp: 0 lag_id : 0xc if_handle : 0x2000be0 Primary TX H/W Result for NP:0 (index: 0x33c5 (BE)): Raw Data0: 0x11040000 3600dc05 228dc600 00000000 Raw Data1: 0x002651cc 76730000 00000000 00000000 adj_resolve_control_byte0 pppoe_adj: 0 match: 1 valid: 1 iptunl_adj: 0 adj_resolve_control_byte1 tx_adj_null0: 0 tx_punt: 0 pwhe: 0 tx_drop: 0 golf_bvi: 0 default_action: 1 adj_resolve_control_byte2 gre_ipv6_transp: 0 pwhe_vc11: 0 routed_sub_adj: 0 pwhe: 0 FLAGS gre_adj: 0 lisp_adj: 0 pwhe_cw: 0 ipinip_adj: 0 df: 0 tos_reflect: 0 uidb_index : 0x36 (LE) l3_mtu : 1500 adj_stats_index : 0xc68d22 dest_mac : 0x0026.51cc.7673 collapsed_bkup lag: 0 drop: 0 nh_id_valid: 0 out_lbl_invalid: 0 match: 0 vqi/lag-id: 0x0 nhindex: 0x0 ifhandle: 0x0 output_label: 156956 exp: 6 eos: 0 local_label: 485168 exp: 0 eos: 0 Primary TE-NH H/W Result for NP:1 (index: 0x1a (BE)): Raw Data0: 0x31000000 00000000 00688bc6 00000000 Raw Data1: 0x00001900 0000c533 009f0000 00000000 cb0 sr_te_head: 0 default_action: 1 backup_indication: 0 match: 1 valid: 1 cb1 te_nh_incomplete: 0 tp_path_ss: 0 tunl_over_tunl: 0 cb2 te_nh_incomplete: 0 TE_local_label: 0 exp: 0 eos: 0 TE_tunnel_label: 0 exp: 0 eos: 0 merge_point_label: 0 exp: 0 eos: 0 te_nh_stats_ptr: 0xc68b68 tx_adj_ptr: 0x33c5(LE) bu_te_nh_ptr: 0x19(LE) rx_adj_ptr: 0x9f(LE) Primary RX H/W Result for NP:1 (index: 0x9f (BE)): Raw Data0: 0x91010000 00000c00 02000be0 00000000 adj_resolve_control_byte0 match: 1 valid: 1 iptunl_adj: 0 default_action: 1 remote_rack: 0 adj_resolve_control_byte1 adj_down: 0 mgscp_en: 0 rx_lag_hash_en: 0 rx_lag_adj: 1 pwhe: 0 ipsec: 0 cgn_enabled: 0 adj_resolve_control_byte2 nh_id_cap: 0 rx_lag_adj: 0 mid_fs_leaf: 0 rx_adj_null0: 0 rp_destined: 0 rx_punt: 0 rx_drop: 0 FLAGS gre_adj: 0 pwhe_adj: 0 gre_ipv6_transp: 0 lag_id : 0xc if_handle : 0x2000be0 Primary TX H/W Result for NP:1 (index: 0x33c5 (BE)): Raw Data0: 0x11040000 3600dc05 c78bc600 00000000 Raw Data1: 0x002651cc 76730000 00000000 00000000 adj_resolve_control_byte0 pppoe_adj: 0 match: 1 valid: 1 iptunl_adj: 0 adj_resolve_control_byte1 tx_adj_null0: 0 tx_punt: 0 pwhe: 0 tx_drop: 0 golf_bvi: 0 default_action: 1 adj_resolve_control_byte2 gre_ipv6_transp: 0 pwhe_vc11: 0 routed_sub_adj: 0 pwhe: 0 FLAGS gre_adj: 0 lisp_adj: 0 pwhe_cw: 0 ipinip_adj: 0 df: 0 tos_reflect: 0 uidb_index : 0x36 (LE) l3_mtu : 1500 adj_stats_index : 0xc68bc7 dest_mac : 0x0026.51cc.7673 collapsed_bkup lag: 0 drop: 0 nh_id_valid: 0 out_lbl_invalid: 0 match: 0 vqi/lag-id: 0x0 nhindex: 0x0 ifhandle: 0x0 output_label: 156956 exp: 6 eos: 0 local_label: 485168 exp: 0 eos: 0 Primary TE-NH H/W Result for NP:2 (index: 0x1a (BE)): Raw Data0: 0x31000000 00000000 00688bc6 00000000 Raw Data1: 0x00001900 0000c533 009f0000 00000000 cb0 sr_te_head: 0 default_action: 1 backup_indication: 0 match: 1 valid: 1 cb1 te_nh_incomplete: 0 tp_path_ss: 0 tunl_over_tunl: 0 cb2 te_nh_incomplete: 0 TE_local_label: 0 exp: 0 eos: 0 TE_tunnel_label: 0 exp: 0 eos: 0 merge_point_label: 0 exp: 0 eos: 0 te_nh_stats_ptr: 0xc68b68 tx_adj_ptr: 0x33c5(LE) bu_te_nh_ptr: 0x19(LE) rx_adj_ptr: 0x9f(LE) Primary RX H/W Result for NP:2 (index: 0x9f (BE)): Raw Data0: 0x91010000 00000c00 02000be0 00000000 adj_resolve_control_byte0 match: 1 valid: 1 iptunl_adj: 0 default_action: 1 remote_rack: 0 adj_resolve_control_byte1 adj_down: 0 mgscp_en: 0 rx_lag_hash_en: 0 rx_lag_adj: 1 pwhe: 0 ipsec: 0 cgn_enabled: 0 adj_resolve_control_byte2 nh_id_cap: 0 rx_lag_adj: 0 mid_fs_leaf: 0 rx_adj_null0: 0 rp_destined: 0 rx_punt: 0 rx_drop: 0 FLAGS gre_adj: 0 pwhe_adj: 0 gre_ipv6_transp: 0 lag_id : 0xc if_handle : 0x2000be0 Primary TX H/W Result for NP:2 (index: 0x33c5 (BE)): Raw Data0: 0x11040000 3600dc05 c78bc600 00000000 Raw Data1: 0x002651cc 76730000 00000000 00000000 adj_resolve_control_byte0 pppoe_adj: 0 match: 1 valid: 1 iptunl_adj: 0 adj_resolve_control_byte1 tx_adj_null0: 0 tx_punt: 0 pwhe: 0 tx_drop: 0 golf_bvi: 0 default_action: 1 adj_resolve_control_byte2 gre_ipv6_transp: 0 pwhe_vc11: 0 routed_sub_adj: 0 pwhe: 0 FLAGS gre_adj: 0 lisp_adj: 0 pwhe_cw: 0 ipinip_adj: 0 df: 0 tos_reflect: 0 uidb_index : 0x36 (LE) l3_mtu : 1500 adj_stats_index : 0xc68bc7 dest_mac : 0x0026.51cc.7673 collapsed_bkup lag: 0 drop: 0 nh_id_valid: 0 out_lbl_invalid: 0 match: 0 vqi/lag-id: 0x0 nhindex: 0x0 ifhandle: 0x0 output_label: 156956 exp: 6 eos: 0 local_label: 485168 exp: 0 eos: 0 Primary TE-NH H/W Result for NP:3 (index: 0x1a (BE)): Raw Data0: 0x31000000 00000000 00688bc6 00000000 Raw Data1: 0x00001900 0000c533 009f0000 00000000 cb0 sr_te_head: 0 default_action: 1 backup_indication: 0 match: 1 valid: 1 cb1 te_nh_incomplete: 0 tp_path_ss: 0 tunl_over_tunl: 0 cb2 te_nh_incomplete: 0 TE_local_label: 0 exp: 0 eos: 0 TE_tunnel_label: 0 exp: 0 eos: 0 merge_point_label: 0 exp: 0 eos: 0 te_nh_stats_ptr: 0xc68b68 tx_adj_ptr: 0x33c5(LE) bu_te_nh_ptr: 0x19(LE) rx_adj_ptr: 0x9f(LE) Primary RX H/W Result for NP:3 (index: 0x9f (BE)): Raw Data0: 0x91010000 00000c00 02000be0 00000000 adj_resolve_control_byte0 match: 1 valid: 1 iptunl_adj: 0 default_action: 1 remote_rack: 0 adj_resolve_control_byte1 adj_down: 0 mgscp_en: 0 rx_lag_hash_en: 0 rx_lag_adj: 1 pwhe: 0 ipsec: 0 cgn_enabled: 0 adj_resolve_control_byte2 nh_id_cap: 0 rx_lag_adj: 0 mid_fs_leaf: 0 rx_adj_null0: 0 rp_destined: 0 rx_punt: 0 rx_drop: 0 FLAGS gre_adj: 0 pwhe_adj: 0 gre_ipv6_transp: 0 lag_id : 0xc if_handle : 0x2000be0 Primary TX H/W Result for NP:3 (index: 0x33c5 (BE)): Raw Data0: 0x11040000 3600dc05 c78bc600 00000000 Raw Data1: 0x002651cc 76730000 00000000 00000000 adj_resolve_control_byte0 pppoe_adj: 0 match: 1 valid: 1 iptunl_adj: 0 adj_resolve_control_byte1 tx_adj_null0: 0 tx_punt: 0 pwhe: 0 tx_drop: 0 golf_bvi: 0 default_action: 1 adj_resolve_control_byte2 gre_ipv6_transp: 0 pwhe_vc11: 0 routed_sub_adj: 0 pwhe: 0 FLAGS gre_adj: 0 lisp_adj: 0 pwhe_cw: 0 ipinip_adj: 0 df: 0 tos_reflect: 0 uidb_index : 0x36 (LE) l3_mtu : 1500 adj_stats_index : 0xc68bc7 dest_mac : 0x0026.51cc.7673 collapsed_bkup lag: 0 drop: 0 nh_id_valid: 0 out_lbl_invalid: 0 match: 0 vqi/lag-id: 0x0 nhindex: 0x0 ifhandle: 0x0 output_label: 156956 exp: 6 eos: 0 local_label: 485168 exp: 0 eos: 0 Backup TE-NH H/W Result for NP:0 (index: 0x19 (BE)): Raw Data0: 0x31000000 00000000 00688bc6 00000000 Raw Data1: 0x00000000 0000c733 00520000 00000000 cb0 sr_te_head: 0 default_action: 1 backup_indication: 0 match: 1 valid: 1 cb1 te_nh_incomplete: 0 tp_path_ss: 0 tunl_over_tunl: 0 cb2 te_nh_incomplete: 0 TE_local_label: 0 exp: 0 eos: 0 TE_tunnel_label: 0 exp: 0 eos: 0 merge_point_label: 0 exp: 0 eos: 0 te_nh_stats_ptr: 0xc68b68 tx_adj_ptr: 0x33c7(LE) bu_te_nh_ptr: 0x0(LE) rx_adj_ptr: 0x52(LE) Backup RX H/W Result for NP:0 (index: 0x52 (BE)): Raw Data0: 0x91010000 00000b00 02000ba0 00000000 adj_resolve_control_byte0 match: 1 valid: 1 iptunl_adj: 0 default_action: 1 remote_rack: 0 adj_resolve_control_byte1 adj_down: 0 mgscp_en: 0 rx_lag_hash_en: 0 rx_lag_adj: 1 pwhe: 0 ipsec: 0 cgn_enabled: 0 adj_resolve_control_byte2 nh_id_cap: 0 rx_lag_adj: 0 mid_fs_leaf: 0 rx_adj_null0: 0 rp_destined: 0 rx_punt: 0 rx_drop: 0 FLAGS gre_adj: 0 pwhe_adj: 0 gre_ipv6_transp: 0 lag_id : 0xb if_handle : 0x2000ba0 Backup TX H/W Result for NP:0 (index: 0x33c7 (BE)): Raw Data0: 0x11040000 3500dc05 238dc600 00000000 Raw Data1: 0x00269800 52d30000 00000000 00000000 adj_resolve_control_byte0 pppoe_adj: 0 match: 1 valid: 1 iptunl_adj: 0 adj_resolve_control_byte1 tx_adj_null0: 0 tx_punt: 0 pwhe: 0 tx_drop: 0 golf_bvi: 0 default_action: 1 adj_resolve_control_byte2 gre_ipv6_transp: 0 pwhe_vc11: 0 routed_sub_adj: 0 pwhe: 0 FLAGS gre_adj: 0 lisp_adj: 0 pwhe_cw: 0 ipinip_adj: 0 df: 0 tos_reflect: 0 uidb_index : 0x35 (LE) l3_mtu : 1500 adj_stats_index : 0xc68d23 dest_mac : 0x0026.9800.52d3 collapsed_bkup lag: 0 drop: 0 nh_id_valid: 0 out_lbl_invalid: 0 match: 0 vqi/lag-id: 0x0 nhindex: 0x0 ifhandle: 0x0 output_label: 158080 exp: 0 eos: 0 local_label: 339248 exp: 0 eos: 0

 

 

 

Repair node is a PQ node

 

 

 

RP/0/RSP0/CPU0:R1#sh isis fast-reroute 210.0.0.0/30 detail            

L2 210.0.0.0/30 [21/115] low priority
     via 13.0.0.2, Bundle-Ether13, R3, SRGB Base: 100000, Weight: 0
         Backup path: TI-LFA (link), via 12.0.0.1, Bundle-Ether12 R2, SRGB Base: 100000, Weight: 0
           P node: R4.00 [4.4.4.4], Label: 100004
           Prefix label: 100700
       P: No, TM: 50, LC: No, NP: No, D: No, SRLG: No
     src Spirent-1.00-00, 110.0.6.2, prefix-SID index 700, R:0 N:0 P:0 E:0 V:0
         L:0
RP/0/RSP0/CPU0:R1#sho route 210.0.0.1 Routing entry for 210.0.0.0/30 Known via "isis core", distance 115, metric 21, labeled SR(SRMS), type level-2 Installed Jun 2 09:55:58.143 for 00:00:21 Routing Descriptor Blocks 12.0.0.1, from 110.0.6.2, via Bundle-Ether12, Backup (remote) Remote LFA is 4.4.4.4 Route metric is 0 13.0.0.2, from 110.0.6.2, via Bundle-Ether13, Protected
RP/0/RSP0/CPU0:R1#sho cef 210.0.0.1 210.0.0.0/30, version 165896, internal 0x1000001 0x83 (ptr 0x735c9330) [1], 0x0 (0x72145720), 0xa28 (0x7355444c) Updated Jun 2 09:55:58.151 Prefix Len 30, traffic index 0, precedence n/a, priority 2 via 12.0.0.1/32, Bundle-Ether12, 10 dependencies, weight 0, class 0, backup (remote) [flags 0x8300] path-idx 0 NHID 0x0 [0x71a379b0 0x0] next hop 12.0.0.1/32, PQ-node 4.4.4.4 local adjacency local label 100700 labels imposed {100004 100700} via 13.0.0.2/32, Bundle-Ether13, 10 dependencies, weight 0, class 0, protected [flags 0x400] path-idx 1 bkup-idx 0 NHID 0x0 [0x7153068c 0x0] next hop 13.0.0.2/32 local label 100700 labels imposed {100700} Route metric is 21 No advertising protos. RP/0/RSP0/CPU0:R1#sho cef 210.0.0.1 hardware egress location 0/0/CPU0 210.0.0.0/30, version 165896, internal 0x1000001 0x83 (ptr 0x57a0115c) [1], 0x0 (0x592a23c0), 0xa28 (0x5869ac90) Updated Jun 2 09:55:58.152 local adjacency 13.0.0.2 Prefix Len 30, traffic index 0, precedence n/a, priority 2 via 12.0.0.1/32, Bundle-Ether12, 11 dependencies, weight 0, class 0, backup (remote) [flags 0x8300] path-idx 0 NHID 0x6 [0x58bac3b8 0x0] next hop 12.0.0.1/32, PQ-node 4.4.4.4 local adjacency local label 100700 labels imposed {100004 100700} via 13.0.0.2/32, Bundle-Ether13, 11 dependencies, weight 0, class 0, protected [flags 0x400] path-idx 1 bkup-idx 0 NHID 0x2 [0x57e3fb10 0x0] next hop 13.0.0.2/32 local label 100700 labels imposed {100700} LEAF - HAL pd context : sub-type : IPV4, ecd_marked:0, has_collapsed_ldi:0 collapse_bwalk_required:0, ecdv2_marked:0 Leaf H/W Result: Physical Result: 0x11525600 (LE) Raw Data0: 0x11830003 39540000 00000000 00000000 Raw Data1: 0x00000000 00000000 001e0000 00000000 leaf_resolve_control_byte0 valid: 1 match: 1 rec_fs: 0 recursive: 0 leaf_resolve_control_byte1 fwd: 1 default_rte: 0 dc_rte: 0 ifib_lookup: 0 fast_switch: 0 feature_lkup: 0 non_recursive: 1 leaf_resolve_control_byte2 vrf_fallback: 0 any_label_valid: 0 bgp_pa_valid: 0 fast_switch: 0 nh_id_valid: 0 exception: 0 more_features: 0 valid_bit: 0 ecmp_size: 3 non_recursive_fwd_entry nrldi_ptr: 0x5439(LE) fallback_vrfid: 0x0 prefix_length: 30 l2tpv3ov6_xid: 0x0 subscriber_hash: 0x0 QPPB QOS Group: 0 QPPB QOS Group_valid: 0 QPPB Prec_valid: 0 QPPB Prec: 0 l2tpv3ov6_xid: 0x0, cookie bits Hi: 0 Lo: 0 (size 0 bytes) l2tpv3ov6_de_cookie_hi: 0x0 Physical Result: 0x11525600 (LE) Raw Data0: 0x11830003 39540000 00000000 00000000 Raw Data1: 0x00000000 00000000 001e0000 00000000 leaf_resolve_control_byte0 valid: 1 match: 1 rec_fs: 0 recursive: 0 leaf_resolve_control_byte1 fwd: 1 default_rte: 0 dc_rte: 0 ifib_lookup: 0 fast_switch: 0 feature_lkup: 0 non_recursive: 1 leaf_resolve_control_byte2 vrf_fallback: 0 any_label_valid: 0 bgp_pa_valid: 0 fast_switch: 0 nh_id_valid: 0 exception: 0 more_features: 0 valid_bit: 0 ecmp_size: 3 non_recursive_fwd_entry nrldi_ptr: 0x5439(LE) fallback_vrfid: 0x0 prefix_length: 30 l2tpv3ov6_xid: 0x0 subscriber_hash: 0x0 QPPB QOS Group: 0 QPPB QOS Group_valid: 0 QPPB Prec_valid: 0 QPPB Prec: 0 l2tpv3ov6_xid: 0x0, cookie bits Hi: 0 Lo: 0 (size 0 bytes) l2tpv3ov6_de_cookie_hi: 0x0l2tpv3ov6_de_cookie_lo: 0x0 l2tpv3ov6_leaf_adj: 0x0 urpf_ptr: 0x0 nrLDI eng ctx: flags: 0x1, proto: 2, npaths: 0, nbuckets: 1 ldi_tbl_idx: 0x5439, ecd_ref_cft: 0 pbts_ldi_tbl_idx: 0x0, fastnrldi:0x0 fastpbts:0x0 NR-LDI H/W Result for path 0 [index: 0x5439 (BE), common to all NPs]: Raw Data0: 0x11da0aff 1a000118 95c1186a 411895c1 Raw Data1: 0x1895c102 000b8593 c8000000 000000e0 ldi_resolve_control_byte0: bvi: 0 pbts: 0 match: 1 valid: 1 ldi_collapsed: 0 ldi_resolve_control_byte1: mldp_sr_te_ldi_mod_tbl: 0 default_action: 1 sr_te_lspa_valid: 0 te_IpFrr_adj: 1 label_1_valid: 1 sr_te_ldi_or_lspa: 0 local_label_valid: 1 ldpBkup_label_valid: 1 ldi_resolve_control_byte2: dm_stats_valid: 1 pwhe_nrldi: 0 nh_id_valid: 0 ipldp_FRR_TE: 1 bvi: 0 np_bit_map: 0xff label_stats_index: 0xc89385 igp_local_label: 100700 exp: 0 eos: 1 output_label: 100700 exp: 0 eos: 1 Adj (te_nh): te_nh_adj_ptr: 0x1a (LE) te_nh_control: reserved: 0 doNotIncStatsIng: 1 isMPinNR_LDI: 0 uturn_check: 0 SR_bkup_label: 0 exp: 0 eos: 0 backup_LDP_label: 100004 exp: 0 eos: 1 PQ_label: 100700 exp: 0 eos: 1 Primary TE-NH H/W Result for NP:0 (index: 0x1a (BE)): Raw Data0: 0x31000000 00000000 00688bc6 00000000 Raw Data1: 0x00001900 0000c533 009f0000 00000000 cb0 sr_te_head: 0 default_action: 1 backup_indication: 0 match: 1 valid: 1 cb1 te_nh_incomplete: 0 tp_path_ss: 0 tunl_over_tunl: 0 cb2 te_nh_incomplete: 0 TE_local_label: 0 exp: 0 eos: 0 TE_tunnel_label: 0 exp: 0 eos: 0 merge_point_label: 0 exp: 0 eos: 0 te_nh_stats_ptr: 0xc68b68 tx_adj_ptr: 0x33c5(LE) bu_te_nh_ptr: 0x19(LE) rx_adj_ptr: 0x9f(LE) Primary RX H/W Result for NP:0 (index: 0x9f (BE)): Raw Data0: 0x91010000 00000c00 02000be0 00000000 adj_resolve_control_byte0 match: 1 valid: 1 iptunl_adj: 0 default_action: 1 remote_rack: 0 adj_resolve_control_byte1 adj_down: 0 mgscp_en: 0 rx_lag_hash_en: 0 rx_lag_adj: 1 pwhe: 0 ipsec: 0 cgn_enabled: 0 adj_resolve_control_byte2 nh_id_cap: 0 rx_lag_adj: 0 mid_fs_leaf: 0 rx_adj_null0: 0 rp_destined: 0 rx_punt: 0 rx_drop: 0 FLAGS gre_adj: 0 pwhe_adj: 0 gre_ipv6_transp: 0 lag_id : 0xc if_handle : 0x2000be0 Primary TX H/W Result for NP:0 (index: 0x33c5 (BE)): Raw Data0: 0x11040000 3600dc05 228dc600 00000000 Raw Data1: 0x002651cc 76730000 00000000 00000000 adj_resolve_control_byte0 pppoe_adj: 0 match: 1 valid: 1 iptunl_adj: 0 adj_resolve_control_byte1 tx_adj_null0: 0 tx_punt: 0 pwhe: 0 tx_drop: 0 golf_bvi: 0 default_action: 1 adj_resolve_control_byte2 gre_ipv6_transp: 0 pwhe_vc11: 0 routed_sub_adj: 0 pwhe: 0 FLAGS gre_adj: 0 lisp_adj: 0 pwhe_cw: 0 ipinip_adj: 0 df: 0 tos_reflect: 0 uidb_index : 0x36 (LE) l3_mtu : 1500 adj_stats_index : 0xc68d22 dest_mac : 0x0026.51cc.7673 collapsed_bkup lag: 0 drop: 0 nh_id_valid: 0 out_lbl_invalid: 0 match: 0 vqi/lag-id: 0x0 nhindex: 0x0 ifhandle: 0x0 output_label: 156956 exp: 6 eos: 0 local_label: 485168 exp: 0 eos: 0 Backup TE-NH H/W Result for NP:0 (index: 0x19 (BE)): Raw Data0: 0x31000000 00000000 00688bc6 00000000 Raw Data1: 0x00000000 0000c733 00520000 00000000 cb0 sr_te_head: 0 default_action: 1 backup_indication: 0 match: 1 valid: 1 cb1 te_nh_incomplete: 0 tp_path_ss: 0 tunl_over_tunl: 0 cb2 te_nh_incomplete: 0 TE_local_label: 0 exp: 0 eos: 0 TE_tunnel_label: 0 exp: 0 eos: 0 merge_point_label: 0 exp: 0 eos: 0 te_nh_stats_ptr: 0xc68b68 tx_adj_ptr: 0x33c7(LE) bu_te_nh_ptr: 0x0(LE) rx_adj_ptr: 0x52(LE) Backup RX H/W Result for NP:0 (index: 0x52 (BE)): Raw Data0: 0x91010000 00000b00 02000ba0 00000000 adj_resolve_control_byte0 match: 1 valid: 1 iptunl_adj: 0 default_action: 1 remote_rack: 0 adj_resolve_control_byte1 adj_down: 0 mgscp_en: 0 rx_lag_hash_en: 0 rx_lag_adj: 1 pwhe: 0 ipsec: 0 cgn_enabled: 0 adj_resolve_control_byte2 nh_id_cap: 0 rx_lag_adj: 0 mid_fs_leaf: 0 rx_adj_null0: 0 rp_destined: 0 rx_punt: 0 rx_drop: 0 FLAGS gre_adj: 0 pwhe_adj: 0 gre_ipv6_transp: 0 lag_id : 0xb if_handle : 0x2000ba0 Backup TX H/W Result for NP:0 (index: 0x33c7 (BE)): Raw Data0: 0x11040000 3500dc05 238dc600 00000000 Raw Data1: 0x00269800 52d30000 00000000 00000000 adj_resolve_control_byte0 pppoe_adj: 0 match: 1 valid: 1 iptunl_adj: 0 adj_resolve_control_byte1 tx_adj_null0: 0 tx_punt: 0 pwhe: 0 tx_drop: 0 golf_bvi: 0 default_action: 1 adj_resolve_control_byte2 gre_ipv6_transp: 0 pwhe_vc11: 0 routed_sub_adj: 0 pwhe: 0 FLAGS gre_adj: 0 lisp_adj: 0 pwhe_cw: 0 ipinip_adj: 0 df: 0 tos_reflect: 0 uidb_index : 0x35 (LE) l3_mtu : 1500 adj_stats_index : 0xc68d23 dest_mac : 0x0026.9800.52d3 collapsed_bkup lag: 0 drop: 0 nh_id_valid: 0 out_lbl_invalid: 0 match: 0 vqi/lag-id: 0x0 nhindex: 0x0 ifhandle: 0x0 output_label: 158080 exp: 0 eos: 0 local_label: 339248 exp: 0 eos: 0

 

The repair is a Q node, neighbor of the last P node

 

 

 

 

 

 

RP/0/RSP0/CPU0:R1#sh isis fast-reroute 210.0.0.0/30 detail
L2 210.0.0.0/30 [21/115] low priority
     via 13.0.0.2, Bundle-Ether13, R3, SRGB Base: 100000, Weight: 0
         Backup path: TI-LFA (link), via 12.0.0.1, Bundle-Ether12 R2, SRGB Base: 100000, Weight: 0
           P node: R5.00 [5.5.5.5], Label: 100005
           Q node: R4.00 [4.4.4.4], Label: 24004
           Prefix label: 100700
       P: No, TM: 140, LC: No, NP: No, D: No, SRLG: No
     src Spirent-1.00-00, 110.0.6.2, prefix-SID index 700, R:0 N:0 P:0 E:0 V:0
         L:0
RP/0/RSP0/CPU0:R1#sho route  210.0.0.1       
Routing entry for 210.0.0.0/30
  Known via "isis core", distance 115, metric 21, labeled SR(SRMS), type level-2
  Installed Jun  2 09:53:01.998 for 00:00:39
  Routing Descriptor Blocks
    12.0.0.1, from 110.0.6.2, via Bundle-Ether12, Backup (remote)
      Remote LFA is 5.5.5.5, 4.4.4.4
      Route metric is 0
    13.0.0.2, from 110.0.6.2, via Bundle-Ether13, Protected
      Route metric is 21
  No advertising protos.

RP/0/RSP0/CPU0:R1#sho cef 210.0.0.1

210.0.0.0/30, version 153855, internal 0x1000001 0x83 (ptr 0x735c9330) [1], 0x0 (0x72145720), 0xa28 (0x73ba7c40)
 Updated Jun  2 09:53:02.011
 Prefix Len 30, traffic index 0, precedence n/a, priority 2
   via 12.0.0.1/32, Bundle-Ether12, 9 dependencies, weight 0, class 0, backup (remote) [flags 0x8300]
    path-idx 0 NHID 0x0 [0x71a379b0 0x0]
    next hop 12.0.0.1/32, P-node 5.5.5.5, Q-node 4.4.4.4
    local adjacency
     local label 100700      labels imposed {100005 24004 100700}
   via 13.0.0.2/32, Bundle-Ether13, 9 dependencies, weight 0, class 0, protected [flags 0x400]
    path-idx 1 bkup-idx 0 NHID 0x0 [0x7153068c 0x0]
    next hop 13.0.0.2/32
     local label 100700      labels imposed {100700}
RP/0/RSP0/CPU0:R1#sho cef 210.0.0.1 hardware egress location 0/0/CPU0
Thu Jun  2 09:54:13.598 PDT
210.0.0.0/30, version 153855, internal 0x1000001 0x83 (ptr 0x57a0115c) [1], 0x0 (0x592a23c0), 0xa28 (0x59533b74)
 Updated Jun  2 09:53:02.011
 local adjacency 13.0.0.2
 Prefix Len 30, traffic index 0, precedence n/a, priority 2
   via 12.0.0.1/32, Bundle-Ether12, 10 dependencies, weight 0, class 0, backup (remote) [flags 0x8300]
    path-idx 0 NHID 0x6 [0x58bac3b8 0x0]
    next hop 12.0.0.1/32, P-node 5.5.5.5, Q-node 4.4.4.4
    local adjacency
     local label 100700      labels imposed {100005 24004 100700}
   via 13.0.0.2/32, Bundle-Ether13, 10 dependencies, weight 0, class 0, protected [flags 0x400]
    path-idx 1 bkup-idx 0 NHID 0x2 [0x57e3fb10 0x0]
    next hop 13.0.0.2/32
     local label 100700      labels imposed {100700}

 LEAF - HAL pd context :
 sub-type : IPV4, ecd_marked:0, has_collapsed_ldi:0
 collapse_bwalk_required:0, ecdv2_marked:0

Leaf H/W Result:

    Physical Result: 0x11525600 (LE)

    Raw Data0: 0x11830003 39540000 00000000 00000000
    Raw Data1: 0x00000000 00000000 001e0000 00000000
    leaf_resolve_control_byte0
                       valid: 1                   match: 1                  rec_fs: 0
                   recursive: 0
    leaf_resolve_control_byte1
                         fwd: 1             default_rte: 0                  dc_rte: 0
                 ifib_lookup: 0             fast_switch: 0            feature_lkup: 0
       non_recursive: 1
    leaf_resolve_control_byte2
                vrf_fallback: 0         any_label_valid: 0            bgp_pa_valid: 0
                 fast_switch: 0             nh_id_valid: 0               exception: 0
               more_features: 0               valid_bit: 0
               ecmp_size: 3
    non_recursive_fwd_entry
               nrldi_ptr: 0x5439(LE)      fallback_vrfid: 0x0       prefix_length: 30
               l2tpv3ov6_xid: 0x0         subscriber_hash: 0x0
      QPPB QOS Group: 0
QPPB QOS Group_valid: 0
             QPPB Prec_valid: 0    
           QPPB Prec: 0
               l2tpv3ov6_xid: 0x0, cookie bits Hi: 0 Lo: 0 (size 0 bytes)
        l2tpv3ov6_de_cookie_hi: 0x0
    Physical Result: 0x11525600 (LE)

    Raw Data0: 0x11830003 39540000 00000000 00000000
    Raw Data1: 0x00000000 00000000 001e0000 00000000
    leaf_resolve_control_byte0
                       valid: 1                   match: 1                  rec_fs: 0
                   recursive: 0
    leaf_resolve_control_byte1
                         fwd: 1             default_rte: 0                  dc_rte: 0
                 ifib_lookup: 0             fast_switch: 0            feature_lkup: 0
       non_recursive: 1
    leaf_resolve_control_byte2
                vrf_fallback: 0         any_label_valid: 0            bgp_pa_valid: 0
                 fast_switch: 0             nh_id_valid: 0               exception: 0
               more_features: 0               valid_bit: 0
               ecmp_size: 3
    non_recursive_fwd_entry
               nrldi_ptr: 0x5439(LE)      fallback_vrfid: 0x0       prefix_length: 30
               l2tpv3ov6_xid: 0x0         subscriber_hash: 0x0
      QPPB QOS Group: 0
QPPB QOS Group_valid: 0
             QPPB Prec_valid: 0    
           QPPB Prec: 0
               l2tpv3ov6_xid: 0x0, cookie bits Hi: 0 Lo: 0 (size 0 bytes)
        l2tpv3ov6_de_cookie_hi: 0x0l2tpv3ov6_de_cookie_lo: 0x0
          l2tpv3ov6_leaf_adj: 0x0                urpf_ptr: 0x0

nrLDI eng ctx:
     flags: 0x1, proto: 2, npaths: 0, nbuckets: 1
    ldi_tbl_idx: 0x5439, ecd_ref_cft: 0
    pbts_ldi_tbl_idx: 0x0, fastnrldi:0x0 fastpbts:0x0

NR-LDI H/W Result for path 0 [index: 0x5439 (BE),  common to all NPs]:

    Raw Data0: 0x11da0aff 1a000118 95c105dc 411895c1
    Raw Data1: 0x1895c102 000b8593 c8186a51 000000e0
    ldi_resolve_control_byte0:
                     bvi: 0                pbts: 0               match: 1
                   valid: 1       ldi_collapsed: 0
    ldi_resolve_control_byte1:
        mldp_sr_te_ldi_mod_tbl: 0          default_action: 1        sr_te_lspa_valid: 0
                te_IpFrr_adj: 1           label_1_valid: 1       sr_te_ldi_or_lspa: 0
           local_label_valid: 1     ldpBkup_label_valid: 1
    ldi_resolve_control_byte2:
          dm_stats_valid: 1          pwhe_nrldi: 0         nh_id_valid: 0
            ipldp_FRR_TE: 1                 bvi: 0
    np_bit_map: 0xff
    label_stats_index: 0xc89385
             igp_local_label:   100700     exp: 0     eos: 1
                output_label:   100700     exp: 0     eos: 1
    Adj (te_nh):
               te_nh_adj_ptr: 0x1a (LE)

        te_nh_control:
                    reserved: 0        doNotIncStatsIng: 1
                isMPinNR_LDI: 0             uturn_check: 0
               SR_bkup_label:   100005     exp: 0     eos: 1
            backup_LDP_label:    24004     exp: 0     eos: 1
                    PQ_label:   100700     exp: 0     eos: 1

 Primary TE-NH H/W Result for NP:0 (index: 0x1a (BE)):

    Raw Data0: 0x31000000 00000000 00688bc6 00000000
    Raw Data1: 0x00001900 0000c533 009f0000 00000000
    cb0
                  sr_te_head: 0          default_action: 1       backup_indication: 0
                       match: 1                   valid: 1
    cb1
        te_nh_incomplete: 0          tp_path_ss: 0      tunl_over_tunl: 0
    cb2
            te_nh_incomplete: 0
              TE_local_label:        0     exp: 0     eos: 0
             TE_tunnel_label:        0     exp: 0     eos: 0
           merge_point_label:        0     exp: 0     eos: 0
         te_nh_stats_ptr: 0xc68b68
      tx_adj_ptr: 0x33c5(LE)    bu_te_nh_ptr: 0x19(LE)      rx_adj_ptr: 0x9f(LE)
    

 Primary RX H/W Result for NP:0 (index: 0x9f (BE)):

    Raw Data0: 0x91010000 00000c00 02000be0 00000000
    adj_resolve_control_byte0
                   match: 1               valid: 1          iptunl_adj: 0
          default_action: 1         remote_rack: 0
    adj_resolve_control_byte1
                adj_down: 0            mgscp_en: 0      rx_lag_hash_en: 0
              rx_lag_adj: 1                pwhe: 0               ipsec: 0
         cgn_enabled: 0

    adj_resolve_control_byte2
               nh_id_cap: 0          rx_lag_adj: 0         mid_fs_leaf: 0
            rx_adj_null0: 0         rp_destined: 0             rx_punt: 0
                 rx_drop: 0

    FLAGS
                 gre_adj: 0            pwhe_adj: 0     gre_ipv6_transp: 0
    lag_id          : 0xc
    if_handle       : 0x2000be0

 Primary TX H/W Result for NP:0 (index: 0x33c5 (BE)):

    Raw Data0: 0x11040000 3600dc05 228dc600 00000000
    Raw Data1: 0x002651cc 76730000 00000000 00000000
    adj_resolve_control_byte0
               pppoe_adj: 0               match: 1               valid: 1
              iptunl_adj: 0
    adj_resolve_control_byte1
            tx_adj_null0: 0             tx_punt: 0                pwhe: 0
                 tx_drop: 0            golf_bvi: 0      default_action: 1
    adj_resolve_control_byte2
         gre_ipv6_transp: 0           pwhe_vc11: 0      routed_sub_adj: 0
                    pwhe: 0
    FLAGS
                 gre_adj: 0            lisp_adj: 0             pwhe_cw: 0
              ipinip_adj: 0                  df: 0         tos_reflect: 0

    uidb_index      : 0x36 (LE)
    l3_mtu          : 1500
    adj_stats_index : 0xc68d22
    dest_mac        : 0x0026.51cc.7673

    collapsed_bkup
                     lag: 0                drop: 0         nh_id_valid: 0
         out_lbl_invalid: 0               match: 0          vqi/lag-id: 0x0
                 nhindex: 0x0            ifhandle: 0x0
                output_label:   156956     exp: 6     eos: 0
                 local_label:   485168     exp: 0     eos: 0



 Backup TE-NH H/W Result for NP:0 (index: 0x19 (BE)):

    Raw Data0: 0x31000000 00000000 00688bc6 00000000
    Raw Data1: 0x00000000 0000c733 00520000 00000000
    cb0
                  sr_te_head: 0          default_action: 1       backup_indication: 0
                       match: 1                   valid: 1
    cb1
        te_nh_incomplete: 0          tp_path_ss: 0      tunl_over_tunl: 0
    cb2
            te_nh_incomplete: 0
              TE_local_label:        0     exp: 0     eos: 0
             TE_tunnel_label:        0     exp: 0     eos: 0
           merge_point_label:        0     exp: 0     eos: 0
         te_nh_stats_ptr: 0xc68b68
      tx_adj_ptr: 0x33c7(LE)    bu_te_nh_ptr: 0x0(LE)      rx_adj_ptr: 0x52(LE)
    

 Backup RX H/W Result for NP:0 (index: 0x52 (BE)):

    Raw Data0: 0x91010000 00000b00 02000ba0 00000000
    adj_resolve_control_byte0
                   match: 1               valid: 1          iptunl_adj: 0
          default_action: 1         remote_rack: 0
    adj_resolve_control_byte1
                adj_down: 0            mgscp_en: 0      rx_lag_hash_en: 0
              rx_lag_adj: 1                pwhe: 0               ipsec: 0
         cgn_enabled: 0

    adj_resolve_control_byte2
               nh_id_cap: 0          rx_lag_adj: 0         mid_fs_leaf: 0
            rx_adj_null0: 0         rp_destined: 0             rx_punt: 0
                 rx_drop: 0

    FLAGS
                 gre_adj: 0            pwhe_adj: 0     gre_ipv6_transp: 0
    lag_id          : 0xb
    if_handle       : 0x2000ba0

 Backup TX H/W Result for NP:0 (index: 0x33c7 (BE)):

    Raw Data0: 0x11040000 3500dc05 238dc600 00000000
    Raw Data1: 0x00269800 52d30000 00000000 00000000
    adj_resolve_control_byte0
               pppoe_adj: 0               match: 1               valid: 1
              iptunl_adj: 0
    adj_resolve_control_byte1
            tx_adj_null0: 0             tx_punt: 0                pwhe: 0
                 tx_drop: 0            golf_bvi: 0      default_action: 1
    adj_resolve_control_byte2
         gre_ipv6_transp: 0           pwhe_vc11: 0      routed_sub_adj: 0
                    pwhe: 0
    FLAGS
                 gre_adj: 0            lisp_adj: 0             pwhe_cw: 0
              ipinip_adj: 0                  df: 0         tos_reflect: 0

    uidb_index      : 0x35 (LE)
    l3_mtu          : 1500
    adj_stats_index : 0xc68d23
    dest_mac        : 0x0026.9800.52d3

    collapsed_bkup
                     lag: 0                drop: 0         nh_id_valid: 0
         out_lbl_invalid: 0               match: 0          vqi/lag-id: 0x0
                 nhindex: 0x0            ifhandle: 0x0
                output_label:   158080     exp: 0     eos: 0
                 local_label:   339248     exp: 0     eos: 0

 

Node protection

 

 

router isis core
 interface Bundle-Ether12
  circuit-type level-2-only
  bfd minimum-interval 100
  bfd multiplier 3
  bfd fast-detect ipv4
  point-to-point
  address-family ipv4 unicast
   fast-reroute per-prefix
   fast-reroute per-prefix tiebreaker node-protecting index 10
   fast-reroute per-prefix ti-lfa
   metric 10
  !
  address-family ipv6 unicast
   metric 10

RP/0/RSP0/CPU0:R1#sh cef 4.4.4.4/32 detail
4.4.4.4/32, version 554934, internal 0x1000001 0x83 (ptr 0x73221b2c) [1], 0x0 (0x73363e40), 0xa28 (0x734aa394)
 Updated Jun  5 13:15:21.297
 Prefix Len 32, traffic index 0, precedence n/a, priority 1
  gateway array (0x71ff9300) reference count 12012, flags 0x1400068, source rib (7), 0 backups
                [4005 type 5 flags 0x8401 (0x7235d150) ext 0x0 (0x0)]
  LW-LDI[type=5, refc=3, ptr=0x73363e40, sh-ldi=0x7235d150]
  gateway array update type-time 1 Jun  5 13:09:38.107
 LDI Update time Jun  5 13:09:38.110
 LW-LDI-TS Jun  5 13:15:21.298
   via 12.0.0.1/32, Bundle-Ether12, 9 dependencies, weight 0, class 0, protected [flags 0x400]
    path-idx 0 bkup-idx 1 NHID 0x0 [0x715302ec 0x0]
    next hop 12.0.0.1/32
     local label 100004      labels imposed {100004}
   via 13.0.0.2/32, Bundle-Ether13, 9 dependencies, weight 0, class 0, backup (remote) [flags 0x8300]
    path-idx 1 NHID 0x0 [0x71a36600 0x0]
    next hop 13.0.0.2/32, PQ-node 4.4.4.4
    local adjacency
     local label 100004      labels imposed {24001}

    Load distribution: 0 (refcount 4005)

    Hash  OK  Interface                 Address
    0     Y   Bundle-Ether12            12.0.0.1       

 

 

SRLG Protection

 

 

Notes:

  Currently only local SRLG configurations are considered while calculating the backup path  

 

ISIS Configuration

 

router isis core
set-overload-bit on-startup wait-for-bgp
is-type level-2-only
net 49.001.001.001.001.001.00
segment-routing global-block 100000 132000
nsr
distribute bgp-ls
nsf cisco
address-family ipv4 unicast
metric-style wide
microloop avoidance protected
microloop avoidance rib-update-delay 1000
maximum-paths 32
redistribute connected
segment-routing mpls sr-prefer
segment-routing prefix-sid-map receive
segment-routing prefix-sid-map advertise-local
!
address-family ipv6 unicast
single-topology
adjacency-check disable
segment-routing mpls
segment-routing prefix-sid-map receive
segment-routing prefix-sid-map advertise-local
!
interface Bundle-Ether13
circuit-type level-2-only
bfd minimum-interval 100
bfd multiplier 3
bfd fast-detect ipv4
point-to-point
csnp-interval 65535
hello-padding sometimes
hello-interval 1
hello-multiplier 5
address-family ipv4 unicast
fast-reroute per-prefix
fast-reroute per-prefix tiebreaker srlg-disjoint index 100
fast-reroute per-prefix ti-lfa
metric 10
!
address-family ipv6 unicast
metric 10
!
!
RP/0/RSP0/CPU0:PE1#show isis fast-reroute 4.4.4.4/32

L2 4.4.4.4/32 [30/115]
via 13.0.0.2, Bundle-Ether13, P3, SRGB Base: 100000, Weight: 0
Backup path: TI-LFA (srlg), via 12.0.0.1, Bundle-Ether12 P2, SRGB Base: 100000, Weight: 0
Prefix label: 100004
RP/0/RSP0/CPU0:PE1# sho cef 4.4.4.4/32
4.4.4.4/32, version 1205, internal 0x1000001 0x83 (ptr 0x720db43c) [1], 0x0 (0x720aead0), 0xa28 (0x732cf5a4)
Updated Jun 20 01:06:39.300
Prefix Len 32, traffic index 0, precedence n/a, priority 1
via 12.0.0.1/32, Bundle-Ether12, 8 dependencies, weight 0, class 0, backup [flags 0x300]
path-idx 0 NHID 0x0 [0x71a69e9c 0x0]
next hop 12.0.0.1/32
local adjacency
local label 100004 labels imposed {100004}
via 13.0.0.2/32, Bundle-Ether13, 8 dependencies, weight 0, class 0, protected [flags 0x400]
path-idx 1 bkup-idx 0 NHID 0x0 [0x715948d0 0x0]
next hop 13.0.0.2/32
local label 100004 labels imposed {100004}

 

OSPF Configuration

 

router ospf core
 router-id 1.1.1.1
 segment-routing global-block 200000 232000
 segment-routing mpls
 segment-routing forwarding mpls
 fast-reroute per-link
 segment-routing prefix-sid-map advertise-local
 redistribute connected
 address-family ipv4
 area 0
  mpls traffic-eng
  interface Bundle-Ether12
   fast-reroute per-prefix
   fast-reroute per-prefix ti-lfa enable
   fast-reroute per-prefix tiebreaker srlg-disjoint index 100
  !
  interface Bundle-Ether13
  !
  interface Loopback0
   prefix-sid index 1
  !
  interface TenGigE0/0/0/0/0
   network broadcast
  !
  interface TenGigE0/0/0/0/1
  !
  interface HundredGigE0/1/0/0
  !
  interface HundredGigE0/1/0/1
  !
  interface HundredGigE0/1/0/2
  !
 !
 mpls traffic-eng router-id 1.1.1.1
!

 

 

Micro-Loop Avoidance

 

 

ISIS Configuration

router isis core set-overload-bit on-startup wait-for-bgp is-type level-2-only net 49.001.001.001.001.001.00 segment-routing global-block 100000 132000 nsr distribute bgp-ls nsf cisco log adjacency changes lsp-refresh-interval 3283 max-lsp-lifetime 3600 address-family ipv4 unicast metric-style wide microloop avoidance protected microloop avoidance rib-update-delay 1000 maximum-paths 32 redistribute connected segment-routing mpls sr-prefer segment-routing prefix-sid-map receive segment-routing prefix-sid-map advertise-local !

OSPF Configuration

router ospf core
router-id 1.1.1.1
segment-routing global-block 200000 232000
segment-routing mpls
segment-routing forwarding mpls
fast-reroute per-link
segment-routing prefix-sid-map advertise-local
microloop avoidance rib-update-delay 100
microloop avoidance
redistribute connected
address-family ipv4
area 0
mpls traffic-eng
interface Bundle-Ether12
fast-reroute per-prefix
fast-reroute per-prefix ti-lfa enable
fast-reroute per-prefix tiebreaker srlg-disjoint index 100
!
interface Bundle-Ether13
!
interface Loopback0
prefix-sid index 1
!
interface TenGigE0/0/0/0/0
network broadcast
!
interface TenGigE0/0/0/0/1
!
interface HundredGigE0/1/0/0
!
interface HundredGigE0/1/0/1
!
interface HundredGigE0/1/0/2
!
!

 

 

LDP to SR Migration

 

LDP and SR Coexistence

 

Segment Routing LDP can coexist together and by default LDP is preferred over SR. To override the default preference “segment-routing mpls sr-prefer” needs to be configured under router isis address family ipv4 hierarchy.

 

Notes

  • If both SR local and outgoing labels exist
    • Incoming IP traffic will be encapsulated in the preferred outgoing protocol label (hence by default, incoming IP traffic will be encapsulated in the outgoing LDP label)
    • Recursive routes that require MPLS transport will be encapsulated into preferred outgoing protocol label (hence by default LDP is used as a transport protocol for recursive routes)
    • Incoming labeled LDP traffic will be switchedout into outgoing LDP label(s)
    • Incoming labeled SR traffic will be switched into outgoing labeled SR label(s)
  • If only one outgoing label exist (be it SR or LDP), then the available outgoing label is used for all traffic: incoming IP, incoming label SR, incoming labeled LDP, and recursive resolution

 

 

router isis core
 set-overload-bit on-startup wait-for-bgp
 is-type level-2-only
 net 49.001.001.001.001.001.00
 segment-routing global-block 100000 132000
 nsr
 distribute bgp-ls
 nsf cisco
 address-family ipv4 unicast
  metric-style wide
  microloop avoidance protected
  microloop avoidance rib-update-delay 1000
  mpls traffic-eng level-2-only
  mpls traffic-eng router-id 1.1.1.1
  maximum-paths 32
  redistribute connected
  segment-routing mpls sr-prefer
  segment-routing prefix-sid-map receive
  segment-routing prefix-sid-map advertise-local
 !
 address-family ipv6 unicast
  single-topology
  adjacency-check disable
segment-routing mpls sr-prefer segment-routing prefix-sid-map receive segment-routing prefix-sid-map advertise-local !

 

 


 

LDP to SR Migration

 

  1. All routers initially run only LDP
  2. Configure segment routing on all nodes
  3. Move one of the Edge node to SR using the command “segment-routing mpls sr-prefer”
  4. Gradually configure SR preference over LDP on other edge routers
  5. All services are now transported over SR but LDP is still available to rollback in case of any issues
  6. LDP can be removed once all services are migrated to SR.

 

 

Step 1: All routers running LDP

RP/0/RSP0/CPU0:R1#show cef 4.4.4.4/32 4.4.4.4/32, version 2022, internal 0x1000001 0x1 (ptr 0x7320502c) [1], 0x0 (0x737aba50), 0xa28 (0x7234e478) Updated Jun 12 19:25:28.531 Prefix Len 32, traffic index 0, precedence n/a, priority 3 via 13.0.0.2/32, Bundle-Ether13, 12 dependencies, weight 0, class 0 [flags 0x0] path-idx 0 NHID 0x0 [0x71a36600 0x0] next hop 13.0.0.2/32 local adjacency local label 24037 labels imposed {24024} RP/0/RSP0/CPU0:R1#traceroute 4.4.4.4 Sun Jun 12 19:27:02.310 PDT Type escape sequence to abort. Tracing the route to 4.4.4.4 1 13.0.0.2 [MPLS: Label 24024 Exp 0] 1 msec 0 msec 0 msec 2 34.0.0.1 0 msec * 0 msec RP/0/RSP0/CPU0:R1#

Step 2: Enable Segment routing on all nodes

router isis core
 segment-routing global-block 100000 132000
 address-family ipv4 unicast
  metric-style wide
  segment-routing mpls
  segment-routing prefix-sid-map receive
  segment-routing prefix-sid-map advertise-local
 !
 address-family ipv6 unicast
  segment-routing mpls
  segment-routing prefix-sid-map receive
  segment-routing prefix-sid-map advertise-local
 interface Loopback0
  address-family ipv4 unicast
   prefix-sid index 1
  !
  address-family ipv6 unicast
   prefix-sid index 11
  !
 !
Step 3: On R1 migrate services to SR by configuring SR preference over LDP
RP/0/RSP0/CPU0:R1# conf Sun Jun 12 19:26:22.827 PDT RP/0/RSP0/CPU0:R1(config)#router isis core RP/0/RSP0/CPU0:R1(config-isis)# address-family ipv4 unicast RP/0/RSP0/CPU0:R1(config-isis-af)# segment-routing mpls sr-prefer RP/0/RSP0/CPU0:R1(config-isis-af)# RP/0/RSP0/CPU0:R1(config-isis-af)#commi RP/0/RSP0/CPU0:R1#sho cef 4.4.4.4/32 Sun Jun 12 19:26:39.062 PDT 4.4.4.4/32, version 17635858, internal 0x1000001 0x83 (ptr 0x7320502c) [1], 0x0 (0x737abe88), 0xa28 (0x7233d678) Updated Apr 5 05:56:57.079 Prefix Len 32, traffic index 0, precedence n/a, priority 1 via 13.0.0.2/32, Bundle-Ether13, 14 dependencies, weight 0, class 0 [flags 0x0] path-idx 0 NHID 0x0 [0x71a36600 0x0] next hop 13.0.0.2/32 local adjacency local label 100004 labels imposed {100004} RP/0/RSP0/CPU0:R1#traceroute 4.4.4.4 Sun Jun 12 19:26:44.047 PDT Type escape sequence to abort. Tracing the route to 4.4.4.4 1 13.0.0.2 [MPLS: Label 100004 Exp 0] 1 msec 0 msec 0 msec 2 34.0.0.1 1 msec * 0 msec

 

 

RSVP TE to SRTE Migration

 

  1. Initially RSVP tunnels are configured in the system
  2. On the existing RSVP tunnel configure a second path option using segmnet routing
  3. Switchover the tunnel to segment routing path option using the command "mpls traffic-engg switchover"
  4. After the successful migration to SRTE tunnel its safe to remove the RSVP path option.

 

Step 1 : Exisiting RSVP Tunnel from R1 to R4 

RP/0/RSP0/CPU0:R1#sh run int tunnel-te 14 interface tunnel-te14 ipv4 unnumbered Loopback0 autoroute announce ! destination 4.4.4.4 path-option 1 explicit name P2-P5-PE4 ! explicit-path name P2-P5-PE4 index 1 next-address strict ipv4 unicast 2.2.2.2 index 2 next-address strict ipv4 unicast 5.5.5.5 index 3 next-address strict ipv4 unicast 4.4.4.4 !
RP/0/RSP0/CPU0:R1#sh mpls traffic-eng tunnels 14
Name: tunnel-te14  Destination: 4.4.4.4  Ifhandle:0x20089a0
  Signalled-Name: R1_t14
  Status:
    Admin:    up Oper:   up   Path:  valid   Signalling: connected

    path option 1,  type explicit P2-P5-PE4 (Basis for Setup, path weight 220)
    G-PID: 0x0800 (derived from egress interface properties)
    Bandwidth Requested: 0 kbps  CT0
    Creation Time: Sun Jun 12 19:35:58 2016 (00:11:30 ago)
  Config Parameters:
    Bandwidth:        0 kbps (CT0) Priority:  7  7 Affinity: 0x0/0xffff
    Metric Type: TE (global)
    Path Selection:
      Tiebreaker: Min-fill (default)
    Hop-limit: disabled
    Cost-limit: disabled
    Path-invalidation timeout: 10000 msec (default), Action: Tear (default)
    AutoRoute:  enabled  LockDown: disabled   Policy class: not set
    Forward class: 0 (default)
    Forwarding-Adjacency: disabled
    Autoroute Destinations: 0
    Loadshare:          0 equal loadshares
    Auto-bw: disabled
    Fast Reroute: Disabled, Protection Desired: None
    Path Protection: Not Enabled
    BFD Fast Detection: Disabled
    Reoptimization after affinity failure: Enabled
    Soft Preemption: Disabled
  History:
    Tunnel has been up for: 00:09:13 (since Sun Jun 12 19:38:15 PDT 2016)
    Current LSP:
      Uptime: 00:00:25 (since Sun Jun 12 19:47:03 PDT 2016)
    Reopt. LSP:
      Last Failure:
        LSP not signalled, has no S2Ls
        Date/Time: Sun Jun 12 19:46:45 PDT 2016 [00:00:43 ago]
    Prior LSP:
      ID: 3 Path Option: 1
      Removal Trigger: reoptimization completed

  Path info (IS-IS core level-2):
  Node hop count: 3
  Hop0: 12.0.0.1
  Hop1: 25.0.0.2
  Hop2: 45.0.0.1
  Hop3: 4.4.4.4
Displayed 1 (of 5) heads, 0 (of 0) midpoints, 0 (of 0) tails
Displayed 1 up, 0 down, 0 recovering, 0 recovered he
RP/0/RSP0/CPU0:R1#sh cef 4.4.4.4 detail 4.4.4.4/32, version 2058, internal 0x1000001 0x1 (ptr 0x7320502c) [1], 0x0 (0x737abca8), 0xa20 (0x7232c8f0) Updated Jun 12 19:39:15.336 Prefix Len 32, traffic index 0, precedence n/a, priority 3 gateway array (0x720044c4) reference count 3, flags 0x68, source lsd (5), 1 backups [3 type 4 flags 0x8401 (0x7235dfd0) ext 0x0 (0x0)] LW-LDI[type=1, refc=1, ptr=0x737abca8, sh-ldi=0x7235dfd0] gateway array update type-time 1 Jun 12 19:38:46.935 LDI Update time Jun 12 19:38:46.936 LW-LDI-TS Jun 12 19:38:46.936 via 4.4.4.4/32, tunnel-te14, 7 dependencies, weight 0, class 0 [flags 0x0] path-idx 0 NHID 0x0 [0x71a38820 0x71a366a8] next hop 4.4.4.4/32 local adjacency local label 24037 labels imposed {ImplNull} Load distribution: 0 (refcount 3) Hash OK Interface Address 0 Y tunnel-te14 point2point RP/0/RSP0/CPU0:R1# traceroute 4.4.4.4 Type escape sequence to abort. Tracing the route to 4.4.4.4 1 12.0.0.1 [MPLS: Label 24009 Exp 0] 0 msec 0 msec 0 msec 2 25.0.0.2 [MPLS: Label 24002 Exp 0] 0 msec 0 msec 0 msec 3 45.0.0.1 0 msec * 0 msec RP/0/RSP0/CPU0:R1#
Step2 : Add a second option in tunnel interface for Segment routing path

RP/0/RSP0/CPU0:R1(config)#int tunnel-te 14
RP/0/RSP0/CPU0:R1(config-if)#path-option 2 explicit name P2-P5-PE4 segment-routing
RP/0/RSP0/CPU0:R1(config-if)#commi

RP/0/RSP0/CPU0:R1#sh mpls traffic-eng tunnels  14
Name: tunnel-te14  Destination: 4.4.4.4  Ifhandle:0x20089a0
  Signalled-Name: R1_t14
  Status:
    Admin:    up Oper:   up   Path:  valid   Signalling: connected

    path option 1,  type explicit P2-P5-PE4 (Basis for Setup, path weight 220)
    path option 2, (Segment-Routing) type explicit P2-P5-PE4
 <output skipped>
  Path info (IS-IS core level-2):
  Node hop count: 3
  Hop0: 12.0.0.1
  Hop1: 25.0.0.2
  Hop2: 45.0.0.1
  Hop3: 4.4.4.4
Displayed 1 (of 5) heads, 0 (of 0) midpoints, 0 (of 0) tails
Displayed 1 up, 0 down, 0 recovering, 0 recovered heads
RP/0/RSP0/CPU0:R1#


Step3: Switchover to Segment routing path option

RP/0/RSP0/CPU0:R1# mpls traffic-eng switchover tunnel-te 14 path-option 2
RP/0/RSP0/CPU0:R1#sh mpls traffic-eng tunnels 14                              

Name: tunnel-te14  Destination: 4.4.4.4  Ifhandle:0x20089e0
  Signalled-Name: R1_t14
  Status:
    Admin:    up Oper:   up   Path:  valid   Signalling: connected

    path option 2, (Segment-Routing) type explicit P2-P5-PE4 (Basis for Setup)
    path option 1,  type explicit P2-P5-PE4
    G-PID: 0x0800 (derived from egress interface properties)
    Bandwidth Requested: 0 kbps  CT0
    Creation Time: Sun Jun 12 19:59:40 2016 (00:04:13 ago)
  Config Parameters:
    Bandwidth:        0 kbps (CT0) Priority:  7  7 Affinity: 0x0/0xffff
    Metric Type: TE (global)
    Path Selection:
      Tiebreaker: Min-fill (default)
      Protection: any (default)
    Hop-limit: disabled
    Cost-limit: disabled
    Path-invalidation timeout: 10000 msec (default), Action: Tear (default)
    AutoRoute:  enabled  LockDown: disabled   Policy class: not set
    Forward class: 0 (default)
    Forwarding-Adjacency: disabled
    Autoroute Destinations: 0
    Loadshare:          0 equal loadshares
    Auto-bw: disabled
    Path Protection: Not Enabled
    BFD Fast Detection: Disabled
    Reoptimization after affinity failure: Enabled
    SRLG discovery: Disabled
  History:
    Tunnel has been up for: 00:00:32 (since Sun Jun 12 20:03:21 PDT 2016)
    Current LSP:
      Uptime: 00:00:07 (since Sun Jun 12 20:03:46 PDT 2016)
    Reopt. LSP:
      Last Failure:
        LSP not signalled, has no S2Ls
        Date/Time: Sun Jun 12 20:01:15 PDT 2016 [00:02:38 ago]
    Prior LSP:
      ID: 9 Path Option: 1
      Removal Trigger: reoptimization completed

  Segment-Routing Path Info (IS-IS core level-2)
    Segment0[Node]: 2.2.2.2, Label: 100002
    Segment1[Node]: 5.5.5.5, Label: 100005
    Segment2[Node]: 4.4.4.4, Label: 100004
Displayed 1 (of 5) heads, 0 (of 0) midpoints, 0 (of 0) tails
Displayed 1 up, 0 down, 0 recovering, 0 recovered heads

RP/0/RSP0/CPU0:R1#sh cef 4.4.4.4 detail                                              
4.4.4.4/32, version 2386, internal 0x1000001 0x1 (ptr 0x73205b24) [1], 0x0 (0x737ac950), 0xa20 (0x72336878)
 Updated Jun 12 20:03:47.240
 Prefix Len 32, traffic index 0, precedence n/a, priority 3
  gateway array (0x720039a0) reference count 3, flags 0x68, source lsd (5), 1 backups
                [3 type 4 flags 0x8401 (0x7235d650) ext 0x0 (0x0)]
  LW-LDI[type=1, refc=1, ptr=0x737ac950, sh-ldi=0x7235d650]
  gateway array update type-time 1 Jun 12 20:03:22.175
 LDI Update time Jun 12 20:03:22.176
 LW-LDI-TS Jun 12 20:03:22.176
   via 4.4.4.4/32, tunnel-te14, 7 dependencies, weight 0, class 0 [flags 0x0]
    path-idx 0 NHID 0x0 [0x71a36600 0x71a383dc]
    next hop 4.4.4.4/32
    local adjacency
     local label 24037      labels imposed {ImplNull}
    Load distribution: 0 (refcount 3)

    Hash  OK  Interface                 Address
    0     Y   tunnel-te14               point2point    
RP/0/RSP0/CPU0:R1#traceroute  4.4.4.4

Type escape sequence to abort.
Tracing the route to 4.4.4.4

 1  12.0.0.1 [MPLS: Labels 100005/100004 Exp 0] 1 msec  0 msec  0 msec
 2  25.0.0.2 [MPLS: Label 100004 Exp 0] 0 msec  0 msec  0 msec
 3  45.0.0.1 0 msec  *  0 msec
RP/0/RSP0/CPU0:R1#

 

 

LDP and SR Interconnect

 

Since LDP labels are propaged in SR domain, SRMS is used to distribute the labels for LDP prefixes in SR domain.

 

 

 

 

 

SRMS Configuration
segment-routing mapping-server prefix-sid-map address-family ipv4 4.4.4.4/32 100 range 1

 

 

 

R1 to R4 Traceroute

RP/0/RSP0/CPU0:R1#traceroute  4.4.4.4
Type escape sequence to abort.
Tracing the route to 4.4.4.4

 1  13.0.0.2 [MPLS: Label 100100 Exp 0] 1 msec  0 msec  0 msec --> SR label
 2  23.0.0.1 [MPLS: Label 100100 Exp 0] 0 msec  0 msec  0 msec --> SR label
 3  25.0.0.2 [MPLS: Label 24021 Exp 0] 2 msec  0 msec  0 msec --> LDP label
 4  45.0.0.1 0 msec  *  0 msec

RP/0/RSP0/CPU0:R1#sh mpls forwarding prefix 4.4.4.4/32 Local Outgoing Prefix Outgoing Next Hop Bytes Label Label or ID Interface Switched ------ ----------- ------------------ ------------ --------------- ------------ 100100 100100 SR Pfx (idx 100) BE13 13.0.0.2 1923 RP/0/RSP0/CPU0:R3#sh mpls forwarding prefix 4.4.4.4/32 Local Outgoing Prefix Outgoing Next Hop Bytes Label Label or ID Interface Switched ------ ----------- ------------------ ------------ --------------- ------------ 100100 100100 SR Pfx (idx 100) BE23 23.0.0.1 1925 RP/0/RSP1/CPU0:R2#sh mpls forwarding labels 100100 Local Outgoing Prefix Outgoing Next Hop Bytes Label Label or ID Interface Switched ------ ----------- ------------------ ------------ --------------- ------------ 100100 24021 SR Pfx (idx 100) BE25 25.0.0.2 2794 RP/0/RSP0/CPU0:R5#sh mpls forwarding prefix 4.4.4.4/32 Local Outgoing Prefix Outgoing Next Hop Bytes Label Label or ID Interface Switched ------ ----------- ------------------ ------------ --------------- ------------ 24021 Pop 4.4.4.4/32 BE45 45.0.0.1 55574 RP/0/RSP0/CPU0:R5# R4 to R1 Traceroute
RP/0/RSP0/CPU0:R4#traceroute 1.1.1.1

Type escape sequence to abort.
Tracing the route to 1.1.1.1

 1  45.0.0.2 [MPLS: Label 31033 Exp 0] 1 msec  0 msec  0 msec --> LDP label
 2  25.0.0.1 [MPLS: Label 28026 Exp 0] 0 msec  1 msec  0 msec --> LDP label
 3  23.0.0.2 [MPLS: Label 100001 Exp 0] 0 msec  0 msec  0 msec --> SR label
 4  13.0.0.1 0 msec  *  0 msec
RP/0/RSP0/CPU0:R4#
RP/0/RSP0/CPU0:R4#sh mpls forwarding prefix 1.1.1.1/32
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes       
Label  Label       or ID              Interface                    Switched    
------ ----------- ------------------ ------------ --------------- ------------
24055  31033       1.1.1.1/32         BE45         45.0.0.2        38428      
RP/0/RSP0/CPU0:R5#sh mpls forwarding prefix 1.1.1.1/32 Local Outgoing Prefix Outgoing Next Hop Bytes Label Label or ID Interface Switched ------ ----------- ------------------ ------------ --------------- ------------ 31033 28026 1.1.1.1/32 BE25 25.0.0.1 29840 RP/0/RSP1/CPU0:R2#sh mpls forwarding prefix 1.1.1.1/32 Local Outgoing Prefix Outgoing Next Hop Bytes Label Label or ID Interface Switched ------ ----------- ------------------ ------------ --------------- ------------ 28026 100001 1.1.1.1/32 BE23 23.0.0.2 181088 RP/0/RSP1/CPU0:R2# RP/0/RSP0/CPU0:R3# sh mpls forwarding prefix 1.1.1.1/32 Local Outgoing Prefix Outgoing Next Hop Bytes Label Label or ID Interface Switched ------ ----------- ------------------ ------------ --------------- ------------ 100001 Pop SR Pfx (idx 1) BE13 13.0.0.1 201799


L2VPN and L3VPN services over SR+LDP transport

RP/0/RSP0/CPU0:R1#show  cef  vrf VRF0 44.44.44.44
44.44.44.44/32, version 90, internal 0x5000001 0x0 (ptr 0x72263d64) [1], 0x0 (0x0), 0x208 (0x7398c7c0)
 Updated Jun  6 00:55:13.582
 Prefix Len 32, traffic index 0, precedence n/a, priority 3
   via 4.4.4.4/32, 8 dependencies, recursive [flags 0x6000]
    path-idx 0 NHID 0x0 [0x736bcd84 0x0]
    recursion-via-/32
    next hop VRF - 'default', table - 0xe0000000
    next hop 4.4.4.4/32 via 100100/0/21
     next hop 13.0.0.2/32 BE13         labels imposed {100100 24008} --> [SR label, VPN label]
RP/0/RSP0/CPU0:R1#traceroute vrf VRF0 44.44.44.44
Mon Jun  6 00:57:22.300 PDT

Type escape sequence to abort.
Tracing the route to 44.44.44.44

 1  13.0.0.2 [MPLS: Labels 100100/24008 Exp 0] 1 msec  0 msec  0 msec
 2  23.0.0.1 [MPLS: Labels 100100/24008 Exp 0] 0 msec  0 msec  0 msec
 3  25.0.0.2 [MPLS: Labels 24021/24008 Exp 0] 0 msec  0 msec  0 msec
 4  45.0.0.1 1 msec  *  1 msec
RP/0/RSP0/CPU0:R1#


RP/0/RSP0/CPU0:R4#sho cef vrf VRF0 11.11.11.11
11.11.11.11/32, version 89, internal 0x5000001 0x0 (ptr 0x72049584) [1], 0x0 (0x0), 0x208 (0x722e9d68)
 Updated Jun  6 19:41:49.217
 Prefix Len 32, traffic index 0, precedence n/a, priority 3
   via 1.1.1.1/32, 8 dependencies, recursive [flags 0x6000]
    path-idx 0 NHID 0x0 [0x72c366fc 0x0]
    recursion-via-/32
    next hop VRF - 'default', table - 0xe0000000
    next hop 1.1.1.1/32 via 24055/0/21
     next hop 45.0.0.2/32 BE45         labels imposed {31033 24000} --> [LDP label, VPN label]
RP/0/RSP0/CPU0:R4# traceroute  vrf VRF0 11.11.11.11

Type escape sequence to abort.
Tracing the route to 11.11.11.11

 1  45.0.0.2 [MPLS: Labels 31033/24000 Exp 0] 1 msec  0 msec  0 msec
 2  25.0.0.1 [MPLS: Labels 28026/24000 Exp 0] 0 msec  0 msec  0 msec
 3  23.0.0.2 [MPLS: Labels 100001/24000 Exp 0] 0 msec  0 msec  0 msec
 4  13.0.0.1 1 msec  *  0 msec
RP/0/RSP0/CPU0:R4#

 

Services

 

L3VPN & L2VPN Service

 

 

PE1 Configuration

 

There is no change in services configuration, change is only in the core configuration, SR is replaced with LDP in the core. Only PE1 configuration is shown here.

 

BGP Configuration

router bgp 100 nsr bgp router-id 1.1.1.1 bgp graceful-restart bgp log neighbor changes detail bgp bestpath med always bgp bestpath compare-routerid ibgp policy out enforce-modifications bgp bestpath as-path multipath-relax address-family vpnv4 unicast ! address-family vpnv6 unicast ! address-family l2vpn vpls-vpws ! neighbor-group IBGP remote-as 100 update-source Loopback0 graceful-restart address-family ipv4 unicast route-policy PASS in route-policy PASS out soft-reconfiguration inbound always ! address-family vpnv4 unicast ! address-family vpnv6 unicast ! address-family l2vpn vpls-vpws ! ! neighbor 4.4.4.4 use neighbor-group IBGP ! vrf VRF1 rd 100:1 address-family ipv4 unicast redistribute connected ! address-family ipv6 unicast redistribute connected !
ISIS Configuration
router isis core set-overload-bit on-startup wait-for-bgp is-type level-2-only net 49.001.001.001.001.001.00 segment-routing global-block 100000 132000 nsr nsf cisco log adjacency changes address-family ipv4 unicast metric-style wide microloop avoidance protected microloop avoidance rib-update-delay 1000 redistribute connected segment-routing mpls segment-routing prefix-sid-map receive segment-routing prefix-sid-map advertise-local ! address-family ipv6 unicast single-topology adjacency-check disable segment-routing mpls segment-routing prefix-sid-map receive segment-routing prefix-sid-map advertise-local ! interface Bundle-Ether12 circuit-type level-2-only bfd minimum-interval 100 bfd multiplier 3 bfd fast-detect ipv4 point-to-point hello-padding sometimes hello-interval 1 hello-multiplier 5 address-family ipv4 unicast fast-reroute per-prefix fast-reroute per-prefix ti-lfa metric 10 ! address-family ipv6 unicast metric 10 ! ! interface Bundle-Ether13 circuit-type level-2-only point-to-point csnp-interval 65535 hello-padding sometimes hello-interval 1 hello-multiplier 5 address-family ipv4 unicast fast-reroute per-prefix tiebreaker srlg-disjoint index 100 fast-reroute per-prefix ti-lfa ! address-family ipv6 unicast metric 10 ! ! interface Loopback0 passive circuit-type level-2-only point-to-point csnp-interval 65535 hello-padding sometimes hello-interval 1 hello-multiplier 5 address-family ipv4 unicast prefix-sid index 1 ! address-family ipv6 unicast metric 10 prefix-sid index 11 ! ! VRF Configuration
vrf VRF1 description Profile-1 vpn id 100:1 address-family ipv4 unicast import route-target 100:1 ! export route-target 100:1 ! ! address-family ipv6 unicast import route-target 100:1 ! export route-target 100:1 ! ! !
RP/0/RSP0/CPU0:PE1#sh run mpls ldp ---> No LDP configuration % No such configuration item(s)


L2VPN Service

L2VPN Configuration

l2vpn
 logging
  pseudowire
 !
 pw-class VPLS
  encapsulation mpls
   transport-mode ethernet
   load-balancing
    flow-label both
   !
  !
 !
 bridge group L2VPN
  bridge-domain VPLS -----> MPLS Based VPLS Service
   mac
    secure
     action none
     logging
    !
   !
   igmp snooping profile vpls_profile
   interface TenGigE0/0/0/0/0.300
   !
   interface TenGigE0/0/0/0/1.300
   !
   interface HundredGigE0/1/0/0.300
   !
   interface HundredGigE0/1/0/1.300
   !
   vfi PE
    neighbor 4.4.4.4 pw-id 10
     pw-class VPLS
    !
   !
  !
  bridge-domain VPLS-BGP-AD -----> BGP AD Based VPLS Service
   igmp snooping profile vpls_profile
   interface TenGigE0/0/0/0/0.400
   !
   interface TenGigE0/0/0/0/1.400
   !
   interface HundredGigE0/1/0/0.400
   !
   interface HundredGigE0/1/0/1.400
   !
   vfi BGP-AD
    vpn-id 100
    autodiscovery bgp
     rd auto
     route-target 100:400
     signaling-protocol bgp
      ve-id 1
     !
    !
   !
  !
 !


RP/0/RSP0/CPU0:PE1#sho l2v bridge-domain  
Legend: pp = Partially Programmed.
Bridge group: L2VPN, bridge-domain: VPLS, id: 0, state: up, ShgId: 0, MSTi: 0
  Aging: 300 s, MAC limit: 4000, Action: none, Notification: syslog
  Filter MAC addresses: 0
  ACs: 6 (4 up), VFIs: 1, PWs: 2 (2 up), PBBs: 0 (0 up), VNIs: 0 (0 up)
  List of ACs:
    Hu0/1/0/0.300, state: up, Static MAC addresses: 0
    Hu0/1/0/1.300, state: up, Static MAC addresses: 0
    Te0/0/0/0/0.300, state: up, Static MAC addresses: 0
    Te0/0/0/0/1.300, state: up, Static MAC addresses: 0
  List of Access PWs:
  List of VFIs:
    VFI PE (up)
      Neighbor 3.3.3.3 pw-id 10, state: up, Static MAC addresses: 0
      Neighbor 4.4.4.4 pw-id 10, state: up, Static MAC addresses: 0
Bridge group: L2VPN, bridge-domain: VPLS-BGP-AD, id: 1, state: up, ShgId: 0, MSTi: 0
  Aging: 300 s, MAC limit: 4000, Action: none, Notification: syslog
  Filter MAC addresses: 0
  ACs: 6 (4 up), VFIs: 1, PWs: 1 (1 up), PBBs: 0 (0 up), VNIs: 0 (0 up)
  List of ACs:
    Hu0/1/0/0.400, state: up, Static MAC addresses: 0
    Hu0/1/0/1.400, state: up, Static MAC addresses: 0
    Te0/0/0/0/0.400, state: up, Static MAC addresses: 0
    Te0/0/0/0/1.400, state: up, Static MAC addresses: 0
  List of Access PWs:
  List of VFIs:
    VFI BGP-AD (up)
      Neighbor 4.4.4.4 pw-id 100, state: up, Static MAC addresses: 0

RP/0/RSP0/CPU0:PE1# sho l2v bridge-domain neighbor 4.4.4.4 pw-id 10 detail
Legend: pp = Partially Programmed.
Bridge group: L2VPN, bridge-domain: VPLS, id: 0, state: up, ShgId: 0, MSTi: 0
  Coupled state: disabled
  VINE state: Default
  MAC learning: enabled
  MAC withdraw: enabled
    MAC withdraw for Access PW: enabled
    MAC withdraw sent on: bridge port up
    MAC withdraw relaying (access to access): disabled
  Flooding:
    Broadcast & Multicast: enabled
    Unknown unicast: enabled
  MAC aging time: 300 s, Type: inactivity
  MAC limit: 4000, Action: none, Notification: syslog
  MAC limit reached: no
  MAC port down flush: enabled
  MAC Secure: enabled, Logging: enabled, Action: none
  Split Horizon Group: none
  Dynamic ARP Inspection: disabled, Logging: disabled
  IP Source Guard: disabled, Logging: disabled
  DHCPv4 snooping: disabled
  IGMP Snooping: enabled
  IGMP Snooping profile: vpls_profile
  MLD Snooping profile: none
  Storm Control: disabled
  Bridge MTU: 1500
  MIB cvplsConfigIndex: 1
  Filter MAC addresses:
  P2MP PW: disabled
  Create time: 17/06/2016 11:43:14 (23:30:00 ago)
  No status change since creation
  ACs: 6 (4 up), VFIs: 1, PWs: 2 (2 up), PBBs: 0 (0 up), VNIs: 0 (0 up)
  List of Access PWs:
  List of VFIs:
    VFI PE (up)
      PW: neighbor 4.4.4.4, PW ID 10, state is up ( established )
        PW class VPLS, XC ID 0xc0000009
        Encapsulation MPLS, protocol LDP
        Source address 1.1.1.1
        PW type Ethernet, control word disabled, interworking none
        Sequencing not set
        Flow Label flags configured (Tx=1,Rx=1), negotiated (Tx=1,Rx=1)

        PW Status TLV in use
          MPLS         Local                          Remote                        
          ------------ ------------------------------ -------------------------
          Label        24066                          24041                         
          Group ID     0x0                            0x0                           
          Interface    PE                             Access PW                     
          MTU          1500                           1500                          
          Control word disabled                       disabled                      
          PW type      Ethernet                       Ethernet                      
          VCCV CV type 0x2                            0x2                           
                       (LSP ping verification)        (LSP ping verification)       
          VCCV CC type 0x6                            0x6                           
                       (router alert label)           (router alert label)          
                       (TTL expiry)                   (TTL expiry)                  
          ------------ ------------------------------ -------------------------
        Incoming Status (PW Status TLV):
          Status code: 0x0 (Up) in Notification message
        MIB cpwVcIndex: 3221225481
        Create time: 17/06/2016 11:55:19 (23:17:54 ago)
        Last time status changed: 18/06/2016 11:11:56 (00:01:17 ago)
        Last time PW went down: 18/06/2016 11:11:56 (00:01:17 ago)
        MAC withdraw messages: sent 9, received 12
        Forward-class: 0
        Static MAC addresses:
        Statistics:
          packets: received 1274 (unicast 0), sent 16
          bytes: received 68796 (unicast 0), sent 800
          MAC move: 0
        Storm control drop counters:
          packets: broadcast 0, multicast 0, unknown unicast 0
          bytes: broadcast 0, multicast 0, unknown unicast 0
      DHCPv4 snooping: disabled
      IGMP Snooping profile: none
      MLD Snooping profile: none
      VFI Statistics:
        drops: illegal VLAN 0, illegal length 0

RP/0/RSP0/CPU0:PE1# sho l2v bridge-domain neighbor 4.4.4.4 pw-id 100 detail
Legend: pp = Partially Programmed.
Bridge group: L2VPN, bridge-domain: VPLS-BGP-AD, id: 1, state: up, ShgId: 0, MSTi: 0
  Coupled state: disabled
  VINE state: Default
  MAC learning: enabled
  MAC withdraw: enabled
    MAC withdraw for Access PW: enabled
    MAC withdraw sent on: bridge port up
    MAC withdraw relaying (access to access): disabled
  Flooding:
    Broadcast & Multicast: enabled
    Unknown unicast: enabled
  MAC aging time: 300 s, Type: inactivity
  MAC limit: 4000, Action: none, Notification: syslog
  MAC limit reached: no
  MAC port down flush: enabled
  MAC Secure: disabled, Logging: disabled
  Split Horizon Group: none
  Dynamic ARP Inspection: disabled, Logging: disabled
  IP Source Guard: disabled, Logging: disabled
  DHCPv4 snooping: disabled
  IGMP Snooping: enabled
  IGMP Snooping profile: vpls_profile
  MLD Snooping profile: none
  Storm Control: disabled
  Bridge MTU: 1500
  MIB cvplsConfigIndex: 2
  Filter MAC addresses:
  P2MP PW: disabled
  Create time: 17/06/2016 11:43:14 (23:30:35 ago)
  No status change since creation
  ACs: 6 (4 up), VFIs: 1, PWs: 1 (1 up), PBBs: 0 (0 up), VNIs: 0 (0 up)
  List of Access PWs:
  List of VFIs:
    VFI BGP-AD (up)
      VPN-ID: 100, Auto Discovery: BGP, state is  Provisioned (Service Connected
      Route Distinguisher:  (auto) 1.1.1.1:65535
      Import Route Targets:
        100:400
      Export Route Targets:
        100:400
      Signaling protocol: BGP
      Local VE-ID: 1 ,  Advertised Local VE-ID : 1
      VE-Range: 10
      PW: neighbor 4.4.4.4, PW ID 100, state is up ( established )
        PW class not set, XC ID 0xc0000008
        Encapsulation MPLS, Auto-discovered (BGP), protocol BGP
        Source address 1.1.1.1
        PW type VPLS, control word disabled, interworking none
        Sequencing not set

          MPLS         Local                          Remote                        
          ------------ ------------------------------ -------------------------
          Label        99961                          99960                         
          MTU          1500                           1500                          
          Control word disabled                       disabled                      
          PW type      VPLS                           VPLS                          
          VE-ID        1                              2                             
          ------------ ------------------------------ -------------------------
        MIB cpwVcIndex: 3221225480
        Create time: 17/06/2016 11:49:06 (23:24:43 ago)
        Last time status changed: 17/06/2016 11:49:06 (23:24:43 ago)
        MAC withdraw messages: sent 0, received 0
        Forward-class: 0
        Static MAC addresses:
        Statistics:
          packets: received 0 (unicast 0), sent 0
          bytes: received 0 (unicast 0), sent 0
          MAC move: 0
        Storm control drop counters:
          packets: broadcast 0, multicast 0, unknown unicast 0
          bytes: broadcast 0, multicast 0, unknown unicast 0
      DHCPv4 snooping: disabled
      IGMP Snooping profile: none
      MLD Snooping profile: none
      VFI Statistics:
        drops: illegal VLAN 0, illegal length 0
RP/0/RSP0/CPU0:PE1#       show mpls forwarding labels 99961
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes       
Label  Label       or ID              Interface                    Switched    
------ ----------- ------------------ ------------ --------------- ------------
99961  Pop         PW(4.4.4.4:100)    BD=1         point2point     0           

 

 

Inter-AS Option B

 

 

 

PE1 Configuration

 

Loopback Configuration

interface Loopback0 ipv4 address 1.1.1.1 255.255.255.255 ipv6 address 2002:1:1:1::1/128 ! ISIS Configuration
router isis core is-type level-2-only net 49.001.001.001.001.001.00 segment-routing global-block 100000 132000 nsr nsf cisco log adjacency changes address-family ipv4 unicast metric-style wide microloop avoidance protected microloop avoidance rib-update-delay 1000 maximum-paths 32 segment-routing mpls segment-routing prefix-sid-map receive segment-routing prefix-sid-map advertise-local ! address-family ipv6 unicast single-topology adjacency-check disable segment-routing mpls segment-routing prefix-sid-map receive segment-routing prefix-sid-map advertise-local ! interface Bundle-Ether13 circuit-type level-2-only bfd minimum-interval 100 bfd multiplier 3 bfd fast-detect ipv4 point-to-point hello-padding sometimes address-family ipv4 unicast fast-reroute per-prefix fast-reroute per-prefix ti-lfa metric 10 ! address-family ipv6 unicast metric 10 ! ! interface Loopback0 address-family ipv4 unicast prefix-sid index 1 ! address-family ipv6 unicast prefix-sid index 11 ! ! !
BGP Configuration
router bgp 100 nsr bgp router-id 1.1.1.1 bgp graceful-restart address-family vpnv4 unicast ! address-family vpnv6 unicast ! neighbor-group IBGP remote-as 100 update-source Loopback0 graceful-restart address-family vpnv4 unicast ! address-family vpnv6 unicast ! ! neighbor 2.2.2.2 use neighbor-group IBGP ! vrf VRF0 rd 100:0 address-family ipv4 unicast redistribute connected ! address-family ipv6 unicast redistribute connected ! ! vrf VRF1 rd 100:1 address-family ipv4 unicast redistribute connected ! address-family ipv6 unicast redistribute connected !

VRF Interface Configuration
interface TenGigE0/0/0/0/0.201 vrf VRF1 ipv4 address 200.0.0.1 255.255.255.0 ipv6 address 2000::1/96 encapsulation dot1q 201 ! VRF Configuration
vrf VRF1 description Profile-1 vpn id 100:1 address-family ipv4 unicast import route-target 100:1 ! export route-target 100:1 ! ! address-family ipv6 unicast import route-target 100:1 ! export route-target 100:1 !

 

P Configuration

 

 

Loopback Configuration
interface Loopback0 ipv4 address 3.3.3.3 255.255.255.255 ipv6 address 2002:3:3:3::3/128
ISIS Configuration
router isis core is-type level-2-only net 49.001.001.003.003.003.00 segment-routing global-block 100000 132000 log adjacency changes address-family ipv4 unicast metric-style wide segment-routing mpls
segment-routing prefix-sid-map receive
! address-family ipv6 unicast single-topology segment-routing mpls segment-routing prefix-sid-map receive ! interface Bundle-Ether13 circuit-type level-2-only point-to-point csnp-interval 65535 hello-padding sometimes hello-interval 1 hello-multiplier 5 address-family ipv4 unicast fast-reroute per-prefix fast-reroute per-prefix ti-lfa metric 100 ! address-family ipv6 unicast metric 10 ! ! interface Bundle-Ether23 circuit-type level-2-only point-to-point csnp-interval 65535 hello-padding sometimes hello-interval 1 hello-multiplier 5 address-family ipv4 unicast metric 200 ! address-family ipv6 unicast metric 10 ! ! interface Loopback0 address-family ipv4 unicast prefix-sid index 3 ! address-family ipv6 unicast prefix-sid index 13 !

ASBR1 Configuration

 

 

Loopback Configuration

interface Loopback0 ipv4 address 2.2.2.2 255.255.255.255 ipv6 address 2002:2:2:2::1/128 !

ISIS configuration

router isis core is-type level-2-only net 49.001.001.002.002.002.00 segment-routing global-block 100000 132000 distribute bgp-ls log adjacency changes address-family ipv4 unicast metric-style wide metric 10 segment-routing mpls sr-prefer segment-routing prefix-sid-map receive ! address-family ipv6 unicast single-topology segment-routing mpls segment-routing prefix-sid-map receive ! interface Bundle-Ether23 circuit-type level-2-only point-to-point csnp-interval 65535 hello-padding sometimes hello-interval 1 hello-multiplier 5 address-family ipv4 unicast metric 200 ! address-family ipv6 unicast metric 10 ! ! interface Loopback0 address-family ipv4 unicast prefix-sid index 2 ! address-family ipv6 unicast prefix-sid index 12 ! !

BGP Configuration
router bgp 100 bgp router-id 2.2.2.2 bgp graceful-restart address-family vpnv4 unicast retain route-target all ! address-family vpnv6 unicast retain route-target all ! neighbor-group ASBR remote-as 200 address-family vpnv4 unicast route-policy PASS in route-policy PASS out ! address-family vpnv6 unicast route-policy PASS in route-policy PASS out ! ! neighbor-group IBGP remote-as 100 update-source Loopback0 graceful-restart address-family vpnv4 unicast next-hop-self ! address-family vpnv6 unicast next-hop-self ! ! neighbor 1.1.1.1 use neighbor-group IBGP ! neighbor 25.0.0.2 use neighbor-group ASBR ! !
Inter-AS Link
interface Bundle-Ether25 ipv4 address 25.0.0.1 255.255.255.252 ipv6 address 2000:25::2/120 ! Static route towards ASBR2, needed in inter-as Option B to allocate label for /32 nexhop prefix.
router static address-family ipv4 unicast 25.0.0.2/32 Bundle-Ether25 ! !

 

ASBR2 Configuration

 

Loopback Configuration

interface Loopback0 ipv4 address 5.5.5.5 255.255.255.255 ! OSPF Configuration
router ospf core router-id 5.5.5.5 segment-routing global-block 200000 232000 segment-routing mpls segment-routing forwarding mpls area 0 interface Bundle-Ether45 ! interface Loopback0 prefix-sid index 5 !
BGP Configuration

router bgp 200 bgp router-id 5.5.5.5 bgp graceful-restart address-family vpnv4 unicast retain route-target all ! address-family vpnv6 unicast retain route-target all ! neighbor-group ASBR remote-as 100 address-family vpnv4 unicast route-policy PASS in route-policy PASS out ! address-family vpnv6 unicast route-policy PASS in route-policy PASS out ! ! neighbor-group IBGP remote-as 200 update-source Loopback0 graceful-restart address-family vpnv4 unicast next-hop-self ! address-family vpnv6 unicast next-hop-self ! ! neighbor 4.4.4.4 use neighbor-group IBGP ! neighbor 25.0.0.1 use neighbor-group ASBR !
Inter-AS Link
interface Bundle-Ether25 ipv4 address 25.0.0.2 255.255.255.252 ! Static route towards ASBR1
router static address-family ipv4 unicast 25.0.0.1/32 Bundle-Ether25 !

 

 

PE2 Configuration

 

 

Loopback Configuration
interface Loopback0 ipv4 address 4.4.4.4 255.255.255.255 ipv6 address 2002:4:4:4::4/128
OSPF Configuration
router ospf core router-id 4.4.4.4 segment-routing global-block 200000 232000 segment-routing mpls segment-routing forwarding mpls area 0 interface Bundle-Ether45 ! interface Loopback0 prefix-sid index 4 ! ! !

BGP Configuration
router bgp 200 bgp router-id 4.4.4.4 bgp graceful-restart address-family vpnv4 unicast ! address-family vpnv6 unicast ! neighbor-group IBGP remote-as 200 update-source Loopback0 graceful-restart address-family vpnv4 unicast ! address-family vpnv6 unicast ! ! neighbor 5.5.5.5 use neighbor-group IBGP ! vrf VRF0 rd 100:0 address-family ipv4 unicast redistribute connected ! ! vrf VRF1 rd 100:1 address-family ipv4 unicast redistribute connected ! address-family ipv6 unicast redistribute connected ! ! !
VRF Configuration vrf VRF1 description Profile-1 vpn id 100:1 address-family ipv4 unicast import route-target 100:1 ! export route-target 100:1 ! ! address-family ipv6 unicast import route-target 100:1 ! export route-target 100:1 ! !

VRF Interface
interface TenGigE0/3/0/12.201 vrf VRF1 ipv4 address 200.0.8.1 255.255.255.0 ipv6 address 2000:8::1/96 encapsulation dot1q 201 !

 

Verification

 

 

Here remote prefix 200.0.8.0/24 and 2000:8::1/96 are learned on PE1 via Inter-AS Option B

Connectivity check using ping

RP/0/RSP0/CPU0:PE1#ping vrf VRF1 200.0.8.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 200.0.8.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms RP/0/RSP0/CPU0:PE1#ping vrf VRF1 2000:8::1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2000:8::1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
Path verification using traceroute
RP/0/RSP0/CPU0:PE1#traceroute vrf VRF1 200.0.8.1 Type escape sequence to abort. Tracing the route to 200.0.8.1 1 13.0.0.2 [MPLS: Labels 100002/24037 Exp 0] 1 msec 0 msec 0 msec 2 23.0.0.1 [MPLS: Label 24037 Exp 0] 0 msec 0 msec 0 msec 3 25.0.0.2 [MPLS: Label 24014 Exp 0] 0 msec 0 msec 0 msec 4 45.0.0.1 1 msec * 1 msec RP/0/RSP0/CPU0:PE1#traceroute vrf VRF1 2000:8::1 Type escape sequence to abort. Tracing the route to 2000:8::1 1 1300::2 [MPLS: Labels 100002/24027 Exp 0] 1 msec 0 msec 0 msec 2 2300::1 [MPLS: Label 24027 Exp 0] 0 msec 0 msec 0 msec 3 2000:45::2 [MPLS: Label 24028 Exp 0] 0 msec 0 msec 0 msec 4 2000:8::1 1 msec 1 msec 2 msec
Lets trace the VRF packet path from PE1 to PE4 for prefix 200.0.8.1

Check VPNv4 label for prefix 200.0.8.1
RP/0/RSP0/CPU0:PE1#show bgp vpnv4 unicast labels BGP router identifier 1.1.1.1, local AS number 100 BGP generic scan interval 60 secs Non-stop routing is enabled BGP table state: Active Table ID: 0x0 RD version: 0 BGP main routing table version 990 BGP NSR Initial initsync version 14 (Reached) BGP NSR/ISSU Sync-Group versions 990/0 BGP scan interval 60 secs Status codes: s suppressed, d damped, h history, * valid, > best i - internal, r RIB-failure, S stale, N Nexthop-discard Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Rcvd Label Route Distinguisher: 100:1 (default for vrf VRF1) *> 11.11.11.11/32 0.0.0.0 nolabel 24005 *>i14.14.14.14/32 2.2.2.2 24019 nolabel *>i33.33.33.33/32 2.2.2.2 24020 nolabel *> 100.0.0.0/24 0.0.0.0 nolabel 24005 *>i100.0.2.0/24 2.2.2.2 24021 nolabel *> 200.0.0.0/24 0.0.0.0 nolabel 24005 *> 200.0.1.0/24 0.0.0.0 nolabel 24005 *> 200.0.2.0/24 0.0.0.0 nolabel 24005 *> 200.0.3.0/24 0.0.0.0 nolabel 24005 *>i200.0.8.0/24 2.2.2.2 24037 nolabel *>i200.0.9.0/24 2.2.2.2 24038 nolabel
CEF entry for prefix 200.0.8.1

RP/0/RSP0/CPU0:PE1#show cef vrf VRF1 200.0.8.1  
200.0.8.0/24, version 86, internal 0x5000001 0x0 (ptr 0x7225b394) [1], 0x0 (0x0), 0x208 (0x7232e8e8)
 Updated Jun 19 16:10:32.623
 Prefix Len 24, traffic index 0, precedence n/a, priority 3
   via 2.2.2.2/32, 5 dependencies, recursive [flags 0x6000]
    path-idx 0 NHID 0x0 [0x723f7d10 0x0]
    recursion-via-/32
    next hop VRF - 'default', table - 0xe0000000
    next hop 2.2.2.2/32 via 100002/0/21
     next hop 13.0.0.2/32 BE13         labels imposed {100002 24037}

Next-hop 2.2.2.2 is rechable via node-sid/label : 100002
VPNv4 label for prefix 200.0.8.1 : 24037

RP/0/RSP0/CPU0:PE1#sho mpls forwarding prefix 2.2.2.2/32
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes       
Label  Label       or ID              Interface                    Switched    
------ ----------- ------------------ ------------ --------------- ------------
100002 100002      SR Pfx (idx 2)     BE13         13.0.0.2        19114       
RP/0/RSP0/CPU0:PE1#

ASBR1 entry for VPNv4 label 24037

RP/0/RSP1/CPU0:ASBR1#show mpls forwarding labels  24037
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes       
Label  Label       or ID              Interface                    Switched    
------ ----------- ------------------ ------------ --------------- ------------
24037  24014       100:1:200.0.8.0/24 BE25         25.0.0.2        1308  

RP/0/RSP1/CPU0:ASBR1#sho bgp  vpnv4 unicast labels    
BGP router identifier 2.2.2.2, local AS number 100
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0x0   RD version: 0
BGP main routing table version 53
BGP NSR Initial initsync version 12 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best
              i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network            Next Hop        Rcvd Label      Local Label     
Route Distinguisher: 100:1
*>i11.11.11.11/32     1.1.1.1         24005           24009           
*> 14.14.14.14/32     25.0.0.2        24011           24019           
*> 33.33.33.33/32     25.0.0.2        24012           24020           
*>i100.0.0.0/24       1.1.1.1         24005           24010           
*> 100.0.2.0/24       25.0.0.2        24013           24021           
*>i200.0.0.0/24       1.1.1.1         24005           24011           
*>i200.0.1.0/24       1.1.1.1         24005           24012           
*>i200.0.2.0/24       1.1.1.1         24005           24013           
*>i200.0.3.0/24       1.1.1.1         24005           24014           
*> 200.0.8.0/24       25.0.0.2        24014           24037           
*> 200.0.9.0/24       25.0.0.2        24015           24038           


ASBR2 entry for VPNv4 incoming label 24014

RP/0/RSP0/CPU0:ASBR2#show mpls forwarding labels  24014
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes       
Label  Label       or ID              Interface                    Switched    
------ ----------- ------------------ ------------ --------------- ------------
24014  24008       100:1:200.0.8.0/24              4.4.4.4         1308        

RP/0/RSP0/CPU0:ASBR5#sho bgp  vpnv4 unicast labels    
Thu Jun 19 17:22:44.951 UTC
BGP router identifier 5.5.5.5, local AS number 200
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0x0   RD version: 0
BGP main routing table version 42
BGP NSR Initial initsync version 12 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best
              i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network            Next Hop        Rcvd Label      Local Label         
Route Distinguisher: 100:1
*> 11.11.11.11/32     25.0.0.1        24009           24021           
*>i14.14.14.14/32     4.4.4.4         24008           24011           
*>i33.33.33.33/32     4.4.4.4         24008           24012           
*> 100.0.0.0/24       25.0.0.1        24010           24022           
*>i100.0.2.0/24       4.4.4.4         24008           24013           
*> 200.0.0.0/24       25.0.0.1        24011           24023           
*> 200.0.1.0/24       25.0.0.1        24012           24025           
*> 200.0.2.0/24       25.0.0.1        24013           24026           
*> 200.0.3.0/24       25.0.0.1        24014           24027           
*>i200.0.8.0/24       4.4.4.4         24008           24014           
*>i200.0.9.0/24       4.4.4.4         24008           24015 

RP/0/RSP0/CPU0:ASBR2#show mpls forwarding prefix 4.4.4.4/32
Thu Jun 19 17:14:32.659 UTC
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes       
Label  Label       or ID              Interface                    Switched    
------ ----------- ------------------ ------------ --------------- ------------
200004 Pop         No ID              BE45         45.0.0.1        19073       

 

Acknowledgements: Written by Anoop Veetil, EPN Team

Comments
llongbo
Level 1
Level 1

Hello Xthuijs, 

 

Thank you for such good examples which are much helpful to understand SR knowledge, based on that I'm trying to configure multiple VPNs via SRTE between same SR endpoints , unfortunately I can't make it. As there're two VPN instances over the PE1 and PE3 (remote point),

explicit-path name vrf-test  **** explicit-path applied by tunnel100
 index 1 next-address strict ipv4 unicast 10.1.23.2
 index 5 next-address strict ipv4 unicast 10.1.12.1
!
explicit-path name vrf-test02 *** explicit-path applied by tunnel 101
 index 1 next-address strict ipv4 unicast 10.1.32.2
 index 5 next-address strict ipv4 unicast 10.1.21.1

 

I configured two TE tunnels applied different explicit paths policy, and take both tunnels auto announced in ISIS.

interface tunnel-te100
 ipv4 unnumbered Loopback100
 autoroute metric absolute 50
 autoroute announce
 !
 destination 10.100.1.1  ***same remote endpoint PE3
 path-option 1 explicit name vrf-test segment-routing
!

interface tunnel-te101 ipv4 unnumbered Loopback100 autoroute metric absolute 66 autoroute announce ! destination 10.100.1.1 *** same remote endpoint PE3
path-option 1 explicit name vrf-test02 segment-routing

 

 

by the static VRF configuration to steer each VPN traffic to respective Tunnel interface, 

router static
 vrf test01  *** steer vpn test01 via tunnel 100 
  address-family ipv4 unicast
   10.255.1.0/24 tunnel-te100
   10.255.11.0/24 tunnel-te100
  !
 !
 vrf test02  *** steer vpn test02 via tunnel 101
  address-family ipv4 unicast
   10.255.12.0/24 tunnel-te101

 

but failed as the route to PE3 loopback via one of this Tunnel interface , seems can't distinguish different Tunnel interface to the same  remote PE3. 

RP/0/0/CPU0:R3#sh mpls forwarding prefix 10.100.1.1/32  *** destinaion PE3 loopback via Tunnel100
Sun Feb 18 14:31:28.363 UTC
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes       
Label  Label       or ID              Interface                    Switched    
------ ----------- ------------------ ------------ --------------- ------------
24010  Pop         10.100.1.1/32      tt100        10.100.1.1      0   

Could you give some idea how to steer VPN to destined tunnel ? On my understanding for the route to PE3 shouldnt' go via Tunnel but via common ISIS routing , then very VPN instance steer via respecrtive Tunnel interface. but if I disable the "autoroute  announce"within Tunnel interface, seems VPN static policy didn't work properly , same result as before. 

alihamdyyousf
Level 1
Level 1

@xthuijs could you share with me versions(IOS,IOS-XE,IOS-XR) supported segment routing 

xthuijs
Cisco Employee
Cisco Employee
that is not a simple answer... it depends on the precise feature set you are after in terms of SR capabilities etc
and also by platform of interest.
but if you are looking for “basic” SR to test with, you’d be looking at XE 16.5 and XR633
it may be best to connect with your account reps to identify the right platform and what recommended release for that platform and feature
set are to be used.
but for some standard basic testing and familiarization you can use the 16.5XE and 633XR as a good starting point.
alihamdyyousf
Level 1
Level 1
This is reply I need thanks a lot :)
khalilmeb
Level 1
Level 1

Thank you for this content. I'm really interested to build SR a scenario on AWS using XRv9000 routers, but the images are not shown. Could you please update the links?

Nice post, thanks!

khalilmeb
Level 1
Level 1

@xthuijs  Could you please re-upload the images in this post. Obviously, the images have been deleted.

Thank you!

xthuijs
Cisco Employee
Cisco Employee
let me have a look as to why the pics got deleted, I have asked the forums owners to see if it can be restored.
cheers! xander
james.munroe
Level 1
Level 1

Hey Xander,

 

I've got a couple of real quick questions in respect to SR on an ASR9K platform (XR32 6.5.3) with a single core (L2 only) ISIS process running uniformly....no Inter-AS.

 

1)  Any benefit to using a prefix-sid vs. an absolute sid for setting the local node under the routing process loopback inf.  I get the relationship with the SRGB but was just curious if there was a situation where one would prefer one vs another.

 

2) What's the best practice around specifying the Global SRGB for use...specifically setting a default SRGB range w/ no routing process overrides vs. overriding the default SRGB at the routing process level vs. both non-default SRGB plus a custom SRGB at the routing process level?  I've been using the KISS principle with a single non-default SRGB range and that is it.  Again...just want to make sure I'm not missing a use case requiring an IGP override.

 

Thanks in Advance! :-)

 

Jim

xthuijs
Cisco Employee
Cisco Employee

WARNING: some of the configuration examples are not copy pastable anymore due to SR having evolved over the releases since this was written with new config sections. will update as soon as possible.

it is a little tricky since i can't edit this article as in the new forums engine this article is too big.. sigh

 

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:

Quick Links