Tuesday, February 24, 2026

SR-ISIS and LDP Interworking on Nokia SROS: A Technical Deep Dive

Migrating core protocols is a significant operational challenge. A successful transition requires a strategic, phased approach: enabling the new protocol in parallel, gradually steering traffic by tuning route preferences (AD), and decommissioning legacy protocols only after the environment has stabilized.

SR to LDP require a SR Mapping server and Mapping client for it to switch traffic between SR and LDP and vice versa.

Mapping server – control plane(role is to advertise the LDP prefix into SR-ISIS domain)

Mapping Client – Data Plane. Receives the advertisement from Mapping server and interprets each SR mapping advertisements to a prefix SID.

We can configure more than one mapping server and Mapping client.

mapping clients are the router facing LDP domain or we can also configure the routers in the SR domain as Mapping client. 

MC create stitching points between LDP FECs and SR Prefix-SIDs (Node-SIDs) for the same prefix.

 

Topology:

    

We will enable LDP between PE5 and PE1 and PE6 and PE2, PE1,ASBR1 &2 and PE2 will be enabled with SR-ISIS only. 

PE1 and PE2 act as a Mapping Client.

LDP configuration in PE1,PE5,PE6 and PE2.

 

  

LDP sesion between PE5 and PE1

 


MPLS table verification

Verification in PE1: PE1 is a mapping client it is enabled with LDP and SR-ISIS


Lets map the LDP prefix 1.0.0.5/32 and 1.0.0.6/32 with 2005 and 2006 respectively.

Configuration# Mapping server configuration in ASBR1

Advertise the SR mappings for the LDP prefixes PE5 and PE6

*A:ASBR1>config>router>isis# info

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

            area-id 49.0010

            segment-routing

                prefix-sid-range global

                mapping-server

                    sid-map node-sid index 2005 prefix 10.0.0.5/32

                    sid-map node-sid index 2006 prefix 10.0.0.6/32

                    no shutdown

                exit

                no shutdown

            exit


 

 

 

After the MS advertisement Mapping Client MC now interpret those advertisement and create the stitching points between LDP and SR.

As per out topology, PE5 and PE6 can function as MC.

LDP uses export-tunnel-table command under ldp to redistribute the SR-ISS to LDP using an export policy. LDP process the monitor the policy and if it matches the policy with SR-ISIS /32 prefix it will program the LDP entry and advertise the LDP FEC for it. 

Advertising SR only prefix to LDP from PE1 and PE2 towards PE5 and PE6.

Tunnel table on PE5 before the policy

  

Configuring the policy to redistribute the LDP FEC to SR-ISIS

 


 

/configure router ldp export-tunnel-table "sr-ldp"

 

we have completed the SRMS configuration now the Prefixes are advertised in SR-ISIS database.

SRMS provide the network wide policy and uses export-tunnel-table LDP with no refernce policy. Whenever /32 LDP destination matches the SRMS prefix then its program that prefix to corresponding LDP tunnel endpoint. Only required configuration is export-tunnel-table ldp command within the segment-routing context is the only required configuration

/configure router isis <instance number> segment-routing export-tunnel-table ldp 

*A:PE1# configure router isis 1 segment-routing export-tunnel-table ldp

After the configuration i couldnot find the ldp prefix in PE1 later identified that I used the wrong IP subnet in the mapping server. Later changed it

*A:ASBR1>config>router>isis>segm-rtng>map-serv# info

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

                    sid-map node-sid index 2005 prefix 10.0.0.5/32

                    sid-map node-sid index 2006 prefix 10.0.0.6/32

                    no shutdown

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

SRGB block we configured earlier to use start label with 20000 but I used 2000 which is a mistake,

I had to correct it to make it work.

#--------------------------------------------------

echo "MPLS Label Range Configuration"

#--------------------------------------------------

        mpls-labels

            sr-labels start 20000 end 20099

        exit

#--------------------------------------------------

 

 

Route is available in tunnel table but not able to ping from ASBR1 to PE5 but ping is working between PE5 and PE1.

  

Ping is working from PE1 to PE5 using LDP FEC

 

Lets do some more troubleshooting to identify the cause and enable the end to end forwarding plane working 

Enabled mpls on the router interfaces now the PE1 to ASBR is working but when I initiate a ping from ASBR to PE1 is not working.

Also I used different area id in ASBR 1 and 2 so changed it to match the PE1 area id.

later i concluded oam ping is not working as I am testing in virtual SR-SIM I am able to ping the ip address. So, to verify the theory lets create a bgp session between PE5 and ASBR1 and create the VPRN between them to check the SR-ISIS and LDP data plane working properly.

ASBR1

MP-BGP configuration 

A:ASBR1>config>router>bgp# info

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

            router-id 11.0.0.1

            group "ibgp"

                family ipv4 vpn-ipv4

                type internal

                neighbor 1.0.0.5

                    local-address 11.0.0.1

                    peer-as XXXX

                exit

            exit

            no shutdown

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

*A:ASBR1>config>router>bgp#

PE05:

*A:PE5>config>service>vprn# /configure router bgp

