aristanetworks / avd

Arista Validated Designs
https://avd.arista.com
Apache License 2.0
251 stars 186 forks source link

EVPN Multihoming - L2 Leaf Uplink Issue with short_esi: auto #4124

Open SomaliRaven opened 1 week ago

SomaliRaven commented 1 week ago

Issue Summary

We have a setup where l3leaf switches are providing uplinks to hosts and l2leaf switches via EVPN multihoming. The l2leaf switches are using LACP portchannel to connect to the l3leaf switches.

The creation of portchannels on l2leaf works flawlessly. But on the l3leaf the same port-channel are created on the two l3leaf switches with different ethernet segment identifiers and lacp system ids.

While testing we found out, that the issue is using short_esi: auto. When using seting short_esi manually it works out.

Please fix the creation of uplink port-channels for l2leaf switches to l3leaf switches by using short_esi:auto.

Following code snippets were used to create the issue:

<omitted>
    - group: Access-1
      mlag_interfaces: "{{ mlag_interfaces_access }}"
      uplink_interfaces: "{{ uplink_interfaces_access }}"
      short_esi: auto
      nodes:
        - name: l2leaf-1
          id: 1
          inband_mgmt_ip: <redacted>
          uplink_switches: ['l3leaf-1','l3leaf-2']
          uplink_switch_interfaces: ['Ethernet41']
        - name: l2leaf-2
          id: 2
          inband_mgmt_ip: <redacted>
          uplink_switches: ['l3leaf-1','l3leaf-2']
          uplink_switch_interfaces: ['Ethernet42']
    - group: Access-1.1
      uplink_interfaces: ['Ethernet51']
      uplink_switches: ['l2leaf-1','l2leaf-2']
      uplink_switch_interfaces: "{{ uplink_switch_interfaces_member_3 }}"
      nodes:
        - name: l2leaf-3
          id: 3
          inband_mgmt_ip: <redacted>
    - group: Access-1.2
      uplink_interfaces: ['Ethernet51']
      uplink_switches: ['l2leaf-1','l2leaf-2']
      uplink_switch_interfaces: "{{ uplink_switch_interfaces_member_4 }}"
      nodes:
        - name: l2leaf-4
          id: 4
          inband_mgmt_ip: <redacted>
    - group: Access-1.3
      uplink_interfaces: ['Ethernet51']
      uplink_switches: ['l2leaf-1','l2leaf-2']
      uplink_switch_interfaces: "{{ uplink_switch_interfaces_member_5 }}"
      nodes:
        - name: l2leaf-5
          id: 5
          inband_mgmt_ip: <redacted>

This creates port-channels as below:

l3leaf-1

interface Port-Channel27
   switchport trunk allowed vlan <redacted>
   switchport
   switchport mode trunk
   !    
   evpn ethernet-segment    
      identifier 0000:0000:61d0:21bd:119c   
      route-target import 61:d0:21:bd:11:9c 
   lacp system-id 61d0.21bd.119c

l3leaf-2

interface Port-Channel27
   switchport trunk allowed vlan <redacted>
   switchport mode trunk       switchport mode trunk
   switchport      switchport
   !    
   evpn ethernet-segment    
      identifier 0000:0000:3d87:7af9:b71e   
      route-target import 3d:87:7a:f9:b7:1e 
   lacp system-id 3d87.7af9.b71e

Which component(s) of AVD impacted

eos_designs

How do you run AVD ?

Ansible CLI with AVD Runner

Steps to reproduce

Create l3leaf with evpn multihoming
Use l2leaf configuration from above to connect them to l3leaf
Execute Playbook

Relevant log output

No response

Contributing Guide

ClausHolbechArista commented 1 week ago

So we need to ensure that we use the node ID of the first MLAG switch for short_esi: auto.