Configuring Public IPv6 over SRv6 Flex-Algo

This section describes how to configure public IPv6 over SRv6 Flex-Algo.

Context

When SRv6 uses an IGP to calculate paths, it can associate locators with Flex-Algos to ensure that calculated SRv6 BE paths meet specific requirements.

Public IPv6 over SRv6 Flex-Algo uses forwarding paths calculated based on Flex-Algos to carry public IPv6 services on the public network.

On the network shown in Figure 1, multiple links exist between PEs. You can configure the PEs to forward public network IPv6 services over a path calculated using a specified Flex-Algo.

Figure 1 Public IPv6 over SRv6 Flex-Algo networking

Pre-configuration Tasks

Before performing the configuration, complete the following tasks:

Procedure

  1. Configure Flex-Algo link attributes.
    1. Run system-view

      The system view is displayed.

    2. Run te attribute enable

      TE is enabled.

    3. Run path-constraint affinity-mapping

      An affinity name template is configured, and the template view is displayed.

      This template must be configured on each node that is involved in path calculation, and the same mappings between affinity bit names and values must be configured on each node.

    4. Run attribute bit-name bit-sequence bit-number

      Mappings between affinity bit values and names are configured.

      An affinity attribute has a total of 128 bits. This step configures only one bit. Repeat this step to configure more bits. You can configure some or all of the bits in the affinity attribute.

    5. Run quit

      Return to the system view.

    6. Use either of the following methods to configure Flex-Algo link attributes.

      • Inherit interface TE attributes.
        1. Run interface interface-type interface-number

          The interface view is displayed.

        2. Run te link administrative group name bit-name &<1-32>

          The link administrative group attribute is configured. The bit-name value must be in the range specified in the affinity name template.

        3. Run te metric metric-value

          The TE metric of the link is configured.

        4. Run te link-attribute-application flex-algo

          The Flex-Algo link attribute application view is created and displayed.

        5. Run te inherit

          The interface TE attributes are inherited.

          After the te inherit command is run, the Flex-Algo link inherits the te metric and te link administrative group name command configurations on the interface.

          In the Flex-Algo link attribute application view, the te inherit command is mutually exclusive from the metric and link administrative group name commands.

      • Configure Flex-Algo link attributes separately.
        1. Run interface interface-type interface-number

          The interface view is displayed.

        2. Run te link-attribute-application flex-algo

          The Flex-Algo link attribute application view is created and displayed.

        3. Run link administrative group name name-string &<1-128>

          The link administrative group attribute of the Flex-Algo link is configured. The name-string value must be in the range specified in the affinity name template.

        4. (Optional) Run delay delay-value

          The Flex-Algo link delay is configured.

        5. (Optional) Run metric metric-value

          The Flex-Algo link metric is configured.

    7. Run quit

      Return to the interface view.

    8. Run quit

      Return to the system view.

  2. Configure a FAD.
    1. Run flex-algo identifier flexAlgoId

      A Flex-Algo is created, and the Flex-Algo view is displayed.

    2. Run priority priority-value

      The priority of the Flex-Algo is configured.

      A larger value indicates a higher priority.

    3. Run metric-type { igp | delay | te }

      The Metric-Type of the Flex-Algo is configured.

      After this command is run, links must have the corresponding metric type. Otherwise, these links will be pruned and cannot participate in IGP path calculation.

    4. Run affinity { include-all | include-any | exclude } { name-string } &<1-32>

      The affinity attribute of the Flex-Algo is configured.

      A FAD can constrain a path to include or exclude a link with a specific affinity attribute. The following three types of affinity attributes are defined for FADs:

      • Include-All Admin Group (include-all): A link is included in path calculation only if each link administrative group bit has the same name as each affinity bit.

      • Include-Any Admin Group (include-any): A link is included in path calculation if at least one link administrative group bit has the same name as an affinity bit.
      • Exclude Admin Group (exclude): A link is excluded from path calculation if any link administrative group bit has the same name as an affinity bit.

    5. Run quit

      Exit the Flex-Algo view.

  3. Configure IPv6 IS-IS on each PE and P. For configuration details, see Configuring Basic IPv6 IS-IS Functions.
  4. Establish an EBGP peer relationship between PE1 and DeviceA and another one between PE2 and DeviceB.
    1. Run system-view

      The system view is displayed.

    2. Run bgp as-number

      The BGP view is displayed.

    3. Run router-id ipv4-address

      A BGP router ID is configured.

    4. Run peer ipv6-address as-number as-number

      The IPv6 address of a peer and the number of the AS where the peer resides are specified.

    5. Run ipv6-family unicast

      The BGP-IPv6 unicast address family view is displayed.

    6. Run peer ipv6-address enable

      The device is enabled to exchange routing information with the specified IPv6 peer.

    7. Run commit

      The configuration is committed.

    8. Run quit

      Exit the BGP-IPv6 unicast address family view.

    9. Run quit

      Exit the BGP view.

  5. Establish an MP-IBGP peer relationship between the PEs.
    1. Run bgp as-number

      The BGP view is displayed.

    2. Run router-id ipv4-address

      A BGP router ID is configured.

    3. Run peer ipv6-address as-number as-number

      The IPv6 address of a peer and the number of the AS where the peer resides are specified.

    4. Run peer ipv6-address connect-interface interface-type interface-number

      A source interface and a source address are specified for TCP connection setup.

    5. Run ipv6-family unicast

      The BGP-IPv6 unicast address family view is displayed.

    6. Run peer ipv6-address enable

      The device is enabled to exchange routing information with the specified IPv6 peer.

    7. Run commit

      The configuration is committed.

    8. Run quit

      Exit the BGP-IPv6 unicast address family view.

    9. Run quit

      Exit the BGP view.

  6. Configure basic SRv6 functions.
    1. Run segment-routing ipv6

      SRv6 is enabled, and the SRv6 view is displayed.

    2. Run encapsulation source-address ipv6-address [ ip-ttl ttl-value ]

      A source address is specified for SRv6 encapsulation.

    3. Run locator locator-name ipv6-prefix ipv6-address prefix-length [ static static-length | args args-length | flex-algo flexAlgoId ] *

      An SRv6 locator is configured.

      If flex-algo flexAlgoId is specified, the IGP uses the specified Flex-Algo to calculate locator routes.

      In SRv6 Flex-Algo scenarios, locators must be configured on both PEs and Ps, and IS-IS SRv6 must be enabled using the segment-routing ipv6 locator locator-name command in the IS-IS view. Otherwise, SRv6 locator routes cannot be advertised, and PEs at both ends cannot learn locator routes from each other.

    4. (Optional) Run opcode func-opcode end-dt6

      A static SID opcode is configured.

      An End.DT6 SID can be either dynamically allocated by BGP or manually configured. If a dynamically allocated SID and a manually configured SID both exist, the manually configured SID takes effect. If you want to enable dynamic End.DT6 SID allocation using the segment-routing ipv6 locator locator-name command, skip this step.

    5. Run quit

      Exit the SRv6 locator view.

    6. Run quit

      Exit the SRv6 view.

  7. Enable IS-IS SRv6 on the PEs.
    1. Run isis [ process-id ]

      The IS-IS view is displayed.

    2. Run cost-style { wide | compatible | wide-compatible }

      The wide cost type is configured.

    3. Run flex-algo flexAlgoIdentifier [ level-1 | level-2 | level-1-2 ]

      IS-IS is enabled to advertise Flex-Algos.

    4. Run ipv6 enable topology ipv6

      IPv6 is enabled for the IS-IS process in the IPv6 topology.

    5. Run ipv6 traffic-eng [ level-1 | level-2 | level-1-2 ]

      IS-IS TE is enabled.

    6. (Optional) Run ipv6 metric-delay advertisement enable { level-1 | level-2 | level-1-2 }

      The advertisement of IPv6 delay information is enabled.

      In a scenario where IS-IS Flex-Algos calculate paths based on delay information, you need to run this command to enable link delay advertisement through IS-IS.

    7. Run segment-routing ipv6 locator locator-name [ auto-sid-disable ]

      IS-IS SRv6 is enabled.

    8. Run quit

      Exit the IS-IS view.

  8. Configure public network routes on PEs to carry SIDs and recurse to SRv6 BE paths based on the SIDs.
    1. Run bgp { as-number-plain | as-number-dot }

      The BGP view is displayed.

    2. Run ipv6-family unicast

      The BGP-IPv6 unicast address family view is displayed.

    3. Run peer ipv6-address prefix-sid [ advertise-srv6-locator ]

      The device is enabled to exchange prefix SIDs with the specified peer.

      In a scenario where BFD is used to check locator reachability and the P nodes between local and remote PEs summarize locator routes, you can specify the advertise-srv6-locator parameter to enable PE-advertised BGP routes to carry locator length information. In this way, when the peer IPv6 address bound to the BFD session matches the locator's IPv6 address, locator reachability can be checked using BFD to complete auto FRR path switching.

    4. Run segment-routing ipv6 best-effort

      The device is enabled to perform public route recursion based on the SIDs carried by routes.

    5. Run segment-routing ipv6 locator locator-name

      The device is enabled to add SIDs to public routes.

    6. Run commit

      The configuration is committed.

Verifying the Configuration

After configuring public IPv6 over SRv6 Flex-Algo, verify the configuration.

  • Run the display bgp ipv6 routing-table ipv6-address [ mask | mask-length ] command to check BGP IPv6 routing table information.
  • Run the display segment-routing ipv6 locator [ locator-name ] verbose command to check SRv6 locator information.

  • Run the display segment-routing ipv6 local-sid [ locator-name ] forwarding command to check information about the SRv6 local SID table.

  • Run the display isis process-id flex-algo [ flex-algo-id ] [ level-1 | level-2 ] command to check the preferred FAD in the LSDB.
  • Run the display isis lsdb [ { level-1 | level-2 } | verbose | { local | lsp-id | is-name symbolic-name } ] * [ process-id | vpn-instance vpn-instance-name ] command to check IS-IS LSDB information.
  • Run the display isis process-id route ipv6 flex-algo [ flex-algo-id ] [ verbose | [ level-1 | level-2 ] | ipv6-address [ prefix-length ] ] * or display isis route [ process-id ] ipv6 flex-algo [ flex-algo-id ] [ verbose | [ level-1 | level-2 ] | ipv6-address [ prefix-length ] ] * command to check Flex-Algo-related IS-IS route information.
  • Run the display isis [ process-id ] spf-tree [ systemid systemid ] ipv6 flex-algo [ flex-algo-id ] [ [ level-1 | level-2 ] | verbose ] * command to check the SPF tree topology information of a specified Flex-Algo.
Copyright © Huawei Technologies Co., Ltd.
Copyright © Huawei Technologies Co., Ltd.
< Previous topic