*A:PE5>config>router>bgp# info

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

            router-id 1.0.0.5

            group "ibgp"

                family ipv4 vpn-ipv4

                type internal

                local-address 1.0.0.5

                neighbor 11.0.0.1

                    peer-as XXXX

                exit

            exit

            no shutdown

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

*A:PE5>config>router>bgp#

*A:PE5>config>router>bgp# /configure service vprn 1

*A:PE5>config>service>vprn# info

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

            interface "loopback" create

                address 100.0.0.1/32

                loopback

            exit

            bgp-ipvpn

                mpls

                    auto-bind-tunnel

                        resolution any

                    exit

                    route-distinguisher 100:100

                    vrf-target target:100:100

                    no shutdown

                exit

            exit

            no shutdown

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

*A:PE5>config>service>vprn#

*A:ASBR1>config>router>bgp# /configure service vprn 1

*A:ASBR1>config>service>vprn# info

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

            interface "loopback" create

                address 100.0.0.2/32

                loopback

            exit

            bgp-ipvpn

                mpls

                    auto-bind-tunnel

                        resolution-filter

                            sr-isis

                        exit

                        resolution filter

                    exit

                    route-distinguisher 100:100

                    vrf-target target:100:100

                    no shutdown

                exit

            exit

            no shutdown

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

*A:ASBR1>config>service>vprn# 

Verifying VPN Route table 

 

 Ping initiated between PE5 and ASBR1 VPRN 1

 

Internetworking between SR and LDP is working as expected. 

PE1 and PE2 configured to advertise the PE5 and PE6 vice versa in LDP. But noticed the routes not available in tunnel table.

 

1.0.0.6/32 is not available in PE5

  

lets enable the end to end between traffic flow between PE5 to PE6 traffic via SR-ISIS domain.

PE5 (LDP) => PE1 (SR-ISIS/LDP) => ASBR1 (SR-ISIS) => ASBR2(SR-ISIS) ==> PE2 (SR-ISIS/LDP) => PE6(LDP)  

While check the route table in PE5 and PE6 for each other routes identified that link between PE5 and PE6 enabled while doing some configuration changes in the topology which I missed to disable it.

 

 

After shutting the port down LDP routes installed in both routers

 

End to End traffic is finally achieved, Let me try to initiate the oam ping between PE5 and PE6.

 

Success this time .. Sema end to end data traffic is working


 

 

 

 

 

Implementing SR-ISIS in Nokia SROS: Configuration & Validation

Enabling segment routeing in IGP like ISIS or OSPF is to replace the traditional LDP protocol in the access rings in the service provider environment, especially with the mobility transport core network. There are a lot of advantages in enabling SR-ISIS, as it has features like TI-LFA that is more robust in finding the alternate path when the actual path is down; no need to overload routers with enabling the MPLS protocol on top of IGP.


Let's explore how to enable segment routeing in the Nokia 7750 SR. I followed the Nokia documentation to enable the SR. Topology  

   

Segment routing SR-ISIS configuration and verification in Nokia SROS

As part of the configuration, Area 10 is configured on PE1, PE2, PE5, PE6, ASBR1 and ASBR2.

1.      Enabling ISIS with segment routeing.

Configure the MPLS label space for the SR to use and configure the index for each router or the label based on design.

    router Base

        mpls-labels                  

            sr-labels start 20000 end 20099

        exit

 

we have 2 options to configure the index in Nokia SROS, i configured in global so that i can use it for future case when using different areas in the topology. we have also option to configure under ISIS context.


        segment-routing

            sr-mpls

                prefix-sids "system"

                    ipv4-sid index 11

                exit

            exit

        exit

 

ISIS Configuration:

 

#--------------------------------------------------

echo "ISIS (Inst: 1) Configuration"

#--------------------------------------------------

        isis 1

            level-capability level-2

            area-id 49.0001

            traffic-engineering

            traffic-engineering-options

                advertise-delay

                application-link-attributes

                exit                 

            exit

            advertise-router-capability as

            level 2

                wide-metrics-only

            exit

            segment-routing

                prefix-sid-range global

                no shutdown

            exit

 

Verification:

 

 

 

MPLS SRGB Block and Index  advertisement in ISIS advertisement

 Verifying the SR-ISIS prefix advertisement

 

Verifying the mpls table 

 

 

 

 

 

 

 

Monday, April 3, 2023

BGP Prefix Limit Configuration in Cisco, Juniper and Nokia - Interop

BGP Prefix Limit

Maximum Prefix-limit is used to control the BGP peer not to overload your BGP routing table and it helps to avoid the situation. let's explore how to configure in Cisco, Juniper, and Nokia router


Cisco Configuration

 !
router bgp 300
 neighbor 192.168.1.1
  address-family ipv4 unicast
   maximum-prefix <max-limit> <percentage> <Actions>
  !
 !

Juniper  Configuration

edit protocol
bgp {
        group nokia {
            neighbor 192.168.0.1 {
                family inet {
                    unicast {
                        prefix-limit {
                            maximum 1000;
                            teardown;
                        }
                    }


Nokia Configuration

/configure router bgp
            group "juniper"
                type external
                local-as 100
                neighbor 192.168.0.2
                    prefix-limit <family> <prefix-limit>
                    peer-as 200
                exit

   


TCP AO configuration on Cisco, Juniper and Nokia SR - Interop Configuration

TCP-AO is a new authentication method proposed through RFC5925, The TCP Authentication Option to enhance the security and authenticity of TCP segments exchanged during BGP.

 It supports both IPv4 and IPv6 traffic


Benefits of TCP-AO




Support multiple stronger algorithms, such as HMAC-SHA1 and AES-128 to create an internal traffic key and message digest.

Add a new user-configured key to re-generate internal traffic keys for an established connection and a mechanism to synchronize key change between BGP peers

Nokia Configuration

/configure system security 

keychain "aes-128-cmac-96-keychain"

                tcp-option-number

                    send tcp-ao

                    receive tcp-ao

                exit

                direction

                    uni

                        send

                            entry 20 key “key”algorithm aes-128-cmac-96

                                begin-time 2023/04/03 08:22:32 UTC

                            exit

                        exit

                        receive       

                            entry 10 key “key” algorithm aes-128-cmac-96

                                begin-time 2023/04/03 08:23:24 UTC

                            exit

                        exit

                    exit

                exit

                no shutdown

            exit

Apply the TCP AO authentication under BGP neighbor or Group

/configure router bgp group "juniper"

                type external

                local-as 100

                neighbor 192.168.0.2

                 auth-keychain "aes-128-cmac-96-keychain"

                exit

            exit


Juniper Configuration#

security {                              

    authentication-key-chains {

        key-chain nokia {

            tolerance 30;

            key 10 {

                secret "$9$vxA87Vg4ZiqfDi/t0OSy7-Vb2aZGiq.5"; ## SECRET-DATA

                start-time "2023-2-1.00:00:00 +0000";

                algorithm ao;

                ao-attribute {

                    send-id 10;

                    recv-id 20;

                    tcp-ao-option enabled;

                    cryptographic-algorithm aes-128-cmac-96;

                }

            }

Apply the TCP AO authentication under BGP neighbor or Group

set protocols bgp group nokia authentication-algorithm ao


Cisco XR Configuration#

key chain AS300

 key 0

  accept-lifetime 00:00:00 april 01 2023 infinite

  key-string password 0701245859060B0E1B1309

  send-lifetime 00:00:00 april 01 2023 infinite

  cryptographic-algorithm MD5

 !

!

key chain AS300

 key 1

  accept-lifetime 00:00:00 april 01 2023 infinite

  key-string password 0701245859060B0E1B1309

  send-lifetime 00:00:00 april 01 2023 infinite

  cryptographic-algorithm MD5

 !

!

router bgp 300

 neighbor 192.168.1.1

  keychain AS300

 !



BGP MD5 Configuration on Cisco - Juniper - Nokia Interop

 In this blog, I will explain the benefits of the MD5 concept and how to configure it on Cisco, Juniper, and Nokia Router

TCP-MD5

MD5 is used to protect the BGP session between the peers to form the secured session over the public Network. 

TCP MD5 option supports only one key for a connection. Further, it only supports the MD5 algorithm. The MD5 algorithm takes the “secret” from the key and the TCP segment for encryption and generates a message digest. This message digest is then copied to the MD5 digest field in the TCP segment and is sent to the receiving device.





Cisco XR

router bgp 300
 neighbor 192.168.1.1
  password encrypted 011D03104C0414042D4D4C


Juniper

edit protocols {                             
    bgp {
        group nokia {
            neighbor 192.168.0.1 {
                authentication-key "key"; ## SECRET-DATA
                }
      
Nokia

/configure router 
protocols {                             
    bgp {
     group "juniper"
                type external
                local-as 100
                neighbor 192.168.0.2
                    authentication-key "D8XsPtn4bCNLm" hash2
                    peer-as 200
                exit


BGP Protection - TTL Security Configuratoion Cisco, Juniper and Nokia

Hi Everyone,

In the blog, I am going to explain how TTL security is useful in BGP Session protection. Time to Live will be added to every packet and it will be reduced at each hop it transfers.

Consider someone who wants to hack your BGP session and will send the spoofed  BGP packets and try to negotiate with your BGP session. to avoid this kind of spoofing we use TTL Security


TTL security is a mechanism that evaluates the TTL value of incoming IP packets to ensure

that they have not been faked. The IP TTL value will be set to 255 by directly connected BGP

peers, making it impossible to relay spoof Internet protocol with TTL=255 through non

directly connected interfaces.



Cisco XR

router bgp 100
 neighbor-group ebgp
  ttl-security
 !
neighbor 192.168.1.1
  remote-as 100
  use neighbor-group ebgp
  address-family ipv4 unicast
  !
 !


Juniper 


protocols {                             
    bgp {
        group nokia {
            type external;
            neighbor 192.168.0.1 {
                ttl <1-255>;
                peer-as 100;
                local-as 200;
            }


Nokia vSR


router bgp 
 group "juniper"
                type external
                local-as 100
                ttl-security <1-255>
                neighbor 192.168.0.2
                    peer-as 200
                exit
            exit