Support for EVPN single-active in eos_designs role
See original GitHub issueEnhancement summary
We do support EVPN single-active in eos_cli_config_gen #1330, this is to extend the support to eos_designs role.
Today we can configure active-active multihoming connected endpoints as follows: https://avd.sh/en/latest/roles/eos_designs/doc/connected-endpoints.html#evpn-aa-esi-dual-attached-endpoint-scenario
As discussed with @gmuloc, ideally we would need to extend the model to support EVPN A/S, both at the port-channel level with a new redundancy var and a preference:
servers:
server01:
rack: RackB
adapters:
- endpoint_ports: [ E0, E1 ]
switch_ports: [ Ethernet10, Ethernet10 ]
switches: [ DC1-SVC3A, DC1-SVC4A ]
profile: VM_Servers
port_channel:
description: PortChanne1
redundancy: single-active
designated_forwarder_preference: [ 100, 0]
short_esi: 0303:0202:0101
This also can be configured in ethernet interfaces, for example to connect to separate CE devices:
servers:
server01:
rack: RackB
adapters:
- endpoint_ports: [ E0, E1 ]
switch_ports: [ Ethernet10, Ethernet10 ]
switches: [ DC1-SVC3A, DC1-SVC4A ]
redundancy: single-active
designated_forwarder_preference: [ 100, 0]
short_esi: 0303:0202:0101
An example of eos cli configuation would be would be the following:
interface Ethernet1/1
no shutdown
speed 100g
switchport
switchport trunk allowed vlan 700
switchport mode trunk
switchport vlan translation 11 700
spanning-tree portfast
link tracking group LT_GROUP1 downstream
evpn ethernet-segment
identifier 0000:0000:0000:0102:0001
redundancy single-active
designated-forwarder election algorithm preference 100
route-target import 00:00:01:02:00:01
@gmuloc proposed something around the following as a data model. Please add anything that i might be missing:
< endpoint_2 >:
rack: RackC
adapters:
- speed: < interface_speed | forced interface_speed | auto interface_speed >
endpoint_ports: [ < interface_name > ]
switch_ports: [ < switchport_interface > ]
switches: [ < device > ]
profile: < port_profile_name >
ethernet_segment:
short_esi: < 0000:0000:0000 | auto >
redundancy: < all-active | single-active >
designated_forwarder_preference: [42]
- endpoint_ports: [ < interface_name_1 > , < interface_name_2 > ]
switch_ports: [ < switchport_interface_1 >, < switchport_interface_2 > ]
switches: [ < device_1 >, < device_2 > ]
profile: < port_profile_name >
ethernet_segment:
short_esi: < 0000:0000:0000 | auto >
redundancy: < all-active | single-active >
designated_forwarder_preference: [100, 0]
port_channel:
description: < port_channel_description >
mode: '< active | passive | on >'
short_esi: < 0000:0000:0000 | auto >
Also with an auto short_esi being generated and default values for preference, this configuration could even be abstracted to the port_profile level.
Which component of AVD is impacted
eos_designs
Use case example
Configure EVPN single-active connections in the SERVER files of the eos_designs role.
Describe the solution you would like
Being able to define endpoint connections as described above.
Describe alternatives you have considered
Currently i need to implement this as part of host_vars configuration for each device.
Additional context
No response
Contributing Guide
- I agree to follow this project’s Code of Conduct
Issue Analytics
- State:
- Created a year ago
- Comments:16 (8 by maintainers)
Top GitHub Comments
I can add it to this one. I’ll take it back to being a draft and see if I can add that today.
Hi John, thanks for all the work on this. While testing this feature, the customer is asking to set the “dont-preempt” option that was not originally requested, its a simple addition to this command:
Just in case this was not considered and it can be added as part of this change or in a separate one.
thanks, David