跳转到内容
Ask AI

SRV6 Tunnel Configuration

此内容尚不支持你的语言。

SRv6 (Segment Routing over IPv6) is a next-generation network protocol that combines Segment Routing (SR, a source-routing architecture) with IPv6 networks. It is widely regarded as a core technology for 5G, cloud-network integration, and future intelligent IP networks.

After configuring an SRv6 tunnel on an interface, service traffic passing through that interface is encapsulated with an SRH (Segment Routing Header) based on the device’s SID (Segment Identifier) table entries before being forwarded.

Network requirements

As shown in the figure, MP-BGP is established between PE 1 and PE 2 to exchange VPN routing information. PE and P devices establish an ISIS neighbor relationship to forward SRV6 tunnel packets. An EBGP neighbor relationship is established between CE and PE devices, and the CE’s traffic is routed into the SRV6 tunnel for forwarding.

Procedure

# CE 1 Swtich Configuration

# Configure the interface’s interconnect IP

sonic# configure
sonic(config)# interface ethernet 21
sonic(config-if-21)# ip address 1000::1/24
sonic(config-if-21)# ip address 100.0.21.1/24

# Configure an EBGP neighbor relationship with PE1

sonic# configure
sonic(config)# router bgp 1000
sonic(config-router)# no bgp ebgp-requires-policy
sonic(config-router)# neighbor 100.0.21.2 remote-as 1024
sonic(config-router)# neighbor 1000::2 remote-as 1024
sonic(config-router)# address-family ipv4 unicast
sonic(config-router-af)# redistribute connected
sonic(config-router-af)# exit
sonic(config-router)# address-family ipv6 unicast
sonic(config-router-af)# neighbor 1000::2 activate
sonic(config-router-af)# redistribute connected

# PE 1 Switch Configuration

# Configure an SRV6 instance

sonic# configure
sonic(config)# segment-routing
sonic(config-sr)# srv6
sonic(config-srv6)# locators
sonic(config-srv6-locators)# locator test
sonic(config-srv6-locator)# prefix 2500::/64

# Configure the ISIS instance and bind the SRV6 instance

sonic# configure
sonic(config)# router isis test
sonic(config-router)# is-type level-1
sonic(config-router)# net 10.0000.0000.0000.0167.00
sonic(config-router)# redistribute ipv6 connected level-1
sonic(config-router)# segment-routing srv6
sonic(config-router-srv6)# locator test

# Create a VRF and configure the inter-interface IP addresses

sonic# configure
sonic(config)# vrf 100
sonic(config-vrf)# exit
sonic(config)# interface ethernet 21
sonic(config-if-21)# ip address 100.0.21.2/24
sonic(config-if-21)# ip address 1000::2/64
sonic(config-if-21)# vrf 100
sonic(config-if-21)# exit
sonic(config)# interface ethernet 49
sonic(config-if-49)# ip address 2049::1/64
sonic(config-if-49)# ipv6 router isis test
sonic(config-if-49)# exit
sonic(config)# interface loopback 1
sonic(config-loif-1)# ip address 1.1.1.1/32
sonic(config-loif-1)# ip address 2000::1/128

# Configure EBGP neighbor relations with CE1

sonic# configure
sonic(config)# router bgp 1024 vrf 100
sonic(config-router)# bgp router-id 1.1.1.1
sonic(config-router)# no bgp ebgp-requires-policy
sonic(config-router)# neighbor 100.0.21.1 remote-as 1000
sonic(config-router)# neighbor 1000::1 remote-as 1000
sonic(config-router)# address-family ipv4 unicast
sonic(config-router-af)# export vpn
sonic(config-router-af)# import vpn
sonic(config-router-af)# rd vpn export 3:66
sonic(config-router-af)# redistribute connected
sonic(config-router-af)# rt vpn both 88:88
sonic(config-router-af)# sid vpn export auto
sonic(config-router-af)# exit
sonic(config-router)# address-family ipv6 unicast
sonic(config-router-af)# neighbor 1000::1 activate
sonic(config-router-af)# export vpn
sonic(config-router-af)# import vpn
sonic(config-router-af)# rd vpn export 1:66
sonic(config-router-af)# redistribute connected
sonic(config-router-af)# rt vpn both 66:66
sonic(config-router-af)# sid vpn export auto
sonic(config-router-af)# exit

# Configure MP-BGP neighbor relationships with PE2

sonic# configure
sonic(config)# router bgp 1024
sonic(config-router)# bgp router-id 1.1.1.1
sonic(config-router)# no bgp default ipv4-unicast
sonic(config-router)# no bgp ebgp-requires-policy
sonic(config-router)# segment-routing srv6
sonic(config-router-srv6)# locator test
sonic(config-router-srv6)# exit
sonic(config-router)# neighbor 3000::1 remote-as 1024
sonic(config-router)# neighbor 3000::1 capability extended-nexthop
sonic(config-router)# neighbor 3000::1 update-source 2000::1
sonic(config-router)# address-family ipv4 vpn
sonic(config-router-af)# neighbor 3000::1 activate
sonic(config-router-af)# exit
sonic(config-router)# address-family ipv6 vpn
sonic(config-router-af)# neighbor 3000::1 activate

# P 1 Switch Configuration

# Configure an SRV6 instance

sonic# configure
sonic(config)# segment-routing
sonic(config-sr)# srv6
sonic(config-srv6)# locators
sonic(config-srv6-locators)# locator test
sonic(config-srv6-locator)# prefix 2001::/64

# Configure the ISIS instance and bind the SRV6 instance

sonic# configure
sonic(config)# router isis test
sonic(config-router)# is-type level-1
sonic(config-router)# net 10.0000.0000.0000.0158.00
sonic(config-router)# redistribute ipv6 connected level-1
sonic(config-router)# segment-routing srv6
sonic(config-router-srv6)# locator test

# Configure the interface’s interconnect IP and bind SRV6

sonic# configure
sonic(config)# interface ethernet 121
sonic(config-if-121)# ip address 2049::2/64
sonic(config-if-121)# ipv6 router isis test
sonic(config-if-121)# exit
sonic(config)# interface ethernet 125
sonic(config-if-125)# interface ethernet 125
sonic(config-if-125)# ip address 2125::1/64
sonic(config-if-125)# ipv6 router isis test

# P 2 Switch Configuration

# Configure an SRV6 instance

sonic# configure
sonic(config)# segment-routing
sonic(config-sr)# srv6
sonic(config-srv6)# locators
sonic(config-srv6-locators)# locator test
sonic(config-srv6-locator)# prefix 2002::/64

# Configure the ISIS instance and bind the SRV6 instance

sonic# configure
sonic(config)# router isis test
sonic(config-router)# is-type level-1
sonic(config-router)# net 10.0000.0000.0000.0182.00
sonic(config-router)# redistribute ipv6 connected level-1
sonic(config-router)# segment-routing srv6
sonic(config-router-srv6)# locator test

# Configure the interface’s inter-network IP and bind SRV6

sonic# configure
sonic(config)# interface ethernet 117
sonic(config-if-117)# ip address 2117::1/64
sonic(config-if-117)# ipv6 router isis test
sonic(config-if-117)# exit
sonic(config)# interface ethernet 125
sonic(config-if-125)# ip address 2125::2/64
sonic(config-if-125)# ipv6 router isis test

# P 3 Switch Configuration

# Configure an SRV6 instance

sonic# configure
sonic(config)# segment-routing
sonic(config-sr)# srv6
sonic(config-srv6)# locators
sonic(config-srv6-locators)# locator test
sonic(config-srv6-locator)# prefix 2003::/64

# Configure the ISIS instance and bind the SRV6 instance

sonic# configure
sonic(config)# router isis test
sonic(config-router)# is-type level-1
sonic(config-router)# net 10.0000.0000.0000.0117.00
sonic(config-router)# redistribute ipv6 connected level-1
sonic(config-router)# segment-routing srv6
sonic(config-router-srv6)# locator test

# Configure the interface’s inter-network IP and bind SRV6

sonic# configure
sonic(config)# interface ethernet 29
sonic(config-if-29)# ip address 2117::2/64
sonic(config-if-29)# ipv6 router isis test
sonic(config-if-29)# exit
sonic(config)# interface ethernet 25
sonic(config-if-25)# ip address 2025::1/64
sonic(config-if-25)# ipv6 router isis test

# PE 2 Switch Configuration

# Configure an SRV6 instance

sonic# configure
sonic(config)# segment-routing
sonic(config-sr)# srv6
sonic(config-srv6)# locators
sonic(config-srv6-locators)# locator test
sonic(config-srv6-locator)# prefix 2004::/64

# Configure the ISIS instance and bind the SRV6 instance

sonic# configure
sonic(config)# router isis test
sonic(config-router)# is-type level-1
sonic(config-router)# net 10.0000.0000.0000.0179.00
sonic(config-router)# redistribute ipv6 connected level-1
sonic(config-router)# segment-routing srv6
sonic(config-router-srv6)# locator test

# Create a VRF and configure the inter-interface IP addresses

sonic# configure
sonic(config)# vrf 100
sonic(config-vrf)# exit
sonic(config)# interface ethernet 25
sonic(config-if-25)# ip address 2025::2/64
sonic(config-if-25)# ipv6 router isis test
sonic(config-if-25)# exit
sonic(config)# interface ethernet 23
sonic(config-if-23)# ip address 100.0.23.1/24
sonic(config-if-23)# ip address 1023::1/64
sonic(config-if-23)# ipv6 router isis test
sonic(config-if-23)# vrf 100
sonic(config-if-23)# exit
sonic(config)# interface loopback 1
sonic(config-loif-1)# ip address 2.2.2.2/32
sonic(config-loif-1)# ip address 3000::1/128

# Configure EBGP neighbor relationships with CE2

sonic# configure
sonic(config)# router bgp 1024 vrf 100
sonic(config-router)# bgp router-id 2.2.2.2
sonic(config-router)# no bgp default ipv4-unicast
sonic(config-router)# no bgp ebgp-requires-policy
sonic(config-router)# sid vpn per-vrf export auto
sonic(config-router)# neighbor 100.0.23.2 remote-as 1000
sonic(config-router)# neighbor 1023::2 remote-as 1000
sonic(config-router)# address-family ipv4 unicast
sonic(config-router-af)# neighbor 100.0.23.2 activate
sonic(config-router-af)# export vpn
sonic(config-router-af)# import vpn
sonic(config-router-af)# rd vpn export 4:66
sonic(config-router-af)# redistribute connected
sonic(config-router-af)# rt vpn both 88:88
sonic(config-router-af)# sid vpn export auto
sonic(config-router-af)# exit
sonic(config-router)# address-family ipv6 unicast
sonic(config-router-af)# neighbor 1023::2 activate
sonic(config-router-af)# export vpn
sonic(config-router-af)# import vpn
sonic(config-router-af)# rd vpn export 2:66
sonic(config-router-af)# redistribute connected
sonic(config-router-af)# rt vpn both 66:66
sonic(config-router-af)# sid vpn export auto
sonic(config-router-af)# exit

# Configure MP-BGP neighbor relationships with PE1

sonic# configure
sonic(config)# router bgp 1024
sonic(config-router)# bgp router-id 2.2.2.2
sonic(config-router)# no bgp default ipv4-unicast
sonic(config-router)# no bgp ebgp-requires-policy
sonic(config-router)# segment-routing srv6
sonic(config-router-srv6)# locator test
sonic(config-router-srv6)# exit
sonic(config-router)# neighbor 2000::1 remote-as 1024
sonic(config-router)# neighbor 2000::1 capability extended-nexthop
sonic(config-router)# neighbor 2000::1 update-source 3000::1
sonic(config-router)# address-family ipv4 vpn
sonic(config-router-af)# neighbor 2000::1 activate
sonic(config-router-af)# exit
sonic(config-router)# address-family ipv6 vpn
sonic(config-router-af)# neighbor 2000::1 activate

# CE 2 Switch Configuration

# Configure the interface’s interconnect IP

sonic# configure
sonic(config)# interface ethernet 23
sonic(config-if-23)# ip address 100.0.23.2/24
sonic(config-if-23)# ip address 1023::2/64

# Configure an EBGP neighbor relationship with PE2

