Tuesday, June 9, 2026

Deploying SRv6 in Juniper: From Setup to Verification

I'm exploring the SRV6, and it's obvious that I am exploring now with Juniper after I tested SRV6 configurations and features in Nokia SROS.

In this blog post I will be covering the SRV6 enabling in Junos, and in upcoming blogs I will enable different services through the SRV6 tunnel and hurdles during the testing in detail.

I am using the below topology to enable SRv6 in Junos. IPv4 is not enabled; only IPv6 is configured and enabled ISIS over IPv6.











Loopback/locator IPv6 addresses







Let's configure the IPv6 address on respective interface as below

set interfaces ge-0/0/1 unit 0 family inet6 address 2001:db8:12::1/64

set interfaces ge-0/0/2 unit 0 family inet6 address 2001:db8:14::1/64

set interfaces lo0 unit 0 family inet6 address 2001:db8:0::1/128


Locator configuration on each router as per table

set routing-options source-packet-routing srv6 locator loc1 2001:db8:a1:1::/64 

Configure the flavour. How the IPV6 transit and endpoint and adjacency SID

Penultimate Segment Pop 

set protocols isis source-packet-routing srv6 locator loc1 end-sid 2001:db8:a1:1::0 flavor psp

Ultimate Segment Decapsulation

When a packet reaches its final SRv6 segment destination, if there are no more segments in the SRH, the USD instruction tells the router to pop the outer IPv6 header along with any remaining extension headers.

set protocols isis source-packet-routing srv6 locator loc1 end-sid 2001:db8:a1:1::0 flavor usd


Enable the Enhanced IP under the chassis

set chassis network-services enhanced-ip

Enable SRV6 in ISIS

set interfaces lo0 unit 0 family iso address 49.0001.0000.0000.0001.00

set interfaces ge-0/0/1 unit 0 family iso

set interfaces ge-0/0/2 unit 0 family iso

set protocols isis level 1 disable

set protocols isis interface ge-0/0/1.0

set protocols isis interface ge-0/0/2.0

set protocols isis interface lo0.0 passive

set protocols isis level 2 wide-metrics-only


Advertising SRV6 Locator in ISIS

set protocols isis source-packet-routing srv6


Verification:

IPv6 Locators are programmed in the inet6.0 table like other ipv6 loopback address and next hops that forward the traffic with next hop interface and Locator programmed in inet6.3 table and tunnel next hop tunnel SRV6. SRV6 traffic encoded with SRH header towards the destination.

show route table inet6.0 protocol isis   


2001:db8:a1:1::/64 *[IS-IS/18] 00:06:39, metric 0

                       Reject

2001:db8:a1:1::/128*[IS-IS/18] 00:06:39, metric 0

                       Receive

2001:db8:a1:2::/64 *[IS-IS/18] 00:01:57, metric 10

                    >  to fe80::5254:ff:fee8:e501 via ge-0/0/0.0

2001:db8:a1:3::/64 *[IS-IS/18] 00:01:54, metric 20

                    >  to fe80::5254:ff:fee8:e501 via ge-0/0/0.0

                       to fe80::5254:ff:feae:6d02 via ge-0/0/1.0

2001:db8:a2:5::/64 *[IS-IS/18] 00:01:50, metric 20

                    >  to fe80::5254:ff:fee8:e501 via ge-0/0/0.0

2001:db8:a2:6::/64 *[IS-IS/18] 00:00:49, metric 30

                    >  to fe80::5254:ff:fee8:e501 via ge-0/0/0.0

2001:db8:a3:7::/64 *[IS-IS/18] 00:01:44, metric 20

                    >  to fe80::5254:ff:feae:6d02 via ge-0/0/1.0

2001:db8:a3:8::/64 *[IS-IS/18] 00:02:03, metric 30

                    >  to fe80::5254:ff:feae:6d02 via ge-0/0/1.0


admin@R1# run show route table inet6.3 

inet6.3: 12 destinations, 12 routes (12 active, 0 holddown, 0 hidden)

+ = Active Route, - = Last Active, * = Both

2001:db8:a1:2::/64 *[SRV6-ISIS/14] 00:07:56, metric 10

                    >  to fe80::5254:ff:fee8:e501 via ge-0/0/0.0, SRV6-Tunnel, Dest: 2001:db8:a1:2::

2001:db8:a1:2::/128*[SRV6-ISIS/14] 00:07:56, metric 10

                    >  to fe80::5254:ff:fee8:e501 via ge-0/0/0.0, SRV6-Tunnel, Dest: 2001:db8:a1:2::

2001:db8:a1:3::/64 *[SRV6-ISIS/14] 00:07:53, metric 20

                    >  to fe80::5254:ff:fee8:e501 via ge-0/0/0.0, SRV6-Tunnel, Dest: 2001:db8:a1:3::

                       to fe80::5254:ff:feae:6d02 via ge-0/0/1.0, SRV6-Tunnel, Dest: 2001:db8:a1:3::

