Connected Endpoints¶
Introduction¶
connected_endpoints is an endpoint-centric model intended for servers or other devices where most ports have unique configurations. Instead of manually creating interface Ethernet configurations for every server, you describe the connections using adapters and profiles, and AVD generates the complete, standardized configuration for you.
This guide explains how to define port profiles, configure adapters for your endpoints, and generate the final switch configuration.
When to Use Connected Endpoints¶
Use connected_endpoints when:
- Each server or device has a unique configuration (specific VLANs, port-channels, descriptions)
- You need to document the endpoint name and connection details
- You want to track which device connects to which switch port
Use network_ports instead when:
- Many ports share identical configurations
- You want to apply the same profile to a range of interfaces
- Endpoint-specific details are not required
Warning
Both data models share the same underlying implementation and can coexist without conflicts. If a switch port is defined in both “Connected Endpoints” and “Network Ports”, the “Connected Endpoints” configuration will take precedence.
Concepts¶
port_profiles: Port profiles are used to share common settings for connected_endpoints and network_ports. Keys are the same as those used under endpoint adapters. Keys defined under endpoint adapters take precedence.
adapters: An adapter represents a network interface on the connected_endpoint.
Port Profiles¶
A Port Profile is a reusable template that defines a standard set of switchport configurations. You create a profile once and then apply it to any number of connected endpoints. This ensures consistency and dramatically simplifies configuration.
A port profile can refer to another port profile using parent_profile to inherit settings in up to two levels (adapter->profile->parent_profile).
Key Settings for a Port Profile¶
mode: Can beaccessortrunk.vlans: Foraccessmode, the single VLAN ID. Fortrunkmode, the list of allowed VLANs.port_channel: Defines Port-Channel settings likemode(activefor LACP) andchannel_id.spanning_tree_portfast: Set toedgefor server ports.native_vlan: For trunk ports, defines the native VLAN.storm_control: To apply storm control policies.flowcontrol: To configure flow control settings.
Please consult the User Manual for all available keys.
Adapters¶
Adapters serve as the bridge between the Fabric (the switches) and the Endpoints (the devices). They define how a specific device is cabled and what network services (VLANs, VRFs) it should receive.
Key settings Adapters¶
Adapters define the physical mapping between the endpoint and the switch fabric:
endpoint_ports: Port name for the endpoint, e.g., eth0.switch_ports: Specifies which physical interface(s) on the switch connect to the adapter.switches: The switches to which the interface will connect.Profiles: The port profile to apply for this adapter’s configuration.description: A brief description of the interface function.
Note
The lists endpoint_ports, switch_ports, and switches must have the same length.
Please consult User Manual for all available keys.
Define port profiles¶
---
port_profiles:
- profile: PP-WEBSERVER # (1)!
mode: access
vlans: "10"
spanning_tree_portfast: edge
storm_control:
all:
level: "10"
unit: percent
- profile: PP-VMHOST-LACP # (2)!
mode: trunk
vlans: "20,30"
port_channel:
mode: active
spanning_tree_portfast: edge
- profile: PP-FIREWALL-TRUNK # (3)!
mode: trunk
vlans: "10,20,30,100"
native_vlan: 100
- profile: PP-APPSERVER
mode: trunk
vlans: "11,12"
spanning_tree_portfast: edge
- Profile for a single-homed server in VLAN 10
- Profile for a dual-homed (LACP) server trunking two VLANs
- Profile for a trunk port connecting to a firewall
Define your connected endpoints¶
---
connected_endpoints:
- name: WEB-SERVER-01
adapters:
- endpoint_ports: [eth0]
switches: [dc1-leaf1a]
switch_ports: [Ethernet10]
profile: PP-WEBSERVER
- name: ESXI-HOST-03
adapters:
- endpoint_ports: [vmnic0, vmnic1]
switches: [dc1-leaf1a, dc1-leaf1b]
switch_ports: [Ethernet11, Ethernet11]
profile: PP-VMHOST-LACP
port_channel: # (1)!
mode: active
# Connected endpoint on service_leaf to demonstrate custom node type capabilities
- name: APP-SERVER-01
adapters:
- endpoint_ports: [eth0]
switches: [dc1-svc-leaf1]
switch_ports: [Ethernet10]
profile: PP-APPSERVER
- Within
port_channel, we define its existence and what mode we would like to use, but there is no additional requirement like setting the Port Channel ID. That is done automatically. You can always override the default by setting thechannel_idkey within your Port Channel definition. The default Port Channel selected will be derived from the first switch port in the adapter.
Generated Configuration¶
Device configuration is located in intended/configs/
interface Ethernet10
description WEB-SERVER-01_eth0
no shutdown
switchport access vlan 10
switchport mode access
switchport
spanning-tree portfast
!
interface Port-Channel11
description ESXI-HOST-03
no shutdown
switchport trunk allowed vlan 20,30
switchport mode trunk
switchport
mlag 11
spanning-tree portfast
!
interface Ethernet11
description ESXI-HOST-03_vmnic0
no shutdown
channel-group 11 mode active
!
Best Practices¶
-
Use port profiles for consistency: Define reusable profiles for common configurations like single-homed servers, dual-homed servers, or firewall connections.
-
Leverage parent profiles: Use
parent_profileto create a hierarchy of profiles, reducing duplication and simplifying updates. -
Consistent naming conventions: Establish clear naming patterns for endpoints and profiles to improve readability and maintenance.
-
Connected endpoints description: AVD uses a default pattern to create the description
{endpoint_type}_{endpoint}_{endpoint_port(if defined)}. To customize this pattern please refer to the Custom Descriptions and Names documentation. -
Validate list lengths: Ensure
endpoint_ports,switch_ports, andswitcheslists have the same length to avoid configuration errors. -
Test incrementally: When adding new endpoints, test changes on a small subset before applying to the entire fabric.
Troubleshooting¶
VLAN not applied to interface¶
Issue: The expected VLAN is not configured on the interface.
Solution:
- Verify the VLAN is defined in
network_servicesfor the tenant - Check that the switch has the VLAN assigned via
filter.tagsorfilter.tenants - Ensure the
vlanskey in the port profile or adapter is correct
Port-channel not forming¶
Issue: Port-channel is configured but not forming between server and switches.
Solution:
- Verify both sides have matching
port_channel.mode(e.g., both set toactive) - Check that the physical interfaces are correctly mapped in
switch_ports - Ensure MLAG is properly configured if using MLAG port-channels
Adapter/switch list length mismatch¶
Error: Lists endpoint_ports, switch_ports, and switches must have the same length.
Solution: Ensure all three lists have exactly the same number of elements. Each index represents one connection.
Configuration not generated¶
Issue: Endpoint defined but no configuration appears in output.
Solution:
- Verify the endpoint is defined under a valid
<connected_endpoints_key>(e.g.,servers,firewalls) - Check that the switches referenced in
switchesare part of the fabric - Ensure the playbook includes the switches where endpoints are connected
Reference¶
For complete details on all available properties, see: