An SRv6 EPE virtual link can be created for a BGP multi-hop peer relationship to implement communication across a third-party network.
In Figure 1, a third-party network is deployed between DeviceB and DeviceC to provide IPv6 L3VPN services. The two devices run IS-IS for basic routing and establish an IBGP peer relationship. IPv6 EBGP peer relationships are established between directly connected interfaces of DeviceA and DeviceB, and between directly connected interfaces of DeviceC and DeviceD. To establish an E2E SRv6 TE Policy across the third-party network, you can configure a BGP peer relationship-based virtual link between DeviceA and DeviceD. In addition, attribute information required for SRv6 TE Policy path computation is provided, such as the link latency, metric, affinity, and SRLG. This prevents the mismatch of the address information in the link information reported by DeviceA and DeviceD through BGP-LS, which would otherwise cause a link combination failure on the controller.
Interface1 and interface2 in this example represent GE0/1/0 and GE0/1/8, respectively.
The configuration roadmap is as follows:
Enable IPv6 forwarding on interfaces of DeviceB and DeviceC, and configure IPv6 addresses for interfaces on devices A through D.
Enable IS-IS, configure an IS-IS level, and specify a network entity title (NET) for DeviceB and DeviceC.
To complete the configuration, you need the following data:
# Configure DeviceA.
<DeviceA> system-view [~DeviceA] interface gigabitethernet 0/1/0 [~DeviceA-GigabitEthernet0/1/0] ipv6 enable [*DeviceA-GigabitEthernet0/1/0] ipv6 address 2001:db8:11::1 96 [*DeviceA-GigabitEthernet0/1/0] quit [*DeviceA] interface loopBack 1 [*DeviceA-LoopBack1] ipv6 enable [*DeviceA-LoopBack1] ipv6 address 2001:db8:1::1 128 [*DeviceA-LoopBack1] commit [~DeviceA-LoopBack1] quit
# Configure DeviceB.
<DeviceB> system-view [~DeviceB] interface gigabitethernet 0/1/0 [~DeviceB-GigabitEthernet0/1/0] ipv6 enable [*DeviceB-GigabitEthernet0/1/0] ipv6 address 2001:db8:22::1 96 [*DeviceB-GigabitEthernet0/1/0] quit [*DeviceB] interface gigabitethernet 0/1/8 [*DeviceB-GigabitEthernet0/1/8] ipv6 enable [*DeviceB-GigabitEthernet0/1/8] ipv6 address 2001:db8:11::2 96 [*DeviceB-GigabitEthernet0/1/8] quit [*DeviceB] interface loopBack 1 [*DeviceB-LoopBack1] ipv6 enable [*DeviceB-LoopBack1] ipv6 address 2001:db8:2::2 128 [*DeviceB-LoopBack1] commit [~DeviceB-LoopBack1] quit
# Configure DeviceC.
<DeviceC> system-view [~DeviceC] interface gigabitethernet 0/1/0 [~DeviceC-GigabitEthernet0/1/0] ipv6 enable [*DeviceC-GigabitEthernet0/1/0] ipv6 address 2001:db8:33::1 96 [*DeviceC-GigabitEthernet0/1/0] quit [*DeviceC] interface gigabitethernet 0/1/8 [*DeviceC-GigabitEthernet0/1/8] ipv6 enable [*DeviceC-GigabitEthernet0/1/8] ipv6 address 2001:db8:22::2 96 [*DeviceC-GigabitEthernet0/1/8] quit [*DeviceC] interface loopBack 1 [*DeviceC-LoopBack1] ipv6 enable [*DeviceC-LoopBack1] ipv6 address 2001:db8:3::3 128 [*DeviceC-LoopBack1] commit [~DeviceC-LoopBack1] quit
# Configure DeviceD.
<DeviceD> system-view [~DeviceD] interface gigabitethernet 0/1/8 [~DeviceD-GigabitEthernet0/1/8] ipv6 enable [*DeviceD-GigabitEthernet0/1/8] ipv6 address 2001:db8:33::2 96 [*DeviceD-GigabitEthernet0/1/8] quit [*DeviceD] interface loopBack 1 [*DeviceD-LoopBack1] ipv6 enable [*DeviceD-LoopBack1] ipv6 address 2001:db8:4::4 128 [*DeviceD-LoopBack1] commit [~DeviceD-LoopBack1] quit
The interfaces that directly connect the devices can ping each other, but the devices cannot ping each other's loopback interface.
# Configure DeviceA.
[~DeviceA] isis 1 [*DeviceA-isis-1] is-level level-1 [*DeviceA-isis-1] cost-style wide [*DeviceA-isis-1] network-entity 50.0001.0010.0110.0011.00 [*DeviceA-isis-1] ipv6 enable topology ipv6 [*DeviceA-isis-1] ipv6 traffic-eng level-1-2 [*DeviceA-isis-1] quit [*DeviceA] commit
# Configure DeviceB.
[~DeviceB] isis 1 [*DeviceB-isis-1] is-level level-1 [*DeviceB-isis-1] cost-style wide [*DeviceB-isis-1] network-entity 10.0000.0000.0002.00 [*DeviceB-isis-1] ipv6 enable topology standard [*DeviceB-isis-1] quit [*DeviceB] interface gigabitethernet 0/1/0 [*DeviceB-GigabitEthernet0/1/0] isis ipv6 enable 1 [*DeviceB-GigabitEthernet0/1/0] quit [*DeviceB] interface loopBack 1 [*DeviceB-LoopBack1] isis ipv6 enable 1 [*DeviceB-LoopBack1] quit [*DeviceB] commit
# Configure DeviceC.
[~DeviceC] isis 1 [*DeviceC-isis-1] is-level level-1 [*DeviceC-isis-1] cost-style wide [*DeviceC-isis-1] network-entity 10.0000.0000.0003.00 [*DeviceC-isis-1] ipv6 enable topology standard [*DeviceC-isis-1] quit [*DeviceC] interface gigabitethernet 0/1/8 [*DeviceC-GigabitEthernet0/1/8] isis ipv6 enable 1 [*DeviceC-GigabitEthernet0/1/8] quit [*DeviceC] interface loopBack 1 [*DeviceC-LoopBack1] isis ipv6 enable 1 [*DeviceC-LoopBack1] quit [*DeviceC] commit
# Configure DeviceD.
[~DeviceD] isis 1 [*DeviceD-isis-1] is-level level-1 [*DeviceD-isis-1] cost-style wide [*DeviceD-isis-1] network-entity 50.0001.0010.0110.0010.00 [*DeviceD-isis-1] ipv6 enable topology ipv6 [*DeviceD-isis-1] ipv6 traffic-eng level-1-2 [*DeviceD-isis-1] quit [*DeviceD] commit
After the configuration is complete, perform the following operations to check whether IS-IS is successfully configured.
# Display IS-IS neighbor information. DeviceB is used as an example.
[~DeviceB] display isis peer Peer information for ISIS(1) System Id Interface Circuit Id State HoldTime Type PRI -------------------------------------------------------------------------------- 0000.0000.0003 GE0/1/0 0000.0000.0003.01 Up 8s L1 64 Total Peer(s): 1
# Display IS-IS routing table information. DeviceB is used as an example.
[~DeviceB] display isis route Route information for ISIS(1) ----------------------------- ISIS(1) Level-1 Forwarding Table -------------------------------- IPV6 Dest. ExitInterface NextHop Cost Flags -------------------------------------------------------------------------------- 2001:db8:2::2/128 Loop0 Direct 0 D/-/L/- 2001:db8:3::3/128 GE0/1/0 FE80::3A75:6AFF:FE31:307 10 A/-/-/- 2001:db8::/96 GE0/1/0 Direct 10 D/-/L/- Flags: D-Direct, A-Added to URT, L-Advertised in LSPs, S-IGP Shortcut, U-Up/Down Bit Set, LP-Local Prefix-Sid Protect Type: L-Link Protect, N-Node Protect
# Configure DeviceB.
[~DeviceB] ip vpn-instance vrftest [*DeviceB-vpn-instance-vrftest] ipv6-family [*DeviceB-vpn-instance-vrftest-af-ipv6] route-distinguisher 1:1 [*DeviceB-vpn-instance-vrftest-af-ipv6] vpn-target 100:1 export-extcommunity [*DeviceB-vpn-instance-vrftest-af-ipv6] vpn-target 100:1 import-extcommunity [*DeviceB-vpn-instance-vrftest-af-ipv6] quit [*DeviceB-vpn-instance-vrftest] quit [*DeviceB] interface gigabitethernet 0/1/8 [*DeviceB-GigabitEthernet0/1/8] ip binding vpn-instance vrftest [*DeviceB-GigabitEthernet0/1/8] quit [*DeviceB] commit
# Configure DeviceC.
[~DeviceC] ip vpn-instance vrftest [*DeviceC-vpn-instance-vrftest] ipv6-family [*DeviceC-vpn-instance-vrftest-af-ipv6] route-distinguisher 1:1 [*DeviceC-vpn-instance-vrftest-af-ipv6] vpn-target 100:1 export-extcommunity [*DeviceC-vpn-instance-vrftest-af-ipv6] vpn-target 100:1 import-extcommunity [*DeviceC-vpn-instance-vrftest-af-ipv6] quit [*DeviceC-vpn-instance-vrftest] quit [*DeviceC] interface gigabitethernet 0/1/0 [*DeviceC-GigabitEthernet0/1/0] ip binding vpn-instance vrftest [*DeviceC-GigabitEthernet0/1/0] quit [*DeviceC] commit
After the preceding configuration is complete, DeviceB and DeviceC can learn each other's Loopback 1 address and ping each other successfully.
# Configure DeviceA.
[~DeviceA] bgp 200 [*DeviceA-bgp] router-id 1.11.1.1 [*DeviceA-bgp] peer 2001:db8:11::2 as-number 100 [*DeviceA-bgp] ipv6-family unicast [*DeviceA-bgp-af-ipv6] peer 2001:db8:11::2 enable [*DeviceA-bgp-af-ipv6] quit [*DeviceA-bgp] quit [*DeviceA] commit
# Configure DeviceB.
[~DeviceB] bgp 100 [*DeviceB-bgp] router-id 2.22.2.2 [*DeviceB-bgp] ipv6-family vpn-instance vrftest [*DeviceB-bgp-6-vrftest] network 2001:db8:: 96 [*DeviceB-bgp-6-vrftest] peer 2001:db8:11::1 as-number 200 [*DeviceB-bgp-6-vrftest] quit [*DeviceB-bgp] quit [*DeviceB] commit
# Configure DeviceC.
[~DeviceC] bgp 100 [*DeviceC-bgp] router-id 3.33.3.3 [*DeviceC-bgp] ipv6-family vpn-instance vrftest [*DeviceC-bgp-6-vrftest] network 2001:db8:: 96 [*DeviceC-bgp-6-vrftest] peer 2001:db8:11::1 as-number 150 [*DeviceC-bgp-6-vrftest] quit [*DeviceC-bgp] quit [*DeviceC] commit
# Configure DeviceD.
[~DeviceD] bgp 150 [*DeviceD-bgp] router-id 4.44.4.4 [*DeviceD-bgp] peer 2001:db8:33::1 as-number 100 [*DeviceD-bgp] ipv6-family unicast [*DeviceD-bgp-af-ipv6] peer 2001:db8:33::1 enable [*DeviceD-bgp-af-ipv6] quit [*DeviceD-bgp] quit [*DeviceD] commit
After the configuration is complete, run the display bgp vpnv6 vpn-instance peer command to check whether a BGP peer relationship has been established between DeviceA and DeviceB, and between DeviceC and DeviceD. If the Established state is displayed in the command output, the BGP peer relationship has been established successfully.
DeviceA is used as an example.
[~DeviceA] display bgp vpnv6 vpn-instance vrftest peer
BGP local router ID : 1.11.1.1
Local AS number : 200
VPN-Instance vpna, Router ID 1.1.1.1:
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
2001:DB8:11::2 4 100 11 9 0 00:06:37 Established 1
# Configure DeviceB.
[~DeviceB] bgp 100 [*DeviceB-bgp] peer 2001:db8:3::3 as-number 100 [*DeviceB-bgp] peer 2001:db8:3::3 connect-interface LoopBack1 [*DeviceB-bgp] ipv6-family vpnv6 [*DeviceB-bgp-af-vpnv6] peer 2001:db8:3::3 enable [*DeviceB-bgp-af-vpnv6] quit [*DeviceB-bgp] quit [*DeviceB] commit
# Configure DeviceC.
[~DeviceC] bgp 100 [*DeviceC-bgp] peer 2001:db8:2::2 as-number 100 [*DeviceC-bgp] peer 2001:db8:2::2 connect-interface LoopBack1 [*DeviceC-bgp] ipv6-family vpnv6 [*DeviceC-bgp-af-vpnv6] peer 2001:db8:2::2 enable [*DeviceC-bgp-af-vpnv6] quit [*DeviceC-bgp] quit [*DeviceC] commit
After the configuration is complete, run the display bgp vpnv6 all peer command on DeviceB. The command output shows that the IBGP peer relationship between DeviceB and DeviceC is in Established state.
[~DeviceB] display bgp vpnv6 all peer BGP local router ID : 2.22.2.2 Local AS number : 100 Total number of peers : 2 Peers in established state : 2 Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv 2001:db8:3::3 4 100 37 40 0 00:29:43 Established 0 Peer of IPv6-family for vpn instance : VPN-Instance vrftest, Router ID 2.22.2.2: Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv 2001:db8:11::1 4 200 35 35 0 00:27:34 Established 1
# Configure DeviceB.
[~DeviceB] segment-routing ipv6 [*DeviceB-segment-routing-ipv6] encapsulation source-address 2001:DB8:2::2 [*DeviceB-segment-routing-ipv6] locator locator1 ipv6-prefix 2001:DB8:100:: 64 static 32 [*DeviceB-segment-routing-ipv6-locator] opcode ::111 end psp [*DeviceB-segment-routing-ipv6-locator] quit [*DeviceB-segment-routing-ipv6] quit [*DeviceB] bgp 100 [*DeviceB-bgp] ipv6-family vpnv6 [*DeviceB-bgp-af-vpnv6] peer 2001:DB8:3::3 prefix-sid [*DeviceB-bgp-af-vpnv6] quit [*DeviceB-bgp] ipv6-family vpn-instance vrftest [*DeviceB-bgp-6-vrftest] segment-routing ipv6 traffic-engineer best-effort [*DeviceB-bgp-6-vrftest] segment-routing ipv6 locator locator1 [*DeviceB-bgp-6-vrftest] quit [*DeviceB-bgp] quit [*DeviceB] isis 1 [*DeviceB-isis-1] segment-routing ipv6 locator locator1 [*DeviceB-isis-1] quit [*DeviceB] commit
# Configure DeviceC.
[~DeviceC] segment-routing ipv6 [*DeviceC-segment-routing-ipv6] encapsulation source-address 2001:DB8:3::3 [*DeviceC-segment-routing-ipv6] locator locator1 ipv6-prefix 2001:DB8:300:: 64 static 32 [*DeviceC-segment-routing-ipv6-locator] opcode ::333 end psp [*DeviceC-segment-routing-ipv6-locator] quit [*DeviceC-segment-routing-ipv6] quit [*DeviceC] bgp 100 [*DeviceC-bgp] ipv6-family vpnv6 [*DeviceC-bgp-af-vpnv6] peer 2001:DB8:2::2 prefix-sid [*DeviceC-bgp-af-vpnv6] quit [*DeviceC-bgp] ipv6-family vpn-instance vrftest [*DeviceC-bgp-6-vrftest] segment-routing ipv6 traffic-engineer best-effort [*DeviceC-bgp-6-vrftest] segment-routing ipv6 locator locator1 [*DeviceC-bgp-6-vrftest] quit [*DeviceC-bgp] quit [*DeviceC] isis 1 [*DeviceC-isis-1] segment-routing ipv6 locator locator1 [*DeviceC-isis-1] quit [*DeviceC] commit
Run the display segment-routing ipv6 local-sid end forwarding command to check information about the SRv6 local SID table.
[~DeviceB] display segment-routing ipv6 local-sid end forwarding My Local-SID End Forwarding Table --------------------------------- SID : 2001:DB8:100::111/128 FuncType : End Flavor : PSP LocatorName : locator1 LocatorID : 1 ProtocolType: STATIC ProcessID : -- UpdateTime : 2021-08-18 09:16:39.288 Total SID(s): 1 [~DeviceC] display segment-routing ipv6 local-sid end forwarding My Local-SID End Forwarding Table --------------------------------- SID : 2001:DB8:300::333/128 FuncType : End Flavor : PSP LocatorName : locator1 LocatorID : 1 ProtocolType: STATIC ProcessID : -- UpdateTime : 2021-08-18 09:16:39.288 Total SID(s): 1
# Configure DeviceB.
[~DeviceB] segment-routing ipv6 [*DeviceB-segment-routing-ipv6] segment-list s1 [*DeviceB-segment-routing-ipv6-segment-list-s1] index 5 sid ipv6 2001:DB8:300::333 [*DeviceB-segment-routing-ipv6-segment-list-s1] quit [*DeviceB-segment-routing-ipv6] srv6-te policy policy1 endpoint 2001:DB8:3::3 color 100 [*DeviceB-segment-routing-ipv6-policy-policy1] candidate-path preference 100 [*DeviceB-segment-routing-ipv6-policy-policy1-path] segment-list s1 [*DeviceB-segment-routing-ipv6-policy-policy1-path] quit [*DeviceB-segment-routing-ipv6-policy-policy1] quit [*DeviceB-segment-routing-ipv6] quit [*DeviceB] commit
# Configure DeviceC.
[~DeviceC] segment-routing ipv6 [*DeviceC-segment-routing-ipv6] segment-list s1 [*DeviceC-segment-routing-ipv6-segment-list-s1] index 10 sid ipv6 2001:DB8:100::111 [*DeviceC-segment-routing-ipv6-segment-list-s1] quit [*DeviceC-segment-routing-ipv6] srv6-te policy policy1 endpoint 2001:DB8:2::2 color 100 [*DeviceC-segment-routing-ipv6-policy-policy1] candidate-path preference 100 [*DeviceC-segment-routing-ipv6-policy-policy1-path] segment-list s1 [*DeviceC-segment-routing-ipv6-policy-policy1-path] quit [*DeviceC-segment-routing-ipv6-policy-policy1] quit [*DeviceC-segment-routing-ipv6] quit [*DeviceC] commit
After the configuration is complete, run the display srv6-te policy command to check SRv6 TE Policy information.
DeviceB is used as an example.
[~DeviceB] display srv6-te policy PolicyName : policy1 Color : 100 Endpoint : 2001:db8:3::3 TunnelId : 1 Binding SID : - TunnelType : SRv6-TE Policy DelayTimerRemain : - Policy State : Up State Change Time : 2021-08-18 09:16:45 Admin State : Up Traffic Statistics : Disable Backup Hot-Standby : Disable BFD : Disable Interface Index : - Interface Name : - Interface State : - Encapsulation Mode : Insert&Encaps Candidate-path Count : 1 Candidate-path Preference : 100 Path State : Active Path Type : Primary Protocol-Origin : Configuration(30) Originator : 0, 0.0.0.0 Discriminator : 100 Binding SID : - GroupId : 1 Policy Name : policy1 Template ID : 0 Path Verification : Disable DelayTimerRemain : - Network Slice ID : - Segment-List Count : 1 Segment-List : s1 Segment-List ID : 1 XcIndex : 1 List State : Up DelayTimerRemain : - Verification State : - SuppressTimeRemain : - PMTU : 9600 Active PMTU : 9600 Weight : 1 BFD State : - Network Slice ID : - SID : 2001:DB8:300::333
# Configure DeviceB.
[~DeviceB] route-policy RP1 permit node 1 [*DeviceB-route-policy] apply extcommunity color 0:100 [*DeviceB-route-policy] quit [*DeviceB] bgp 100 [*DeviceB-bgp] ipv6-family vpnv6 [*DeviceB-bgp-af-vpnv6] peer 2001:DB8:3::3 route-policy RP1 import [*DeviceB-bgp-af-vpnv6] quit [*DeviceB-bgp] quit [*DeviceB] tunnel-policy tnl_policy [*DeviceB-tunnel-policy-tnl_policy] tunnel select-seq ipv6 srv6-te-policy load-balance-number 1 [*DeviceB-tunnel-policy-tnl_policy] quit [*DeviceB] ip vpn-instance vrftest [*DeviceB-vpn-instance-vrftest] ipv6-family [*DeviceB-vpn-instance-vrftest-af-ipv6] tnl-policy tnl_policy [*DeviceB-vpn-instance-vrftest-af-ipv6] commit [~DeviceB-vpn-instance-vrftest-af-ipv6] quit [~DeviceB-vpn-instance-vrftest] quit
# Configure DeviceC.
[~DeviceC] route-policy RP1 permit node 1 [*DeviceC-route-policy] apply extcommunity color 0:100 [*DeviceC-route-policy] quit [*DeviceC] bgp 100 [*DeviceC-bgp] ipv6-family vpnv6 [*DeviceC-bgp-af-vpnv6] peer 2001:DB8:2::2 route-policy RP1 import [*DeviceC-bgp-af-vpnv6] quit [*DeviceC-bgp] quit [*DeviceC] tunnel-policy tnl_policy [*DeviceC-tunnel-policy-tnl_policy] tunnel select-seq ipv6 srv6-te-policy load-balance-number 1 [*DeviceC-tunnel-policy-tnl_policy] quit [*DeviceC] ip vpn-instance vrftest [*DeviceC-vpn-instance-vrftest] ipv6-family [*DeviceC-vpn-instance-vrftest-af-ipv6] tnl-policy tnl_policy [*DeviceC-vpn-instance-vrftest-af-ipv6] commit [~DeviceC-vpn-instance-vrftest-af-ipv6] quit [~DeviceC-vpn-instance-vrftest] quit
After the configuration is complete, run the display ipv6 routing-table vpn-instance vrftest command to check the routing table of the VPN instance. The command output shows that VPN routes have successfully recursed to the SRv6 TE Policy.
DeviceB is used as an example.
[~DeviceB] display ipv6 routing-table vpn-instance vrftest Routing Table : vrftest Destinations : 5 Routes : 5 Destination : 2001:db8:33::2 PrefixLength : 96 NextHop : 2001:db8:3::3 Preference : 255 Cost : 0 Protocol : IBGP RelayNextHop : :: TunnelID : 0x000000003400000001 Interface : policy1 Flags : RD Destination : 2001:db8:: PrefixLength : 96 NextHop : 2001:db8:11::2 Preference : 0 Cost : 0 Protocol : Direct RelayNextHop : :: TunnelID : 0x0 Interface : GigabitEthernet0/1/8 Flags : D Destination : 2001:db8:11::2 PrefixLength : 128 NextHop : ::1 Preference : 0 Cost : 0 Protocol : Direct RelayNextHop : :: TunnelID : 0x0 Interface : GigabitEthernet0/1/8 Flags : D Destination : 2001:db8:1::1 PrefixLength : 128 NextHop : 2001:db8:11::1 Preference : 255 Cost : 0 Protocol : EBGP RelayNextHop : 2001:db8:11::1 TunnelID : 0x0 Interface : GigabitEthernet0/1/8 Flags : RD Destination : FE80:: PrefixLength : 10 NextHop : :: Preference : 0 Cost : 0 Protocol : Direct RelayNextHop : :: TunnelID : 0x0 Interface : NULL0 Flags : DB [~DeviceB] display ipv6 routing-table vpn-instance vrftest 2001:DB8:33::2 verbose Route Flags: R - relay, D - download to fib, T - to vpn-instance, B - black hole route ------------------------------------------------------------------------------ Routing Table : vrftest Summary Count : 1 Destination : 2001:DB8:33::2 PrefixLength : 96 NextHop : 2001:DB8:3::3 Preference : 255 Neighbour : 2001:DB8:3::3 ProcessID : 0 Label : 3 Protocol : IBGP State : Active Adv Relied Cost : 0 Entry ID : 0 EntryFlags : 0x00000000 Reference Cnt: 0 Tag : 0 Priority : low Age : 36660sec IndirectID : 0x10001A4 Instance : RelayNextHop : :: TunnelID : 0x000000003400000001 Interface : policy1 Flags : RD RouteColor : 0 QoSInfo : 0x0
# Configure DeviceA.
[~DeviceA] ip vpn-instance vrf [*DeviceA-vpn-instance-vrf] ipv6-family [*DeviceA-vpn-instance-vrf-af-ipv6] route-distinguisher 1:100 [*DeviceA-vpn-instance-vrf-af-ipv6] vpn-target 100:100 export-extcommunity [*DeviceA-vpn-instance-vrf-af-ipv6] vpn-target 100:100 import-extcommunity [*DeviceA-vpn-instance-vrf-af-ipv6] quit [*DeviceA-vpn-instance-vrf] quit [*DeviceA] interface loopBack 1 [*DeviceA-LoopBack1] ip binding vpn-instance vrf [*DeviceA-LoopBack1] quit [*DeviceA] commit
# Configure DeviceD.
[~DeviceD] ip vpn-instance vrf [*DeviceD-vpn-instance-vrf] ipv6-family [*DeviceD-vpn-instance-vrf-af-ipv6] route-distinguisher 1:100 [*DeviceD-vpn-instance-vrf-af-ipv6] vpn-target 100:100 export-extcommunity [*DeviceD-vpn-instance-vrf-af-ipv6] vpn-target 100:100 import-extcommunity [*DeviceD-vpn-instance-vrf-af-ipv6] quit [*DeviceD-vpn-instance-vrf] quit [*DeviceD] interface loopBack 1 [*DeviceD-LoopBack1] ip binding vpn-instance vrf [*DeviceD-LoopBack1] quit [*DeviceD] commit
After the preceding configuration is complete, DeviceB and DeviceC can learn each other's Loopback 1 address and ping each other successfully.
# Configure DeviceA.
[~DeviceA] bgp 200 [*DeviceA-bgp] peer 2001:db8:33::2 as-number 150 [*DeviceA-bgp] peer 2001:db8:33::2 ebgp-max-hop 255 [*DeviceA-bgp] ipv6-family vpnv6 [*DeviceA-bgp-af-vpnv6] peer 2001:db8:33::2 enable [*DeviceA-bgp-af-vpnv6] quit [*DeviceA-bgp] quit [*DeviceA] commit
# Configure DeviceD.
[~DeviceD] bgp 150 [*DeviceD-bgp] peer 2001:db8:11::1 as-number 100 [*DeviceD-bgp] peer 2001:db8:11::1 ebgp-max-hop 255 [*DeviceD-bgp] ipv6-family vpnv6 [*DeviceD-bgp-af-vpnv6] peer 2001:db8:11::1 enable [*DeviceD-bgp-af-vpnv6] quit [*DeviceD-bgp] quit [*DeviceD] commit
After the configuration is complete, run the display bgp ipv6 peer command on DeviceA to check whether the EBGP peer relationship between DeviceA and DeviceD has been established. If the Established state is displayed in the command output, the EBGP peer relationship has been established successfully.
DeviceA is used as an example.
[~DeviceA] display bgp vpnv6 all peer BGP local router ID : 1.11.1.1 Local AS number : 200 Total number of peers : 1 Peers in established state : 1 Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv 2001:db8:33::2 4 150 37 40 0 00:29:43 Established 0
# Configure DeviceA.
[~DeviceA] segment-routing ipv6 [*DeviceA-segment-routing-ipv6] encapsulation source-address 2001:DB8:11::1 [*DeviceA-segment-routing-ipv6] locator locator1 ipv6-prefix 2001:DB8:111:: 64 static 32 [*DeviceA-segment-routing-ipv6-locator] opcode ::500 end-op [*DeviceA-segment-routing-ipv6-locator] quit [*DeviceA-segment-routing-ipv6] quit [*DeviceA] bgp 200 [*DeviceA-bgp] ipv6-family vpnv6 [*DeviceA-bgp-af-vpnv6] peer 2001:DB8:33::2 prefix-sid [*DeviceA-bgp-af-vpnv6] quit [*DeviceA-bgp] ipv6-family vpn-instance vrf [*DeviceA-bgp-6-vrf] segment-routing ipv6 traffic-engineer best-effort [*DeviceA-bgp-6-vrf] segment-routing ipv6 locator locator1 [*DeviceA-bgp-6-vrf] quit [*DeviceA-bgp] quit [*DeviceA] isis 1 [*DeviceA-isis-1] ipv6 enable topology ipv6 [*DeviceA-isis-1] segment-routing ipv6 locator locator1 [*DeviceA-isis-1] quit [*DeviceA] commit
# Configure DeviceD.
[~DeviceD] segment-routing ipv6 [*DeviceD-segment-routing-ipv6] encapsulation source-address 2001:DB8:33::2 [*DeviceD-segment-routing-ipv6] locator locator1 ipv6-prefix 2001:DB8:333:: 64 static 32 [*DeviceD-segment-routing-ipv6-locator] opcode ::500 end-op [*DeviceD-segment-routing-ipv6-locator] quit [*DeviceD-segment-routing-ipv6] quit [*DeviceD] bgp 150 [*DeviceD-bgp] ipv6-family vpnv6 [*DeviceD-bgp-af-vpnv6] peer 2001:DB8:11::1 prefix-sid [*DeviceD-bgp-af-vpnv6] quit [*DeviceD-bgp] ipv6-family vpn-instance vrf [*DeviceD-bgp-6-vpna] segment-routing ipv6 traffic-engineer best-effort [*DeviceD-bgp-6-vpna] segment-routing ipv6 locator locator1 [*DeviceD-bgp-6-vpna] quit [*DeviceD-bgp] quit [*DeviceD] isis 1 [*DeviceD-isis-1] ipv6 enable topology ipv6 [*DeviceD-isis-1] segment-routing ipv6 locator locator1 [*DeviceD-isis-1] quit [*DeviceD] commit
Run the display segment-routing ipv6 local-sid end-op forwarding command to check information about the SRv6 local SID table.
[~DeviceA] display segment-routing ipv6 local-sid end-op forwarding My Local-SID End.OP Forwarding Table ------------------------------------- SID : 2001:DB8:111::500/128 FuncType : End.OP LocatorName: locator1 LocatorID: 1 Total SID(s): 1
When configuring BGP EPE, you need to enable the BGP-LS address family. Otherwise, BGP EPE cannot take effect.
# Configure DeviceA.
[~DeviceA] ip ipv6-prefix deny index 10 permit 2001:db8:1:145 128 [*DeviceA] commit [~DeviceA] route-policy deny permit node 10 [*DeviceA-route-policy] if-match ipv6 next-hop prefix-list deny [*DeviceA-route-policy] quit [*DeviceA] commit [~DeviceA] nqa twamp-light [*DeviceA-twamp-light] client [*DeviceA-twamp-light-client] test-session 2 sender-ipv6 2001:db8:11::1 reflector-ipv6 2001:db8:33::2 sender-port 1026 reflector-port 1026 [*DeviceA-twamp-light-client] sender [*DeviceA-twamp-light-sender] test start-continual test-session 1 period 1000 [*DeviceA-twamp-light-sender] responder [*DeviceA-twamp-light-responder] test-session 1 local-ipv6 2001:db8:11::1 remote-ipv6 2001:db8:33::2 local-port 2015 remote-port 2015 [*DeviceA-twamp-light-responder] quit [*DeviceA-twamp-light] quit [*DeviceA] commit [~DeviceA] bgp 200 [*DeviceA-bgp] peer 2001:db8:33::2 egress-engineering srv6 locator locator1 [*DeviceA-bgp] peer 2001:db8:33::2 virtual-link [*DeviceA-bgp] peer 2001:db8:33::2 virtual-link twamp-light test-session 2 [*DeviceA-bgp] peer 2001:db8:33::2 virtual-link te metric 16777215 [*DeviceA-bgp] peer 2001:db8:33::2 virtual-link te link administrative group 1 [*DeviceA-bgp] peer 2001:db8:33::2 virtual-link te srlg 4294967295 [*DeviceA-bgp] link-state-family unicast [*DeviceA-bgp] ipv6-family unicast [*DeviceA-bgp-af-ipv6] import-route isis 1 [*DeviceA-bgp-af-ipv6] peer 2001:db8:33::2 enable [*DeviceA-bgp-af-ipv6] peer 2001:db8:33::2 route-policy RP1 import [*DeviceA-bgp-af-ipv6] quit [*DeviceA-bgp] quit [*DeviceA] commit
# Configure DeviceD.
[~DeviceD] ip ipv6-prefix deny index 10 permit 2001:db8:1:145 128 [*DeviceD] commit [~DeviceD] route-policy deny permit node 10 [*DeviceD-route-policy] if-match ipv6 next-hop prefix-list deny [*DeviceD-route-policy] quit [*DeviceD] commit [~DeviceD] nqa twamp-light [*DeviceD-twamp-light] client [*DeviceD-twamp-light-client] test-session 1 sender-ipv6 2001:db8:33::2 reflector-ipv6 2001:db8:11::1 sender-port 1026 reflector-port 1026 [*DeviceD-twamp-light-client] sender [*DeviceD-twamp-light-sender] test start-continual test-session 1 period 1000 [*DeviceD-twamp-light-sender] responder [*DeviceD-twamp-light-responder] test-session 2 local-ipv6 2001:db8:33::2 remote-ipv6 2001:db8:11::1 local-port 2015 remote-port 2015 [*DeviceD-twamp-light-responder] quit [*DeviceD-twamp-light] quit [*DeviceD] commit [~DeviceD] bgp 200 [*DeviceD-bgp] peer 2001:db8:11::1 egress-engineering srv6 locator locator1 [*DeviceD-bgp] peer 2001:db8:11::1 virtual-link [*DeviceD-bgp] peer 2001:db8:11::1 virtual-link twamp-light test-session 1 [*DeviceD-bgp] peer 2001:db8:11::1 virtual-link te metric 16777215 [*DeviceD-bgp] peer 2001:db8:11::1 virtual-link te link administrative group 1 [*DeviceD-bgp] peer 2001:db8:11::1 virtual-link te srlg 4294967295 [*DeviceD-bgp] link-state-family unicast [*DeviceD-bgp] ipv6-family unicast [*DeviceD-bgp-af-ipv6] import-route isis 1 [*DeviceD-bgp-af-ipv6] peer 2001:db8:11::1 enable [*DeviceD-bgp-af-ipv6] peer 2001:db8:11::1 route-policy RP1 import [*DeviceD-bgp-af-ipv6] quit [*DeviceD-bgp] quit [*DeviceD] commit
After the configuration is complete, run the display bgp egress-engineering command to check BGP EPE information. The command output shows SRv6 SID information. DeviceA is used as an example.
[~DeviceA] display bgp egress-engineering Peer Node : 2001:db8::33:2 Peer Adj Num : 1 Local ASN : 200 Remote ASN : 150 Local Router Id : 1.11.1.1 Remote Router Id : 4.44.4.4 Local Interface Address : 2001:db8::11:1 Remote Interface Address : 2001:db8::33:2 SRv6 SID : 2001:DB8:111::500 SRv6 SID (PSP) : 20::1:0:5F SRv6 SID (PSP,USP,USD) : 20::1:0:60 SRv6 SID (PSP,USP,USD,COC) : -(ONLY SUPPORT COMPRESS TYPE) Nexthop : 2001:db8::11:2 Out Interface : GigabitEthernet0/1/0 Peer Adj : 2001:db8::11:2 Local ASN : 200 Remote ASN : 150 Local Router Id : 1.11.1.1 Remote Router Id : 4.44.4.4 Interface Identifier : 23 Local Interface Address : 2001:db8::11:1 Remote Interface Address : 2001:db8::11:2 SRv6 SID : 20::1:0:5B SRv6 SID (PSP) : 20::1:0:5C SRv6 SID (PSP,USP,USD) : 20::1:0:5D SRv6 SID (PSP,USP,USD,COC) : -(ONLY SUPPORT COMPRESS TYPE) Nexthop : 2001:db8:11::2 Out Interface : GigabitEthernet0/1/0 Virtual link info: TE Admin group : 0xFF TE Metric : 20 TE SRLG : 0 1 Min/Max Delay : 13349/28678
# Configure DeviceA.
[~DeviceA] segment-routing ipv6 [*DeviceA-segment-routing-ipv6] segment-list list1 [*DeviceA-segment-routing-ipv6-segment-list-list1] index 5 sid ipv6 2001:DB8:111::500 [*DeviceA-segment-routing-ipv6-segment-list-list1] quit [*DeviceA-segment-routing-ipv6] srv6-te-policy locator locator1 [*DeviceA-segment-routing-ipv6] srv6-te policy policy1 endpoint 2001:DB8:33::2 color 100 [*DeviceA-segment-routing-ipv6-policy-policy1] candidate-path preference 100 [*DeviceA-segment-routing-ipv6-policy-policy1-path] segment-list list1 [*DeviceA-segment-routing-ipv6-policy-policy1-path] quit [*DeviceA-segment-routing-ipv6-policy-policy1] quit [*DeviceA-segment-routing-ipv6] quit [*DeviceA] commit
# Configure DeviceD.
[~DeviceD] segment-routing ipv6 [*DeviceD-segment-routing-ipv6] segment-list list1 [*DeviceD-segment-routing-ipv6-segment-list-list1] index 10 sid ipv6 2001:DB8:333::500 [*DeviceD-segment-routing-ipv6-segment-list-list1] quit [*DeviceD-segment-routing-ipv6] srv6-te-policy locator locator1 [*DeviceD-segment-routing-ipv6] srv6-te policy policy1 endpoint 2001:DB8:11::1 color 100 [*DeviceD-segment-routing-ipv6-policy-policy1] candidate-path preference 100 [*DeviceD-segment-routing-ipv6-policy-policy1-path] segment-list list1 [*DeviceD-segment-routing-ipv6-policy-policy1-path] quit [*DeviceD-segment-routing-ipv6-policy-policy1] quit [*DeviceD-segment-routing-ipv6] quit [*DeviceD] commit
After the configuration is complete, run the display srv6-te policy command to check SRv6 TE Policy information.
DeviceA is used as an example.
[~DeviceA] display srv6-te policy PolicyName : policy1 Color : 100 Endpoint : 2001:db8:33::2 TunnelId : 1 Binding SID : - TunnelType : SRv6-TE Policy DelayTimerRemain : - Policy State : Up State Change Time : 2021-08-18 09:16:45 Admin State : Up Traffic Statistics : Disable Backup Hot-Standby : Disable BFD : Disable Interface Index : - Interface Name : - Interface State : - Encapsulation Mode : Insert&Encaps Candidate-path Count : 1 Candidate-path Preference : 100 Path State : Active Path Type : Primary Protocol-Origin : Configuration(30) Originator : 0, 0.0.0.0 Discriminator : 100 Binding SID : - GroupId : 1 Policy Name : policy1 Template ID : 0 Path Verification : Disable DelayTimerRemain : - Network Slice ID : - Segment-List Count : 1 Segment-List : s1 Segment-List ID : 1 XcIndex : 1 List State : Up DelayTimerRemain : - Verification State : - SuppressTimeRemain : - PMTU : 9600 Active PMTU : 9600 Weight : 1 BFD State : - Network Slice ID : - SID : 2001:DB8:300::333
# Configure DeviceA.
[~DeviceA] route-policy RP1 permit node 1 [*DeviceA-route-policy] apply extcommunity color 0:100 [*DeviceA-route-policy] quit [*DeviceA] bgp 100 [*DeviceA-bgp] ipv6-family vpnv6 [*DeviceA-bgp-af-vpnv6] peer 2001:DB8:33::2 route-policy RP1 import [*DeviceA-bgp-af-vpnv6] quit [*DeviceA-bgp] quit [*DeviceA] tunnel-policy tnl_policy [*DeviceA-tunnel-policy-tnl_policy] tunnel select-seq ipv6 srv6-te-policy load-balance-number 1 [*DeviceA-tunnel-policy-tnl_policy] quit [*DeviceA] ip vpn-instance vrf [*DeviceA-vpn-instance-vrf] ipv6-family [*DeviceA-vpn-instance-vrf-af-ipv6] tnl-policy tnl_policy [*DeviceA-vpn-instance-vrf-af-ipv6] commit [~DeviceA-vpn-instance-vrf-af-ipv6] quit [~DeviceA-vpn-instance-vrf] quit
# Configure DeviceD.
[~DeviceD] route-policy RP1 permit node 1 [*DeviceD-route-policy] apply extcommunity color 0:100 [*DeviceD-route-policy] quit [*DeviceD] bgp 100 [*DeviceD-bgp] ipv6-family vpnv6 [*DeviceD-bgp-af-vpnv6] peer 2001:DB8:11::1 route-policy RP1 import [*DeviceD-bgp-af-vpnv6] quit [*DeviceD-bgp] quit [*DeviceD] tunnel-policy tnl_policy [*DeviceD-tunnel-policy-tnl_policy] tunnel select-seq ipv6 srv6-te-policy load-balance-number 1 [*DeviceD-tunnel-policy-tnl_policy] quit [*DeviceD] ip vpn-instance vrf [*DeviceD-vpn-instance-vrf] ipv6-family [*DeviceD-vpn-instance-vrf-af-ipv6] tnl-policy tnl_policy [*DeviceD-vpn-instance-vrf-af-ipv6] commit [~DeviceD-vpn-instance-vrf-af-ipv6] quit [~DeviceD-vpn-instance-vrf] quit
After the configuration is complete, run the display ipv6 routing-table vpn-instance vrf command to check the routing table of the VPN instance. The command output shows that VPN routes have successfully recursed to the SRv6 TE Policy.
DeviceA is used as an example.
[~DeviceA] display ipv6 routing-table vpn-instance vrf Routing Table : vrf Destinations : 1 Routes : 1 Destination : 2001:db8:4::4 PrefixLength : 128 NextHop : 2001:db8:33::2 Preference : 255 Cost : 0 Protocol : EBGP RelayNextHop : :: TunnelID : 0x000000003400000001 Interface : policy1 Flags : RD [~DeviceA] display ipv6 routing-table vpn-instance vrf 2001:db8:4::4 verbose Route Flags: R - relay, D - download to fib, T - to vpn-instance, B - black hole route ------------------------------------------------------------------------------ Routing Table : vrf Summary Count : 1 Destination : 2001:db8:4::4 PrefixLength : 128 NextHop : 2001:db8:33::2 Preference : 255 Neighbour : 2001:db8:33::2 ProcessID : 0 Label : 3 Protocol : EBGP State : Active Adv Relied Cost : 0 Entry ID : 0 EntryFlags : 0x00000000 Reference Cnt: 0 Tag : 0 Priority : low Age : 8710sec IndirectID : 0x1000177 Instance : RelayNextHop : :: TunnelID : 0x000000003400000001 Interface : policy1 Flags : RD RouteColor : 0 QoSInfo : 0x0
After the configuration is complete, DeviceA and DeviceE can ping each other.
DeviceA is used as an example.
<DeviceA> ping -a 2001:db8:11::1 2001:db8:33::2 PING 2001:db8:33::2 : 56 data bytes, press CTRL_C to break Reply from 2001:db8:33::2 bytes=56 Sequence=1 hop limit=62 time=59 ms Reply from 2001:db8:33::2 bytes=56 Sequence=2 hop limit=62 time=27 ms Reply from 2001:db8:33::2 bytes=56 Sequence=3 hop limit=62 time=14 ms Reply from 2001:db8:33::2 bytes=56 Sequence=4 hop limit=62 time=17 ms Reply from 2001:db8:33::2 bytes=56 Sequence=5 hop limit=62 time=20 ms --- 2001:db8:33::2 ping statistics--- 5 packet(s) transmitted 5 packet(s) received 0.00% packet loss round-trip min/avg/max=14/27/59 ms
# sysname DeviceA # ip vpn-instance vrf ipv6-family route-distinguisher 1:100 tnl-policy tnl_policy apply-label per-instance vpn-target 100:100 export-extcommunity vpn-target 100:100 import-extcommunity # segment-routing ipv6 encapsulation source-address 2001:db8:11::1 locator locator1 ipv6-prefix 2001:DB8:111:: 64 static 32 opcode ::500 end-op srv6-te-policy locator locator1 segment-list list1 index 5 sid ipv6 2001:DB8:111::500 srv6-te policy policy1 endpoint 2001:db8:33::2 color 100 candidate-path preference 100 segment-list list1 # isis 1 is-level level-1 cost-style wide network-entity 50.0001.0010.0110.0011.00 # ipv6 enable topology ipv6 ipv6 traffic-eng level-1-2 segment-routing ipv6 locator locator1 # # interface GigabitEthernet0/1/0 undo shutdown ipv6 enable ipv6 address 2001:db8:11::1/96 # interface LoopBack1 ip binding vpn-instance vrf ipv6 enable ipv6 address 2001:db8:1::1/128 # bgp 200 router-id 1.11.1.1 peer 2001:db8:33::2 as-number 150 peer 2001:db8:33::2 ebgp-max-hop 255 peer 2001:db8:33::2 egress-engineering srv6 locator locator1 peer 2001:db8:33::2 virtual-link peer 2001:db8:33::2 virtual-link twamp-light test-session 2 peer 2001:db8:33::2 virtual-link te metric 20 peer 2001:db8:33::2 virtual-link te link administrative group ff peer 2001:db8:33::2 virtual-link te srlg 0 1 peer 2001:db8:11::2 as-number 100 # ipv4-family unicast undo synchronization # link-state-family unicast # ipv6-family unicast undo synchronization import-route direct import-route isis 1 peer 2001:db8:33::2 enable peer 2001:db8:33::2 route-policy deny export peer 2001:db8:11::2 enable # ipv6-family vpnv6 policy vpn-target peer 2001:db8:33::2 enable peer 2001:db8:33::2 route-policy RP1 import peer 2001:db8:33::2 prefix-sid # ipv6-family vpn-instance vrf import-route direct segment-routing ipv6 locator locator1 segment-routing ipv6 traffic-engineer best-effort # route-policy RP1 permit node 1 apply extcommunity color 0:100 # route-policy deny permit node 10 if-match ipv6 next-hop prefix-list deny # nqa twamp-light client test-session 2 sender-ipv6 2001:db8:11::1 reflector-ipv6 2001:db8:33::2 sender-port 1026 reflector-port 1026 sender test start-continual test-session 2 period 1000 responder test-session 1 local-ipv6 2001:db8:11::1 remote-ipv6 2001:db8:33::2 local-port 2015 remote-port 2015 # ip ipv6-prefix deny index 10 permit 2001:db8:1:145 128 # tunnel-policy tnl_policy tunnel select-seq ipv6 srv6-te-policy load-balance-number 1 # return
# sysname DeviceB # ip vpn-instance vrftest ipv6-family route-distinguisher 1:1 tnl-policy tnl_policy apply-label per-instance vpn-target 100:1 export-extcommunity vpn-target 100:1 import-extcommunity # segment-routing ipv6 encapsulation source-address 2001:db8:2::2 locator locator1 ipv6-prefix 2001:DB8:100:: 64 static 32 opcode ::111 end psp srv6-te-policy locator locator1 segment-list s1 index 5 sid ipv6 2001:DB8:300::333 srv6-te policy policy1 endpoint 2001:db8:3::3 color 100 candidate-path preference 100 segment-list s1 # isis 1 is-level level-1 cost-style wide network-entity 10.0000.0000.0002.00 # ipv6 enable topology standard segment-routing ipv6 locator locator1 # # interface GigabitEthernet0/1/0 undo shutdown ipv6 enable ipv6 address 2001:db8:22::1/96 isis ipv6 enable 1 # interface GigabitEthernet0/1/8 undo shutdown ip binding vpn-instance vrftest ipv6 enable ipv6 address 2001:db8:11::2/96 # interface LoopBack1 ipv6 enable ipv6 address 2001:db8:2::2/128 isis ipv6 enable 1 # bgp 100 router-id 2.22.2.2 peer 2001:db8:3::3 as-number 100 peer 2001:db8:3::3 connect-interface LoopBack1 # ipv4-family unicast undo synchronization # ipv6-family vpnv6 policy vpn-target peer 2001:db8:3::3 enable peer 2001:db8:3::3 route-policy RP1 import peer 2001:db8:3::3 prefix-sid # ipv6-family vpn-instance vrftest network 2001:db8:: 96 segment-routing ipv6 locator locator1 segment-routing ipv6 traffic-engineer best-effort peer 2001:db8:11::1 as-number 200 # route-policy RP1 permit node 1 apply extcommunity color 0:100 # tunnel-policy tnl_policy tunnel select-seq ipv6 srv6-te-policy load-balance-number 1 # return
# sysname DeviceC # ip vpn-instance vrftest ipv6-family route-distinguisher 1:1 tnl-policy tnl_policy apply-label per-instance vpn-target 100:1 export-extcommunity vpn-target 100:1 import-extcommunity # segment-routing ipv6 encapsulation source-address 2001:db8:3::3 locator locator1 ipv6-prefix 2001:DB8:300:: 64 static 32 opcode ::333 end psp srv6-te-policy locator locator1 segment-list s1 index 10 sid ipv6 2001:DB8:100::111 srv6-te policy policy1 endpoint 2001:db8:2::2 color 100 candidate-path preference 100 segment-list s1 # isis 1 cost-style wide network-entity 10.0000.0000.0003.00 # ipv6 enable topology standard segment-routing ipv6 locator locator1 # # interface GigabitEthernet0/1/0 undo shutdown ip binding vpn-instance vrftest ipv6 enable ipv6 address 2001:db8:33::1/96 # interface GigabitEthernet0/1/8 undo shutdown ipv6 enable ipv6 address 2001:db8:22::2/96 isis ipv6 enable 1 # interface LoopBack1 ipv6 enable ipv6 address 2001:db8:3::3/128 isis ipv6 enable 1 # bgp 100 router-id 3.33.3.3 peer 2001:db8:2::2 as-number 100 peer 2001:db8:2::2 connect-interface LoopBack1 # ipv4-family unicast undo synchronization # ipv6-family vpnv6 policy vpn-target peer 2001:db8:2::2 enable peer 2001:db8:2::2 route-policy RP1 import peer 2001:db8:2::2 prefix-sid # ipv6-family vpn-instance vrftest network 2001:db8:: 96 segment-routing ipv6 locator locator1 segment-routing ipv6 traffic-engineer best-effort peer 2001:db8:33::2 as-number 150 # route-policy RP1 permit node 1 apply extcommunity color 0:100 # tunnel-policy tnl_policy tunnel select-seq ipv6 srv6-te-policy load-balance-number 1 # return
#
sysname DeviceD
#
ip vpn-instance vrf
ipv6-family
route-distinguisher 1:100
tnl-policy tnl_policy
apply-label per-instance
vpn-target 100:100 export-extcommunity
vpn-target 100:100 import-extcommunity
#
segment-routing ipv6
encapsulation source-address 2001:db8:33::2
locator locator1 ipv6-prefix 2001:db8:333:: 64 compress block 48 compress-static 8 static 32
opcode ::500 end-op
srv6-te-policy locator locator1
segment-list lis1
index 5 sid ipv6 2001:DB8:333::500
srv6-te policy policy1 endpoint 2001:db8:11::1 color 100
candidate-path preference 100
segment-list lis1
#
isis 1
is-level level-1
cost-style wide
network-entity 50.0001.0010.0110.0010.00
#
ipv6 enable topology ipv6
ipv6 traffic-eng level-1-2
segment-routing ipv6 locator locator1
#
#
interface GigabitEthernet0/1/8
undo shutdown
ipv6 enable
ipv6 address 2001:db8:33::2/96
#
interface LoopBack1
ip binding vpn-instance vrf
ipv6 enable
ipv6 address 2001:db8:4::4/128
#
bgp 150
router-id 4.44.4.4
segment-routing ipv6 egress-engineering locator locator1
peer 2001:db8:33::1 as-number 100
peer 2001:db8:11::1 as-number 200
peer 2001:db8:11::1 ebgp-max-hop 255
peer 2001:db8:11::1 egress-engineering srv6 locator locator1
peer 2001:db8:11::1 virtual-link
peer 2001:db8:11::1 virtual-link twamp-light test-session 1
peer 2001:db8:11::1 virtual-link te metric 20
peer 2001:db8:11::1 virtual-link te link administrative group ff
peer 2001:db8:11::1 virtual-link te srlg 0 1
#
ipv4-family unicast
undo synchronization
#
link-state-family unicast
#
ipv6-family unicast
undo synchronization
import-route isis 1
peer 2001:db8:33::1 enable
peer 2001:db8:11::1 enable
peer 2001:db8:11::1 route-policy deny export
#
ipv6-family vpnv6
policy vpn-target
peer 2001:db8:11::1 enable
peer 2001:db8:11::1 route-policy RP1 import
peer 2001:db8:11::1 prefix-sid
#
ipv6-family vpn-instance vrf
import-route direct
segment-routing ipv6 locator locator1
segment-routing ipv6 traffic-engineer best-effort
#
route-policy RP1 permit node 1
apply extcommunity color 0:100
#
route-policy deny permit node 10
if-match ipv6 next-hop prefix-list deny
#
nqa twamp-light
client
test-session 1 sender-ipv6 2001:db8:33::2 reflector-ipv6 2001:db8:11::1 sender-port 2015 reflector-port 2015
sender
test start-continual test-session 1 period 1000
responder
test-session 2 local-ipv6 2001:db8:33::2 remote-ipv6 2001:db8:11::1 local-port 1026 remote-port 1026
#
ip ipv6-prefix deny index 10 permit 2001:db8:1:145 128
#
tunnel-policy tnl_policy
tunnel select-seq ipv6 srv6-te-policy load-balance-number 1
#
return