Example for Configuring a BGP Virtual Link

An SRv6 EPE virtual link can be created for a BGP multi-hop peer relationship to implement communication across a third-party network.

Networking Requirements

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.

Figure 1 Configuring a BGP virtual link

Configuration Roadmap

The configuration roadmap is as follows:

  1. Enable IPv6 forwarding on interfaces of DeviceB and DeviceC, and configure IPv6 addresses for interfaces on devices A through D.

  2. Enable IS-IS, configure an IS-IS level, and specify a network entity title (NET) for DeviceB and DeviceC.

  3. Configure a VPN instance on DeviceB and DeviceC.

  4. Establish an IBGP peer relationship between DeviceB and DeviceC.
  5. Establish an EBGP peer relationship between DeviceA and DeviceB and another one between DeviceC and DeviceD.
  6. Configure SRv6 SIDs and enable IS-IS SRv6 on DeviceB and DeviceC. In addition, configure DeviceB and DeviceC to advertise VPN routes carrying SIDs.
  7. Configure an SRv6 TE Policy on DeviceB and DeviceC.
  8. Configure a tunnel policy on DeviceB and DeviceC to import VPN traffic.
  9. Configure BGP EPE on DeviceA and DeviceD.
  10. Establish a multi-hop EBGP peer relationship between DeviceA and DeviceD and enable the BGP virtual link function.
  11. Configure SRv6 SIDs and enable IS-IS SRv6 on DeviceA and DeviceD. In addition, configure DeviceA and DeviceD to advertise VPN routes carrying SIDs.
  12. Configure an SRv6 TE Policy on DeviceA and DeviceD.
  13. Configure a tunnel policy on DeviceA and DeviceD to import VPN traffic.

Data Preparation

To complete the configuration, you need the following data:

  • IPv6 addresses of interfaces on devices A through D
  • IS-IS process ID and level on DeviceB and DeviceC
  • Names, RDs, and RTs of the VPN instances on devices A through D

Procedure

  1. Configure IPv6 addresses and enable IPv6 forwarding for interfaces.

    # 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.

  2. Configure IS-IS.

    # 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

  3. Configure a VPN instance in the IPv6 address family on DeviceB and DeviceC, and implement access of DeviceA to DeviceB and access of DeviceD to DeviceC.

    # 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.

  4. Establish an EBGP peer relationship between DeviceA and DeviceB and another one between DeviceC and DeviceD.

    # 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

  5. Establish an IBGP peer relationship between DeviceB and DeviceC.

    # 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

  6. Configure SRv6 SIDs and configure DeviceB and DeviceC to advertise VPN routes carrying SIDs.

    # 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 

  7. Configure an SRv6 TE Policy.

    # 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

  8. Configure a tunnel policy to import VPN traffic.

    # 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

  9. Configure a VPN instance in the IPv6 address family on DeviceA and DeviceD.

    # 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.

  10. Establish an EBGP peer relationship between DeviceA and DeviceD.

    # 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

  11. Configure SRv6 SIDs and configure DeviceA and DeviceD to advertise VPN routes carrying SIDs.

    # 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

  12. Configure the BGP EPE and virtual link functions on DeviceA and DeviceD.

    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

  13. Configure an SRv6 TE Policy.

    # 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

  14. Configure a tunnel policy to import VPN traffic.

    # 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

  15. Verify the configuration.

    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

Configuration Files

  • DeviceA configuration file

    #
    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
  • DeviceB configuration file

    #
    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
  • DeviceC configuration file

    #
    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
  • DeviceD configuration file

    #
    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
Copyright © Huawei Technologies Co., Ltd.
Copyright © Huawei Technologies Co., Ltd.
< Previous topic