sonic# configure
sonic(config)# router bgp 1000
sonic(config-router)# no bgp ebgp-requires-policy
sonic(config-router)# no bgp default ipv4-unicast
sonic(config-router)# neighbor 100.0.23.1 remote-as 1024
sonic(config-router)# neighbor 1023::1 remote-as 1024
sonic(config-router)# address-family ipv4 unicast
sonic(config-router-af)# neighbor 100.0.23.1 activate
sonic(config-router-af)# redistribute connected
sonic(config-router-af)# exit
sonic(config-router)# address-family ipv6 unicast
sonic(config-router-af)# neighbor 1023::1 activate
sonic(config-router-af)# redistribute connected

Verify configuration

# CE 1 obtains the route to CE 2 via BGP synchronization, and connectivity between CE 1 and CE 2 is normal.

sonic# show ip route
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv4 unicast VRF default:
K>* 0.0.0.0/0 [0/201] via 192.168.0.1, mgmt, weight 1, 00:13:17
C>* 10.1.0.1/32 is directly connected, loopback0, weight 1, 00:13:12
B>* 100.0.1.0/24 [20/0] via 100.0.23.1, eth 23, weight 1, 00:12:01
B>* 100.0.21.0/24 [20/0] via 100.0.23.1, eth 23, weight 1, 00:03:29
C>* 100.0.23.0/24 is directly connected, eth 23, weight 1, 00:12:03
C>* 192.168.0.0/20 is directly connected, mgmt, weight 1, 00:13:17
sonic#
sonic# show ipv6 route
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv6 unicast VRF default:
B>* 1000::/64 [20/0] via fe80::62eb:5aff:fe01:774c, eth 23, weight 1, 00:03:34
C>* 1023::/64 is directly connected, eth 23, weight 1, 00:12:08
C * fe80::/64 is directly connected, eth 23, weight 1, 00:12:08
C * fe80::/64 is directly connected, Bridge, weight 1, 00:13:12
C * fe80::/64 is directly connected, dummy, weight 1, 00:13:17
C * fe80::/64 is directly connected, loopback0, weight 1, 00:13:17
C>* fe80::/64 is directly connected, mgmt, weight 1, 00:13:22
sonic#
sonic# ping 100.0.21.1
PING 100.0.21.1 (100.0.21.1) 56(84) bytes of data.
64 bytes from 100.0.21.1: icmp_seq=1 ttl=62 time=2.07 ms
64 bytes from 100.0.21.1: icmp_seq=2 ttl=62 time=1.13 ms
64 bytes from 100.0.21.1: icmp_seq=3 ttl=62 time=1.16 ms
64 bytes from 100.0.21.1: icmp_seq=4 ttl=62 time=1.15 ms
64 bytes from 100.0.21.1: icmp_seq=5 ttl=62 time=1.47 ms
--- 100.0.21.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 1.133/1.398/2.070/0.358 ms
sonic#
sonic# ping 1000::1
PING 1000::1(1000::1) 56 data bytes
64 bytes from 1000::1: icmp_seq=1 ttl=62 time=1.20 ms
64 bytes from 1000::1: icmp_seq=2 ttl=62 time=2.09 ms
64 bytes from 1000::1: icmp_seq=3 ttl=62 time=1.23 ms
64 bytes from 1000::1: icmp_seq=4 ttl=62 time=1.25 ms
64 bytes from 1000::1: icmp_seq=5 ttl=62 time=1.23 ms
--- 1000::1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 1.200/1.397/2.089/0.346 ms
## MP-BGP neighbor establishment between PE 1 and PE 2
sonic# show bgp vrf all summary
IPv4 Unicast Summary:
BGP router identifier 1.1.1.1, local AS number 1024 VRF 100 vrf-id 11
BGP table version 5
RIB entries 9, using 1152 bytes of memory
Peers 1, using 24 KiB of memory
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt Desc
100.0.21.1 4 1000 22 21 5 0 0 00:15:40 3 5 N/A
Total number of neighbors 1
IPv6 Unicast Summary:
BGP router identifier 1.1.1.1, local AS number 1024 VRF 100 vrf-id 11
BGP table version 3
RIB entries 4, using 512 bytes of memory
Peers 1, using 24 KiB of memory
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt Desc
1000::1 4 1000 21 21 3 0 0 00:15:33 1 3 N/A
Total number of neighbors 1
IPv4 VPN Summary:
BGP router identifier 1.1.1.1, local AS number 1024 VRF default vrf-id 0
BGP table version 0
RIB entries 3, using 384 bytes of memory
Peers 1, using 24 KiB of memory
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt Desc
3000::1 4 1024 17 17 4 0 0 00:09:21 4 3 FRRouting/10.4.1
Total number of neighbors 1
IPv6 VPN Summary:
BGP router identifier 1.1.1.1, local AS number 1024 VRF default vrf-id 0
BGP table version 0
RIB entries 3, using 384 bytes of memory
Peers 1, using 24 KiB of memory
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt Desc
3000::1 4 1024 17 17 2 0 0 00:09:21 1 2 FRRouting/10.4.1
Total number of neighbors 1
## PE 1's routing table entries and the SID entries generated by SRV6
sonic# show ip route vrf all
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv4 unicast VRF 100:
B>* 10.1.0.1/32 [20/0] via 100.0.21.1, eth 21, weight 1, 00:30:40
B> 100.0.1.0/24 [200/0] via 3000::1 (vrf default) (recursive), label 16, seg6 2004::1:0:0:0, weight 1, 00:24:21
* via fe80::62eb:5aff:fe00:24d3, eth 49 (vrf default), label 16, seg6 2004::1:0:0:0, weight 1, 00:24:21
C>* 100.0.21.0/24 is directly connected, eth 21, weight 1, 00:31:46
B 100.0.23.0/24 [200/0] via 3000::1 (vrf default) (recursive), label 16, seg6 2004::1:0:0:0, weight 1, 00:24:21
via fe80::62eb:5aff:fe00:24d3, eth 49 (vrf default), label 16, seg6 2004::1:0:0:0, weight 1, 00:24:21
B>* 192.168.0.0/20 [20/0] via 100.0.21.1, eth 21, weight 1, 00:30:40
IPv4 unicast VRF 200:
C>* 100.0.5.0/24 is directly connected, eth 5, weight 1, 00:33:58
IPv4 unicast VRF default:
K>* 0.0.0.0/0 [0/201] via 192.168.0.1, mgmt, weight 1, 00:35:31
C>* 1.1.1.1/32 is directly connected, loopback1, weight 1, 00:24:29
C>* 10.1.0.1/32 is directly connected, loopback0, weight 1, 00:35:17
C>* 192.168.0.0/20 is directly connected, mgmt, weight 1, 00:35:31
sonic#
sonic# show ipv6 route vrf all
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv6 unicast VRF 100:
B>* 1000::/24 [20/0] via fe80::62eb:5aff:fe01:1ce4, eth 21, weight 1, 00:30:45
C>* 1000::/64 is directly connected, eth 21, weight 1, 00:31:58
B 1023::/64 [200/0] via 3000::1 (vrf default) (recursive), label 16, seg6 2004::1:0:0:0, weight 1, 00:24:33
via fe80::62eb:5aff:fe00:24d3, eth 49 (vrf default), label 16, seg6 2004::1:0:0:0, weight 1, 00:24:33
C>* fe80::/64 is directly connected, eth 21, weight 1, 00:31:58
IPv6 unicast VRF 200:
C>* fe80::/64 is directly connected, eth 5, weight 1, 00:34:10
IPv6 unicast VRF default:
C>* 2000::1/128 is directly connected, loopback1, weight 1, 00:24:34
I>* 2001::/64 [115/10] via fe80::62eb:5aff:fe00:24d3, eth 49, weight 1, 00:34:34
I>* 2002::/64 [115/20] via fe80::62eb:5aff:fe00:24d3, eth 49, weight 1, 00:34:34
I>* 2003::/64 [115/30] via fe80::62eb:5aff:fe00:24d3, eth 49, weight 1, 00:34:22
I>* 2004::/64 [115/30] via fe80::62eb:5aff:fe00:24d3, eth 49, weight 1, 00:33:52
I>* 2025::/64 [115/30] via fe80::62eb:5aff:fe00:24d3, eth 49, weight 1, 00:34:08
C>* 2049::/64 is directly connected, eth 49, weight 1, 00:35:14
K * 2049::/64 [0/256] is directly connected, eth 49, weight 1, 00:35:14
I>* 2113::/64 [115/20] via fe80::62eb:5aff:fe00:24d3, eth 49, weight 1, 00:33:52
I>* 2117::/64 [115/20] via fe80::62eb:5aff:fe00:24d3, eth 49, weight 1, 00:34:22
I>* 2125::/64 [115/10] via fe80::62eb:5aff:fe00:24d3, eth 49, weight 1, 00:34:34
I>* 2500::/128 [115/0] is directly connected, sr0, seg6local End, weight 1, 00:35:04
B>* 2500::1:0:0:0/128 [20/0] is directly connected, 100, seg6local End.DT4 table 1001, weight 1, 00:35:04
B>* 2500::2:0:0:0/128 [20/0] is directly connected, 100, seg6local End.DT6 table 1001, weight 1, 00:35:04
I>* 2500::3:0:0:0/128 [115/0] is directly connected, eth 49, seg6local End.X nh6 fe80::62eb:5aff:fe00:24d3, weight 1, 00:35:02
I>* 3000::1/128 [115/30] via fe80::62eb:5aff:fe00:24d3, eth 49, weight 1, 00:25:03
C * fe80::/64 is directly connected, loopback1, weight 1, 00:24:47
C * fe80::/64 is directly connected, eth 49, weight 1, 00:35:14
C * fe80::/64 is directly connected, sr0, weight 1, 00:35:14
C * fe80::/64 is directly connected, eth 1, weight 1, 00:35:14
C * fe80::/64 is directly connected, Bridge, weight 1, 00:35:29
C * fe80::/64 is directly connected, dummy, weight 1, 00:35:29
C * fe80::/64 is directly connected, loopback0, weight 1, 00:35:29
C>* fe80::/64 is directly connected, mgmt, weight 1, 00:35:43
sonic# show segment-routing srv6 local sid
+---------------+----------+--------+---------------------------+
| Sid | Action | Vrf | Adj |
+===============+==========+========+===========================+
| 2500:: | End | | |
+---------------+----------+--------+---------------------------+
| 2500::1:0:0:0 | End_DT4 | Vrf100 | |
+---------------+----------+--------+---------------------------+
| 2500::2:0:0:0 | End_DT6 | Vrf100 | |
+---------------+----------+--------+---------------------------+
| 2500::3:0:0:0 | End_X | | fe80::62eb:5aff:fe00:24d3 |
+---------------+----------+--------+---------------------------+

# ISIS neighbor establishment status of Device P1 and SID entries generated by SRV6

sonic# show isis neighbor
Area test:
System Id Interface L State Holdtime SNPA
sonic eth 121 1 Up 29 60eb.5a01.12f1
sonic eth 125 1 Up 29 74fe.488b.e63e
sonic# show segment-routing srv6 local sid
+---------------+----------+-------+---------------------------+
| Sid | Action | Vrf | Adj |
+===============+==========+=======+===========================+
| 2001:: | End | | |
+---------------+----------+-------+---------------------------+
| 2001::1:0:0:0 | End_X | | fe80::62eb:5aff:fe01:12f1 |
+---------------+----------+-------+---------------------------+
| 2001::2:0:0:0 | End_X | | fe80::76fe:48ff:fe8b:e63e |
+---------------+----------+-------+---------------------------+

# ISIS neighbor establishment status of Device P2 and SID entries generated by SRV6

sonic# show isis neighbor
Area test:
System Id Interface L State Holdtime SNPA
sonic eth 117 1 Up 30 60eb.5a01.774e
sonic eth 125 1 Up 29 60eb.5a00.24d3
sonic# show segment-routing srv6 local sid
+---------------+----------+-------+---------------------------+
| Sid | Action | Vrf | Adj |
+===============+==========+=======+===========================+
| 2002:: | End | | |
+---------------+----------+-------+---------------------------+
| 2002::1:0:0:0 | End_X | | fe80::62eb:5aff:fe00:24d3 |
+---------------+----------+-------+---------------------------+
| 2002::2:0:0:0 | End_X | | fe80::62eb:5aff:fe01:774e |
+---------------+----------+-------+---------------------------+
| 2002::3:0:0:0 | End_X | | fe80::62eb:5aff:fe01:774c |
+---------------+----------+-------+---------------------------+

# ISIS neighbor establishment status of Device P3 and SID entries generated by SRV6

sonic# show isis neighbor
Area test:
System Id Interface L State Holdtime SNPA
sonic eth 25 1 Up 29 60eb.5a01.774c
sonic eth 29 1 Up 27 74fe.488b.e63e
sonic# show segment-routing srv6 local sid
+---------------+----------+-------+---------------------------+
| Sid | Action | Vrf | Adj |
+===============+==========+=======+===========================+
| 2003:: | End | | |
+---------------+----------+-------+---------------------------+
| 2003::1:0:0:0 | End_X | | fe80::76fe:48ff:fe8b:e63e |
+---------------+----------+-------+---------------------------+
| 2003::2:0:0:0 | End_X | | fe80::62eb:5aff:fe01:774c |
+---------------+----------+-------+---------------------------+

# PE 2’s routing table entries and the SID entries generated by SRV6

sonic# show ip route vrf all
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv4 unicast VRF 100:
B>* 10.1.0.1/32 [20/0] via 100.0.23.2, eth 23, weight 1, 00:40:54
C>* 100.0.1.0/24 is directly connected, eth 1, weight 1, 00:40:56
B 100.0.21.0/24 [200/0] via 2000::1 (vrf default) (recursive), label 16, seg62500::1:0:0:0, weight 1, 00:32:22
via fe80::76fe:48ff:fe8b:e63e, eth 29 (vrf default), label 16, seg6 2500::1:0:0:0, weight 1, 00:32:22
C>* 100.0.23.0/24 is directly connected, eth 23, weight 1, 00:40:56
B>* 192.168.0.0/20 [20/0] via 100.0.23.2, eth 23, weight 1, 00:40:54
IPv4 unicast VRF default:
K>* 0.0.0.0/0 [0/201] via 192.168.0.1, mgmt, weight 1, 00:42:26
C>* 2.2.2.2/32 is directly connected, loopback1, weight 1, 00:33:01
C>* 10.1.0.1/32 is directly connected, loopback0, weight 1, 00:42:20
C>* 192.168.0.0/20 is directly connected, mgmt, weight 1, 00:42:26
sonic# show ipv6 route vrf all
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv6 unicast VRF 100:
B> 1000::/24 [200/0] via 2000::1 (vrf default) (recursive), label 32, seg6 2500::2:0:0:0, weight 1, 00:32:27
* via fe80::76fe:48ff:fe8b:e63e, eth 29 (vrf default), label 32, seg6 2500::2:0:0:0, weight 1, 00:32:27
B 1000::/64 [200/0] via 2000::1 (vrf default) (recursive), label 32, seg6 2500::2:0:0:0, weight 1, 00:32:27
via fe80::76fe:48ff:fe8b:e63e, eth 29 (vrf default), label 32, seg6 2500::2:0:0:0, weight 1, 00:32:27
C>* 1023::/64 is directly connected, eth 23, weight 1, 00:41:01
C * fe80::/64 is directly connected, eth 23, weight 1, 00:41:01
C>* fe80::/64 is directly connected, eth 1, weight 1, 00:41:01
IPv6 unicast VRF default:
I>* 2000::1/128 [115/30] via fe80::76fe:48ff:fe8b:e63e, eth 29, weight 1, 00:32:28
I>* 2001::/64 [115/20] via fe80::76fe:48ff:fe8b:e63e, eth 29, weight 1, 00:41:29
I>* 2002::/64 [115/10] via fe80::76fe:48ff:fe8b:e63e, eth 29, weight 1, 00:41:2
I>* 2003::/64 [115/10] via fe80::62eb:5aff:fe01:774e, eth 25, weight 1, 00:41:29
I>* 2004::/128 [115/0] is directly connected, sr0, seg6local End, weight 1, 00:41:59
B>* 2004::1:0:0:0/128 [20/0] is directly connected, 100, seg6local End.DT46 table 1001, weight 1, 00:41:59
I>* 2004::2:0:0:0/128 [115/0] is directly connected, eth 29, seg6local End.X nh6 fe80::76fe:48ff:fe8b:e63e, weight 1, 00:41:59
I>* 2004::3:0:0:0/128 [115/0] is directly connected, eth 25, seg6local End.X nh6 fe80::62eb:5aff:fe01:774e, weight 1, 00:41:57
C>* 2025::/64 is directly connected, eth 25, weight 1, 00:42:10
K * 2025::/64 [0/256] is directly connected, eth 25, weight 1, 00:42:11
I>* 2049::/64 [115/20] via fe80::76fe:48ff:fe8b:e63e, eth 29, weight 1, 00:41:29
C>* 2113::/64 is directly connected, eth 29, weight 1, 00:42:10
K * 2113::/64 [0/256] is directly connected, eth 29, weight 1, 00:42:11
I>* 2117::/64 [115/10] via fe80::62eb:5aff:fe01:774e, eth 25, weight 1, 00:41:29
* via fe80::76fe:48ff:fe8b:e63e, eth 29, weight 1, 00:41:29
I>* 2125::/64 [115/10] via fe80::76fe:48ff:fe8b:e63e, eth 29, weight 1, 00:41:29
I>* 2500::/64 [115/30] via fe80::76fe:48ff:fe8b:e63e, eth 29, weight 1, 00:41:29
C>* 3000::1/128 is directly connected, loopback1, weight 1, 00:32:57
C * fe80::/64 is directly connected, loopback1, weight 1, 00:33:12
C * fe80::/64 is directly connected, eth 29, weight 1, 00:42:10
C * fe80::/64 is directly connected, eth 25, weight 1, 00:42:10
C * fe80::/64 is directly connected, sr0, weight 1, 00:42:10
C * fe80::/64 is directly connected, eth 3, weight 1, 00:42:10
C * fe80::/64 is directly connected, Bridge, weight 1, 00:42:25
C * fe80::/64 is directly connected, dummy, weight 1, 00:42:25
C * fe80::/64 is directly connected, loopback0, weight 1, 00:42:25
C>* fe80::/64 is directly connected, mgmt, weight 1, 00:42:31
sonic# show segment-routing srv6 local sid
+---------------+----------+--------+---------------------------+
| Sid | Action | Vrf | Adj |
+===============+==========+========+===========================+
| 2004:: | End | | |
+---------------+----------+--------+---------------------------+
| 2004::1:0:0:0 | End_DT46 | Vrf100 | |
+---------------+----------+--------+---------------------------+
| 2004::2:0:0:0 | End_X | | fe80::76fe:48ff:fe8b:e63e |
+---------------+----------+--------+---------------------------+
| 2004::3:0:0:0 | End_X | | fe80::62eb:5aff:fe01:774e |
+---------------+----------+--------+---------------------------+

