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