Skip to content

DCI & L3 Edge

The l3_edge data model can be used to configure extra L3 P2P links anywhere in the fabric. It can be between two switches that are already part of the fabric inventory, or it can be towards another device, where only one end of the link is on a switch in the fabric.

The data model supports using IP pools, Subnet per link, specifying the IP addresses manually or using ipv6 with rfc5549. One of these options must be set. For BGP peerings the AS number must be specified. If the AS number is different than the AS number configured for the node, the local-as will be replaced on this BGP peering (neighbor <ip> local-as <as> no-prepend replace-as).

Make sure to configure the variables in a group_vars file covering all devices mentioned in the data model.

l3_edge:
  p2p_links_ip_pools:
    < p2p_pool_name_1 >: < IPv4_address/Mask >
  p2p_links_profiles:
    < p2p_profile_name >:
      < any variable supported under p2p_links can be inherited from a profile >
  p2p_links:
      # Unique id per subnet_summary. Used to calculate ip addresses | Required with ip_pool
    - id: < integer - starting from 1 >

      # Speed | Optional
      speed: < speed | auto speed | forced speed >

      # IP Pool defined under p2p_links_ip_pools. A /31 will be taken from the pool per P2P link | Optional
      ip_pool: < p2p_pool_name >

      # Subnet used on this P2P link | Optional
      subnet: < IPv4_address/Mask >

      # Specific IP addresses used on this P2P link | Optional
      ip: [ < node_a IPv4_address/Mask >, < node_b IPv4_address/Mask > ]

      # Turn on ipv6 for the link or profile (also autodetected based on underlay_rfc5549 and include_in_underlay_protocol) | Optional
      ipv6_enable: < true | false | default -> false >

      # Nodes where this link should be configured | Required
      nodes: [ < node_a >, < node_b > ]

      # Interfaces where this link should be configured | Required
      interfaces: [ < node_a_interface >, < node_b_interface > ]

      # AS Numbers for BGP | Required with bgp peering
      as: [ < node_a_as >, < node_b_as > ]

      # Add this interface to underlay routing protocol | Optional
      include_in_underlay_protocol: < true | false | default -> false >

      # MTU for this P2P link | Optional
      mtu: < number | default -> same as p2p_uplinks_mtu >

      # Enable BFD (only considered for BGP) | Optional
      bfd: < true | false | default -> false >

      # Enable PTP | Optional
      ptp_enable: < true | false | default -> false >

      # QOS Service Profile | Optional
      qos_profile: < qos_profile_name >

      # MAC Security Profile | Optional
      macsec_profile: < macsec_profile_name >

      # Profile defined under p2p_profiles | Optional
      profile: < p2p_profile_name >

      # IS-IS parameters
      isis_hello_padding: < true | false >
      isis_metric: < integer >
      isis_circuit_type: < level-1-2 | level-1 | level-2 >
      isis_authentication_mode: < text | md5 >
      isis_authentication_key: < type-7 encrypted password >

      # MPLS Parameters
      mpls_ip: < true | false | default -> true if switch.mpls_lsr is true >
      mpls_ldp: < true | false | default -> true for ldp underlay variants, otherwise false >

      # EOS CLI rendered directly on the point-to-point interface in the final EOS configuration
      raw_eos_cli: |
        < multiline eos cli >

      # Port-channel parameters
      port_channel:
        mode: active
        nodes_child_interfaces:
          < node1 >: [ '< node1 interface1 >', '< node1 interface2 >' ]
          < node2 >: [ '< node2 interface1 >', '< node2 interface2 >' ]

Last update: December 21, 2022