# CE 2 obtains the routes for CE 1 through BGP synchronization, and connectivity between CE 2 and CE 1 is normal.

sonic# show ip route
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv4 unicast VRF default:
K>* 0.0.0.0/0 [0/201] via 192.168.0.1, mgmt, weight 1, 00:44:18
C>* 10.1.0.1/32 is directly connected, loopback0, weight 1, 00:44:13
B>* 100.0.1.0/24 [20/0] via 100.0.23.1, eth 23, weight 1, 00:43:02
B>* 100.0.21.0/24 [20/0] via 100.0.23.1, eth 23, weight 1, 00:34:30
C>* 100.0.23.0/24 is directly connected, eth 23, weight 1, 00:43:04
C>* 192.168.0.0/20 is directly connected, mgmt, weight 1, 00:44:18
sonic# show ipv6 route
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv6 unicast VRF default:
B>* 1000::/64 [20/0] via fe80::62eb:5aff:fe01:774c, eth 23, weight 1, 00:34:35
C>* 1023::/64 is directly connected, eth 23, weight 1, 00:43:09
C * fe80::/64 is directly connected, eth 23, weight 1, 00:43:09
C * fe80::/64 is directly connected, Bridge, weight 1, 00:44:13
C * fe80::/64 is directly connected, dummy, weight 1, 00:44:18
C * fe80::/64 is directly connected, loopback0, weight 1, 00:44:18
C>* fe80::/64 is directly connected, mgmt, weight 1, 00:44:23
sonic# ping 100.0.21.1
PING 100.0.21.1 (100.0.21.1) 56(84) bytes of data.
64 bytes from 100.0.21.1: icmp_seq=1 ttl=62 time=1.41 ms
64 bytes from 100.0.21.1: icmp_seq=2 ttl=62 time=1.33 ms
64 bytes from 100.0.21.1: icmp_seq=3 ttl=62 time=1.33 ms
64 bytes from 100.0.21.1: icmp_seq=4 ttl=62 time=1.54 ms
64 bytes from 100.0.21.1: icmp_seq=5 ttl=62 time=1.62 ms
--- 100.0.21.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 1.326/1.445/1.621/0.116 ms
sonic# ping 1000::1
PING 1000::1(1000::1) 56 data bytes
64 bytes from 1000::1: icmp_seq=1 ttl=62 time=1.46 ms
64 bytes from 1000::1: icmp_seq=2 ttl=62 time=1.33 ms
64 bytes from 1000::1: icmp_seq=3 ttl=62 time=1.32 ms
64 bytes from 1000::1: icmp_seq=4 ttl=62 time=1.38 ms
64 bytes from 1000::1: icmp_seq=5 ttl=62 time=1.41 ms
--- 1000::1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 1.323/1.379/1.460/0.050 ms

Network requirements

As shown in the figure, the SRV6 TE configuration builds upon the SRV6 BE configuration by adding a loopback interface and static SRV6 routing configurations.

SRV6 TE tunnels rely on physical loopback interfaces to encapsulate Segment Lists (up to three layers).

SRV6 TE tunnels require static SRV6 routing to specify the service forwarding path and the encapsulated Segment List.

Procedure

# Additional configuration for the PE 1 device based on the SRV6 BE configuration

# Add a new loopback configuration and bind SRV6

sonic# configure
sonic(config)# interface ethernet 1
sonic(config-if-1)# loopback binding srv6
sonic(config-if-1)# loopback internal

# Add a new static SRV6 route

sonic# configure
sonic(config)# vrf 100
sonic(config-vrf)# ip route 100.0.23.0/24 fe80::62eb:5aff:fe00:24d3 segments 2001::/2002::/2003::/2004::2:0:0:0
sonic(config-vrf)# ipv6 route 1023::/64 fe80::62eb:5aff:fe00:24d3 segments 2001::/2002::/2003::/2004::2:0:0:0

# The PE 2 device includes additional configurations based on the SRV6 BE configuration

# Add a new loopback configuration and bind SRV6

sonic# configure
sonic(config)# interface ethernet 3
sonic(config-if-3)# loopback binding srv6
sonic(config-if-3)# loopback internal

# Add a new static SRV6 route

sonic# configure
sonic(config)# vrf 100
sonic(config-vrf)# ip route 100.0.21.0/24 fe80::62eb:5aff:fe01:774e segments 2003::/2002::/2001::/2500::2:0:0:0
sonic(config-vrf)# ipv6 route 1000::/64 fe80::62eb:5aff:fe01:774e segments 2003::/2002::/2001::/2500::2:0:0:0

Verify configuration

# PE 1’s routing table entries and the SID entries generated by SRV6