2001:db8:a1:3::/128*[SRV6-ISIS/14] 00:07:53, metric 20

                    >  to fe80::5254:ff:fee8:e501 via ge-0/0/0.0, SRV6-Tunnel, Dest: 2001:db8:a1:3::

                       to fe80::5254:ff:feae:6d02 via ge-0/0/1.0, SRV6-Tunnel, Dest: 2001:db8:a1:3::

2001:db8:a2:5::/64 *[SRV6-ISIS/14] 00:07:49, metric 20

                    >  to fe80::5254:ff:fee8:e501 via ge-0/0/0.0, SRV6-Tunnel, Dest: 2001:db8:a2:5::

2001:db8:a2:5::/128*[SRV6-ISIS/14] 00:07:49, metric 20

                    >  to fe80::5254:ff:fee8:e501 via ge-0/0/0.0, SRV6-Tunnel, Dest: 2001:db8:a2:5::

2001:db8:a2:6::/64 *[SRV6-ISIS/14] 00:06:48, metric 30

                    >  to fe80::5254:ff:fee8:e501 via ge-0/0/0.0, SRV6-Tunnel, Dest: 2001:db8:a2:6::

2001:db8:a2:6::/128*[SRV6-ISIS/14] 00:06:48, metric 30

                    >  to fe80::5254:ff:fee8:e501 via ge-0/0/0.0, SRV6-Tunnel, Dest: 2001:db8:a2:6::

2001:db8:a3:7::/64 *[SRV6-ISIS/14] 00:07:43, metric 20

                    >  to fe80::5254:ff:feae:6d02 via ge-0/0/1.0, SRV6-Tunnel, Dest: 2001:db8:a3:7::

2001:db8:a3:7::/128*[SRV6-ISIS/14] 00:07:43, metric 20

                    >  to fe80::5254:ff:feae:6d02 via ge-0/0/1.0, SRV6-Tunnel, Dest: 2001:db8:a3:7::

2001:db8:a3:8::/64 *[SRV6-ISIS/14] 00:08:02, metric 30

                    >  to fe80::5254:ff:feae:6d02 via ge-0/0/1.0, SRV6-Tunnel, Dest: 2001:db8:a3:8::

2001:db8:a3:8::/128*[SRV6-ISIS/14] 00:08:02, metric 30

                    >  to fe80::5254:ff:feae:6d02 via ge-0/0/1.0, SRV6-Tunnel, Dest: 2001:db8:a3:8::


[edit]

admin@R1# run ping 2001:db8:a1:3:: 

PING6(56=40+8+8 bytes) 2001:db8:12::1 --> 2001:db8:a1:3::

16 bytes from 2001:db8:23::3, icmp_seq=0 hlim=63 time=796.705 ms

16 bytes from 2001:db8:23::3, icmp_seq=1 hlim=63 time=5.956 ms

16 bytes from 2001:db8:23::3, icmp_seq=2 hlim=63 time=205.600 ms

^C

--- 2001:db8:a1:3:: ping6 statistics ---

3 packets transmitted, 3 packets received, 0% packet loss

round-trip min/avg/max/std-dev = 5.956/336.087/796.705/335.749 ms


admin@R1> ping srv6 isis 2001:db8:a3:7:: detail   

Request for icmp_seq=1, via interface 429, packet size 64 

Reply for icmp_seq=1 from 2001:db8:47::7 via interface 429 hops-limit: 63, trip-time: 9.497 ms

        Local transmit time: 2026-06-09 07:20:17 UTC 844.327 ms

        Remote receive time: 2026-06-09 07:20:17 UTC 974.926 ms

Request for icmp_seq=2, via interface 429, packet size 64 

Reply for icmp_seq=2 from 2001:db8:47::7 via interface 429 hops-limit: 63, trip-time: 67.630 ms

        Local transmit time: 2026-06-09 07:20:18 UTC 840.312 ms

        Remote receive time: 2026-06-09 07:20:19 UTC 6.273 ms

Request for icmp_seq=3, via interface 429, packet size 64 

Reply for icmp_seq=3 from 2001:db8:47::7 via interface 429 hops-limit: 63, trip-time: 38.220 ms

        Local transmit time: 2026-06-09 07:20:19 UTC 843.228 ms

        Remote receive time: 2026-06-09 07:20:19 UTC 983.084 ms

Request for icmp_seq=4, via interface 429, packet size 64 

Reply for icmp_seq=4 from 2001:db8:47::7 via interface 429 hops-limit: 63, trip-time: 10.654 ms

        Local transmit time: 2026-06-09 07:20:20 UTC 840.931 ms

        Remote receive time: 2026-06-09 07:20:20 UTC 971.686 ms

Request for icmp_seq=5, via interface 429, packet size 64 

Reply for icmp_seq=5 from 2001:db8:47::7 via interface 429 hops-limit: 63, trip-time: 5.468 ms

        Local transmit time: 2026-06-09 07:20:21 UTC 846.190 ms

        Remote receive time: 2026-06-09 07:20:21 UTC 976.553 ms


--- lsping statistics ---

5 packets transmitted, 5 packets received, 0% packet loss

round-trip min/avg/max/stddev = 5.468/26.294/67.630/23.712 ms


No comments:

Post a Comment