sonic# show ip route vrf all
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv4 unicast VRF 100:
B>* 10.1.0.1/32 [20/0] via 100.0.21.1, eth 21, weight 1, 01:41:32
B> 100.0.1.0/24 [200/0] via 3000::1 (vrf default) (recursive), label 16, seg6 2004::1:0:0:0, weight 1, 01:35:13
* via fe80::62eb:5aff:fe00:24d3, eth 49 (vrf default), label 16, seg6 2004::1:0:0:0, weight 1, 01:35:13
C>* 100.0.21.0/24 is directly connected, eth 21, weight 1, 01:42:38
B 100.0.23.0/24 [200/0] via 3000::1 (vrf default) (recursive), label 16, seg6 2004::1:0:0:0, weight 1, 01:35:13
via fe80::62eb:5aff:fe00:24d3, eth 49 (vrf default), label 16, seg6 2004::1:0:0:0, weight 1, 01:35:13
S>* 100.0.23.0/24 [1/0] via fe80::62eb:5aff:fe00:24d3, eth 21, seg6 2001::,2002::,2003::,2004::2:0:0:0, weight 1, 01:42:38
B>* 192.168.0.0/20 [20/0] via 100.0.21.1, eth 21, weight 1, 01:41:32
IPv4 unicast VRF 200:
C>* 100.0.5.0/24 is directly connected, eth 5, weight 1, 01:44:50
IPv4 unicast VRF default:
K>* 0.0.0.0/0 [0/201] via 192.168.0.1, mgmt, weight 1, 01:46:23
C>* 1.1.1.1/32 is directly connected, loopback1, weight 1, 01:35:21
C>* 10.1.0.1/32 is directly connected, loopback0, weight 1, 01:46:09
C>* 192.168.0.0/20 is directly connected, mgmt, weight 1, 01:46:23
sonic# show ipv6 route vrf all
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv6 unicast VRF 100:
B>* 1000::/24 [20/0] via fe80::62eb:5aff:fe01:1ce4, eth 21, weight 1, 01:41:33
C>* 1000::/64 is directly connected, eth 21, weight 1, 01:42:46
B 1023::/64 [200/0] via 3000::1 (vrf default) (recursive), label 16, seg6 2004::1:0:0:0, weight 1, 01:35:21
via fe80::62eb:5aff:fe00:24d3, eth 49 (vrf default), label 16, seg6 2004::1:0:0:0, weight 1, 01:35:21
S>* 1023::/64 [1/0] via fe80::62eb:5aff:fe00:24d3, eth 21, seg6 2001::,2002::,2003::,2004::2:0:0:0, weight 1, 01:42:46
C>* fe80::/64 is directly connected, eth 21, weight 1, 01:42:46
IPv6 unicast VRF 200:
C>* fe80::/64 is directly connected, eth 5, weight 1, 01:44:58
IPv6 unicast VRF default:
C>* 2000::1/128 is directly connected, loopback1, weight 1, 01:35:22
I>* 2001::/64 [115/10] via fe80::62eb:5aff:fe00:24d3, eth 49, weight 1, 01:45:22
I>* 2002::/64 [115/20] via fe80::62eb:5aff:fe00:24d3, eth 49, weight 1, 01:45:22
I>* 2003::/64 [115/30] via fe80::62eb:5aff:fe00:24d3, eth 49, weight 1, 01:45:10
I>* 2004::/64 [115/30] via fe80::62eb:5aff:fe00:24d3, eth 49, weight 1, 01:44:40
I>* 2025::/64 [115/30] via fe80::62eb:5aff:fe00:24d3, eth 49, weight 1, 01:44:56
C>* 2049::/64 is directly connected, eth 49, weight 1, 01:46:02
K * 2049::/64 [0/256] is directly connected, eth 49, weight 1, 01:46:02
I>* 2113::/64 [115/20] via fe80::62eb:5aff:fe00:24d3, eth 49, weight 1, 01:44:40
I>* 2117::/64 [115/20] via fe80::62eb:5aff:fe00:24d3, eth 49, weight 1, 01:45:10
I>* 2125::/64 [115/10] via fe80::62eb:5aff:fe00:24d3, eth 49, weight 1, 01:45:22
I>* 2500::/128 [115/0] is directly connected, sr0, seg6local End, weight 1, 01:45:52
B>* 2500::1:0:0:0/128 [20/0] is directly connected, 100, seg6local End.DT4 table 1001, weight 1, 01:45:52
B>* 2500::2:0:0:0/128 [20/0] is directly connected, 100, seg6local End.DT6 table
1001, weight 1, 01:45:52
I>* 2500::3:0:0:0/128 [115/0] is directly connected, eth 49, seg6local End.X nh6 fe80::62eb:5aff:fe00:24d3, weight 1, 01:45:50
I>* 3000::1/128 [115/30] via fe80::62eb:5aff:fe00:24d3, eth 49, weight 1, 01:35:51
C * fe80::/64 is directly connected, loopback1, weight 1, 01:35:35
C * fe80::/64 is directly connected, eth 49, weight 1, 01:46:02
C * fe80::/64 is directly connected, sr0, weight 1, 01:46:02
C * fe80::/64 is directly connected, eth 1, weight 1, 01:46:02
C * fe80::/64 is directly connected, Bridge, weight 1, 01:46:17
C * fe80::/64 is directly connected, dummy, weight 1, 01:46:17
C * fe80::/64 is directly connected, loopback0, weight 1, 01:46:17
C>* fe80::/64 is directly connected, mgmt, weight 1, 01:46:31
sonic# show segment-routing srv6 local sid
+---------------+----------+--------+---------------------------+
| Sid | Action | Vrf | Adj |
+===============+==========+========+===========================+
| 2500:: | End | | |
+---------------+----------+--------+---------------------------+
| 2500::1:0:0:0 | End_DT4 | Vrf100 | |
+---------------+----------+--------+---------------------------+
| 2500::2:0:0:0 | End_DT6 | Vrf100 | |
+---------------+----------+--------+---------------------------+
| 2500::3:0:0:0 | End_X | | fe80::62eb:5aff:fe00:24d3 |
+---------------+----------+--------+---------------------------+

# PE 2’s routing table entries and the SID entries generated by SRV6

sonic# show ip route vrf all
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv4 unicast VRF 100:
B>* 10.1.0.1/32 [20/0] via 100.0.23.2, eth 23, weight 1, 01:44:53
C>* 100.0.1.0/24 is directly connected, eth 1, weight 1, 01:44:55
B 100.0.21.0/24 [200/0] via 2000::1 (vrf default) (recursive), label 16, seg6 2500::1:0:0:0, weight 1, 01:36:21
via fe80::76fe:48ff:fe8b:e63e, eth 29 (vrf default), label 16, seg6 2500::1:0:0:0, weight 1, 01:36:21
S>* 100.0.21.0/24 [1/0] via fe80::62eb:5aff:fe01:774e, eth 1, seg6 2003::,2002::,2001::,2500::2:0:0:0, weight 1, 01:44:55
C>* 100.0.23.0/24 is directly connected, eth 23, weight 1, 01:44:55
B>* 192.168.0.0/20 [20/0] via 100.0.23.2, eth 23, weight 1, 01:44:53
IPv4 unicast VRF default:
K>* 0.0.0.0/0 [0/201] via 192.168.0.1, mgmt, weight 1, 01:46:25
C>* 2.2.2.2/32 is directly connected, loopback1, weight 1, 01:37:00
C>* 10.1.0.1/32 is directly connected, loopback0, weight 1, 01:46:19
C>* 192.168.0.0/20 is directly connected, mgmt, weight 1, 01:46:25
sonic# show ipv6 route vrf all
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv6 unicast VRF 100:
B> 1000::/24 [200/0] via 2000::1 (vrf default) (recursive), label 32, seg6 2500::2:0:0:0, weight 1, 01:36:28
* via fe80::76fe:48ff:fe8b:e63e, eth 29 (vrf default), label 32, seg6 2500::2:0:0:0, weight 1, 01:36:28
B 1000::/64 [200/0] via 2000::1 (vrf default) (recursive), label 32, seg6 2500::2:0:0:0, weight 1, 01:36:28
via fe80::76fe:48ff:fe8b:e63e, eth 29 (vrf default), label 32, seg6 2500::2:0:0:0, weight 1, 01:36:28
S>* 1000::/64 [1/0] via fe80::62eb:5aff:fe01:774e, eth 1, seg6 2003::,2002::,2001::,2500::2:0:0:0, weight 1, 01:45:02
C>* 1023::/64 is directly connected, eth 23, weight 1, 01:45:02
C * fe80::/64 is directly connected, eth 23, weight 1, 01:45:02
C>* fe80::/64 is directly connected, eth 1, weight 1, 01:45:02
IPv6 unicast VRF default:
I>* 2000::1/128 [115/30] via fe80::76fe:48ff:fe8b:e63e, eth 29, weight 1, 01:36:29
I>* 2001::/64 [115/20] via fe80::76fe:48ff:fe8b:e63e, eth 29, weight 1, 01:45:30
I>* 2002::/64 [115/10] via fe80::76fe:48ff:fe8b:e63e, eth 29, weight 1, 01:45:30
I>* 2003::/64 [115/10] via fe80::62eb:5aff:fe01:774e, eth 25, weight 1, 01:45:30
I>* 2004::/128 [115/0] is directly connected, sr0, seg6local End, weight 1, 01:46:00
B>* 2004::1:0:0:0/128 [20/0] is directly connected, 100, seg6local End.DT46 table 1001, weight 1, 01:46:00
I>* 2004::2:0:0:0/128 [115/0] is directly connected, eth 29, seg6local End.X nh6 fe80::76fe:48ff:fe8b:e63e, weight 1, 01:46:00
I>* 2004::3:0:0:0/128 [115/0] is directly connected, eth 25, seg6local End.X nh6 fe80::62eb:5aff:fe01:774e, weight 1, 01:45:58
C>* 2025::/64 is directly connected, eth 25, weight 1, 01:46:11
K * 2025::/64 [0/256] is directly connected, eth 25, weight 1, 01:46:12
I>* 2049::/64 [115/20] via fe80::76fe:48ff:fe8b:e63e, eth 29, weight 1, 01:45:30
C>* 2113::/64 is directly connected, eth 29, weight 1, 01:46:11
K * 2113::/64 [0/256] is directly connected, eth 29, weight 1, 01:46:12
I>* 2117::/64 [115/10] via fe80::62eb:5aff:fe01:774e, eth 25, weight 1, 01:45:30
* via fe80::76fe:48ff:fe8b:e63e, eth 29, weight 1, 01:45:30
I>* 2125::/64 [115/10] via fe80::76fe:48ff:fe8b:e63e, eth 29, weight 1, 01:45:30
I>* 2500::/64 [115/30] via fe80::76fe:48ff:fe8b:e63e, eth 29, weight 1, 01:45:30
C>* 3000::1/128 is directly connected, loopback1, weight 1, 01:36:58
C * fe80::/64 is directly connected, loopback1, weight 1, 01:37:13
C * fe80::/64 is directly connected, eth 29, weight 1, 01:46:11
C * fe80::/64 is directly connected, eth 25, weight 1, 01:46:11
C * fe80::/64 is directly connected, sr0, weight 1, 01:46:11
C * fe80::/64 is directly connected, eth 3, weight 1, 01:46:11
C * fe80::/64 is directly connected, Bridge, weight 1, 01:46:26
C * fe80::/64 is directly connected, dummy, weight 1, 01:46:26
C * fe80::/64 is directly connected, loopback0, weight 1, 01:46:26
C>* fe80::/64 is directly connected, mgmt, weight 1, 01:46:32
sonic# show segment-routing srv6 local sid
+---------------+----------+--------+---------------------------+
| Sid | Action | Vrf | Adj |
+===============+==========+========+===========================+
| 2004:: | End | | |
+---------------+----------+--------+---------------------------+
| 2004::1:0:0:0 | End_DT46 | Vrf100 | |
+---------------+----------+--------+---------------------------+
| 2004::2:0:0:0 | End_X | | fe80::76fe:48ff:fe8b:e63e |
+---------------+----------+--------+---------------------------+
| 2004::3:0:0:0 | End_X | | fe80::62eb:5aff:fe01:774e |
+---------------+----------+--------+---------------------------+

# Verify the link connectivity between CE 1 and CE 2

sonic# ping 100.0.21.1
PING 100.0.21.1 (100.0.21.1) 56(84) bytes of data.
64 bytes from 100.0.21.1: icmp_seq=1 ttl=62 time=1.41 ms
64 bytes from 100.0.21.1: icmp_seq=2 ttl=62 time=1.33 ms
64 bytes from 100.0.21.1: icmp_seq=3 ttl=62 time=1.33 ms
64 bytes from 100.0.21.1: icmp_seq=4 ttl=62 time=1.54 ms
64 bytes from 100.0.21.1: icmp_seq=5 ttl=62 time=1.62 ms
--- 100.0.21.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 1.326/1.445/1.621/0.116 ms
sonic# ping 1000::1
PING 1000::1(1000::1) 56 data bytes
64 bytes from 1000::1: icmp_seq=1 ttl=62 time=1.46 ms
64 bytes from 1000::1: icmp_seq=2 ttl=62 time=1.33 ms
64 bytes from 1000::1: icmp_seq=3 ttl=62 time=1.32 ms
64 bytes from 1000::1: icmp_seq=4 ttl=62 time=1.38 ms
64 bytes from 1000::1: icmp_seq=5 ttl=62 time=1.41 ms
--- 1000::1 ping statistics ---