Input variables for eos_designs¶
This document describes the supported input variables for the role arista.avd.eos_designs
.
Since several data models have changed between AVD versions 4.x and 5.x, it is recommended to study the Porting Guide for AVD 5.x.x for existing deployments.
The input variables are documented below in tables and YAML.
Note
All input variables are validated by a schema. If additional custom keys are desired, a key starting with an underscore _
, will be ignored.
Warning
Available features and variables may vary by platforms, refer to documentation on arista.com for specifics.
Warning
All the keys marked as PREVIEW or children of a key marked as PREVIEW are subject to change and are not supported.
Supported designs¶
eos_designs
supports multiple options such as L3LS-EVPN with 3-stage or 5-stage, L2LS, MPLS, AutoVPN and CV Pathfinder. The sections below highlight some of these topologies, but you can extend eos_designs
to support your own topology by using node_type_keys
to create your own node type.
Design type¶
Note
The design.type
variable is no longer required. It has been deprecated and will be removed in AVD 6.0.0.
The default Node Type Variables can be used with all designs.
Variable | Type | Required | Default | Value Restrictions | Description |
---|---|---|---|---|---|
design deprecated | Dictionary | This key is deprecated. Support will be removed in AVD version 6.0.0. See here for details. | |||
type | String | l3ls-evpn |
Valid Values: - l3ls-evpn - mpls - l2ls |
By setting the design.type variable, the default node-types and templates described in these documents will be used. |
# This key is deprecated.
# Support will be removed in AVD version 6.0.0.
# See [here](https://avd.arista.com/5.x/docs/porting-guides/5.x.x.html#deprecation-of-designtype) for details.
design:
# By setting the design.type variable, the default node-types and templates described in these documents will be used.
type: <str; "l3ls-evpn" | "mpls" | "l2ls"; default="l3ls-evpn">
3-stage clos topology support (Leaf & Spine)¶
- The eos_designs role support various deployments with layer 3 leaf and spine (3-stage Clos) and optionally, with dedicated overlay controllers.
- 3 stage Clos fabric can be represented as spines, L3 leafs and L2 leafs, and also referred to as a “POD”.
See the following examples:
5-stage clos topology support (Super Spine)¶
- The eos_designs role support larger deployments with super-spines (5-stage Clos) and optionally, with dedicated overlay controllers.
- 5 stage Clos fabric can be represented as multiple leaf-spine structures (called PODs - Point of Delivery) interconnected by super-spines.
- The logic to deploy every leaf-spine POD fabric remains unchanged.
- Super-spines can be deployed as a single plane (typically chassis switches) or multiple planes.
Layer 2 Leaf Spine¶
- The eos_designs role support various deployments with layer 2 leaf and spine. For example, routing may terminate at the spine level or an external L3 device.
- The Clos fabric can be represented as L3 spines, spines, and leafs.
See the following examples:
MPLS¶
The eos_designs role supports any arbitrary physical mesh topology by combining and interconnecting different node types with the core_interfaces
settings.
The following underlay routing protocols are supported:
- ISIS-SR (default)
- ISIS + LDP
- ISIS-SR + LDP
- OSPF + LDP
The following overlay routing protocols are supported:
- IBGP (default)
Any node group of 2 or more rr-routers will form a Route Reflector cluster.
The MPLS design supports most fabric topology variables already supported by l3ls-evpn, barring the exceptions outlined below:
- Connectivity is defined with the
core_interfaces
settings instead of Node type uplink settings. - No MLAG support.
- No VXLAN support.
- EVPN overlay settings are set with
mpls_overlay_role
andmpls_route_reflectors
instead ofevpn_role
andevpn_route_servers
. - No Inband Management support.
See the following example:
WAN - AutoVPN and CV Pathfinder¶
The eos_designs role with the l3ls-evpn
design type supports the node types wan_rr
and wan_router
.
The default underlay routing protocol is set to none but eBGP is supported as well.
The following overlay routing protocols are supported:
- IBGP (default)
For more information please read the WAN how-to guide.
Fabric topology hierarchy¶
As per the diagram above, the topology hierarchy is the following:
- fabric_name
- dc_name
- pod_name
- dc_name
You must define the fabric_name
variable and it must match the Ansible inventory group name covering all devices in scope of the fabric.
Variable | Type | Required | Default | Value Restrictions | Description |
---|---|---|---|---|---|
dc_name | String | DC Name is used in: - Fabric Documentation (Optional, falls back to fabric_name) - SNMP Location: snmp_settings.location (Optional)- HER Overlay DC scoped flood lists: overlay_her_flood_list_scope: dc (Required) |
|||
fabric_name | String | Required | Fabric Name, required to match Ansible Group name covering all devices in the Fabric, must be an inventory group name. | ||
pod_name | String | POD Name is used in: - Fabric Documentation (Optional, falls back to dc_name and then to fabric_name) - SNMP Location: snmp_settings.location (Optional)- VRF Loopbacks: vtep_diagnostic.loopback_ip_pools.pod (Required)Recommended to be common between Spines and Leafs within a POD (One l3ls topology). |
# DC Name is used in:
# - Fabric Documentation (Optional, falls back to fabric_name)
# - SNMP Location: `snmp_settings.location` (Optional)
# - HER Overlay DC scoped flood lists: `overlay_her_flood_list_scope: dc` (Required)
dc_name: <str>
# Fabric Name, required to match Ansible Group name covering all devices in the Fabric, **must** be an inventory group name.
fabric_name: <str; required>
# POD Name is used in:
# - Fabric Documentation (Optional, falls back to dc_name and then to fabric_name)
# - SNMP Location: `snmp_settings.location` (Optional)
# - VRF Loopbacks: `vtep_diagnostic.loopback_ip_pools.pod` (Required)
#
# Recommended to be common between Spines and Leafs within a POD (One l3ls topology).
pod_name: <str>
Fabric IP Addressing¶
Variable | Type | Required | Default | Value Restrictions | Description |
---|---|---|---|---|---|
fabric_ip_addressing | Dictionary | ||||
mlag | Dictionary | ||||
algorithm | String | first_id |
Valid Values: - first_id - odd_id - same_subnet |
This variable defines the Multi-chassis Link Aggregation (MLAG) algorithm used. Each MLAG link will have a /31¹ subnet with each subnet allocated from the relevant MLAG pool via a calculated offset. The offset is calculated using one of the following algorithms: - first_id: (mlag_primary_id - 1) * 2 where mlag_primary_id is the ID of the first node defined under the node_group.This allocation method will skip every other /31¹ subnet making it less space efficient than odd_id .- odd_id: (odd_id - 1) / 2 . Requires the node_group to have a node with an odd ID and a node with an even ID.- same_subnet: the offset will always be zero. This allocation method will cause every MLAG link to be addressed with the same /31¹ subnet. ¹ The prefix length is configurable with a default of /31. |
|
ipv4_prefix_length | Integer | 31 |
Min: 1 Max: 31 |
IPv4 prefix length used for MLAG peer-vlan and L3 point-to-point SVIs over the MLAG peer-link. | |
ipv6_prefix_length | Integer | 64 |
Min: 1 Max: 127 |
IPv6 prefix length used for MLAG peer-vlan and L3 point-to-point SVIs over the MLAG peer-link. | |
p2p_uplinks | Dictionary | ||||
ipv4_prefix_length | Integer | 31 |
Min: 1 Max: 31 |
IPv4 prefix length used for L3 point-to-point uplinks. | |
wan_ha | Dictionary | Allow to manipulate the IP addressing scheme for WAN HA direct subnets. | |||
ipv4_prefix_length | Integer | 31 |
Min: 1 Max: 31 |
IPv4 prefix length used for point-to-point interface for direct WAN HA link. |
fabric_ip_addressing:
mlag:
# This variable defines the Multi-chassis Link Aggregation (MLAG) algorithm used.
# Each MLAG link will have a /31¹ subnet with each subnet allocated from the relevant MLAG pool via a calculated offset.
# The offset is calculated using one of the following algorithms:
# - first_id: `(mlag_primary_id - 1) * 2` where `mlag_primary_id` is the ID of the first node defined under the node_group.
# This allocation method will skip every other /31¹ subnet making it less space efficient than `odd_id`.
# - odd_id: `(odd_id - 1) / 2`. Requires the node_group to have a node with an odd ID and a node with an even ID.
# - same_subnet: the offset will always be zero.
# This allocation method will cause every MLAG link to be addressed with the same /31¹ subnet.
# ¹ The prefix length is configurable with a default of /31.
algorithm: <str; "first_id" | "odd_id" | "same_subnet"; default="first_id">
# IPv4 prefix length used for MLAG peer-vlan and L3 point-to-point SVIs over the MLAG peer-link.
ipv4_prefix_length: <int; 1-31; default=31>
# IPv6 prefix length used for MLAG peer-vlan and L3 point-to-point SVIs over the MLAG peer-link.
ipv6_prefix_length: <int; 1-127; default=64>
p2p_uplinks:
# IPv4 prefix length used for L3 point-to-point uplinks.
ipv4_prefix_length: <int; 1-31; default=31>
# Allow to manipulate the IP addressing scheme for WAN HA direct subnets.
wan_ha:
# IPv4 prefix length used for point-to-point interface for direct WAN HA link.
ipv4_prefix_length: <int; 1-31; default=31>
Node Type Variables¶
The following tables provide information on the default node types that are pre-defined in eos_designs
.
To customize or create new node types, please refer to node type customization section.
Node Type Key | Underlay Router | Uplink Type | EVPN Role | MPLS Role | L2 Network Services | L3 Network Services | VTEP | MLAG Support | Connected Endpoints | WAN Role | Underlay Routing Protocol | Overlay Routing Protocol | Notes |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
spine | ✅ | p2p | server | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | eBGP | eBGP | |
l3leaf | ✅ | p2p | client | ✘ | ✅ | ✅ | ✅ | ✅ | ✅ | ✘ | eBGP | eBGP | |
l2leaf | ✘ | port-channel | N/A | ✘ | ✅ | ✘ | ✘ | ✅ | ✅ | ✘ | ✘ | ✘ | |
l3spine | ✅ | p2p | none | ✘ | ✅ | ✅ | ✘ | ✅ | ✅ | ✘ | none | none | |
l2spine | ✘ | port-channel | none | ✘ | ✅ | ✘ | ✘ | ✅ | ✅ | ✘ | ✘ | ✘ | |
super_spine | ✅ | p2p | none | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | eBGP | eBGP | |
overlay_controller | ✅ | p2p | server | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | eBGP | eBGP | |
wan_rr | ✅ | p2p | server | ✘ | ✘ | ✅ | ✅ | ✘ | ✘ | server | none | iBGP | AutoVPN RR or Pathfinder depending on the e` value. |
wan_router | ✅ | p2p | client | ✘ | ✘ | ✅ | ✅ | ✘ | ✘ | client | none | iBGP | Edge routers for AutoVPN or Edge and Transit routers for CV Pathfindeing on the wan_mode value. |
p | ✅ | p2p | none | none, LSR | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ISIS-SR | iBGP | |
rr | ✅ | p2p | server | server, LSR | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ | ISIS-SR | iBGP | EVPN with MPLS encapsulation |
pe | ✅ | p2p | client | client, LSR | ✅ | ✅ | ✘ | ✘ | ✅ | ✘ | ISIS-SR | iBGP | EVPN with MPLS encapsulation, L1 Network Services (PW) |
Node type customization¶
AVD provides the capability to customize your node types, supporting a variety of designs.
Note
The default values will be overridden if this key is defined.
If you need to change all the existing node_type_keys
, it is recommended to copy the defaults and modify them.
If you need to add custom node_type_keys
, create them under custom_node_type_keys
; if named identically to default node_type_keys
entries, custom entries will replace the equivalent default entry.
The default value of node_type_keys
depend on the design.type
setting which is deprecated for removal in AVD 6.0.0. The default design type l3ls-evpn
provides all the default node types mentioned in the previous section.
Default value for design l3ls-evpn
node_type_keys:
- key: spine
type: spine
default_evpn_role: server
default_ptp_priority1: 20
cv_tags_topology_type: spine
- key: l3leaf
type: l3leaf
connected_endpoints: true
default_evpn_role: client
mlag_support: true
network_services:
l2: true
l3: true
vtep: true
default_ptp_priority1: 30
cv_tags_topology_type: leaf
- key: l2leaf
type: l2leaf
connected_endpoints: true
mlag_support: true
network_services:
l2: true
underlay_router: false
uplink_type: port-channel
cv_tags_topology_type: leaf
- key: l3spine
type: l3spine
connected_endpoints: true
mlag_support: true
network_services:
l2: true
l3: true
default_overlay_routing_protocol: none
default_underlay_routing_protocol: none
- key: l2spine
type: spine
connected_endpoints: true
mlag_support: true
network_services:
l2: true
underlay_router: false
uplink_type: port-channel
- key: super_spine
type: super-spine
cv_tags_topology_type: core
- key: overlay_controller
type: overlay-controller
default_evpn_role: server
cv_tags_topology_type: spine
- key: wan_router
type: wan_router
default_evpn_role: client
default_wan_role: client
default_underlay_routing_protocol: none
default_overlay_routing_protocol: ibgp
default_flow_tracker_type: hardware
vtep: true
network_services:
l3: true
- key: wan_rr
type: wan_rr
default_evpn_role: server
default_wan_role: server
default_underlay_routing_protocol: none
default_overlay_routing_protocol: ibgp
default_flow_tracker_type: hardware
vtep: true
network_services:
l3: true
- key: p
type: p
mpls_lsr: true
default_mpls_overlay_role: none
default_overlay_routing_protocol: ibgp
default_underlay_routing_protocol: isis-sr
- key: pe
type: pe
mpls_lsr: true
connected_endpoints: true
default_mpls_overlay_role: client
default_evpn_role: client
network_services:
l1: true
l2: true
l3: true
default_overlay_routing_protocol: ibgp
default_underlay_routing_protocol: isis-sr
default_overlay_address_families:
- vpn-ipv4
default_evpn_encapsulation: mpls
- key: rr
type: rr
mpls_lsr: true
default_mpls_overlay_role: server
default_evpn_role: server
default_overlay_routing_protocol: ibgp
default_underlay_routing_protocol: isis-sr
default_overlay_address_families:
- vpn-ipv4
default_evpn_encapsulation: mpls
Default value for design l2ls
node_type_keys:
- key: l3spine
type: l3spine
connected_endpoints: true
mlag_support: true
network_services:
l2: true
l3: true
default_overlay_routing_protocol: none
default_underlay_routing_protocol: none
- key: spine
type: spine
connected_endpoints: true
mlag_support: true
network_services:
l2: true
underlay_router: false
uplink_type: port-channel
- key: leaf
type: leaf
connected_endpoints: true
mlag_support: true
network_services:
l2: true
underlay_router: false
uplink_type: port-channel
Default value for design mpls
node_type_keys:
- key: p
type: p
mpls_lsr: true
default_mpls_overlay_role: none
default_overlay_routing_protocol: ibgp
default_underlay_routing_protocol: isis-sr
- key: pe
type: pe
mpls_lsr: true
connected_endpoints: true
default_mpls_overlay_role: client
default_evpn_role: client
network_services:
l1: true
l2: true
l3: true
default_overlay_routing_protocol: ibgp
default_underlay_routing_protocol: isis-sr
default_overlay_address_families:
- vpn-ipv4
default_evpn_encapsulation: mpls
- key: rr
type: rr
mpls_lsr: true
default_mpls_overlay_role: server
default_evpn_role: server
default_overlay_routing_protocol: ibgp
default_underlay_routing_protocol: isis-sr
default_overlay_address_families:
- vpn-ipv4
default_evpn_encapsulation: mpls
Variable | Type | Required | Default | Value Restrictions | Description |
---|---|---|---|---|---|
custom_node_type_keys | List, items: Dictionary | Define Custom Node Type Keys, to specify the properties of each node type in the fabric. This allows for complete customization of the fabric layout and functionality. custom_node_type_keys should be defined in top level group_var for the fabric.These values will be combined with the defaults; custom node type keys named the same as a default node_type_key will replace the default. |
|||
- key | String | Required, Unique | |||
type | String | Type value matching this node_type_key. | |||
connected_endpoints | Boolean | False |
Are endpoints connected to this node type. | ||
default_evpn_role | String | none |
Valid Values: - none - client - server |
Default evpn_role. Can be overridden in topology vars. | |
default_ptp_priority1 | Integer | 127 |
Min: 0 Max: 255 |
Default PTP priority 1 | |
default_underlay_routing_protocol | String | ebgp |
Value is converted to lower case. Valid Values: - ebgp - ospf - ospf-ldp - isis - isis-sr - isis-ldp - isis-sr-ldp - none |
Set the default underlay routing_protocol. Can be overridden by setting “underlay_routing_protocol” host/group_vars. |
|
default_overlay_routing_protocol | String | ebgp |
Value is converted to lower case. Valid Values: - ebgp - ibgp - her - cvx - none |
Set the default overlay routing_protocol. Can be overridden by setting “overlay_routing_protocol” host/group_vars. |
|
default_mpls_overlay_role | String | Valid Values: - client - server - none |
Set the default mpls overlay role. Acting role in overlay control plane. |
||
default_overlay_address_families | List, items: String | ['evpn'] |
Set the default overlay address families. |
||
- <str> | String | Value is converted to lower case. Valid Values: - evpn - vpn-ipv4 - vpn-ipv6 |
|||
default_evpn_encapsulation | String | vxlan |
Value is converted to lower case. Valid Values: - mpls - vxlan |
Set the default evpn encapsulation. |
|
default_wan_role | String | Valid Values: - client - server |
Set the default WAN role. This is used both for AutoVPN and Pathfinder designs. That means if wan_mode root key is set to autovpn or cv-pathfinder .server indicates that the router is a route-reflector.Only supported if overlay_routing_protocol is set to ibgp . |
||
default_flow_tracker_type | String | sampled |
Valid Values: - sampled - hardware |
Set the default flow tracker type. | |
mlag_support | Boolean | False |
Can this node type support mlag. | ||
network_services | Dictionary | Will network services be deployed on this node type. | |||
l1 | Boolean | False |
?? | ||
l2 | Boolean | False |
Vlans | ||
l3 | Boolean | False |
VRFs, SVIs (if l2 is true). Only supported with underlay_router. |
||
underlay_router | Boolean | True |
Is this node type a L3 device. | ||
uplink_type | String | p2p |
Valid Values: - p2p - port-channel - p2p-vrfs - lan |
uplink_type must be p2p , p2p-vrfs or lan if vtep or underlay_router is true.For p2p-vrfs , the uplinks are configured as L3 interfaces with a subinterface for each VRFin network_services present on both the uplink and the downlink switch.The subinterface ID is the vrf_id .‘underlay_router’ and ‘network_services.l3’ must be set to true. VRF default is always configured on the physical interface using the underlay routing protocol.All subinterfaces use the same IP address as the physical interface. Multicast is not supported. Only BGP is supported for subinterfaces. For lan , a single uplink interface is supported and will be configured as an L3 Interface withsubinterfaces for each SVI defined under the VRFs in network_services as long as the uplink switch alsohas the VLAN permitted by tag/tenant filtering. |
|
vtep | Boolean | False |
Is this switch an EVPN VTEP. | ||
mpls_lsr | Boolean | False |
Is this switch an MPLS LSR. | ||
ip_addressing | Dictionary | Override ip_addressing templates. | |||
python_module | String | Custom Python Module to import for IP addressing. | |||
python_class_name | String | AvdIpAddressing |
Name of Custom Python Class to import for IP addressing. | ||
router_id | String | Path to Custom J2 template. | |||
router_id_ipv6 | String | Path to Custom J2 template. | |||
mlag_ip_primary | String | Path to Custom J2 template. | |||
mlag_ip_secondary | String | Path to Custom J2 template. | |||
mlag_l3_ip_primary | String | Path to Custom J2 template. | |||
mlag_l3_ip_secondary | String | Path to Custom J2 template. | |||
mlag_ibgp_peering_ip_primary | String | Path to Custom J2 template. | |||
mlag_ibgp_peering_ip_secondary | String | Path to Custom J2 template. | |||
p2p_uplinks_ip | String | Path to Custom J2 template. | |||
p2p_uplinks_peer_ip | String | Path to Custom J2 template. | |||
vtep_ip_mlag | String | Path to Custom J2 template. | |||
vtep_ip | String | Path to Custom J2 template. | |||
interface_descriptions | Dictionary | Override interface_descriptions templates. If description templates use Jinja2, they have to strip whitespaces using {%- -%} on any code blocks. |
|||
python_module | String | Custom Python Module to import for interface descriptions. | |||
python_class_name | String | AvdInterfaceDescriptions |
Name of Custom Python Class to import for interface descriptions. | ||
underlay_ethernet_interfaces | String | Path to Custom J2 template. | |||
underlay_port_channel_interfaces | String | Path to Custom J2 template. | |||
mlag_ethernet_interfaces | String | Path to Custom J2 template. | |||
mlag_port_channel_interfaces | String | Path to Custom J2 template. | |||
connected_endpoints_ethernet_interfaces | String | Path to Custom J2 template. | |||
connected_endpoints_port_channel_interfaces | String | Path to Custom J2 template. | |||
router_id_loopback_interface | String | Path to Custom J2 template. | |||
vtep_loopback_interface | String | Path to Custom J2 template. | |||
overlay_loopback_interface deprecated | String | Path to Custom J2 template.This key is deprecated. Support will be removed in AVD version 6.0.0. Use router_id_loopback_interface instead. | |||
node_type_keys | List, items: Dictionary | Define Node Type Keys, to specify the properties of each node type in the fabric. This allows for complete customization of the fabric layout and functionality. node_type_keys should be defined in top level group_var for the fabric.The default values will be overridden if this key is defined. If you need to change all the existing node_type_keys , it is recommended to copy the defaults and modify them.If you need to add custom node_type_keys , create them under custom_node_type_keys - if named identically to default node_type_keys entries,custom entries will replace the equivalent default entry. |
|||
- key | String | Required, Unique | |||
type | String | Type value matching this node_type_key. | |||
connected_endpoints | Boolean | False |
Are endpoints connected to this node type. | ||
default_evpn_role | String | none |
Valid Values: - none - client - server |
Default evpn_role. Can be overridden in topology vars. | |
default_ptp_priority1 | Integer | 127 |
Min: 0 Max: 255 |
Default PTP priority 1 | |
default_underlay_routing_protocol | String | ebgp |
Value is converted to lower case. Valid Values: - ebgp - ospf - ospf-ldp - isis - isis-sr - isis-ldp - isis-sr-ldp - none |
Set the default underlay routing_protocol. Can be overridden by setting “underlay_routing_protocol” host/group_vars. |
|
default_overlay_routing_protocol | String | ebgp |
Value is converted to lower case. Valid Values: - ebgp - ibgp - her - cvx - none |
Set the default overlay routing_protocol. Can be overridden by setting “overlay_routing_protocol” host/group_vars. |
|
default_mpls_overlay_role | String | Valid Values: - client - server - none |
Set the default mpls overlay role. Acting role in overlay control plane. |
||
default_overlay_address_families | List, items: String | ['evpn'] |
Set the default overlay address families. |
||
- <str> | String | Value is converted to lower case. Valid Values: - evpn - vpn-ipv4 - vpn-ipv6 |
|||
default_evpn_encapsulation | String | vxlan |
Value is converted to lower case. Valid Values: - mpls - vxlan |
Set the default evpn encapsulation. |
|
default_wan_role | String | Valid Values: - client - server |
Set the default WAN role. This is used both for AutoVPN and Pathfinder designs. That means if wan_mode root key is set to autovpn or cv-pathfinder .server indicates that the router is a route-reflector.Only supported if overlay_routing_protocol is set to ibgp . |
||
default_flow_tracker_type | String | sampled |
Valid Values: - sampled - hardware |
Set the default flow tracker type. | |
mlag_support | Boolean | False |
Can this node type support mlag. | ||
network_services | Dictionary | Will network services be deployed on this node type. | |||
l1 | Boolean | False |
?? | ||
l2 | Boolean | False |
Vlans | ||
l3 | Boolean | False |
VRFs, SVIs (if l2 is true). Only supported with underlay_router. |
||
underlay_router | Boolean | True |
Is this node type a L3 device. | ||
uplink_type | String | p2p |
Valid Values: - p2p - port-channel - p2p-vrfs - lan |
uplink_type must be p2p , p2p-vrfs or lan if vtep or underlay_router is true.For p2p-vrfs , the uplinks are configured as L3 interfaces with a subinterface for each VRFin network_services present on both the uplink and the downlink switch.The subinterface ID is the vrf_id .‘underlay_router’ and ‘network_services.l3’ must be set to true. VRF default is always configured on the physical interface using the underlay routing protocol.All subinterfaces use the same IP address as the physical interface. Multicast is not supported. Only BGP is supported for subinterfaces. For lan , a single uplink interface is supported and will be configured as an L3 Interface withsubinterfaces for each SVI defined under the VRFs in network_services as long as the uplink switch alsohas the VLAN permitted by tag/tenant filtering. |
|
vtep | Boolean | False |
Is this switch an EVPN VTEP. | ||
mpls_lsr | Boolean | False |
Is this switch an MPLS LSR. | ||
ip_addressing | Dictionary | Override ip_addressing templates. | |||
python_module | String | Custom Python Module to import for IP addressing. | |||
python_class_name | String | AvdIpAddressing |
Name of Custom Python Class to import for IP addressing. | ||
router_id | String | Path to Custom J2 template. | |||
router_id_ipv6 | String | Path to Custom J2 template. | |||
mlag_ip_primary | String | Path to Custom J2 template. | |||
mlag_ip_secondary | String | Path to Custom J2 template. | |||
mlag_l3_ip_primary | String | Path to Custom J2 template. | |||
mlag_l3_ip_secondary | String | Path to Custom J2 template. | |||
mlag_ibgp_peering_ip_primary | String | Path to Custom J2 template. | |||
mlag_ibgp_peering_ip_secondary | String | Path to Custom J2 template. | |||
p2p_uplinks_ip | String | Path to Custom J2 template. | |||
p2p_uplinks_peer_ip | String | Path to Custom J2 template. | |||
vtep_ip_mlag | String | Path to Custom J2 template. | |||
vtep_ip | String | Path to Custom J2 template. | |||
interface_descriptions | Dictionary | Override interface_descriptions templates. If description templates use Jinja2, they have to strip whitespaces using {%- -%} on any code blocks. |
|||
python_module | String | Custom Python Module to import for interface descriptions. | |||
python_class_name | String | AvdInterfaceDescriptions |
Name of Custom Python Class to import for interface descriptions. | ||
underlay_ethernet_interfaces | String | Path to Custom J2 template. | |||
underlay_port_channel_interfaces | String | Path to Custom J2 template. | |||
mlag_ethernet_interfaces | String | Path to Custom J2 template. | |||
mlag_port_channel_interfaces | String | Path to Custom J2 template. | |||
connected_endpoints_ethernet_interfaces | String | Path to Custom J2 template. | |||
connected_endpoints_port_channel_interfaces | String | Path to Custom J2 template. | |||
router_id_loopback_interface | String | Path to Custom J2 template. | |||
vtep_loopback_interface | String | Path to Custom J2 template. | |||
overlay_loopback_interface deprecated | String | Path to Custom J2 template.This key is deprecated. Support will be removed in AVD version 6.0.0. Use router_id_loopback_interface instead. |
# Define Custom Node Type Keys, to specify the properties of each node type in the fabric.
# This allows for complete customization of the fabric layout and functionality.
# `custom_node_type_keys` should be defined in top level group_var for the fabric.
# These values will be combined with the defaults; custom node type keys named the same as a
# default node_type_key will replace the default.
custom_node_type_keys:
- key: <str; required; unique>
# Type value matching this node_type_key.
type: <str>
# Are endpoints connected to this node type.
connected_endpoints: <bool; default=False>
# Default evpn_role. Can be overridden in topology vars.
default_evpn_role: <str; "none" | "client" | "server"; default="none">
# Default PTP priority 1
default_ptp_priority1: <int; 0-255; default=127>
# Set the default underlay routing_protocol.
# Can be overridden by setting "underlay_routing_protocol" host/group_vars.
default_underlay_routing_protocol: <str; "ebgp" | "ospf" | "ospf-ldp" | "isis" | "isis-sr" | "isis-ldp" | "isis-sr-ldp" | "none"; default="ebgp">
# Set the default overlay routing_protocol.
# Can be overridden by setting "overlay_routing_protocol" host/group_vars.
default_overlay_routing_protocol: <str; "ebgp" | "ibgp" | "her" | "cvx" | "none"; default="ebgp">
# Set the default mpls overlay role.
# Acting role in overlay control plane.
default_mpls_overlay_role: <str; "client" | "server" | "none">
# Set the default overlay address families.
default_overlay_address_families: # default=['evpn']
- <str; "evpn" | "vpn-ipv4" | "vpn-ipv6">
# Set the default evpn encapsulation.
default_evpn_encapsulation: <str; "mpls" | "vxlan"; default="vxlan">
# Set the default WAN role.
#
# This is used both for AutoVPN and Pathfinder designs.
# That means if `wan_mode` root key is set to `autovpn` or `cv-pathfinder`.
# `server` indicates that the router is a route-reflector.
#
# Only supported if `overlay_routing_protocol` is set to `ibgp`.
default_wan_role: <str; "client" | "server">
# Set the default flow tracker type.
default_flow_tracker_type: <str; "sampled" | "hardware"; default="sampled">
# Can this node type support mlag.
mlag_support: <bool; default=False>
# Will network services be deployed on this node type.
network_services:
# ??
l1: <bool; default=False>
# Vlans
l2: <bool; default=False>
# VRFs, SVIs (if l2 is true).
# Only supported with underlay_router.
l3: <bool; default=False>
# Is this node type a L3 device.
underlay_router: <bool; default=True>
# `uplink_type` must be `p2p`, `p2p-vrfs` or `lan` if `vtep` or `underlay_router` is true.
#
# For `p2p-vrfs`, the uplinks are configured as L3 interfaces with a subinterface for each VRF
# in `network_services` present on both the uplink and the downlink switch.
# The subinterface ID is the `vrf_id`.
# 'underlay_router' and 'network_services.l3' must be set to true.
# VRF `default` is always configured on the physical interface using the underlay routing protocol.
# All subinterfaces use the same IP address as the physical interface.
# Multicast is not supported.
# Only BGP is supported for subinterfaces.
#
# For `lan`, a single uplink interface is supported and will be configured as an L3 Interface with
# subinterfaces for each SVI defined under the VRFs in `network_services` as long as the uplink switch also
# has the VLAN permitted by tag/tenant filtering.
uplink_type: <str; "p2p" | "port-channel" | "p2p-vrfs" | "lan"; default="p2p">
# Is this switch an EVPN VTEP.
vtep: <bool; default=False>
# Is this switch an MPLS LSR.
mpls_lsr: <bool; default=False>
# Override ip_addressing templates.
ip_addressing:
# Custom Python Module to import for IP addressing.
python_module: <str>
# Name of Custom Python Class to import for IP addressing.
python_class_name: <str; default="AvdIpAddressing">
# Path to Custom J2 template.
router_id: <str>
# Path to Custom J2 template.
router_id_ipv6: <str>
# Path to Custom J2 template.
mlag_ip_primary: <str>
# Path to Custom J2 template.
mlag_ip_secondary: <str>
# Path to Custom J2 template.
mlag_l3_ip_primary: <str>
# Path to Custom J2 template.
mlag_l3_ip_secondary: <str>
# Path to Custom J2 template.
mlag_ibgp_peering_ip_primary: <str>
# Path to Custom J2 template.
mlag_ibgp_peering_ip_secondary: <str>
# Path to Custom J2 template.
p2p_uplinks_ip: <str>
# Path to Custom J2 template.
p2p_uplinks_peer_ip: <str>
# Path to Custom J2 template.
vtep_ip_mlag: <str>
# Path to Custom J2 template.
vtep_ip: <str>
# Override interface_descriptions templates.
# If description templates use Jinja2, they have to strip whitespaces using {%- -%} on any code blocks.
interface_descriptions:
# Custom Python Module to import for interface descriptions.
python_module: <str>
# Name of Custom Python Class to import for interface descriptions.
python_class_name: <str; default="AvdInterfaceDescriptions">
# Path to Custom J2 template.
underlay_ethernet_interfaces: <str>
# Path to Custom J2 template.
underlay_port_channel_interfaces: <str>
# Path to Custom J2 template.
mlag_ethernet_interfaces: <str>
# Path to Custom J2 template.
mlag_port_channel_interfaces: <str>
# Path to Custom J2 template.
connected_endpoints_ethernet_interfaces: <str>
# Path to Custom J2 template.
connected_endpoints_port_channel_interfaces: <str>
# Path to Custom J2 template.
router_id_loopback_interface: <str>
# Path to Custom J2 template.
vtep_loopback_interface: <str>
# Path to Custom J2 template.
# This key is deprecated.
# Support will be removed in AVD version 6.0.0.
# Use <samp>router_id_loopback_interface</samp> instead.
overlay_loopback_interface: <str>
# Define Node Type Keys, to specify the properties of each node type in the fabric.
# This allows for complete customization of the fabric layout and functionality.
# `node_type_keys` should be defined in top level group_var for the fabric.
#
# The default values will be overridden if this key is defined.
# If you need to change all the existing `node_type_keys`, it is recommended to copy the defaults and modify them.
# If you need to add custom `node_type_keys`, create them under `custom_node_type_keys` - if named identically to default `node_type_keys` entries,
# custom entries will replace the equivalent default entry.
node_type_keys:
- key: <str; required; unique>
# Type value matching this node_type_key.
type: <str>
# Are endpoints connected to this node type.
connected_endpoints: <bool; default=False>
# Default evpn_role. Can be overridden in topology vars.
default_evpn_role: <str; "none" | "client" | "server"; default="none">
# Default PTP priority 1
default_ptp_priority1: <int; 0-255; default=127>
# Set the default underlay routing_protocol.
# Can be overridden by setting "underlay_routing_protocol" host/group_vars.
default_underlay_routing_protocol: <str; "ebgp" | "ospf" | "ospf-ldp" | "isis" | "isis-sr" | "isis-ldp" | "isis-sr-ldp" | "none"; default="ebgp">
# Set the default overlay routing_protocol.
# Can be overridden by setting "overlay_routing_protocol" host/group_vars.
default_overlay_routing_protocol: <str; "ebgp" | "ibgp" | "her" | "cvx" | "none"; default="ebgp">
# Set the default mpls overlay role.
# Acting role in overlay control plane.
default_mpls_overlay_role: <str; "client" | "server" | "none">
# Set the default overlay address families.
default_overlay_address_families: # default=['evpn']
- <str; "evpn" | "vpn-ipv4" | "vpn-ipv6">
# Set the default evpn encapsulation.
default_evpn_encapsulation: <str; "mpls" | "vxlan"; default="vxlan">
# Set the default WAN role.
#
# This is used both for AutoVPN and Pathfinder designs.
# That means if `wan_mode` root key is set to `autovpn` or `cv-pathfinder`.
# `server` indicates that the router is a route-reflector.
#
# Only supported if `overlay_routing_protocol` is set to `ibgp`.
default_wan_role: <str; "client" | "server">
# Set the default flow tracker type.
default_flow_tracker_type: <str; "sampled" | "hardware"; default="sampled">
# Can this node type support mlag.
mlag_support: <bool; default=False>
# Will network services be deployed on this node type.
network_services:
# ??
l1: <bool; default=False>
# Vlans
l2: <bool; default=False>
# VRFs, SVIs (if l2 is true).
# Only supported with underlay_router.
l3: <bool; default=False>
# Is this node type a L3 device.
underlay_router: <bool; default=True>
# `uplink_type` must be `p2p`, `p2p-vrfs` or `lan` if `vtep` or `underlay_router` is true.
#
# For `p2p-vrfs`, the uplinks are configured as L3 interfaces with a subinterface for each VRF
# in `network_services` present on both the uplink and the downlink switch.
# The subinterface ID is the `vrf_id`.
# 'underlay_router' and 'network_services.l3' must be set to true.
# VRF `default` is always configured on the physical interface using the underlay routing protocol.
# All subinterfaces use the same IP address as the physical interface.
# Multicast is not supported.
# Only BGP is supported for subinterfaces.
#
# For `lan`, a single uplink interface is supported and will be configured as an L3 Interface with
# subinterfaces for each SVI defined under the VRFs in `network_services` as long as the uplink switch also
# has the VLAN permitted by tag/tenant filtering.
uplink_type: <str; "p2p" | "port-channel" | "p2p-vrfs" | "lan"; default="p2p">
# Is this switch an EVPN VTEP.
vtep: <bool; default=False>
# Is this switch an MPLS LSR.
mpls_lsr: <bool; default=False>
# Override ip_addressing templates.
ip_addressing:
# Custom Python Module to import for IP addressing.
python_module: <str>
# Name of Custom Python Class to import for IP addressing.
python_class_name: <str; default="AvdIpAddressing">
# Path to Custom J2 template.
router_id: <str>
# Path to Custom J2 template.
router_id_ipv6: <str>
# Path to Custom J2 template.
mlag_ip_primary: <str>
# Path to Custom J2 template.
mlag_ip_secondary: <str>
# Path to Custom J2 template.
mlag_l3_ip_primary: <str>
# Path to Custom J2 template.
mlag_l3_ip_secondary: <str>
# Path to Custom J2 template.
mlag_ibgp_peering_ip_primary: <str>
# Path to Custom J2 template.
mlag_ibgp_peering_ip_secondary: <str>
# Path to Custom J2 template.
p2p_uplinks_ip: <str>
# Path to Custom J2 template.
p2p_uplinks_peer_ip: <str>
# Path to Custom J2 template.
vtep_ip_mlag: <str>
# Path to Custom J2 template.
vtep_ip: <str>
# Override interface_descriptions templates.
# If description templates use Jinja2, they have to strip whitespaces using {%- -%} on any code blocks.
interface_descriptions:
# Custom Python Module to import for interface descriptions.
python_module: <str>
# Name of Custom Python Class to import for interface descriptions.
python_class_name: <str; default="AvdInterfaceDescriptions">
# Path to Custom J2 template.
underlay_ethernet_interfaces: <str>
# Path to Custom J2 template.
underlay_port_channel_interfaces: <str>
# Path to Custom J2 template.
mlag_ethernet_interfaces: <str>
# Path to Custom J2 template.
mlag_port_channel_interfaces: <str>
# Path to Custom J2 template.
connected_endpoints_ethernet_interfaces: <str>
# Path to Custom J2 template.
connected_endpoints_port_channel_interfaces: <str>
# Path to Custom J2 template.
router_id_loopback_interface: <str>
# Path to Custom J2 template.
vtep_loopback_interface: <str>
# Path to Custom J2 template.
# This key is deprecated.
# Support will be removed in AVD version 6.0.0.
# Use <samp>router_id_loopback_interface</samp> instead.
overlay_loopback_interface: <str>
Context for ip_addressing templates¶
To help calculate the custom IP addressing, the following contextual variables are available to the custom templates:
router_id:
{{ switch_id }}
{{ loopback_ipv4_pool }}
{{ loopback_ipv4_offset }}
- All group/hostvars
mlag_ip_primary & mlag_ip_secondary:
{{ mlag_primary_id }}
{{ mlag_secondary_id }}
{{ switch_data.combined.mlag_peer_address_family }}
{{ switch_data.combined.mlag_peer_ipv4_pool }}
{{ switch_data.combined.mlag_peer_ipv6_pool }}
- All group/hostvars
mlag_l3_ip_primary & mlag_l3_ip_secondary:
{{ mlag_primary_id }}
{{ mlag_secondary_id }}
{{ switch_data.combined.mlag_peer_l3_ipv4_pool }}
- All group/hostvars
p2p_uplinks_ip & p2p_uplinks_peer_ip:
{{ switch.uplink_ipv4_pool }}
{{ switch.id }}
{{ switch.max_uplink_switches }}
{{ switch.max_parallel_uplinks }}
{{ uplink_switch_index }}
- All group/hostvars
vtep_ip_mlag:
{{ switch_vtep_loopback_ipv4_pool }}
{{ mlag_primary_id }}
{{ loopback_ipv4_offset }}
- All group/hostvars
vtep_ip:
{{ switch_vtep_loopback_ipv4_pool }}
{{ switch_id }}
{{ loopback_ipv4_offset }}
- All group/hostvars
While all templates can leverage the internal switch facts (switch.*) to customize the interface descriptions, the values are not part of the officially supported data models, and may change without notice.
Context for interface_descriptions templates¶
Caveat
In AVD 4.x, it is not possible to completely overwrite the description of the subinterfaces when uplink_type
is set to p2p-vrfs
. The string _vrf_<VRF>
is always appended to the description.
To help format the custom interface descriptions, the following contextual variables are available to the custom templates:
underlay_ethernet_interfaces:
{{ link.peer }}
{{ link.peer_interface }}
{{ link.type }} (underlay_p2p or underlay_l2)
- All group/hostvars
underlay_port_channel_interfaces:
{{ link.channel_description }}
{{ link.channel_group_id }}
{{ link.peer }}
{{ link.peer_channel_group_id }}
- All group/hostvars
mlag_ethernet_interfaces:
{{ mlag_interface }}
{{ mlag_peer }}
- All group/hostvars
mlag_port_channel_interfaces:
{{ mlag_interfaces }}
(list of strings){{ mlag_peer }}
{{ mlag_port_channel_id }}
- All group/hostvars
connected_endpoints_ethernet_interfaces:
{{ peer }}
{{ peer_interface }}
{{ adapter_description }}
- All group/hostvars
connected_endpoints_port_channel_interfaces:
{{ peer }}
{{ adapter_port_channel_id }}
{{ adapter_port_channel_description }}
{{ adapter_description }}
- All group/hostvars
router_id_loopback_interfaces (replacing overlay_loopback_interface):
{{ router_id_loopback_description }}
{{ overlay_loopback_description }}
(deprecated - userouter_id_loopback_description
instead)- All group/hostvars
vtep_loopback_interface:
{{ vtep_loopback_description }}
- All group/hostvars
While all templates can leverage the internal switch facts (switch.*) to customize the interface descriptions, the values are not part of the officially supported data models and may change without notice.
Type setting¶
- The
type:
variable needs to be defined for each device in the fabric. - This is leveraged to load the appropriate settings to generate the configuration.
Tip
The node type setting can be automatically derived from a switch name by defining the patterns in the default_node_types
data model.
Type setting example
# Defined in SPINE.yml file
# Can also be set directly in your inventory file under spine group
type: spine
# Defined in L3LEAFS.yml
# Can also be set directly in your inventory file under l3leaf group
type: l3leaf
# Defined in L2LEAFS.yml
# Can also be set directly in your inventory file under l2leaf group
type: l2leaf
# Defined in SUPER-SPINES.yml
# Can also be set directly in your inventory file under super-spine group
type: super-spine
# Defined in ROUTE-SERVERS.yml
# Can also be set directly in your inventory file under route-server group
type: overlay-controller
Variable | Type | Required | Default | Value Restrictions | Description |
---|---|---|---|---|---|
type | String | Valid Values: -
-
|
The type: variable needs to be defined for each device in the fabric.This is leveraged to load the appropriate template to generate the configuration. |
Default node types settings¶
Node types can be defined statically on each node or in each group of nodes. By leveraging default_node_types
, regular expressions can be used to determine the node type based
on the hostname.
Warning
Please note that using the default_node_types
functionality will cause certain tests in the eos_validate_state role to not be executed.
This functionality will be restored as part of a later update to eos_validate_state and this note will then be removed.
Variable | Type | Required | Default | Value Restrictions | Description |
---|---|---|---|---|---|
default_node_types | List, items: Dictionary | Uses hostname matches against a regular expression to determine the node type. | |||
- node_type | String | Required, Unique | Resulting node type when regex matches. | ||
match_hostnames | List, items: String | Required | Regular expressions to match against hostnames. | ||
- <str> | String | Required | Regex needs to match full hostname (i.e. is bounded by ^ and $ elements). |
# Uses hostname matches against a regular expression to determine the node type.
default_node_types:
# Resulting node type when regex matches.
- node_type: <str; required; unique>
# Regular expressions to match against hostnames.
match_hostnames: # required
# Regex needs to match full hostname (i.e. is bounded by ^ and $ elements).
- <str; required>
Node type settings¶
Node type settings are defined under the node_type_keys.key
i.e spine:
, l3leaf:
, l2leaf:
to configure management, underlay, overlay functionality.
Node type structure¶
All node types have the same structure based on defaults
, node_group
, node_group.node
, node
and all variables can be defined in any section and support inheritance like this:
Under node_type_keys.key:
Tip
Define common node settings under defaults. This reduces user input requirements, limiting errors.
Variable | Type | Required | Default | Value Restrictions | Description |
---|---|---|---|---|---|
<node_type_keys.key> | Dictionary | ||||
defaults | Dictionary | Define variables for all nodes of this type. | |||
mgmt_gateway | String | This key sets the management gateway for the device. It takes precedence over the global mgmt_gateway . |
|||
ipv6_mgmt_gateway | String | This key sets the ipv6 management gateway for the device. It takes precedence over the global ipv6_mgmt_gateway . |
|||
flow_tracker_type | String | Valid Values: - sampled - hardware |
Set the flow tracker type. Override the default_flow_tracker_type`` set at the node_type_keylevel.<br> default_flow_tracker_typedefault value is sampled`. |
||
node_groups | List, items: Dictionary | Define variables related to all nodes part of this group. | |||
- group | String | Required, Unique | The Node Group Name is used for MLAG domain unless set with ‘mlag_domain_id’. The Node Group Name is also used for peer description on downstream switches’ uplinks. |
||
nodes | List, items: Dictionary | Define variables per node. | |||
- name | String | Required, Unique | The Node Name is used as “hostname”. | ||
mgmt_gateway | String | This key sets the management gateway for the device. It takes precedence over the global mgmt_gateway . |
|||
ipv6_mgmt_gateway | String | This key sets the ipv6 management gateway for the device. It takes precedence over the global ipv6_mgmt_gateway . |
|||
flow_tracker_type | String | Valid Values: - sampled - hardware |
Set the flow tracker type. Override the default_flow_tracker_type`` set at the node_type_keylevel.<br> default_flow_tracker_typedefault value is sampled`. |
||
mgmt_gateway | String | This key sets the management gateway for the device. It takes precedence over the global mgmt_gateway . |
|||
ipv6_mgmt_gateway | String | This key sets the ipv6 management gateway for the device. It takes precedence over the global ipv6_mgmt_gateway . |
|||
flow_tracker_type | String | Valid Values: - sampled - hardware |
Set the flow tracker type. Override the default_flow_tracker_type`` set at the node_type_keylevel.<br> default_flow_tracker_typedefault value is sampled`. |
||
nodes | List, items: Dictionary | Define variables per node. | |||
- name | String | Required, Unique | The Node Name is used as “hostname”. | ||
mgmt_gateway | String | This key sets the management gateway for the device. It takes precedence over the global mgmt_gateway . |
|||
ipv6_mgmt_gateway | String | This key sets the ipv6 management gateway for the device. It takes precedence over the global ipv6_mgmt_gateway . |
|||
flow_tracker_type | String | Valid Values: - sampled - hardware |
Set the flow tracker type. Override the default_flow_tracker_type`` set at the node_type_keylevel.<br> default_flow_tracker_typedefault value is sampled`. |
<node_type_keys.key>:
# Define variables for all nodes of this type.
defaults:
# This key sets the management gateway for the device. It takes precedence over the global `mgmt_gateway`.
mgmt_gateway: <str>
# This key sets the ipv6 management gateway for the device. It takes precedence over the global `ipv6_mgmt_gateway`.
ipv6_mgmt_gateway: <str>
# Set the flow tracker type.
# Override the `default_flow_tracker_type`` set at the `node_type_key` level.
# `default_flow_tracker_type` default value is `sampled`.
flow_tracker_type: <str; "sampled" | "hardware">
# Define variables related to all nodes part of this group.
node_groups:
# The Node Group Name is used for MLAG domain unless set with 'mlag_domain_id'.
# The Node Group Name is also used for peer description on downstream switches' uplinks.
- group: <str; required; unique>
# Define variables per node.
nodes:
# The Node Name is used as "hostname".
- name: <str; required; unique>
# This key sets the management gateway for the device. It takes precedence over the global `mgmt_gateway`.
mgmt_gateway: <str>
# This key sets the ipv6 management gateway for the device. It takes precedence over the global `ipv6_mgmt_gateway`.
ipv6_mgmt_gateway: <str>
# Set the flow tracker type.
# Override the `default_flow_tracker_type`` set at the `node_type_key` level.
# `default_flow_tracker_type` default value is `sampled`.
flow_tracker_type: <str; "sampled" | "hardware">
# This key sets the management gateway for the device. It takes precedence over the global `mgmt_gateway`.
mgmt_gateway: <str>
# This key sets the ipv6 management gateway for the device. It takes precedence over the global `ipv6_mgmt_gateway`.
ipv6_mgmt_gateway: <str>
# Set the flow tracker type.
# Override the `default_flow_tracker_type`` set at the `node_type_key` level.
# `default_flow_tracker_type` default value is `sampled`.
flow_tracker_type: <str; "sampled" | "hardware">
# Define variables per node.
nodes:
# The Node Name is used as "hostname".
- name: <str; required; unique>
# This key sets the management gateway for the device. It takes precedence over the global `mgmt_gateway`.
mgmt_gateway: <str>
# This key sets the ipv6 management gateway for the device. It takes precedence over the global `ipv6_mgmt_gateway`.
ipv6_mgmt_gateway: <str>
# Set the flow tracker type.
# Override the `default_flow_tracker_type`` set at the `node_type_key` level.
# `default_flow_tracker_type` default value is `sampled`.
flow_tracker_type: <str; "sampled" | "hardware">
Node type common configuration¶
Define your nodes, id, management and common configuration elements.
Tip
If a node is not deployed, leverage is_deployed: false
to indicate the node as offline.
Info
A static unique identifier (id) is assigned to each device. This is leveraged to derive the IP address assignment from each summary defined in the Fabric Underlay and Overlay Topology Variables.
Variable | Type | Required | Default | Value Restrictions | Description |
---|---|---|---|---|---|
<node_type_keys.key> | Dictionary | ||||
defaults | Dictionary | Define variables for all nodes of this type. | |||
id | Integer | Unique identifier used for IP addressing and other algorithms. | |||
platform | String | Arista platform family. | |||
mac_address | String | Leverage to document management interface mac address. | |||
system_mac_address | String | System MAC Address in this following format: “xx:xx:xx:xx:xx:xx”. Set to the same MAC address as available in “show version” on the device. “system_mac_address” can also be set directly as a hostvar. If both are set, the setting under node type settings takes precedence. |
|||
serial_number | String | Set to the Serial Number of the device. Only used for documentation purpose in the fabric documentation and part of the structured_config. “serial_number” can also be set directly as a hostvar. If both are set, the setting under node type settings takes precedence. |
|||
rack | String | Rack that the switch is located in (only used in snmp_settings location). | |||
mgmt_ip | String | Format: cidr | Node management interface IPv4 address. | ||
ipv6_mgmt_ip | String | Format: cidr | Node management interface IPv6 address. | ||
mgmt_interface | String | Management Interface Name. Default -> platform_management_interface -> mgmt_interface -> “Management1”. |
|||
lacp_port_id_range | Dictionary | This will generate the “lacp port-id range”, “begin” and “end” values based on node “id” and the number of nodes in the “node_group”. Unique LACP port-id ranges are recommended for EVPN Multihoming designs. |
|||
enabled | Boolean | False |
|||
size | Integer | 128 |
Recommended size > = number of ports in the switch. | ||
offset | Integer | 0 |
Offset is used to avoid overlapping port-id ranges of different switches. Useful when a “connected-endpoint” is connected to switches in different “node_groups”. |
||
always_configure_ip_routing | Boolean | False |
Force configuration of “ip routing” even on L2 devices. Use this to retain behavior of AVD versions below 4.0.0. |
||
raw_eos_cli | String | EOS CLI rendered directly on the root level of the final EOS configuration. | |||
structured_config | Dictionary | Custom structured config for eos_cli_config_gen. | |||
node_groups | List, items: Dictionary | Define variables related to all nodes part of this group. | |||
- group | String | Required, Unique | The Node Group Name is used for MLAG domain unless set with ‘mlag_domain_id’. The Node Group Name is also used for peer description on downstream switches’ uplinks. |
||
nodes | List, items: Dictionary | Define variables per node. | |||
- name | String | Required, Unique | The Node Name is used as “hostname”. | ||
id | Integer | Unique identifier used for IP addressing and other algorithms. | |||
platform | String | Arista platform family. | |||
mac_address | String | Leverage to document management interface mac address. | |||
system_mac_address | String | System MAC Address in this following format: “xx:xx:xx:xx:xx:xx”. Set to the same MAC address as available in “show version” on the device. “system_mac_address” can also be set directly as a hostvar. If both are set, the setting under node type settings takes precedence. |
|||
serial_number | String | Set to the Serial Number of the device. Only used for documentation purpose in the fabric documentation and part of the structured_config. “serial_number” can also be set directly as a hostvar. If both are set, the setting under node type settings takes precedence. |
|||
rack | String | Rack that the switch is located in (only used in snmp_settings location). | |||
mgmt_ip | String | Format: cidr | Node management interface IPv4 address. | ||
ipv6_mgmt_ip | String | Format: cidr | Node management interface IPv6 address. | ||
mgmt_interface | String | Management Interface Name. Default -> platform_management_interface -> mgmt_interface -> “Management1”. |
|||
lacp_port_id_range | Dictionary | This will generate the “lacp port-id range”, “begin” and “end” values based on node “id” and the number of nodes in the “node_group”. Unique LACP port-id ranges are recommended for EVPN Multihoming designs. |
|||
enabled | Boolean | False |
|||
size | Integer | 128 |
Recommended size > = number of ports in the switch. | ||
offset | Integer | 0 |
Offset is used to avoid overlapping port-id ranges of different switches. Useful when a “connected-endpoint” is connected to switches in different “node_groups”. |
||
always_configure_ip_routing | Boolean | False |
Force configuration of “ip routing” even on L2 devices. Use this to retain behavior of AVD versions below 4.0.0. |
||
raw_eos_cli | String | EOS CLI rendered directly on the root level of the final EOS configuration. | |||
structured_config | Dictionary | Custom structured config for eos_cli_config_gen. | |||
id | Integer | Unique identifier used for IP addressing and other algorithms. | |||
platform | String | Arista platform family. | |||
mac_address | String | Leverage to document management interface mac address. | |||
system_mac_address | String | System MAC Address in this following format: “xx:xx:xx:xx:xx:xx”. Set to the same MAC address as available in “show version” on the device. “system_mac_address” can also be set directly as a hostvar. If both are set, the setting under node type settings takes precedence. |
|||
serial_number | String | Set to the Serial Number of the device. Only used for documentation purpose in the fabric documentation and part of the structured_config. “serial_number” can also be set directly as a hostvar. If both are set, the setting under node type settings takes precedence. |
|||
rack | String | Rack that the switch is located in (only used in snmp_settings location). | |||
mgmt_ip | String | Format: cidr | Node management interface IPv4 address. | ||
ipv6_mgmt_ip | String | Format: cidr | Node management interface IPv6 address. | ||
mgmt_interface | String | Management Interface Name. Default -> platform_management_interface -> mgmt_interface -> “Management1”. |
|||
lacp_port_id_range | Dictionary | This will generate the “lacp port-id range”, “begin” and “end” values based on node “id” and the number of nodes in the “node_group”. Unique LACP port-id ranges are recommended for EVPN Multihoming designs. |
|||
enabled | Boolean | False |
|||
size | Integer | 128 |
Recommended size > = number of ports in the switch. | ||
offset | Integer | 0 |
Offset is used to avoid overlapping port-id ranges of different switches. Useful when a “connected-endpoint” is connected to switches in different “node_groups”. |
||
always_configure_ip_routing | Boolean | False |
Force configuration of “ip routing” even on L2 devices. Use this to retain behavior of AVD versions below 4.0.0. |
||
raw_eos_cli | String | EOS CLI rendered directly on the root level of the final EOS configuration. | |||
structured_config | Dictionary | Custom structured config for eos_cli_config_gen. | |||
nodes | List, items: Dictionary | Define variables per node. | |||
- name | String | Required, Unique | The Node Name is used as “hostname”. | ||
id | Integer | Unique identifier used for IP addressing and other algorithms. | |||
platform | String | Arista platform family. | |||
mac_address | String | Leverage to document management interface mac address. | |||
system_mac_address | String | System MAC Address in this following format: “xx:xx:xx:xx:xx:xx”. Set to the same MAC address as available in “show version” on the device. “system_mac_address” can also be set directly as a hostvar. If both are set, the setting under node type settings takes precedence. |
|||
serial_number | String | Set to the Serial Number of the device. Only used for documentation purpose in the fabric documentation and part of the structured_config. “serial_number” can also be set directly as a hostvar. If both are set, the setting under node type settings takes precedence. |
|||
rack | String | Rack that the switch is located in (only used in snmp_settings location). | |||
mgmt_ip | String | Format: cidr | Node management interface IPv4 address. | ||
ipv6_mgmt_ip | String | Format: cidr | Node management interface IPv6 address. | ||
mgmt_interface | String | Management Interface Name. Default -> platform_management_interface -> mgmt_interface -> “Management1”. |
|||
lacp_port_id_range | Dictionary | This will generate the “lacp port-id range”, “begin” and “end” values based on node “id” and the number of nodes in the “node_group”. Unique LACP port-id ranges are recommended for EVPN Multihoming designs. |
|||
enabled | Boolean | False |
|||
size | Integer | 128 |
Recommended size > = number of ports in the switch. | ||
offset | Integer | 0 |
Offset is used to avoid overlapping port-id ranges of different switches. Useful when a “connected-endpoint” is connected to switches in different “node_groups”. |
||
always_configure_ip_routing | Boolean | False |
Force configuration of “ip routing” even on L2 devices. Use this to retain behavior of AVD versions below 4.0.0. |
||
raw_eos_cli | String | EOS CLI rendered directly on the root level of the final EOS configuration. | |||
structured_config | Dictionary | Custom structured config for eos_cli_config_gen. |
<node_type_keys.key>:
# Define variables for all nodes of this type.
defaults:
# Unique identifier used for IP addressing and other algorithms.
id: <int>
# Arista platform family.
platform: <str>
# Leverage to document management interface mac address.
mac_address: <str>
# System MAC Address in this following format: "xx:xx:xx:xx:xx:xx".
# Set to the same MAC address as available in "show version" on the device.
# "system_mac_address" can also be set directly as a hostvar.
# If both are set, the setting under node type settings takes precedence.
system_mac_address: <str>
# Set to the Serial Number of the device.
# Only used for documentation purpose in the fabric documentation and part of the structured_config.
# "serial_number" can also be set directly as a hostvar.
# If both are set, the setting under node type settings takes precedence.
serial_number: <str>
# Rack that the switch is located in (only used in snmp_settings location).
rack: <str>
# Node management interface IPv4 address.
mgmt_ip: <str>
# Node management interface IPv6 address.
ipv6_mgmt_ip: <str>
# Management Interface Name.
# Default -> platform_management_interface -> mgmt_interface -> "Management1".
mgmt_interface: <str>
# This will generate the "lacp port-id range", "begin" and "end" values based on node "id" and the number of nodes in the "node_group".
# Unique LACP port-id ranges are recommended for EVPN Multihoming designs.
lacp_port_id_range:
enabled: <bool; default=False>
# Recommended size > = number of ports in the switch.
size: <int; default=128>
# Offset is used to avoid overlapping port-id ranges of different switches.
# Useful when a "connected-endpoint" is connected to switches in different "node_groups".
offset: <int; default=0>
# Force configuration of "ip routing" even on L2 devices.
# Use this to retain behavior of AVD versions below 4.0.0.
always_configure_ip_routing: <bool; default=False>
# EOS CLI rendered directly on the root level of the final EOS configuration.
raw_eos_cli: <str>
# Custom structured config for eos_cli_config_gen.
structured_config: <dict>
# Define variables related to all nodes part of this group.
node_groups:
# The Node Group Name is used for MLAG domain unless set with 'mlag_domain_id'.
# The Node Group Name is also used for peer description on downstream switches' uplinks.
- group: <str; required; unique>
# Define variables per node.
nodes:
# The Node Name is used as "hostname".
- name: <str; required; unique>
# Unique identifier used for IP addressing and other algorithms.
id: <int>
# Arista platform family.
platform: <str>
# Leverage to document management interface mac address.
mac_address: <str>
# System MAC Address in this following format: "xx:xx:xx:xx:xx:xx".
# Set to the same MAC address as available in "show version" on the device.
# "system_mac_address" can also be set directly as a hostvar.
# If both are set, the setting under node type settings takes precedence.
system_mac_address: <str>
# Set to the Serial Number of the device.
# Only used for documentation purpose in the fabric documentation and part of the structured_config.
# "serial_number" can also be set directly as a hostvar.
# If both are set, the setting under node type settings takes precedence.
serial_number: <str>
# Rack that the switch is located in (only used in snmp_settings location).
rack: <str>
# Node management interface IPv4 address.
mgmt_ip: <str>
# Node management interface IPv6 address.
ipv6_mgmt_ip: <str>
# Management Interface Name.
# Default -> platform_management_interface -> mgmt_interface -> "Management1".
mgmt_interface: <str>
# This will generate the "lacp port-id range", "begin" and "end" values based on node "id" and the number of nodes in the "node_group".
# Unique LACP port-id ranges are recommended for EVPN Multihoming designs.
lacp_port_id_range:
enabled: <bool; default=False>
# Recommended size > = number of ports in the switch.
size: <int; default=128>
# Offset is used to avoid overlapping port-id ranges of different switches.
# Useful when a "connected-endpoint" is connected to switches in different "node_groups".
offset: <int; default=0>
# Force configuration of "ip routing" even on L2 devices.
# Use this to retain behavior of AVD versions below 4.0.0.
always_configure_ip_routing: <bool; default=False>
# EOS CLI rendered directly on the root level of the final EOS configuration.
raw_eos_cli: <str>
# Custom structured config for eos_cli_config_gen.
structured_config: <dict>
# Unique identifier used for IP addressing and other algorithms.
id: <int>
# Arista platform family.
platform: <str>
# Leverage to document management interface mac address.
mac_address: <str>
# System MAC Address in this following format: "xx:xx:xx:xx:xx:xx".
# Set to the same MAC address as available in "show version" on the device.
# "system_mac_address" can also be set directly as a hostvar.
# If both are set, the setting under node type settings takes precedence.
system_mac_address: <str>
# Set to the Serial Number of the device.
# Only used for documentation purpose in the fabric documentation and part of the structured_config.
# "serial_number" can also be set directly as a hostvar.
# If both are set, the setting under node type settings takes precedence.
serial_number: <str>
# Rack that the switch is located in (only used in snmp_settings location).
rack: <str>
# Node management interface IPv4 address.
mgmt_ip: <str>
# Node management interface IPv6 address.
ipv6_mgmt_ip: <str>
# Management Interface Name.
# Default -> platform_management_interface -> mgmt_interface -> "Management1".
mgmt_interface: <str>
# This will generate the "lacp port-id range", "begin" and "end" values based on node "id" and the number of nodes in the "node_group".
# Unique LACP port-id ranges are recommended for EVPN Multihoming designs.
lacp_port_id_range:
enabled: <bool; default=False>
# Recommended size > = number of ports in the switch.
size: <int; default=128>
# Offset is used to avoid overlapping port-id ranges of different switches.
# Useful when a "connected-endpoint" is connected to switches in different "node_groups".
offset: <int; default=0>
# Force configuration of "ip routing" even on L2 devices.
# Use this to retain behavior of AVD versions below 4.0.0.
always_configure_ip_routing: <bool; default=False>
# EOS CLI rendered directly on the root level of the final EOS configuration.
raw_eos_cli: <str>
# Custom structured config for eos_cli_config_gen.
structured_config: <dict>
# Define variables per node.
nodes:
# The Node Name is used as "hostname".
- name: <str; required; unique>
# Unique identifier used for IP addressing and other algorithms.
id: <int>
# Arista platform family.
platform: <str>
# Leverage to document management interface mac address.
mac_address: <str>
# System MAC Address in this following format: "xx:xx:xx:xx:xx:xx".
# Set to the same MAC address as available in "show version" on the device.
# "system_mac_address" can also be set directly as a hostvar.
# If both are set, the setting under node type settings takes precedence.
system_mac_address: <str>
# Set to the Serial Number of the device.
# Only used for documentation purpose in the fabric documentation and part of the structured_config.
# "serial_number" can also be set directly as a hostvar.
# If both are set, the setting under node type settings takes precedence.
serial_number: <str>
# Rack that the switch is located in (only used in snmp_settings location).
rack: <str>
# Node management interface IPv4 address.
mgmt_ip: <str>
# Node management interface IPv6 address.
ipv6_mgmt_ip: <str>
# Management Interface Name.
# Default -> platform_management_interface -> mgmt_interface -> "Management1".
mgmt_interface: <str>
# This will generate the "lacp port-id range", "begin" and "end" values based on node "id" and the number of nodes in the "node_group".
# Unique LACP port-id ranges are recommended for EVPN Multihoming designs.
lacp_port_id_range:
enabled: <bool; default=False>
# Recommended size > = number of ports in the switch.
size: <int; default=128>
# Offset is used to avoid overlapping port-id ranges of different switches.
# Useful when a "connected-endpoint" is connected to switches in different "node_groups".
offset: <int; default=0>
# Force configuration of "ip routing" even on L2 devices.
# Use this to retain behavior of AVD versions below 4.0.0.
always_configure_ip_routing: <bool; default=False>
# EOS CLI rendered directly on the root level of the final EOS configuration.
raw_eos_cli: <str>
# Custom structured config for eos_cli_config_gen.
structured_config: <dict>
Node type inband management¶
Variable | Type | Required | Default | Value Restrictions | Description |
---|---|---|---|---|---|
<node_type_keys.key> | Dictionary | ||||
defaults | Dictionary | Define variables for all nodes of this type. | |||
inband_mgmt_interface | String | Pointer to interface used for inband management. All configuration must be done using other data models like network services or structured_config. ‘inband_mgmt_interface’ is only used to refer to this interface as source in various management protocol settings (future feature). On L2 switches, this defaults to Vlan |
|||
inband_mgmt_vlan | Integer | 4092 |
VLAN number used for inband management on L2 switches (switches using port-channel trunks as uplinks). When using ‘inband_mgmt_subnet’ the VLAN and SVIs will be created automatically on this switch as well as all ‘uplink_switches’. When using ‘inband_mgmt_ip’ the VLAN and SVI will only be created on this device and added to uplink trunk. The VLAN and SVI on the parent switches must be created using network services data models. |
||
inband_mgmt_subnet | String | Format: ipv4_cidr | Optional IP subnet assigned to inband management SVIs on L2 switches (switches using port-channels as uplinks). Parent l3leafs will have SVI with “ip virtual-router” and host-route injection based on ARP. This allows all l3leafs to reuse the same subnet across multiple racks without VXLAN extension. SVI IP address will be assigned as follows: virtual-router: l3leaf A : l3leaf B : l2leafs : GW on l2leafs : Assign range larger than total l2leafs + 5 Setting is ignored if ‘inband_mgmt_ip’ is set. This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_ip | String | Format: ipv4_cidr | IP address assigned to the inband management interface set with ‘inband_mgmt_vlan’. This overrides ‘inband_mgmt_subnet’, hence all behavior of ‘inband_mgmt_subnet’ is removed. If this is set the VLAN and SVI will only be created on the L2 switch and added to uplink trunk. The VLAN and SVI on the parent switches must be created using network services data models. This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_gateway | String | Format: ipv4 | Default gateway configured in the ‘inband_mgmt_vrf’ when using ‘inband_mgmt_ip’. Otherwise gateway is derived from ‘inband_mgmt_subnet’ if set. This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_ipv6_address | String | Format: ipv6 | IPv6 address assigned to the inband management interface set with ‘inband_mgmt_vlan’. This overrides ‘inband_mgmt_ipv6_subnet’, hence the configuration of ‘inband_mgmt_ipv6_subnet’ is ignored. If this is set the VLAN and SVI will only be created on the L2 switch and added to uplink trunk. The VLAN and SVI on the parent switches must be created using network services data models. This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_ipv6_subnet | String | Format: ipv6_cidr | Optional IPv6 prefix assigned to inband management SVIs on L2 switches (switches using port-channels as uplinks). Parent l3leafs will have SVI with “ipv6 virtual-router” and host-route injection based on ARP. This allows all l3leafs to reuse the same subnet across multiple racks without VXLAN extension. SVI IP address will be assigned as follows: virtual-router: l3leaf A : l3leaf B : l2leafs : GW on l2leafs : Assign range larger than total l2leafs + 5 Setting is ignored if ‘inband_mgmt_ipv6_address’ is set. This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_ipv6_gateway | String | Format: ipv6 | Default gateway configured in the ‘inband_mgmt_vrf’. Used when inband_mgmt_ipv6_address is set.Ignored when ‘inband_mgmt_ipv6_subnet’ is set (first IP in subnet used as gateway). This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_description | String | Inband Management |
Description configured on the Inband Management SVI. This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed. |
||
inband_mgmt_vlan_name | String | INBAND_MGMT |
Name configured on the Inband Management VLAN. This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed. |
||
inband_mgmt_vrf | String | default |
VRF configured on the Inband Management Interface. The VRF is created if not already created by other means. This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed. |
||
inband_mgmt_mtu | Integer | 1500 |
MTU configured on the Inband Management Interface. This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed. |
||
inband_ztp | Boolean | False |
Enable to configure upstream device with proper configuration to allow downstream devices to be Zero-Touch-Provisioned over the uplink interfaces. For L2 devices this setting also requires that the inband_mgmt_vlan is set for the node.PREVIEW: Support for L3 devices is marked as “preview”, meaning the data models or generated configuration can change at any time. |
||
inband_ztp_lacp_fallback_delay | Integer | 30 |
Min: 0 Max: 300 |
Set the LACP fallback timeout of the upstream device’s port-channel towards the downstream inband ZTP node. This setting also requires that inband_ztp is set for the node. |
|
inband_management_subnet removed | String | This key was removed. Support was removed in AVD version 5.0.0. Use inband_mgmt_subnet instead. | |||
inband_management_vlan removed | Integer | This key was removed. Support was removed in AVD version 5.0.0. Use inband_mgmt_vlan instead. | |||
node_groups | List, items: Dictionary | Define variables related to all nodes part of this group. | |||
- group | String | Required, Unique | The Node Group Name is used for MLAG domain unless set with ‘mlag_domain_id’. The Node Group Name is also used for peer description on downstream switches’ uplinks. |
||
nodes | List, items: Dictionary | Define variables per node. | |||
- name | String | Required, Unique | The Node Name is used as “hostname”. | ||
inband_mgmt_interface | String | Pointer to interface used for inband management. All configuration must be done using other data models like network services or structured_config. ‘inband_mgmt_interface’ is only used to refer to this interface as source in various management protocol settings (future feature). On L2 switches, this defaults to Vlan |
|||
inband_mgmt_vlan | Integer | 4092 |
VLAN number used for inband management on L2 switches (switches using port-channel trunks as uplinks). When using ‘inband_mgmt_subnet’ the VLAN and SVIs will be created automatically on this switch as well as all ‘uplink_switches’. When using ‘inband_mgmt_ip’ the VLAN and SVI will only be created on this device and added to uplink trunk. The VLAN and SVI on the parent switches must be created using network services data models. |
||
inband_mgmt_subnet | String | Format: ipv4_cidr | Optional IP subnet assigned to inband management SVIs on L2 switches (switches using port-channels as uplinks). Parent l3leafs will have SVI with “ip virtual-router” and host-route injection based on ARP. This allows all l3leafs to reuse the same subnet across multiple racks without VXLAN extension. SVI IP address will be assigned as follows: virtual-router: l3leaf A : l3leaf B : l2leafs : GW on l2leafs : Assign range larger than total l2leafs + 5 Setting is ignored if ‘inband_mgmt_ip’ is set. This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_ip | String | Format: ipv4_cidr | IP address assigned to the inband management interface set with ‘inband_mgmt_vlan’. This overrides ‘inband_mgmt_subnet’, hence all behavior of ‘inband_mgmt_subnet’ is removed. If this is set the VLAN and SVI will only be created on the L2 switch and added to uplink trunk. The VLAN and SVI on the parent switches must be created using network services data models. This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_gateway | String | Format: ipv4 | Default gateway configured in the ‘inband_mgmt_vrf’ when using ‘inband_mgmt_ip’. Otherwise gateway is derived from ‘inband_mgmt_subnet’ if set. This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_ipv6_address | String | Format: ipv6 | IPv6 address assigned to the inband management interface set with ‘inband_mgmt_vlan’. This overrides ‘inband_mgmt_ipv6_subnet’, hence the configuration of ‘inband_mgmt_ipv6_subnet’ is ignored. If this is set the VLAN and SVI will only be created on the L2 switch and added to uplink trunk. The VLAN and SVI on the parent switches must be created using network services data models. This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_ipv6_subnet | String | Format: ipv6_cidr | Optional IPv6 prefix assigned to inband management SVIs on L2 switches (switches using port-channels as uplinks). Parent l3leafs will have SVI with “ipv6 virtual-router” and host-route injection based on ARP. This allows all l3leafs to reuse the same subnet across multiple racks without VXLAN extension. SVI IP address will be assigned as follows: virtual-router: l3leaf A : l3leaf B : l2leafs : GW on l2leafs : Assign range larger than total l2leafs + 5 Setting is ignored if ‘inband_mgmt_ipv6_address’ is set. This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_ipv6_gateway | String | Format: ipv6 | Default gateway configured in the ‘inband_mgmt_vrf’. Used when inband_mgmt_ipv6_address is set.Ignored when ‘inband_mgmt_ipv6_subnet’ is set (first IP in subnet used as gateway). This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_description | String | Inband Management |
Description configured on the Inband Management SVI. This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed. |
||
inband_mgmt_vlan_name | String | INBAND_MGMT |
Name configured on the Inband Management VLAN. This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed. |
||
inband_mgmt_vrf | String | default |
VRF configured on the Inband Management Interface. The VRF is created if not already created by other means. This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed. |
||
inband_mgmt_mtu | Integer | 1500 |
MTU configured on the Inband Management Interface. This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed. |
||
inband_ztp | Boolean | False |
Enable to configure upstream device with proper configuration to allow downstream devices to be Zero-Touch-Provisioned over the uplink interfaces. For L2 devices this setting also requires that the inband_mgmt_vlan is set for the node.PREVIEW: Support for L3 devices is marked as “preview”, meaning the data models or generated configuration can change at any time. |
||
inband_ztp_lacp_fallback_delay | Integer | 30 |
Min: 0 Max: 300 |
Set the LACP fallback timeout of the upstream device’s port-channel towards the downstream inband ZTP node. This setting also requires that inband_ztp is set for the node. |
|
inband_management_subnet removed | String | This key was removed. Support was removed in AVD version 5.0.0. Use inband_mgmt_subnet instead. | |||
inband_management_vlan removed | Integer | This key was removed. Support was removed in AVD version 5.0.0. Use inband_mgmt_vlan instead. | |||
inband_mgmt_interface | String | Pointer to interface used for inband management. All configuration must be done using other data models like network services or structured_config. ‘inband_mgmt_interface’ is only used to refer to this interface as source in various management protocol settings (future feature). On L2 switches, this defaults to Vlan |
|||
inband_mgmt_vlan | Integer | 4092 |
VLAN number used for inband management on L2 switches (switches using port-channel trunks as uplinks). When using ‘inband_mgmt_subnet’ the VLAN and SVIs will be created automatically on this switch as well as all ‘uplink_switches’. When using ‘inband_mgmt_ip’ the VLAN and SVI will only be created on this device and added to uplink trunk. The VLAN and SVI on the parent switches must be created using network services data models. |
||
inband_mgmt_subnet | String | Format: ipv4_cidr | Optional IP subnet assigned to inband management SVIs on L2 switches (switches using port-channels as uplinks). Parent l3leafs will have SVI with “ip virtual-router” and host-route injection based on ARP. This allows all l3leafs to reuse the same subnet across multiple racks without VXLAN extension. SVI IP address will be assigned as follows: virtual-router: l3leaf A : l3leaf B : l2leafs : GW on l2leafs : Assign range larger than total l2leafs + 5 Setting is ignored if ‘inband_mgmt_ip’ is set. This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_ip | String | Format: ipv4_cidr | IP address assigned to the inband management interface set with ‘inband_mgmt_vlan’. This overrides ‘inband_mgmt_subnet’, hence all behavior of ‘inband_mgmt_subnet’ is removed. If this is set the VLAN and SVI will only be created on the L2 switch and added to uplink trunk. The VLAN and SVI on the parent switches must be created using network services data models. This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_gateway | String | Format: ipv4 | Default gateway configured in the ‘inband_mgmt_vrf’ when using ‘inband_mgmt_ip’. Otherwise gateway is derived from ‘inband_mgmt_subnet’ if set. This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_ipv6_address | String | Format: ipv6 | IPv6 address assigned to the inband management interface set with ‘inband_mgmt_vlan’. This overrides ‘inband_mgmt_ipv6_subnet’, hence the configuration of ‘inband_mgmt_ipv6_subnet’ is ignored. If this is set the VLAN and SVI will only be created on the L2 switch and added to uplink trunk. The VLAN and SVI on the parent switches must be created using network services data models. This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_ipv6_subnet | String | Format: ipv6_cidr | Optional IPv6 prefix assigned to inband management SVIs on L2 switches (switches using port-channels as uplinks). Parent l3leafs will have SVI with “ipv6 virtual-router” and host-route injection based on ARP. This allows all l3leafs to reuse the same subnet across multiple racks without VXLAN extension. SVI IP address will be assigned as follows: virtual-router: l3leaf A : l3leaf B : l2leafs : GW on l2leafs : Assign range larger than total l2leafs + 5 Setting is ignored if ‘inband_mgmt_ipv6_address’ is set. This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_ipv6_gateway | String | Format: ipv6 | Default gateway configured in the ‘inband_mgmt_vrf’. Used when inband_mgmt_ipv6_address is set.Ignored when ‘inband_mgmt_ipv6_subnet’ is set (first IP in subnet used as gateway). This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_description | String | Inband Management |
Description configured on the Inband Management SVI. This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed. |
||
inband_mgmt_vlan_name | String | INBAND_MGMT |
Name configured on the Inband Management VLAN. This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed. |
||
inband_mgmt_vrf | String | default |
VRF configured on the Inband Management Interface. The VRF is created if not already created by other means. This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed. |
||
inband_mgmt_mtu | Integer | 1500 |
MTU configured on the Inband Management Interface. This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed. |
||
inband_ztp | Boolean | False |
Enable to configure upstream device with proper configuration to allow downstream devices to be Zero-Touch-Provisioned over the uplink interfaces. For L2 devices this setting also requires that the inband_mgmt_vlan is set for the node.PREVIEW: Support for L3 devices is marked as “preview”, meaning the data models or generated configuration can change at any time. |
||
inband_ztp_lacp_fallback_delay | Integer | 30 |
Min: 0 Max: 300 |
Set the LACP fallback timeout of the upstream device’s port-channel towards the downstream inband ZTP node. This setting also requires that inband_ztp is set for the node. |
|
inband_management_subnet removed | String | This key was removed. Support was removed in AVD version 5.0.0. Use inband_mgmt_subnet instead. | |||
inband_management_vlan removed | Integer | This key was removed. Support was removed in AVD version 5.0.0. Use inband_mgmt_vlan instead. | |||
nodes | List, items: Dictionary | Define variables per node. | |||
- name | String | Required, Unique | The Node Name is used as “hostname”. | ||
inband_mgmt_interface | String | Pointer to interface used for inband management. All configuration must be done using other data models like network services or structured_config. ‘inband_mgmt_interface’ is only used to refer to this interface as source in various management protocol settings (future feature). On L2 switches, this defaults to Vlan |
|||
inband_mgmt_vlan | Integer | 4092 |
VLAN number used for inband management on L2 switches (switches using port-channel trunks as uplinks). When using ‘inband_mgmt_subnet’ the VLAN and SVIs will be created automatically on this switch as well as all ‘uplink_switches’. When using ‘inband_mgmt_ip’ the VLAN and SVI will only be created on this device and added to uplink trunk. The VLAN and SVI on the parent switches must be created using network services data models. |
||
inband_mgmt_subnet | String | Format: ipv4_cidr | Optional IP subnet assigned to inband management SVIs on L2 switches (switches using port-channels as uplinks). Parent l3leafs will have SVI with “ip virtual-router” and host-route injection based on ARP. This allows all l3leafs to reuse the same subnet across multiple racks without VXLAN extension. SVI IP address will be assigned as follows: virtual-router: l3leaf A : l3leaf B : l2leafs : GW on l2leafs : Assign range larger than total l2leafs + 5 Setting is ignored if ‘inband_mgmt_ip’ is set. This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_ip | String | Format: ipv4_cidr | IP address assigned to the inband management interface set with ‘inband_mgmt_vlan’. This overrides ‘inband_mgmt_subnet’, hence all behavior of ‘inband_mgmt_subnet’ is removed. If this is set the VLAN and SVI will only be created on the L2 switch and added to uplink trunk. The VLAN and SVI on the parent switches must be created using network services data models. This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_gateway | String | Format: ipv4 | Default gateway configured in the ‘inband_mgmt_vrf’ when using ‘inband_mgmt_ip’. Otherwise gateway is derived from ‘inband_mgmt_subnet’ if set. This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_ipv6_address | String | Format: ipv6 | IPv6 address assigned to the inband management interface set with ‘inband_mgmt_vlan’. This overrides ‘inband_mgmt_ipv6_subnet’, hence the configuration of ‘inband_mgmt_ipv6_subnet’ is ignored. If this is set the VLAN and SVI will only be created on the L2 switch and added to uplink trunk. The VLAN and SVI on the parent switches must be created using network services data models. This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_ipv6_subnet | String | Format: ipv6_cidr | Optional IPv6 prefix assigned to inband management SVIs on L2 switches (switches using port-channels as uplinks). Parent l3leafs will have SVI with “ipv6 virtual-router” and host-route injection based on ARP. This allows all l3leafs to reuse the same subnet across multiple racks without VXLAN extension. SVI IP address will be assigned as follows: virtual-router: l3leaf A : l3leaf B : l2leafs : GW on l2leafs : Assign range larger than total l2leafs + 5 Setting is ignored if ‘inband_mgmt_ipv6_address’ is set. This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_ipv6_gateway | String | Format: ipv6 | Default gateway configured in the ‘inband_mgmt_vrf’. Used when inband_mgmt_ipv6_address is set.Ignored when ‘inband_mgmt_ipv6_subnet’ is set (first IP in subnet used as gateway). This setting is applicable to L2 switches (switches using port-channel trunks as uplinks). |
||
inband_mgmt_description | String | Inband Management |
Description configured on the Inband Management SVI. This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed. |
||
inband_mgmt_vlan_name | String | INBAND_MGMT |
Name configured on the Inband Management VLAN. This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed. |
||
inband_mgmt_vrf | String | default |
VRF configured on the Inband Management Interface. The VRF is created if not already created by other means. This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed. |
||
inband_mgmt_mtu | Integer | 1500 |
MTU configured on the Inband Management Interface. This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed. |
||
inband_ztp | Boolean | False |
Enable to configure upstream device with proper configuration to allow downstream devices to be Zero-Touch-Provisioned over the uplink interfaces. For L2 devices this setting also requires that the inband_mgmt_vlan is set for the node.PREVIEW: Support for L3 devices is marked as “preview”, meaning the data models or generated configuration can change at any time. |
||
inband_ztp_lacp_fallback_delay | Integer | 30 |
Min: 0 Max: 300 |
Set the LACP fallback timeout of the upstream device’s port-channel towards the downstream inband ZTP node. This setting also requires that inband_ztp is set for the node. |
|
inband_management_subnet removed | String | This key was removed. Support was removed in AVD version 5.0.0. Use inband_mgmt_subnet instead. | |||
inband_management_vlan removed | Integer | This key was removed. Support was removed in AVD version 5.0.0. Use inband_mgmt_vlan instead. |
<node_type_keys.key>:
# Define variables for all nodes of this type.
defaults:
# Pointer to interface used for inband management.
# All configuration must be done using other data models like network services or structured_config.
# 'inband_mgmt_interface' is only used to refer to this interface as source in various management protocol settings (future feature).
#
# On L2 switches, this defaults to Vlan<inband_mgmt_vlan> if either 'inband_mgmt_subnet' or 'inband_mgmt_ip' is set.
inband_mgmt_interface: <str>
# VLAN number used for inband management on L2 switches (switches using port-channel trunks as uplinks).
# When using 'inband_mgmt_subnet' the VLAN and SVIs will be created automatically on this switch as well as all 'uplink_switches'.
# When using 'inband_mgmt_ip' the VLAN and SVI will only be created on this device and added to uplink trunk. The VLAN and SVI on the parent switches must be created using network services data models.
inband_mgmt_vlan: <int; default=4092>
# Optional IP subnet assigned to inband management SVIs on L2 switches (switches using port-channels as uplinks).
# Parent l3leafs will have SVI with "ip virtual-router" and host-route injection based on ARP.
# This allows all l3leafs to reuse the same subnet across multiple racks without VXLAN extension.
# SVI IP address will be assigned as follows:
# virtual-router: <subnet> + 1
# l3leaf A : <subnet> + 2 (same IP on all l3leaf A)
# l3leaf B : <subnet> + 3 (same IP on all l3leaf B)
# l2leafs : <subnet> + 3 + <l2leaf id>
# GW on l2leafs : <subnet> + 1
# Assign range larger than total l2leafs + 5
#
# Setting is ignored if 'inband_mgmt_ip' is set.
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_subnet: <str>
# IP address assigned to the inband management interface set with 'inband_mgmt_vlan'.
# This overrides 'inband_mgmt_subnet', hence all behavior of 'inband_mgmt_subnet' is removed.
#
# If this is set the VLAN and SVI will only be created on the L2 switch and added to uplink trunk.
# The VLAN and SVI on the parent switches must be created using network services data models.
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_ip: <str>
# Default gateway configured in the 'inband_mgmt_vrf' when using 'inband_mgmt_ip'. Otherwise gateway is derived from 'inband_mgmt_subnet' if set.
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_gateway: <str>
# IPv6 address assigned to the inband management interface set with 'inband_mgmt_vlan'.
# This overrides 'inband_mgmt_ipv6_subnet', hence the configuration of 'inband_mgmt_ipv6_subnet' is ignored.
#
# If this is set the VLAN and SVI will only be created on the L2 switch and added to uplink trunk.
# The VLAN and SVI on the parent switches must be created using network services data models.
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_ipv6_address: <str>
# Optional IPv6 prefix assigned to inband management SVIs on L2 switches (switches using port-channels as uplinks).
# Parent l3leafs will have SVI with "ipv6 virtual-router" and host-route injection based on ARP.
# This allows all l3leafs to reuse the same subnet across multiple racks without VXLAN extension.
# SVI IP address will be assigned as follows:
# virtual-router: <subnet> + 1
# l3leaf A : <subnet> + 2 (same IP on all l3leaf A)
# l3leaf B : <subnet> + 3 (same IP on all l3leaf B)
# l2leafs : <subnet> + 3 + <l2leaf id>
# GW on l2leafs : <subnet> + 1
# Assign range larger than total l2leafs + 5
#
# Setting is ignored if 'inband_mgmt_ipv6_address' is set.
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_ipv6_subnet: <str>
# Default gateway configured in the 'inband_mgmt_vrf'.
# Used when `inband_mgmt_ipv6_address` is set.
# Ignored when 'inband_mgmt_ipv6_subnet' is set (first IP in subnet used as gateway).
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_ipv6_gateway: <str>
# Description configured on the Inband Management SVI.
#
# This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed.
inband_mgmt_description: <str; default="Inband Management">
# Name configured on the Inband Management VLAN.
# This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed.
inband_mgmt_vlan_name: <str; default="INBAND_MGMT">
# VRF configured on the Inband Management Interface.
# The VRF is created if not already created by other means.
# This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed.
inband_mgmt_vrf: <str; default="default">
# MTU configured on the Inband Management Interface.
# This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed.
inband_mgmt_mtu: <int; default=1500>
# Enable to configure upstream device with proper configuration to allow downstream devices to be Zero-Touch-Provisioned over the uplink interfaces.
# For L2 devices this setting also requires that the `inband_mgmt_vlan` is set for the node.
#
# PREVIEW: Support for L3 devices is marked as "preview", meaning the data models or generated configuration can change at any time.
inband_ztp: <bool; default=False>
# Set the LACP fallback timeout of the upstream device's port-channel towards the downstream inband ZTP node.
# This setting also requires that `inband_ztp` is set for the node.
inband_ztp_lacp_fallback_delay: <int; 0-300; default=30>
# Define variables related to all nodes part of this group.
node_groups:
# The Node Group Name is used for MLAG domain unless set with 'mlag_domain_id'.
# The Node Group Name is also used for peer description on downstream switches' uplinks.
- group: <str; required; unique>
# Define variables per node.
nodes:
# The Node Name is used as "hostname".
- name: <str; required; unique>
# Pointer to interface used for inband management.
# All configuration must be done using other data models like network services or structured_config.
# 'inband_mgmt_interface' is only used to refer to this interface as source in various management protocol settings (future feature).
#
# On L2 switches, this defaults to Vlan<inband_mgmt_vlan> if either 'inband_mgmt_subnet' or 'inband_mgmt_ip' is set.
inband_mgmt_interface: <str>
# VLAN number used for inband management on L2 switches (switches using port-channel trunks as uplinks).
# When using 'inband_mgmt_subnet' the VLAN and SVIs will be created automatically on this switch as well as all 'uplink_switches'.
# When using 'inband_mgmt_ip' the VLAN and SVI will only be created on this device and added to uplink trunk. The VLAN and SVI on the parent switches must be created using network services data models.
inband_mgmt_vlan: <int; default=4092>
# Optional IP subnet assigned to inband management SVIs on L2 switches (switches using port-channels as uplinks).
# Parent l3leafs will have SVI with "ip virtual-router" and host-route injection based on ARP.
# This allows all l3leafs to reuse the same subnet across multiple racks without VXLAN extension.
# SVI IP address will be assigned as follows:
# virtual-router: <subnet> + 1
# l3leaf A : <subnet> + 2 (same IP on all l3leaf A)
# l3leaf B : <subnet> + 3 (same IP on all l3leaf B)
# l2leafs : <subnet> + 3 + <l2leaf id>
# GW on l2leafs : <subnet> + 1
# Assign range larger than total l2leafs + 5
#
# Setting is ignored if 'inband_mgmt_ip' is set.
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_subnet: <str>
# IP address assigned to the inband management interface set with 'inband_mgmt_vlan'.
# This overrides 'inband_mgmt_subnet', hence all behavior of 'inband_mgmt_subnet' is removed.
#
# If this is set the VLAN and SVI will only be created on the L2 switch and added to uplink trunk.
# The VLAN and SVI on the parent switches must be created using network services data models.
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_ip: <str>
# Default gateway configured in the 'inband_mgmt_vrf' when using 'inband_mgmt_ip'. Otherwise gateway is derived from 'inband_mgmt_subnet' if set.
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_gateway: <str>
# IPv6 address assigned to the inband management interface set with 'inband_mgmt_vlan'.
# This overrides 'inband_mgmt_ipv6_subnet', hence the configuration of 'inband_mgmt_ipv6_subnet' is ignored.
#
# If this is set the VLAN and SVI will only be created on the L2 switch and added to uplink trunk.
# The VLAN and SVI on the parent switches must be created using network services data models.
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_ipv6_address: <str>
# Optional IPv6 prefix assigned to inband management SVIs on L2 switches (switches using port-channels as uplinks).
# Parent l3leafs will have SVI with "ipv6 virtual-router" and host-route injection based on ARP.
# This allows all l3leafs to reuse the same subnet across multiple racks without VXLAN extension.
# SVI IP address will be assigned as follows:
# virtual-router: <subnet> + 1
# l3leaf A : <subnet> + 2 (same IP on all l3leaf A)
# l3leaf B : <subnet> + 3 (same IP on all l3leaf B)
# l2leafs : <subnet> + 3 + <l2leaf id>
# GW on l2leafs : <subnet> + 1
# Assign range larger than total l2leafs + 5
#
# Setting is ignored if 'inband_mgmt_ipv6_address' is set.
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_ipv6_subnet: <str>
# Default gateway configured in the 'inband_mgmt_vrf'.
# Used when `inband_mgmt_ipv6_address` is set.
# Ignored when 'inband_mgmt_ipv6_subnet' is set (first IP in subnet used as gateway).
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_ipv6_gateway: <str>
# Description configured on the Inband Management SVI.
#
# This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed.
inband_mgmt_description: <str; default="Inband Management">
# Name configured on the Inband Management VLAN.
# This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed.
inband_mgmt_vlan_name: <str; default="INBAND_MGMT">
# VRF configured on the Inband Management Interface.
# The VRF is created if not already created by other means.
# This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed.
inband_mgmt_vrf: <str; default="default">
# MTU configured on the Inband Management Interface.
# This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed.
inband_mgmt_mtu: <int; default=1500>
# Enable to configure upstream device with proper configuration to allow downstream devices to be Zero-Touch-Provisioned over the uplink interfaces.
# For L2 devices this setting also requires that the `inband_mgmt_vlan` is set for the node.
#
# PREVIEW: Support for L3 devices is marked as "preview", meaning the data models or generated configuration can change at any time.
inband_ztp: <bool; default=False>
# Set the LACP fallback timeout of the upstream device's port-channel towards the downstream inband ZTP node.
# This setting also requires that `inband_ztp` is set for the node.
inband_ztp_lacp_fallback_delay: <int; 0-300; default=30>
# Pointer to interface used for inband management.
# All configuration must be done using other data models like network services or structured_config.
# 'inband_mgmt_interface' is only used to refer to this interface as source in various management protocol settings (future feature).
#
# On L2 switches, this defaults to Vlan<inband_mgmt_vlan> if either 'inband_mgmt_subnet' or 'inband_mgmt_ip' is set.
inband_mgmt_interface: <str>
# VLAN number used for inband management on L2 switches (switches using port-channel trunks as uplinks).
# When using 'inband_mgmt_subnet' the VLAN and SVIs will be created automatically on this switch as well as all 'uplink_switches'.
# When using 'inband_mgmt_ip' the VLAN and SVI will only be created on this device and added to uplink trunk. The VLAN and SVI on the parent switches must be created using network services data models.
inband_mgmt_vlan: <int; default=4092>
# Optional IP subnet assigned to inband management SVIs on L2 switches (switches using port-channels as uplinks).
# Parent l3leafs will have SVI with "ip virtual-router" and host-route injection based on ARP.
# This allows all l3leafs to reuse the same subnet across multiple racks without VXLAN extension.
# SVI IP address will be assigned as follows:
# virtual-router: <subnet> + 1
# l3leaf A : <subnet> + 2 (same IP on all l3leaf A)
# l3leaf B : <subnet> + 3 (same IP on all l3leaf B)
# l2leafs : <subnet> + 3 + <l2leaf id>
# GW on l2leafs : <subnet> + 1
# Assign range larger than total l2leafs + 5
#
# Setting is ignored if 'inband_mgmt_ip' is set.
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_subnet: <str>
# IP address assigned to the inband management interface set with 'inband_mgmt_vlan'.
# This overrides 'inband_mgmt_subnet', hence all behavior of 'inband_mgmt_subnet' is removed.
#
# If this is set the VLAN and SVI will only be created on the L2 switch and added to uplink trunk.
# The VLAN and SVI on the parent switches must be created using network services data models.
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_ip: <str>
# Default gateway configured in the 'inband_mgmt_vrf' when using 'inband_mgmt_ip'. Otherwise gateway is derived from 'inband_mgmt_subnet' if set.
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_gateway: <str>
# IPv6 address assigned to the inband management interface set with 'inband_mgmt_vlan'.
# This overrides 'inband_mgmt_ipv6_subnet', hence the configuration of 'inband_mgmt_ipv6_subnet' is ignored.
#
# If this is set the VLAN and SVI will only be created on the L2 switch and added to uplink trunk.
# The VLAN and SVI on the parent switches must be created using network services data models.
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_ipv6_address: <str>
# Optional IPv6 prefix assigned to inband management SVIs on L2 switches (switches using port-channels as uplinks).
# Parent l3leafs will have SVI with "ipv6 virtual-router" and host-route injection based on ARP.
# This allows all l3leafs to reuse the same subnet across multiple racks without VXLAN extension.
# SVI IP address will be assigned as follows:
# virtual-router: <subnet> + 1
# l3leaf A : <subnet> + 2 (same IP on all l3leaf A)
# l3leaf B : <subnet> + 3 (same IP on all l3leaf B)
# l2leafs : <subnet> + 3 + <l2leaf id>
# GW on l2leafs : <subnet> + 1
# Assign range larger than total l2leafs + 5
#
# Setting is ignored if 'inband_mgmt_ipv6_address' is set.
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_ipv6_subnet: <str>
# Default gateway configured in the 'inband_mgmt_vrf'.
# Used when `inband_mgmt_ipv6_address` is set.
# Ignored when 'inband_mgmt_ipv6_subnet' is set (first IP in subnet used as gateway).
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_ipv6_gateway: <str>
# Description configured on the Inband Management SVI.
#
# This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed.
inband_mgmt_description: <str; default="Inband Management">
# Name configured on the Inband Management VLAN.
# This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed.
inband_mgmt_vlan_name: <str; default="INBAND_MGMT">
# VRF configured on the Inband Management Interface.
# The VRF is created if not already created by other means.
# This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed.
inband_mgmt_vrf: <str; default="default">
# MTU configured on the Inband Management Interface.
# This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed.
inband_mgmt_mtu: <int; default=1500>
# Enable to configure upstream device with proper configuration to allow downstream devices to be Zero-Touch-Provisioned over the uplink interfaces.
# For L2 devices this setting also requires that the `inband_mgmt_vlan` is set for the node.
#
# PREVIEW: Support for L3 devices is marked as "preview", meaning the data models or generated configuration can change at any time.
inband_ztp: <bool; default=False>
# Set the LACP fallback timeout of the upstream device's port-channel towards the downstream inband ZTP node.
# This setting also requires that `inband_ztp` is set for the node.
inband_ztp_lacp_fallback_delay: <int; 0-300; default=30>
# Define variables per node.
nodes:
# The Node Name is used as "hostname".
- name: <str; required; unique>
# Pointer to interface used for inband management.
# All configuration must be done using other data models like network services or structured_config.
# 'inband_mgmt_interface' is only used to refer to this interface as source in various management protocol settings (future feature).
#
# On L2 switches, this defaults to Vlan<inband_mgmt_vlan> if either 'inband_mgmt_subnet' or 'inband_mgmt_ip' is set.
inband_mgmt_interface: <str>
# VLAN number used for inband management on L2 switches (switches using port-channel trunks as uplinks).
# When using 'inband_mgmt_subnet' the VLAN and SVIs will be created automatically on this switch as well as all 'uplink_switches'.
# When using 'inband_mgmt_ip' the VLAN and SVI will only be created on this device and added to uplink trunk. The VLAN and SVI on the parent switches must be created using network services data models.
inband_mgmt_vlan: <int; default=4092>
# Optional IP subnet assigned to inband management SVIs on L2 switches (switches using port-channels as uplinks).
# Parent l3leafs will have SVI with "ip virtual-router" and host-route injection based on ARP.
# This allows all l3leafs to reuse the same subnet across multiple racks without VXLAN extension.
# SVI IP address will be assigned as follows:
# virtual-router: <subnet> + 1
# l3leaf A : <subnet> + 2 (same IP on all l3leaf A)
# l3leaf B : <subnet> + 3 (same IP on all l3leaf B)
# l2leafs : <subnet> + 3 + <l2leaf id>
# GW on l2leafs : <subnet> + 1
# Assign range larger than total l2leafs + 5
#
# Setting is ignored if 'inband_mgmt_ip' is set.
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_subnet: <str>
# IP address assigned to the inband management interface set with 'inband_mgmt_vlan'.
# This overrides 'inband_mgmt_subnet', hence all behavior of 'inband_mgmt_subnet' is removed.
#
# If this is set the VLAN and SVI will only be created on the L2 switch and added to uplink trunk.
# The VLAN and SVI on the parent switches must be created using network services data models.
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_ip: <str>
# Default gateway configured in the 'inband_mgmt_vrf' when using 'inband_mgmt_ip'. Otherwise gateway is derived from 'inband_mgmt_subnet' if set.
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_gateway: <str>
# IPv6 address assigned to the inband management interface set with 'inband_mgmt_vlan'.
# This overrides 'inband_mgmt_ipv6_subnet', hence the configuration of 'inband_mgmt_ipv6_subnet' is ignored.
#
# If this is set the VLAN and SVI will only be created on the L2 switch and added to uplink trunk.
# The VLAN and SVI on the parent switches must be created using network services data models.
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_ipv6_address: <str>
# Optional IPv6 prefix assigned to inband management SVIs on L2 switches (switches using port-channels as uplinks).
# Parent l3leafs will have SVI with "ipv6 virtual-router" and host-route injection based on ARP.
# This allows all l3leafs to reuse the same subnet across multiple racks without VXLAN extension.
# SVI IP address will be assigned as follows:
# virtual-router: <subnet> + 1
# l3leaf A : <subnet> + 2 (same IP on all l3leaf A)
# l3leaf B : <subnet> + 3 (same IP on all l3leaf B)
# l2leafs : <subnet> + 3 + <l2leaf id>
# GW on l2leafs : <subnet> + 1
# Assign range larger than total l2leafs + 5
#
# Setting is ignored if 'inband_mgmt_ipv6_address' is set.
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_ipv6_subnet: <str>
# Default gateway configured in the 'inband_mgmt_vrf'.
# Used when `inband_mgmt_ipv6_address` is set.
# Ignored when 'inband_mgmt_ipv6_subnet' is set (first IP in subnet used as gateway).
#
# This setting is applicable to L2 switches (switches using port-channel trunks as uplinks).
inband_mgmt_ipv6_gateway: <str>
# Description configured on the Inband Management SVI.
#
# This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed.
inband_mgmt_description: <str; default="Inband Management">
# Name configured on the Inband Management VLAN.
# This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed.
inband_mgmt_vlan_name: <str; default="INBAND_MGMT">
# VRF configured on the Inband Management Interface.
# The VRF is created if not already created by other means.
# This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed.
inband_mgmt_vrf: <str; default="default">
# MTU configured on the Inband Management Interface.
# This setting is only applied on the devices where it is set, it does not automatically affect any parent/child devices configuration, so it must be set on each applicable node/node-group/node-type as needed.
inband_mgmt_mtu: <int; default=1500>
# Enable to configure upstream device with proper configuration to allow downstream devices to be Zero-Touch-Provisioned over the uplink interfaces.
# For L2 devices this setting also requires that the `inband_mgmt_vlan` is set for the node.
#
# PREVIEW: Support for L3 devices is marked as "preview", meaning the data models or generated configuration can change at any time.
inband_ztp: <bool; default=False>
# Set the LACP fallback timeout of the upstream device's port-channel towards the downstream inband ZTP node.
# This setting also requires that `inband_ztp` is set for the node.
inband_ztp_lacp_fallback_delay: <int; 0-300; default=30>
Node type uplink management¶
Connectivity is defined from the child’s device perspective. Source uplink interfaces and parent interfaces are defined on the child.
Tip
Leverage default_interfaces
data model to auto define uplink and downlink interfaces based on the node id.
Variable | Type | Required | Default | Value Restrictions | Description |
---|---|---|---|---|---|
<node_type_keys.key> | Dictionary | ||||
defaults | Dictionary | Define variables for all nodes of this type. | |||
link_tracking | Dictionary | This configures the Link Tracking Group on a switch as well as adds the p2p-uplinks of the switch as the upstream interfaces. Useful in EVPN multhoming designs. |
|||
enabled | Boolean | False |
|||
groups | List, items: Dictionary | [{'name': 'LT_GROUP1'}] |
Link Tracking Groups. By default a single group named “LT_GROUP1” is defined with default values. Any groups defined under “groups” will replace the default. |
||
- name | String | Tracking group name. | |||
recovery_delay | Integer | Min: 0 Max: 3600 |
default -> platform_settings_mlag_reload_delay -> 300. | ||
links_minimum | Integer | Min: 1 Max: 100000 |
|||
uplink_type | String | Valid Values: - p2p - port-channel - p2p-vrfs - lan |
Override the default uplink_type set at the node_type_key level.uplink_type must be “p2p” if vtep or underlay_router is true for the node_type_key definition. |
||
uplink_ipv4_pool | String | Format: ipv4_cidr | IPv4 subnet to use to connect to uplink switches. | ||
uplink_interfaces | List, items: String | Local uplink interfaces. Each list item supports range syntax that can be expanded into a list of interfaces. If uplink_interfaces is not defined, platform-specific defaults (defined under default_interfaces) will be used instead. Please note that default_interfaces are not defined by default, you should define these yourself. |
|||
- <str> | String | Pattern: Ethernet[\d/]+ |
|||
uplink_switch_interfaces | List, items: String | Interfaces located on uplink switches. | |||
- <str> | String | Pattern: Ethernet[\d/]+ |
|||
uplink_switches | List, items: String | ||||
- <str> | String | Required | Hostname of uplink switch. If parallel uplinks are in use, update max_parallel_uplinks below and specify each uplink switch multiple times. e.g. uplink_switches: [ ‘DC1-SPINE1’, ‘DC1-SPINE1’, ‘DC1-SPINE2’, ‘DC1-SPINE2’ ]. |
||
uplink_interface_speed | String | Set point-to-Point interface speed and will apply to uplink interfaces on both ends. (Uplink switch interface speed can be overridden with uplink_switch_interface_speed ).Speed should be set in the format <interface_speed> or forced <interface_speed> or auto <interface_speed> . |
|||
uplink_switch_interface_speed | String | Set point-to-Point interface speed for the uplink switch interface only. Speed should be set in the format <interface_speed> or forced <interface_speed> or auto <interface_speed> . |
|||
uplink_mtu | Integer | Min: 68 Max: 65535 |
Point-to-Point uplinks MTU in bytes. This setting overrides the p2p_uplinks_mtu setting. |
||
max_uplink_switches | Integer | Maximum number of uplink switches. Changing this value may change IP Addressing on uplinks. Can be used to reserve IP space for future expansions. |
|||
max_parallel_uplinks | Integer | Number of parallel links towards uplink switches. Changing this value may change interface naming on uplinks (and corresponding downlinks). Can be used to reserve interfaces for future parallel uplinks. |
|||
uplink_bfd | Boolean | False |
Enable bfd on uplink interfaces. | ||
uplink_native_vlan | Integer | Min: 1 Max: 4094 |
Only applicable to switches with layer-2 port-channel uplinks. A suspended (disabled) vlan will be created in both ends of the link unless the vlan is defined under network services. By default the uplink will not have a native_vlan configured, so EOS defaults to vlan 1. |
||
uplink_ptp | Dictionary | Enable PTP on all infrastructure links. | |||
enable | Boolean | False |
|||
uplink_macsec | Dictionary | Enable MacSec on all uplinks. | |||
profile | String | ||||
uplink_port_channel_id | Integer | Min: 1 Max: 999999 |
Only applicable for L2 switches with uplink_type: port-channel .By default the uplink Port-channel ID will be set to the number of the lowest member interface defined under uplink_interfaces .For example: member ports [ Eth22, Eth23 ] -> ID 22 member ports [ Eth11/1, Eth22/1 ] -> ID 111 For MLAG port-channels ID will be based on the lowest member interface on the first MLAG switch. This option overrides the default behavior and statically sets the local Port-channel ID. Note! Make sure the ID is unique and does not overlap with autogenerated Port-channel IDs in the Network Services. Note! For MLAG pairs the ID must be between 1 and 2000 and both MLAG switches must have the same value. |
||
uplink_switch_port_channel_id | Integer | Min: 1 Max: 999999 |
Only applicable for L2 switches with uplink_type: port-channel .By default the uplink switch Port-channel ID will be set to the number of the first interface defined under uplink_switch_interfaces .For example: member ports [ Eth22, Eth23 ] -> ID 22 member ports [ Eth11/1, Eth22/1 ] -> ID 111 For MLAG port-channels ID will be based on the lowest member interface on the first MLAG switch. This option overrides the default behavior and statically sets the Port-channel ID on the uplink switch. Note! Make sure the ID is unique and does not overlap with autogenerated Port-channel IDs in the Network Services. Note! For MLAG pairs the ID must be between 1 and 2000 and both MLAG switches must have the same value. |
||
uplink_structured_config | Dictionary | Custom structured config applied to “uplink_interfaces”, and “uplink_switch_interfaces”. When uplink_type == “p2p”, custom structured config added under ethernet_interfaces.[name= When uplink_type == “port-channel”, custom structured config added under port_channel_interfaces.[name= “uplink_structured_config” is applied after “structured_config”, so it can override “structured_config” defined on node-level. Note! The content of this dictionary is not validated by the schema, since it can be either ethernet_interfaces or port_channel_interfaces. |
|||
short_esi | String | short_esi only valid for l2leaf devices using port-channel uplink. Setting short_esi to “auto” generates the short_esi automatically using a hash of configuration elements. < 0000:0000:0000 |
|||
node_groups | List, items: Dictionary | Define variables related to all nodes part of this group. | |||
- group | String | Required, Unique | The Node Group Name is used for MLAG domain unless set with ‘mlag_domain_id’. The Node Group Name is also used for peer description on downstream switches’ uplinks. |
||
nodes | List, items: Dictionary | Define variables per node. | |||
- name | String | Required, Unique | The Node Name is used as “hostname”. | ||
downlink_pools | List, items: Dictionary | IPv4 pools used for links to downlink switches. Set this on the parent switch. Cannot be combined with uplink_ipv4_pool set on the downlink switch. |
|||
- ipv4_pool | String | Format: ipv4_cidr | IPv4 pool from which subnets will be allocated for links to downlink switches. | ||
downlink_interfaces | List, items: String | List of downlink interfaces or ranges of interfaces to use this pool. The index of the interface in this list will determine which subnet will be taken from the pool. | |||
- <str> | String | ||||
link_tracking | Dictionary | This configures the Link Tracking Group on a switch as well as adds the p2p-uplinks of the switch as the upstream interfaces. Useful in EVPN multhoming designs. |
|||
enabled | Boolean | False |
|||
groups | List, items: Dictionary | [{'name': 'LT_GROUP1'}] |
Link Tracking Groups. By default a single group named “LT_GROUP1” is defined with default values. Any groups defined under “groups” will replace the default. |
||
- name | String | Tracking group name. | |||
recovery_delay | Integer | Min: 0 Max: 3600 |
default -> platform_settings_mlag_reload_delay -> 300. | ||
links_minimum | Integer | Min: 1 Max: 100000 |
|||
uplink_type | String | Valid Values: - p2p - port-channel - p2p-vrfs - lan |
Override the default uplink_type set at the node_type_key level.uplink_type must be “p2p” if vtep or underlay_router is true for the node_type_key definition. |
||
uplink_ipv4_pool | String | Format: ipv4_cidr | IPv4 subnet to use to connect to uplink switches. | ||
uplink_interfaces | List, items: String | Local uplink interfaces. Each list item supports range syntax that can be expanded into a list of interfaces. If uplink_interfaces is not defined, platform-specific defaults (defined under default_interfaces) will be used instead. Please note that default_interfaces are not defined by default, you should define these yourself. |
|||
- <str> | String | Pattern: Ethernet[\d/]+ |
|||
uplink_switch_interfaces | List, items: String | Interfaces located on uplink switches. | |||
- <str> | String | Pattern: Ethernet[\d/]+ |
|||
uplink_switches | List, items: String | ||||
- <str> | String | Required | Hostname of uplink switch. If parallel uplinks are in use, update max_parallel_uplinks below and specify each uplink switch multiple times. e.g. uplink_switches: [ ‘DC1-SPINE1’, ‘DC1-SPINE1’, ‘DC1-SPINE2’, ‘DC1-SPINE2’ ]. |
||
uplink_interface_speed | String | Set point-to-Point interface speed and will apply to uplink interfaces on both ends. (Uplink switch interface speed can be overridden with uplink_switch_interface_speed ).Speed should be set in the format <interface_speed> or forced <interface_speed> or auto <interface_speed> . |
|||
uplink_switch_interface_speed | String | Set point-to-Point interface speed for the uplink switch interface only. Speed should be set in the format <interface_speed> or forced <interface_speed> or auto <interface_speed> . |
|||
uplink_mtu | Integer | Min: 68 Max: 65535 |
Point-to-Point uplinks MTU in bytes. This setting overrides the p2p_uplinks_mtu setting. |
||
max_uplink_switches | Integer | Maximum number of uplink switches. Changing this value may change IP Addressing on uplinks. Can be used to reserve IP space for future expansions. |
|||
max_parallel_uplinks | Integer | Number of parallel links towards uplink switches. Changing this value may change interface naming on uplinks (and corresponding downlinks). Can be used to reserve interfaces for future parallel uplinks. |
|||
uplink_bfd | Boolean | False |
Enable bfd on uplink interfaces. | ||
uplink_native_vlan | Integer | Min: 1 Max: 4094 |
Only applicable to switches with layer-2 port-channel uplinks. A suspended (disabled) vlan will be created in both ends of the link unless the vlan is defined under network services. By default the uplink will not have a native_vlan configured, so EOS defaults to vlan 1. |
||
uplink_ptp | Dictionary | Enable PTP on all infrastructure links. | |||
enable | Boolean | False |
|||
uplink_macsec | Dictionary | Enable MacSec on all uplinks. | |||
profile | String | ||||
uplink_port_channel_id | Integer | Min: 1 Max: 999999 |
Only applicable for L2 switches with uplink_type: port-channel .By default the uplink Port-channel ID will be set to the number of the lowest member interface defined under uplink_interfaces .For example: member ports [ Eth22, Eth23 ] -> ID 22 member ports [ Eth11/1, Eth22/1 ] -> ID 111 For MLAG port-channels ID will be based on the lowest member interface on the first MLAG switch. This option overrides the default behavior and statically sets the local Port-channel ID. Note! Make sure the ID is unique and does not overlap with autogenerated Port-channel IDs in the Network Services. Note! For MLAG pairs the ID must be between 1 and 2000 and both MLAG switches must have the same value. |
||
uplink_switch_port_channel_id | Integer | Min: 1 Max: 999999 |
Only applicable for L2 switches with uplink_type: port-channel .By default the uplink switch Port-channel ID will be set to the number of the first interface defined under uplink_switch_interfaces .For example: member ports [ Eth22, Eth23 ] -> ID 22 member ports [ Eth11/1, Eth22/1 ] -> ID 111 For MLAG port-channels ID will be based on the lowest member interface on the first MLAG switch. This option overrides the default behavior and statically sets the Port-channel ID on the uplink switch. Note! Make sure the ID is unique and does not overlap with autogenerated Port-channel IDs in the Network Services. Note! For MLAG pairs the ID must be between 1 and 2000 and both MLAG switches must have the same value. |
||
uplink_structured_config | Dictionary | Custom structured config applied to “uplink_interfaces”, and “uplink_switch_interfaces”. When uplink_type == “p2p”, custom structured config added under ethernet_interfaces.[name= When uplink_type == “port-channel”, custom structured config added under port_channel_interfaces.[name= “uplink_structured_config” is applied after “structured_config”, so it can override “structured_config” defined on node-level. Note! The content of this dictionary is not validated by the schema, since it can be either ethernet_interfaces or port_channel_interfaces. |
|||
short_esi | String | short_esi only valid for l2leaf devices using port-channel uplink. Setting short_esi to “auto” generates the short_esi automatically using a hash of configuration elements. < 0000:0000:0000 |
|||
link_tracking | Dictionary | This configures the Link Tracking Group on a switch as well as adds the p2p-uplinks of the switch as the upstream interfaces. Useful in EVPN multhoming designs. |
|||
enabled | Boolean | False |
|||
groups | List, items: Dictionary | [{'name': 'LT_GROUP1'}] |
Link Tracking Groups. By default a single group named “LT_GROUP1” is defined with default values. Any groups defined under “groups” will replace the default. |
||
- name | String | Tracking group name. | |||
recovery_delay | Integer | Min: 0 Max: 3600 |
default -> platform_settings_mlag_reload_delay -> 300. | ||
links_minimum | Integer | Min: 1 Max: 100000 |
|||
uplink_type | String | Valid Values: - p2p - port-channel - p2p-vrfs - lan |
Override the default uplink_type set at the node_type_key level.uplink_type must be “p2p” if vtep or underlay_router is true for the node_type_key definition. |
||
uplink_ipv4_pool | String | Format: ipv4_cidr | IPv4 subnet to use to connect to uplink switches. | ||
uplink_interfaces | List, items: String | Local uplink interfaces. Each list item supports range syntax that can be expanded into a list of interfaces. If uplink_interfaces is not defined, platform-specific defaults (defined under default_interfaces) will be used instead. Please note that default_interfaces are not defined by default, you should define these yourself. |
|||
- <str> | String | Pattern: Ethernet[\d/]+ |
|||
uplink_switch_interfaces | List, items: String | Interfaces located on uplink switches. | |||
- <str> | String | Pattern: Ethernet[\d/]+ |
|||
uplink_switches | List, items: String | ||||
- <str> | String | Required | Hostname of uplink switch. If parallel uplinks are in use, update max_parallel_uplinks below and specify each uplink switch multiple times. e.g. uplink_switches: [ ‘DC1-SPINE1’, ‘DC1-SPINE1’, ‘DC1-SPINE2’, ‘DC1-SPINE2’ ]. |
||
uplink_interface_speed | String | Set point-to-Point interface speed and will apply to uplink interfaces on both ends. (Uplink switch interface speed can be overridden with uplink_switch_interface_speed ).Speed should be set in the format <interface_speed> or forced <interface_speed> or auto <interface_speed> . |
|||
uplink_switch_interface_speed | String | Set point-to-Point interface speed for the uplink switch interface only. Speed should be set in the format <interface_speed> or forced <interface_speed> or auto <interface_speed> . |
|||
uplink_mtu | Integer | Min: 68 Max: 65535 |
Point-to-Point uplinks MTU in bytes. This setting overrides the p2p_uplinks_mtu setting. |
||
max_uplink_switches | Integer | Maximum number of uplink switches. Changing this value may change IP Addressing on uplinks. Can be used to reserve IP space for future expansions. |
|||
max_parallel_uplinks | Integer | Number of parallel links towards uplink switches. Changing this value may change interface naming on uplinks (and corresponding downlinks). Can be used to reserve interfaces for future parallel uplinks. |
|||
uplink_bfd | Boolean | False |
Enable bfd on uplink interfaces. | ||
uplink_native_vlan | Integer | Min: 1 Max: 4094 |
Only applicable to switches with layer-2 port-channel uplinks. A suspended (disabled) vlan will be created in both ends of the link unless the vlan is defined under network services. By default the uplink will not have a native_vlan configured, so EOS defaults to vlan 1. |
||
uplink_ptp | Dictionary | Enable PTP on all infrastructure links. | |||
enable | Boolean | False |
|||
uplink_macsec | Dictionary | Enable MacSec on all uplinks. | |||
profile | String | ||||
uplink_port_channel_id | Integer | Min: 1 Max: 999999 |
Only applicable for L2 switches with uplink_type: port-channel .By default the uplink Port-channel ID will be set to the number of the lowest member interface defined under uplink_interfaces .For example: member ports [ Eth22, Eth23 ] -> ID 22 member ports [ Eth11/1, Eth22/1 ] -> ID 111 For MLAG port-channels ID will be based on the lowest member interface on the first MLAG switch. This option overrides the default behavior and statically sets the local Port-channel ID. Note! Make sure the ID is unique and does not overlap with autogenerated Port-channel IDs in the Network Services. Note! For MLAG pairs the ID must be between 1 and 2000 and both MLAG switches must have the same value. |
||
uplink_switch_port_channel_id | Integer | Min: 1 Max: 999999 |
Only applicable for L2 switches with uplink_type: port-channel .By default the uplink switch Port-channel ID will be set to the number of the first interface defined under uplink_switch_interfaces .For example: member ports [ Eth22, Eth23 ] -> ID 22 member ports [ Eth11/1, Eth22/1 ] -> ID 111 For MLAG port-channels ID will be based on the lowest member interface on the first MLAG switch. This option overrides the default behavior and statically sets the Port-channel ID on the uplink switch. Note! Make sure the ID is unique and does not overlap with autogenerated Port-channel IDs in the Network Services. Note! For MLAG pairs the ID must be between 1 and 2000 and both MLAG switches must have the same value. |
||
uplink_structured_config | Dictionary | Custom structured config applied to “uplink_interfaces”, and “uplink_switch_interfaces”. When uplink_type == “p2p”, custom structured config added under ethernet_interfaces.[name= When uplink_type == “port-channel”, custom structured config added under port_channel_interfaces.[name= “uplink_structured_config” is applied after “structured_config”, so it can override “structured_config” defined on node-level. Note! The content of this dictionary is not validated by the schema, since it can be either ethernet_interfaces or port_channel_interfaces. |
|||
short_esi | String | short_esi only valid for l2leaf devices using port-channel uplink. Setting short_esi to “auto” generates the short_esi automatically using a hash of configuration elements. < 0000:0000:0000 |
|||
nodes | List, items: Dictionary | Define variables per node. | |||
- name | String | Required, Unique | The Node Name is used as “hostname”. | ||
downlink_pools | List, items: Dictionary | IPv4 pools used for links to downlink switches. Set this on the parent switch. Cannot be combined with uplink_ipv4_pool set on the downlink switch. |
|||
- ipv4_pool | String | Format: ipv4_cidr | IPv4 pool from which subnets will be allocated for links to downlink switches. | ||
downlink_interfaces | List, items: String | List of downlink interfaces or ranges of interfaces to use this pool. The index of the interface in this list will determine which subnet will be taken from the pool. | |||
- <str> | String | ||||
link_tracking | Dictionary | This configures the Link Tracking Group on a switch as well as adds the p2p-uplinks of the switch as the upstream interfaces. Useful in EVPN multhoming designs. |
|||
enabled | Boolean | False |
|||
groups | List, items: Dictionary | [{'name': 'LT_GROUP1'}] |
Link Tracking Groups. By default a single group named “LT_GROUP1” is defined with default values. Any groups defined under “groups” will replace the default. |
||
- name | String | Tracking group name. | |||
recovery_delay | Integer | Min: 0 Max: 3600 |
default -> platform_settings_mlag_reload_delay -> 300. | ||
links_minimum | Integer | Min: 1 Max: 100000 |
|||
uplink_type | String | Valid Values: - p2p - port-channel - p2p-vrfs - lan |
Override the default uplink_type set at the node_type_key level.uplink_type must be “p2p” if vtep or underlay_router is true for the node_type_key definition. |
||
uplink_ipv4_pool | String | Format: ipv4_cidr | IPv4 subnet to use to connect to uplink switches. | ||
uplink_interfaces | List, items: String | Local uplink interfaces. Each list item supports range syntax that can be expanded into a list of interfaces. If uplink_interfaces is not defined, platform-specific defaults (defined under default_interfaces) will be used instead. Please note that default_interfaces are not defined by default, you should define these yourself. |
|||
- <str> | String | Pattern: Ethernet[\d/]+ |
|||
uplink_switch_interfaces | List, items: String | Interfaces located on uplink switches. | |||
- <str> | String | Pattern: Ethernet[\d/]+ |
|||
uplink_switches | List, items: String | ||||
- <str> | String | Required | Hostname of uplink switch. If parallel uplinks are in use, update max_parallel_uplinks below and specify each uplink switch multiple times. e.g. uplink_switches: [ ‘DC1-SPINE1’, ‘DC1-SPINE1’, ‘DC1-SPINE2’, ‘DC1-SPINE2’ ]. |
||
uplink_interface_speed | String | Set point-to-Point interface speed and will apply to uplink interfaces on both ends. (Uplink switch interface speed can be overridden with uplink_switch_interface_speed ).Speed should be set in the format <interface_speed> or forced <interface_speed> or auto <interface_speed> . |
|||
uplink_switch_interface_speed | String | Set point-to-Point interface speed for the uplink switch interface only. Speed should be set in the format <interface_speed> or forced <interface_speed> or auto <interface_speed> . |
|||
uplink_mtu | Integer | Min: 68 Max: 65535 |
Point-to-Point uplinks MTU in bytes. This setting overrides the p2p_uplinks_mtu setting. |
||
max_uplink_switches | Integer | Maximum number of uplink switches. Changing this value may change IP Addressing on uplinks. Can be used to reserve IP space for future expansions. |
|||
max_parallel_uplinks | Integer | Number of parallel links towards uplink switches. Changing this value may change interface naming on uplinks (and corresponding downlinks). Can be used to reserve interfaces for future parallel uplinks. |
|||
uplink_bfd | Boolean | False |
Enable bfd on uplink interfaces. | ||
uplink_native_vlan | Integer | Min: 1 Max: 4094 |
Only applicable to switches with layer-2 port-channel uplinks. A suspended (disabled) vlan will be created in both ends of the link unless the vlan is defined under network services. By default the uplink will not have a native_vlan configured, so EOS defaults to vlan 1. |
||
uplink_ptp | Dictionary | Enable PTP on all infrastructure links. | |||
enable | Boolean | False |
|||
uplink_macsec | Dictionary | Enable MacSec on all uplinks. | |||
profile | String | ||||
uplink_port_channel_id | Integer | Min: 1 Max: 999999 |
Only applicable for L2 switches with uplink_type: port-channel .By default the uplink Port-channel ID will be set to the number of the lowest member interface defined under uplink_interfaces .For example: member ports [ Eth22, Eth23 ] -> ID 22 member ports [ Eth11/1, Eth22/1 ] -> ID 111 For MLAG port-channels ID will be based on the lowest member interface on the first MLAG switch. This option overrides the default behavior and statically sets the local Port-channel ID. Note! Make sure the ID is unique and does not overlap with autogenerated Port-channel IDs in the Network Services. Note! For MLAG pairs the ID must be between 1 and 2000 and both MLAG switches must have the same value. |
||
uplink_switch_port_channel_id | Integer | Min: 1 Max: 999999 |
Only applicable for L2 switches with uplink_type: port-channel .By default the uplink switch Port-channel ID will be set to the number of the first interface defined under uplink_switch_interfaces .For example: member ports [ Eth22, Eth23 ] -> ID 22 member ports [ Eth11/1, Eth22/1 ] -> ID 111 For MLAG port-channels ID will be based on the lowest member interface on the first MLAG switch. This option overrides the default behavior and statically sets the Port-channel ID on the uplink switch. Note! Make sure the ID is unique and does not overlap with autogenerated Port-channel IDs in the Network Services. Note! For MLAG pairs the ID must be between 1 and 2000 and both MLAG switches must have the same value. |
||
uplink_structured_config | Dictionary | Custom structured config applied to “uplink_interfaces”, and “uplink_switch_interfaces”. When uplink_type == “p2p”, custom structured config added under ethernet_interfaces.[name= When uplink_type == “port-channel”, custom structured config added under port_channel_interfaces.[name= “uplink_structured_config” is applied after “structured_config”, so it can override “structured_config” defined on node-level. Note! The content of this dictionary is not validated by the schema, since it can be either ethernet_interfaces or port_channel_interfaces. |
|||
short_esi | String | short_esi only valid for l2leaf devices using port-channel uplink. Setting short_esi to “auto” generates the short_esi automatically using a hash of configuration elements. < 0000:0000:0000 |
<node_type_keys.key>:
# Define variables for all nodes of this type.
defaults:
# This configures the Link Tracking Group on a switch as well as adds the p2p-uplinks of the switch as the upstream interfaces.
# Useful in EVPN multhoming designs.
link_tracking:
enabled: <bool; default=False>
# Link Tracking Groups.
# By default a single group named "LT_GROUP1" is defined with default values.
# Any groups defined under "groups" will replace the default.
groups: # default=[{'name': 'LT_GROUP1'}]
# Tracking group name.
- name: <str>
# default -> platform_settings_mlag_reload_delay -> 300.
recovery_delay: <int; 0-3600>
links_minimum: <int; 1-100000>
# Override the default `uplink_type` set at the `node_type_key` level.
# `uplink_type` must be "p2p" if `vtep` or `underlay_router` is true for the `node_type_key` definition.
uplink_type: <str; "p2p" | "port-channel" | "p2p-vrfs" | "lan">
# IPv4 subnet to use to connect to uplink switches.
uplink_ipv4_pool: <str>
# Local uplink interfaces.
# Each list item supports range syntax that can be expanded into a list of interfaces.
# If uplink_interfaces is not defined, platform-specific defaults (defined under default_interfaces) will be used instead.
# Please note that default_interfaces are not defined by default, you should define these yourself.
uplink_interfaces:
- <str>
# Interfaces located on uplink switches.
uplink_switch_interfaces:
- <str>
uplink_switches:
# Hostname of uplink switch.
# If parallel uplinks are in use, update max_parallel_uplinks below and specify each uplink switch multiple times.
# e.g. uplink_switches: [ 'DC1-SPINE1', 'DC1-SPINE1', 'DC1-SPINE2', 'DC1-SPINE2' ].
- <str; required>
# Set point-to-Point interface speed and will apply to uplink interfaces on both ends.
# (Uplink switch interface speed can be overridden with `uplink_switch_interface_speed`).
# Speed should be set in the format `<interface_speed>` or `forced <interface_speed>` or `auto <interface_speed>`.
uplink_interface_speed: <str>
# Set point-to-Point interface speed for the uplink switch interface only.
# Speed should be set in the format `<interface_speed>` or `forced <interface_speed>` or `auto <interface_speed>`.
uplink_switch_interface_speed: <str>
# Point-to-Point uplinks MTU in bytes. This setting overrides the `p2p_uplinks_mtu` setting.
uplink_mtu: <int; 68-65535>
# Maximum number of uplink switches.
# Changing this value may change IP Addressing on uplinks.
# Can be used to reserve IP space for future expansions.
max_uplink_switches: <int>
# Number of parallel links towards uplink switches.
# Changing this value may change interface naming on uplinks (and corresponding downlinks).
# Can be used to reserve interfaces for future parallel uplinks.
max_parallel_uplinks: <int>
# Enable bfd on uplink interfaces.
uplink_bfd: <bool; default=False>
# Only applicable to switches with layer-2 port-channel uplinks.
# A suspended (disabled) vlan will be created in both ends of the link unless the vlan is defined under network services.
# By default the uplink will not have a native_vlan configured, so EOS defaults to vlan 1.
uplink_native_vlan: <int; 1-4094>
# Enable PTP on all infrastructure links.
uplink_ptp:
enable: <bool; default=False>
# Enable MacSec on all uplinks.
uplink_macsec:
profile: <str>
# Only applicable for L2 switches with `uplink_type: port-channel`.
# By default the uplink Port-channel ID will be set to the number of the lowest member interface defined under `uplink_interfaces`.
# For example:
# member ports [ Eth22, Eth23 ] -> ID 22
# member ports [ Eth11/1, Eth22/1 ] -> ID 111
# For MLAG port-channels ID will be based on the lowest member interface on the first MLAG switch.
# This option overrides the default behavior and statically sets the local Port-channel ID.
# Note! Make sure the ID is unique and does not overlap with autogenerated Port-channel IDs in the Network Services.
# Note! For MLAG pairs the ID must be between 1 and 2000 and both MLAG switches must have the same value.
uplink_port_channel_id: <int; 1-999999>
# Only applicable for L2 switches with `uplink_type: port-channel`.
# By default the uplink switch Port-channel ID will be set to the number of the first interface defined under `uplink_switch_interfaces`.
# For example:
# member ports [ Eth22, Eth23 ] -> ID 22
# member ports [ Eth11/1, Eth22/1 ] -> ID 111
# For MLAG port-channels ID will be based on the lowest member interface on the first MLAG switch.
# This option overrides the default behavior and statically sets the Port-channel ID on the uplink switch.
# Note! Make sure the ID is unique and does not overlap with autogenerated Port-channel IDs in the Network Services.
# Note! For MLAG pairs the ID must be between 1 and 2000 and both MLAG switches must have the same value.
uplink_switch_port_channel_id: <int; 1-999999>
# Custom structured config applied to "uplink_interfaces", and "uplink_switch_interfaces".
# When uplink_type == "p2p", custom structured config added under ethernet_interfaces.[name=<interface>] for eos_cli_config_gen overrides the settings on the ethernet interface level.
# When uplink_type == "port-channel", custom structured config added under port_channel_interfaces.[name=<interface>] for eos_cli_config_gen overrides the settings on the port-channel interface level.
# "uplink_structured_config" is applied after "structured_config", so it can override "structured_config" defined on node-level.
# Note! The content of this dictionary is _not_ validated by the schema, since it can be either ethernet_interfaces or port_channel_interfaces.
uplink_structured_config: <dict>
# short_esi only valid for l2leaf devices using port-channel uplink.
# Setting short_esi to "auto" generates the short_esi automatically using a hash of configuration elements.
# < 0000:0000:0000 | auto >.
short_esi: <str>
# Define variables related to all nodes part of this group.
node_groups:
# The Node Group Name is used for MLAG domain unless set with 'mlag_domain_id'.
# The Node Group Name is also used for peer description on downstream switches' uplinks.
- group: <str; required; unique>
# Define variables per node.
nodes:
# The Node Name is used as "hostname".
- name: <str; required; unique>
# IPv4 pools used for links to downlink switches. Set this on the parent switch. Cannot be combined with `uplink_ipv4_pool` set on the downlink switch.
downlink_pools:
# IPv4 pool from which subnets will be allocated for links to downlink switches.
- ipv4_pool: <str>
# List of downlink interfaces or ranges of interfaces to use this pool. The index of the interface in this list will determine which subnet will be taken from the pool.
downlink_interfaces:
- <str>
# This configures the Link Tracking Group on a switch as well as adds the p2p-uplinks of the switch as the upstream interfaces.
# Useful in EVPN multhoming designs.
link_tracking:
enabled: <bool; default=False>
# Link Tracking Groups.
# By default a single group named "LT_GROUP1" is defined with default values.
# Any groups defined under "groups" will replace the default.
groups: # default=[{'name': 'LT_GROUP1'}]
# Tracking group name.
- name: <str>
# default -> platform_settings_mlag_reload_delay -> 300.
recovery_delay: <int; 0-3600>
links_minimum: <int; 1-100000>
# Override the default `uplink_type` set at the `node_type_key` level.
# `uplink_type` must be "p2p" if `vtep` or `underlay_router` is true for the `node_type_key` definition.
uplink_type: <str; "p2p" | "port-channel" | "p2p-vrfs" | "lan">
# IPv4 subnet to use to connect to uplink switches.
uplink_ipv4_pool: <str>
# Local uplink interfaces.
# Each list item supports range syntax that can be expanded into a list of interfaces.
# If uplink_interfaces is not defined, platform-specific defaults (defined under default_interfaces) will be used instead.
# Please note that default_interfaces are not defined by default, you should define these yourself.
uplink_interfaces:
- <str>
# Interfaces located on uplink switches.
uplink_switch_interfaces:
- <str>
uplink_switches:
# Hostname of uplink switch.
# If parallel uplinks are in use, update max_parallel_uplinks below and specify each uplink switch multiple times.
# e.g. uplink_switches: [ 'DC1-SPINE1', 'DC1-SPINE1', 'DC1-SPINE2', 'DC1-SPINE2' ].
- <str; required>
# Set point-to-Point interface speed and will apply to uplink interfaces on both ends.
# (Uplink switch interface speed can be overridden with `uplink_switch_interface_speed`).
# Speed should be set in the format `<interface_speed>` or `forced <interface_speed>` or `auto <interface_speed>`.
uplink_interface_speed: <str>
# Set point-to-Point interface speed for the uplink switch interface only.
# Speed should be set in the format `<interface_speed>` or `forced <interface_speed>` or `auto <interface_speed>`.
uplink_switch_interface_speed: <str>
# Point-to-Point uplinks MTU in bytes. This setting overrides the `p2p_uplinks_mtu` setting.
uplink_mtu: <int; 68-65535>
# Maximum number of uplink switches.
# Changing this value may change IP Addressing on uplinks.
# Can be used to reserve IP space for future expansions.
max_uplink_switches: <int>
# Number of parallel links towards uplink switches.
# Changing this value may change interface naming on uplinks (and corresponding downlinks).
# Can be used to reserve interfaces for future parallel uplinks.
max_parallel_uplinks: <int>
# Enable bfd on uplink interfaces.
uplink_bfd: <bool; default=False>
# Only applicable to switches with layer-2 port-channel uplinks.
# A suspended (disabled) vlan will be created in both ends of the link unless the vlan is defined under network services.
# By default the uplink will not have a native_vlan configured, so EOS defaults to vlan 1.
uplink_native_vlan: <int; 1-4094>
# Enable PTP on all infrastructure links.
uplink_ptp:
enable: <bool; default=False>
# Enable MacSec on all uplinks.
uplink_macsec:
profile: <str>
# Only applicable for L2 switches with `uplink_type: port-channel`.
# By default the uplink Port-channel ID will be set to the number of the lowest member interface defined under `uplink_interfaces`.
# For example:
# member ports [ Eth22, Eth23 ] -> ID 22
# member ports [ Eth11/1, Eth22/1 ] -> ID 111
# For MLAG port-channels ID will be based on the lowest member interface on the first MLAG switch.
# This option overrides the default behavior and statically sets the local Port-channel ID.
# Note! Make sure the ID is unique and does not overlap with autogenerated Port-channel IDs in the Network Services.
# Note! For MLAG pairs the ID must be between 1 and 2000 and both MLAG switches must have the same value.
uplink_port_channel_id: <int; 1-999999>
# Only applicable for L2 switches with `uplink_type: port-channel`.
# By default the uplink switch Port-channel ID will be set to the number of the first interface defined under `uplink_switch_interfaces`.
# For example:
# member ports [ Eth22, Eth23 ] -> ID 22
# member ports [ Eth11/1, Eth22/1 ] -> ID 111
# For MLAG port-channels ID will be based on the lowest member interface on the first MLAG switch.
# This option overrides the default behavior and statically sets the Port-channel ID on the uplink switch.
# Note! Make sure the ID is unique and does not overlap with autogenerated Port-channel IDs in the Network Services.
# Note! For MLAG pairs the ID must be between 1 and 2000 and both MLAG switches must have the same value.
uplink_switch_port_channel_id: <int; 1-999999>
# Custom structured config applied to "uplink_interfaces", and "uplink_switch_interfaces".
# When uplink_type == "p2p", custom structured config added under ethernet_interfaces.[name=<interface>] for eos_cli_config_gen overrides the settings on the ethernet interface level.
# When uplink_type == "port-channel", custom structured config added under port_channel_interfaces.[name=<interface>] for eos_cli_config_gen overrides the settings on the port-channel interface level.
# "uplink_structured_config" is applied after "structured_config", so it can override "structured_config" defined on node-level.
# Note! The content of this dictionary is _not_ validated by the schema, since it can be either ethernet_interfaces or port_channel_interfaces.
uplink_structured_config: <dict>
# short_esi only valid for l2leaf devices using port-channel uplink.
# Setting short_esi to "auto" generates the short_esi automatically using a hash of configuration elements.
# < 0000:0000:0000 | auto >.
short_esi: <str>
# This configures the Link Tracking Group on a switch as well as adds the p2p-uplinks of the switch as the upstream interfaces.
# Useful in EVPN multhoming designs.
link_tracking:
enabled: <bool; default=False>
# Link Tracking Groups.
# By default a single group named "LT_GROUP1" is defined with default values.
# Any groups defined under "groups" will replace the default.
groups: # default=[{'name': 'LT_GROUP1'}]
# Tracking group name.
- name: <str>
# default -> platform_settings_mlag_reload_delay -> 300.
recovery_delay: <int; 0-3600>
links_minimum: <int; 1-100000>
# Override the default `uplink_type` set at the `node_type_key` level.
# `uplink_type` must be "p2p" if `vtep` or `underlay_router` is true for the `node_type_key` definition.
uplink_type: <str; "p2p" | "port-channel" | "p2p-vrfs" | "lan">
# IPv4 subnet to use to connect to uplink switches.
uplink_ipv4_pool: <str>
# Local uplink interfaces.
# Each list item supports range syntax that can be expanded into a list of interfaces.
# If uplink_interfaces is not defined, platform-specific defaults (defined under default_interfaces) will be used instead.
# Please note that default_interfaces are not defined by default, you should define these yourself.
uplink_interfaces:
- <str>
# Interfaces located on uplink switches.
uplink_switch_interfaces:
- <str>
uplink_switches:
# Hostname of uplink switch.
# If parallel uplinks are in use, update max_parallel_uplinks below and specify each uplink switch multiple times.
# e.g. uplink_switches: [ 'DC1-SPINE1', 'DC1-SPINE1', 'DC1-SPINE2', 'DC1-SPINE2' ].
- <str; required>
# Set point-to-Point interface speed and will apply to uplink interfaces on both ends.
# (Uplink switch interface speed can be overridden with `uplink_switch_interface_speed`).
# Speed should be set in the format `<interface_speed>` or `forced <interface_speed>` or `auto <interface_speed>`.
uplink_interface_speed: <str>
# Set point-to-Point interface speed for the uplink switch interface only.
# Speed should be set in the format `<interface_speed>` or `forced <interface_speed>` or `auto <interface_speed>`.
uplink_switch_interface_speed: <str>
# Point-to-Point uplinks MTU in bytes. This setting overrides the `p2p_uplinks_mtu` setting.
uplink_mtu: <int; 68-65535>
# Maximum number of uplink switches.
# Changing this value may change IP Addressing on uplinks.
# Can be used to reserve IP space for future expansions.
max_uplink_switches: <int>
# Number of parallel links towards uplink switches.
# Changing this value may change interface naming on uplinks (and corresponding downlinks).
# Can be used to reserve interfaces for future parallel uplinks.
max_parallel_uplinks: <int>
# Enable bfd on uplink interfaces.
uplink_bfd: <bool; default=False>
# Only applicable to switches with layer-2 port-channel uplinks.
# A suspended (disabled) vlan will be created in both ends of the link unless the vlan is defined under network services.
# By default the uplink will not have a native_vlan configured, so EOS defaults to vlan 1.
uplink_native_vlan: <int; 1-4094>
# Enable PTP on all infrastructure links.
uplink_ptp:
enable: <bool; default=False>
# Enable MacSec on all uplinks.
uplink_macsec:
profile: <str>
# Only applicable for L2 switches with `uplink_type: port-channel`.
# By default the uplink Port-channel ID will be set to the number of the lowest member interface defined under `uplink_interfaces`.
# For example:
# member ports [ Eth22, Eth23 ] -> ID 22
# member ports [ Eth11/1, Eth22/1 ] -> ID 111
# For MLAG port-channels ID will be based on the lowest member interface on the first MLAG switch.
# This option overrides the default behavior and statically sets the local Port-channel ID.
# Note! Make sure the ID is unique and does not overlap with autogenerated Port-channel IDs in the Network Services.
# Note! For MLAG pairs the ID must be between 1 and 2000 and both MLAG switches must have the same value.
uplink_port_channel_id: <int; 1-999999>
# Only applicable for L2 switches with `uplink_type: port-channel`.
# By default the uplink switch Port-channel ID will be set to the number of the first interface defined under `uplink_switch_interfaces`.
# For example:
# member ports [ Eth22, Eth23 ] -> ID 22
# member ports [ Eth11/1, Eth22/1 ] -> ID 111
# For MLAG port-channels ID will be based on the lowest member interface on the first MLAG switch.
# This option overrides the default behavior and statically sets the Port-channel ID on the uplink switch.
# Note! Make sure the ID is unique and does not overlap with autogenerated Port-channel IDs in the Network Services.
# Note! For MLAG pairs the ID must be between 1 and 2000 and both MLAG switches must have the same value.
uplink_switch_port_channel_id: <int; 1-999999>
# Custom structured config applied to "uplink_interfaces", and "uplink_switch_interfaces".
# When uplink_type == "p2p", custom structured config added under ethernet_interfaces.[name=<interface>] for eos_cli_config_gen overrides the settings on the ethernet interface level.
# When uplink_type == "port-channel", custom structured config added under port_channel_interfaces.[name=<interface>] for eos_cli_config_gen overrides the settings on the port-channel interface level.
# "uplink_structured_config" is applied after "structured_config", so it can override "structured_config" defined on node-level.
# Note! The content of this dictionary is _not_ validated by the schema, since it can be either ethernet_interfaces or port_channel_interfaces.
uplink_structured_config: <dict>
# short_esi only valid for l2leaf devices using port-channel uplink.
# Setting short_esi to "auto" generates the short_esi automatically using a hash of configuration elements.
# < 0000:0000:0000 | auto >.
short_esi: <str>
# Define variables per node.
nodes:
# The Node Name is used as "hostname".
- name: <str; required; unique>
# IPv4 pools used for links to downlink switches. Set this on the parent switch. Cannot be combined with `uplink_ipv4_pool` set on the downlink switch.
downlink_pools:
# IPv4 pool from which subnets will be allocated for links to downlink switches.
- ipv4_pool: <str>
# List of downlink interfaces or ranges of interfaces to use this pool. The index of the interface in this list will determine which subnet will be taken from the pool.
downlink_interfaces:
- <str>
# This configures the Link Tracking Group on a switch as well as adds the p2p-uplinks of the switch as the upstream interfaces.
# Useful in EVPN multhoming designs.
link_tracking:
enabled: <bool; default=False>
# Link Tracking Groups.
# By default a single group named "LT_GROUP1" is defined with default values.
# Any groups defined under "groups" will replace the default.
groups: # default=[{'name': 'LT_GROUP1'}]
# Tracking group name.
- name: <str>
# default -> platform_settings_mlag_reload_delay -> 300.
recovery_delay: <int; 0-3600>
links_minimum: <int; 1-100000>
# Override the default `uplink_type` set at the `node_type_key` level.
# `uplink_type` must be "p2p" if `vtep` or `underlay_router` is true for the `node_type_key` definition.
uplink_type: <str; "p2p" | "port-channel" | "p2p-vrfs" | "lan">
# IPv4 subnet to use to connect to uplink switches.
uplink_ipv4_pool: <str>
# Local uplink interfaces.
# Each list item supports range syntax that can be expanded into a list of interfaces.
# If uplink_interfaces is not defined, platform-specific defaults (defined under default_interfaces) will be used instead.
# Please note that default_interfaces are not defined by default, you should define these yourself.
uplink_interfaces:
- <str>
# Interfaces located on uplink switches.
uplink_switch_interfaces:
- <str>
uplink_switches:
# Hostname of uplink switch.
# If parallel uplinks are in use, update max_parallel_uplinks below and specify each uplink switch multiple times.
# e.g. uplink_switches: [ 'DC1-SPINE1', 'DC1-SPINE1', 'DC1-SPINE2', 'DC1-SPINE2' ].
- <str; required>
# Set point-to-Point interface speed and will apply to uplink interfaces on both ends.
# (Uplink switch interface speed can be overridden with `uplink_switch_interface_speed`).
# Speed should be set in the format `<interface_speed>` or `forced <interface_speed>` or `auto <interface_speed>`.
uplink_interface_speed: <str>
# Set point-to-Point interface speed for the uplink switch interface only.
# Speed should be set in the format `<interface_speed>` or `forced <interface_speed>` or `auto <interface_speed>`.
uplink_switch_interface_speed: <str>
# Point-to-Point uplinks MTU in bytes. This setting overrides the `p2p_uplinks_mtu` setting.
uplink_mtu: <int; 68-65535>
# Maximum number of uplink switches.
# Changing this value may change IP Addressing on uplinks.
# Can be used to reserve IP space for future expansions.
max_uplink_switches: <int>
# Number of parallel links towards uplink switches.
# Changing this value may change interface naming on uplinks (and corresponding downlinks).
# Can be used to reserve interfaces for future parallel uplinks.
max_parallel_uplinks: <int>
# Enable bfd on uplink interfaces.
uplink_bfd: <bool; default=False>
# Only applicable to switches with layer-2 port-channel uplinks.
# A suspended (disabled) vlan will be created in both ends of the link unless the vlan is defined under network services.
# By default the uplink will not have a native_vlan configured, so EOS defaults to vlan 1.
uplink_native_vlan: <int; 1-4094>
# Enable PTP on all infrastructure links.
uplink_ptp:
enable: <bool; default=False>
# Enable MacSec on all uplinks.
uplink_macsec:
profile: <str>
# Only applicable for L2 switches with `uplink_type: port-channel`.
# By default the uplink Port-channel ID will be set to the number of the lowest member interface defined under `uplink_interfaces`.
# For example:
# member ports [ Eth22, Eth23 ] -> ID 22
# member ports [ Eth11/1, Eth22/1 ] -> ID 111
# For MLAG port-channels ID will be based on the lowest member interface on the first MLAG switch.
# This option overrides the default behavior and statically sets the local Port-channel ID.
# Note! Make sure the ID is unique and does not overlap with autogenerated Port-channel IDs in the Network Services.
# Note! For MLAG pairs the ID must be between 1 and 2000 and both MLAG switches must have the same value.
uplink_port_channel_id: <int; 1-999999>
# Only applicable for L2 switches with `uplink_type: port-channel`.
# By default the uplink switch Port-channel ID will be set to the number of the first interface defined under `uplink_switch_interfaces`.
# For example:
# member ports [ Eth22, Eth23 ] -> ID 22
# member ports [ Eth11/1, Eth22/1 ] -> ID 111
# For MLAG port-channels ID will be based on the lowest member interface on the first MLAG switch.
# This option overrides the default behavior and statically sets the Port-channel ID on the uplink switch.
# Note! Make sure the ID is unique and does not overlap with autogenerated Port-channel IDs in the Network Services.
# Note! For MLAG pairs the ID must be between 1 and 2000 and both MLAG switches must have the same value.
uplink_switch_port_channel_id: <int; 1-999999>
# Custom structured config applied to "uplink_interfaces", and "uplink_switch_interfaces".
# When uplink_type == "p2p", custom structured config added under ethernet_interfaces.[name=<interface>] for eos_cli_config_gen overrides the settings on the ethernet interface level.
# When uplink_type == "port-channel", custom structured config added under port_channel_interfaces.[name=<interface>] for eos_cli_config_gen overrides the settings on the port-channel interface level.
# "uplink_structured_config" is applied after "structured_config", so it can override "structured_config" defined on node-level.
# Note! The content of this dictionary is _not_ validated by the schema, since it can be either ethernet_interfaces or port_channel_interfaces.
uplink_structured_config: <dict>
# short_esi only valid for l2leaf devices using port-channel uplink.
# Setting short_esi to "auto" generates the short_esi automatically using a hash of configuration elements.
# < 0000:0000:0000 | auto >.
short_esi: <str>
Node type L2 and MLAG configuration¶
Tip
Alternate addressing schemes are available at fabric_ip_addressing
.
Variable | Type | Required | Default | Value Restrictions | Description |
---|---|---|---|---|---|
<node_type_keys.key> | Dictionary | ||||
defaults | Dictionary | Define variables for all nodes of this type. | |||
mlag_port_channel_structured_config | Dictionary | Custom structured config applied to MLAG peer link port-channel id. Added under port_channel_interfaces.[name= Overrides the settings on the port-channel interface level. “mlag_port_channel_structured_config” is applied after “structured_config”, so it can override “structured_config” defined on node-level. |
|||
mlag_peer_vlan_structured_config | Dictionary | Custom structured config applied to MLAG Peer Link (control link) SVI interface id. Added under vlan_interfaces.[name= Overrides the settings on the vlan interface level. “mlag_peer_vlan_structured_config” is applied after “structured_config”, so it can override “structured_config” defined on node-level. |
|||
mlag_peer_l3_vlan_structured_config | Dictionary | Custom structured config applied to MLAG underlay L3 peering SVI interface id. Added under vlan_interfaces.[name= Overrides the settings on the vlan interface level. “mlag_peer_l3_vlan_structured_config” is applied after “structured_config”, so it can override “structured_config” defined on node-level. |
|||
mlag | Boolean | True |
Enable / Disable auto MLAG, when two nodes are defined in node group. | ||
mlag_dual_primary_detection | Boolean | False |
Enable / Disable MLAG dual primary detection. | ||
mlag_ibgp_origin_incomplete | Boolean | True |
Set origin of routes received from MLAG iBGP peer to incomplete. The purpose is to optimize routing for leaf loopbacks from spine perspective and avoid suboptimal routing via peerlink for control plane traffic. |
||
mlag_interfaces | List, items: String | Each list item supports range syntax that can be expanded into a list of interfaces. Required when MLAG leafs are present in the topology. |
|||
- <str> | String | ||||
mlag_interfaces_speed | String | Set MLAG interface speed. Speed should be set in the format <interface_speed> or forced <interface_speed> or auto <interface_speed> . |
|||
mlag_peer_l3_vlan | Integer | 4093 |
Min: 0 Max: 4094 |
Underlay L3 peering SVI interface id. If set to 0 or the same vlan as mlag_peer_vlan, the mlag_peer_vlan will be used for L3 peering. |
|
mlag_peer_l3_ipv4_pool | String | Format: ipv4_cidr | IP address pool used for MLAG underlay L3 peering. IP is derived from the node id. Required when MLAG leafs present in topology and they are using a separate L3 peering VLAN. |
||
mlag_peer_vlan | Integer | 4094 |
Min: 1 Max: 4094 |
MLAG Peer Link (control link) SVI interface id. | |
mlag_peer_link_allowed_vlans | String | ||||
mlag_peer_address_family | String | ipv4 |
Valid Values: - ipv4 - ipv6 |
IP address family used to establish MLAG Peer Link (control link).ipv6 requires EOS version 4.31.1F or higher.Note: ipv6 is not supported in combination with a common MLAG peer link VLAN (ex. mlag_peer_l3_vlan set to 4094). |
|
mlag_peer_ipv4_pool | String | Format: ipv4_cidr | IPv4 address pool used for MLAG Peer Link (control link). IP is derived from the node id. Required for MLAG leafs when mlag_peer_address_family is ipv4 (default). |
||
mlag_peer_ipv6_pool | String | Format: ipv6_cidr | IPv6 address pool used for MLAG Peer Link (control link). IP is derived from the node id. Required for MLAG leafs when mlag_peer_address_family is ipv6 . |
||
mlag_port_channel_id | Integer | If not set, the mlag port-channel id is generated based on the digits of the first interface present in ‘mlag_interfaces’. Valid port-channel id numbers are < 1-2000 > for EOS < 4.25.0F and < 1 - 999999 > for EOS >= 4.25.0F. |
|||
mlag_domain_id | String | MLAG Domain ID. If not set the node group name (Set with “group” key) will be used. | |||
spanning_tree_mode | String | Valid Values: - mstp - rstp - rapid-pvst - none |
|||
spanning_tree_priority | Integer | 32768 |
Spanning-tree priority configured for the selected mode. For rapid-pvst the priority can also be set per VLAN under network services. |
||
spanning_tree_root_super | Boolean | False |
|||
virtual_router_mac_address | String | Format: mac | Virtual router mac address for anycast gateway. | ||
node_groups | List, items: Dictionary | Define variables related to all nodes part of this group. | |||
- group | String | Required, Unique | The Node Group Name is used for MLAG domain unless set with ‘mlag_domain_id’. The Node Group Name is also used for peer description on downstream switches’ uplinks. |
||
nodes | List, items: Dictionary | Define variables per node. | |||
- name | String | Required, Unique | The Node Name is used as “hostname”. | ||
mlag_port_channel_structured_config | Dictionary | Custom structured config applied to MLAG peer link port-channel id. Added under port_channel_interfaces.[name= Overrides the settings on the port-channel interface level. “mlag_port_channel_structured_config” is applied after “structured_config”, so it can override “structured_config” defined on node-level. |
|||
mlag_peer_vlan_structured_config | Dictionary | Custom structured config applied to MLAG Peer Link (control link) SVI interface id. Added under vlan_interfaces.[name= Overrides the settings on the vlan interface level. “mlag_peer_vlan_structured_config” is applied after “structured_config”, so it can override “structured_config” defined on node-level. |
|||
mlag_peer_l3_vlan_structured_config | Dictionary | Custom structured config applied to MLAG underlay L3 peering SVI interface id. Added under vlan_interfaces.[name= Overrides the settings on the vlan interface level. “mlag_peer_l3_vlan_structured_config” is applied after “structured_config”, so it can override “structured_config” defined on node-level. |
|||
mlag | Boolean | True |
Enable / Disable auto MLAG, when two nodes are defined in node group. | ||
mlag_dual_primary_detection | Boolean | False |
Enable / Disable MLAG dual primary detection. | ||
mlag_ibgp_origin_incomplete | Boolean | True |
Set origin of routes received from MLAG iBGP peer to incomplete. The purpose is to optimize routing for leaf loopbacks from spine perspective and avoid suboptimal routing via peerlink for control plane traffic. |
||
mlag_interfaces | List, items: String | Each list item supports range syntax that can be expanded into a list of interfaces. Required when MLAG leafs are present in the topology. |
|||
- <str> | String | ||||
mlag_interfaces_speed | String | Set MLAG interface speed. Speed should be set in the format <interface_speed> or forced <interface_speed> or auto <interface_speed> . |
|||
mlag_peer_l3_vlan | Integer | 4093 |
Min: 0 Max: 4094 |
Underlay L3 peering SVI interface id. If set to 0 or the same vlan as mlag_peer_vlan, the mlag_peer_vlan will be used for L3 peering. |
|
mlag_peer_l3_ipv4_pool | String | Format: ipv4_cidr | IP address pool used for MLAG underlay L3 peering. IP is derived from the node id. Required when MLAG leafs present in topology and they are using a separate L3 peering VLAN. |
||
mlag_peer_vlan | Integer | 4094 |
Min: 1 Max: 4094 |
MLAG Peer Link (control link) SVI interface id. | |
mlag_peer_link_allowed_vlans | String | ||||
mlag_peer_address_family | String | ipv4 |
Valid Values: - ipv4 - ipv6 |
IP address family used to establish MLAG Peer Link (control link).ipv6 requires EOS version 4.31.1F or higher.Note: ipv6 is not supported in combination with a common MLAG peer link VLAN (ex. mlag_peer_l3_vlan set to 4094). |
|
mlag_peer_ipv4_pool | String | Format: ipv4_cidr | IPv4 address pool used for MLAG Peer Link (control link). IP is derived from the node id. Required for MLAG leafs when mlag_peer_address_family is ipv4 (default). |
||
mlag_peer_ipv6_pool | String | Format: ipv6_cidr | IPv6 address pool used for MLAG Peer Link (control link). IP is derived from the node id. Required for MLAG leafs when mlag_peer_address_family is ipv6 . |
||
mlag_port_channel_id | Integer | If not set, the mlag port-channel id is generated based on the digits of the first interface present in ‘mlag_interfaces’. Valid port-channel id numbers are < 1-2000 > for EOS < 4.25.0F and < 1 - 999999 > for EOS >= 4.25.0F. |
|||
mlag_domain_id | String | MLAG Domain ID. If not set the node group name (Set with “group” key) will be used. | |||
spanning_tree_mode | String | Valid Values: - mstp - rstp - rapid-pvst - none |
|||
spanning_tree_priority | Integer | 32768 |
Spanning-tree priority configured for the selected mode. For rapid-pvst the priority can also be set per VLAN under network services. |
||
spanning_tree_root_super | Boolean | False |
|||
virtual_router_mac_address | String | Format: mac | Virtual router mac address for anycast gateway. | ||
mlag_port_channel_structured_config | Dictionary | Custom structured config applied to MLAG peer link port-channel id. Added under port_channel_interfaces.[name= Overrides the settings on the port-channel interface level. “mlag_port_channel_structured_config” is applied after “structured_config”, so it can override “structured_config” defined on node-level. |
|||
mlag_peer_vlan_structured_config | Dictionary | Custom structured config applied to MLAG Peer Link (control link) SVI interface id. Added under vlan_interfaces.[name= Overrides the settings on the vlan interface level. “mlag_peer_vlan_structured_config” is applied after “structured_config”, so it can override “structured_config” defined on node-level. |
|||
mlag_peer_l3_vlan_structured_config | Dictionary | Custom structured config applied to MLAG underlay L3 peering SVI interface id. Added under vlan_interfaces.[name= Overrides the settings on the vlan interface level. “mlag_peer_l3_vlan_structured_config” is applied after “structured_config”, so it can override “structured_config” defined on node-level. |
|||
mlag | Boolean | True |
Enable / Disable auto MLAG, when two nodes are defined in node group. | ||
mlag_dual_primary_detection | Boolean | False |
Enable / Disable MLAG dual primary detection. | ||
mlag_ibgp_origin_incomplete | Boolean | True |
Set origin of routes received from MLAG iBGP peer to incomplete. The purpose is to optimize routing for leaf loopbacks from spine perspective and avoid suboptimal routing via peerlink for control plane traffic. |
||
mlag_interfaces | List, items: String | Each list item supports range syntax that can be expanded into a list of interfaces. Required when MLAG leafs are present in the topology. |
|||
- <str> | String | ||||
mlag_interfaces_speed | String | Set MLAG interface speed. Speed should be set in the format <interface_speed> or forced <interface_speed> or auto <interface_speed> . |
|||
mlag_peer_l3_vlan | Integer | 4093 |
Min: 0 Max: 4094 |
Underlay L3 peering SVI interface id. If set to 0 or the same vlan as mlag_peer_vlan, the mlag_peer_vlan will be used for L3 peering. |
|
mlag_peer_l3_ipv4_pool | String | Format: ipv4_cidr | IP address pool used for MLAG underlay L3 peering. IP is derived from the node id. Required when MLAG leafs present in topology and they are using a separate L3 peering VLAN. |
||
mlag_peer_vlan | Integer | 4094 |
Min: 1 Max: 4094 |
MLAG Peer Link (control link) SVI interface id. | |
mlag_peer_link_allowed_vlans | String | ||||
mlag_peer_address_family | String | ipv4 |
Valid Values: - ipv4 - ipv6 |
IP address family used to establish MLAG Peer Link (control link).ipv6 requires EOS version 4.31.1F or higher.Note: ipv6 is not supported in combination with a common MLAG peer link VLAN (ex. mlag_peer_l3_vlan set to 4094). |
|
mlag_peer_ipv4_pool | String | Format: ipv4_cidr | IPv4 address pool used for MLAG Peer Link (control link). IP is derived from the node id. Required for MLAG leafs when mlag_peer_address_family is ipv4 (default). |
||
mlag_peer_ipv6_pool | String | Format: ipv6_cidr | IPv6 address pool used for MLAG Peer Link (control link). IP is derived from the node id. Required for MLAG leafs when mlag_peer_address_family is ipv6 . |
||
mlag_port_channel_id | Integer | If not set, the mlag port-channel id is generated based on the digits of the first interface present in ‘mlag_interfaces’. Valid port-channel id numbers are < 1-2000 > for EOS < 4.25.0F and < 1 - 999999 > for EOS >= 4.25.0F. |
|||
mlag_domain_id | String | MLAG Domain ID. If not set the node group name (Set with “group” key) will be used. | |||
spanning_tree_mode | String | Valid Values: - mstp - rstp - rapid-pvst - none |
|||
spanning_tree_priority | Integer | 32768 |
Spanning-tree priority configured for the selected mode. For rapid-pvst the priority can also be set per VLAN under network services. |
||
spanning_tree_root_super | Boolean | False |
|||
virtual_router_mac_address | String | Format: mac | Virtual router mac address for anycast gateway. | ||
nodes | List, items: Dictionary | Define variables per node. | |||
- name | String | Required, Unique | The Node Name is used as “hostname”. | ||
mlag_port_channel_structured_config | Dictionary | Custom structured config applied to MLAG peer link port-channel id. Added under port_channel_interfaces.[name= Overrides the settings on the port-channel interface level. “mlag_port_channel_structured_config” is applied after “structured_config”, so it can override “structured_config” defined on node-level. |
|||
mlag_peer_vlan_structured_config | Dictionary | Custom structured config applied to MLAG Peer Link (control link) SVI interface id. Added under vlan_interfaces.[name= Overrides the settings on the vlan interface level. “mlag_peer_vlan_structured_config” is applied after “structured_config”, so it can override “structured_config” defined on node-level. |
|||
mlag_peer_l3_vlan_structured_config | Dictionary | Custom structured config applied to MLAG underlay L3 peering SVI interface id. Added under vlan_interfaces.[name= Overrides the settings on the vlan interface level. “mlag_peer_l3_vlan_structured_config” is applied after “structured_config”, so it can override “structured_config” defined on node-level. |
|||
mlag | Boolean | True |
Enable / Disable auto MLAG, when two nodes are defined in node group. | ||
mlag_dual_primary_detection | Boolean | False |
Enable / Disable MLAG dual primary detection. | ||
mlag_ibgp_origin_incomplete | Boolean | True |
Set origin of routes received from MLAG iBGP peer to incomplete. The purpose is to optimize routing for leaf loopbacks from spine perspective and avoid suboptimal routing via peerlink for control plane traffic. |
||
mlag_interfaces | List, items: String | Each list item supports range syntax that can be expanded into a list of interfaces. Required when MLAG leafs are present in the topology. |
|||
- <str> | String | ||||
mlag_interfaces_speed | String | Set MLAG interface speed. Speed should be set in the format <interface_speed> or forced <interface_speed> or auto <interface_speed> . |
|||
mlag_peer_l3_vlan | Integer | 4093 |
Min: 0 Max: 4094 |
Underlay L3 peering SVI interface id. If set to 0 or the same vlan as mlag_peer_vlan, the mlag_peer_vlan will be used for L3 peering. |
|
mlag_peer_l3_ipv4_pool | String | Format: ipv4_cidr | IP address pool used for MLAG underlay L3 peering. IP is derived from the node id. Required when MLAG leafs present in topology and they are using a separate L3 peering VLAN. |
||
mlag_peer_vlan | Integer | 4094 |
Min: 1 Max: 4094 |
MLAG Peer Link (control link) SVI interface id. | |
mlag_peer_link_allowed_vlans | String | ||||
mlag_peer_address_family | String | ipv4 |
Valid Values: - ipv4 - ipv6 |
IP address family used to establish MLAG Peer Link (control link).ipv6 requires EOS version 4.31.1F or higher.Note: ipv6 is not supported in combination with a common MLAG peer link VLAN (ex. mlag_peer_l3_vlan set to 4094). |
|
mlag_peer_ipv4_pool | String | Format: ipv4_cidr | IPv4 address pool used for MLAG Peer Link (control link). IP is derived from the node id. Required for MLAG leafs when mlag_peer_address_family is ipv4 (default). |
||
mlag_peer_ipv6_pool | String | Format: ipv6_cidr | IPv6 address pool used for MLAG Peer Link (control link). IP is derived from the node id. Required for MLAG leafs when mlag_peer_address_family is ipv6 . |
||
mlag_port_channel_id | Integer | If not set, the mlag port-channel id is generated based on the digits of the first interface present in ‘mlag_interfaces’. Valid port-channel id numbers are < 1-2000 > for EOS < 4.25.0F and < 1 - 999999 > for EOS >= 4.25.0F. |
|||
mlag_domain_id | String | MLAG Domain ID. If not set the node group name (Set with “group” key) will be used. | |||
spanning_tree_mode | String | Valid Values: - mstp - rstp - rapid-pvst - none |
|||
spanning_tree_priority | Integer | 32768 |
Spanning-tree priority configured for the selected mode. For rapid-pvst the priority can also be set per VLAN under network services. |
||
spanning_tree_root_super | Boolean | False |
|||
virtual_router_mac_address | String | Format: mac | Virtual router mac address for anycast gateway. |
<node_type_keys.key>:
# Define variables for all nodes of this type.
defaults:
# Custom structured config applied to MLAG peer link port-channel id.
# Added under port_channel_interfaces.[name=<interface>] for eos_cli_config_gen.
# Overrides the settings on the port-channel interface level.
# "mlag_port_channel_structured_config" is applied after "structured_config", so it can override "structured_config" defined on node-level.
mlag_port_channel_structured_config: <dict>
# Custom structured config applied to MLAG Peer Link (control link) SVI interface id.
# Added under vlan_interfaces.[name=<interface>] for eos_cli_config_gen.
# Overrides the settings on the vlan interface level.
# "mlag_peer_vlan_structured_config" is applied after "structured_config", so it can override "structured_config" defined on node-level.
mlag_peer_vlan_structured_config: <dict>
# Custom structured config applied to MLAG underlay L3 peering SVI interface id.
# Added under vlan_interfaces.[name=<interface>] for eos_cli_config_gen.
# Overrides the settings on the vlan interface level.
# "mlag_peer_l3_vlan_structured_config" is applied after "structured_config", so it can override "structured_config" defined on node-level.
mlag_peer_l3_vlan_structured_config: <dict>
# Enable / Disable auto MLAG, when two nodes are defined in node group.
mlag: <bool; default=True>
# Enable / Disable MLAG dual primary detection.
mlag_dual_primary_detection: <bool; default=False>
# Set origin of routes received from MLAG iBGP peer to incomplete.
# The purpose is to optimize routing for leaf loopbacks from spine perspective and
# avoid suboptimal routing via peerlink for control plane traffic.
mlag_ibgp_origin_incomplete: <bool; default=True>
# Each list item supports range syntax that can be expanded into a list of interfaces.
# Required when MLAG leafs are present in the topology.
mlag_interfaces:
- <str>
# Set MLAG interface speed.
# Speed should be set in the format `<interface_speed>` or `forced <interface_speed>` or `auto <interface_speed>`.
mlag_interfaces_speed: <str>
# Underlay L3 peering SVI interface id.
# If set to 0 or the same vlan as mlag_peer_vlan, the mlag_peer_vlan will be used for L3 peering.
mlag_peer_l3_vlan: <int; 0-4094; default=4093>
# IP address pool used for MLAG underlay L3 peering. IP is derived from the node id.
# Required when MLAG leafs present in topology and they are using a separate L3 peering VLAN.
mlag_peer_l3_ipv4_pool: <str>
# MLAG Peer Link (control link) SVI interface id.
mlag_peer_vlan: <int; 1-4094; default=4094>
mlag_peer_link_allowed_vlans: <str>
# IP address family used to establish MLAG Peer Link (control link).
# `ipv6` requires EOS version 4.31.1F or higher.
# Note: `ipv6` is not supported in combination with a common MLAG peer link VLAN (ex. `mlag_peer_l3_vlan` set to 4094).
mlag_peer_address_family: <str; "ipv4" | "ipv6"; default="ipv4">
# IPv4 address pool used for MLAG Peer Link (control link). IP is derived from the node id.
# Required for MLAG leafs when `mlag_peer_address_family` is `ipv4` (default).
mlag_peer_ipv4_pool: <str>
# IPv6 address pool used for MLAG Peer Link (control link). IP is derived from the node id.
# Required for MLAG leafs when `mlag_peer_address_family` is `ipv6`.
mlag_peer_ipv6_pool: <str>
# If not set, the mlag port-channel id is generated based on the digits of the first interface present in 'mlag_interfaces'.
# Valid port-channel id numbers are < 1-2000 > for EOS < 4.25.0F and < 1 - 999999 > for EOS >= 4.25.0F.
mlag_port_channel_id: <int>
# MLAG Domain ID. If not set the node group name (Set with "group" key) will be used.
mlag_domain_id: <str>
spanning_tree_mode: <str; "mstp" | "rstp" | "rapid-pvst" | "none">
# Spanning-tree priority configured for the selected mode.
# For `rapid-pvst` the priority can also be set per VLAN under network services.
spanning_tree_priority: <int; default=32768>
spanning_tree_root_super: <bool; default=False>
# Virtual router mac address for anycast gateway.
virtual_router_mac_address: <str>
# Define variables related to all nodes part of this group.
node_groups:
# The Node Group Name is used for MLAG domain unless set with 'mlag_domain_id'.
# The Node Group Name is also used for peer description on downstream switches' uplinks.
- group: <str; required; unique>
# Define variables per node.
nodes:
# The Node Name is used as "hostname".
- name: <str; required; unique>
# Custom structured config applied to MLAG peer link port-channel id.
# Added under port_channel_interfaces.[name=<interface>] for eos_cli_config_gen.
# Overrides the settings on the port-channel interface level.
# "mlag_port_channel_structured_config" is applied after "structured_config", so it can override "structured_config" defined on node-level.
mlag_port_channel_structured_config: <dict>
# Custom structured config applied to MLAG Peer Link (control link) SVI interface id.
# Added under vlan_interfaces.[name=<interface>] for eos_cli_config_gen.
# Overrides the settings on the vlan interface level.
# "mlag_peer_vlan_structured_config" is applied after "structured_config", so it can override "structured_config" defined on node-level.
mlag_peer_vlan_structured_config: <dict>
# Custom structured config applied to MLAG underlay L3 peering SVI interface id.
# Added under vlan_interfaces.[name=<interface>] for eos_cli_config_gen.
# Overrides the settings on the vlan interface level.
# "mlag_peer_l3_vlan_structured_config" is applied after "structured_config", so it can override "structured_config" defined on node-level.
mlag_peer_l3_vlan_structured_config: <dict>
# Enable / Disable auto MLAG, when two nodes are defined in node group.
mlag: <bool; default=True>
# Enable / Disable MLAG dual primary detection.
mlag_dual_primary_detection: <bool; default=False>
# Set origin of routes received from MLAG iBGP peer to incomplete.
# The purpose is to optimize routing for leaf loopbacks from spine perspective and
# avoid suboptimal routing via peerlink for control plane traffic.
mlag_ibgp_origin_incomplete: <bool; default=True>
# Each list item supports range syntax that can be expanded into a list of interfaces.
# Required when MLAG leafs are present in the topology.
mlag_interfaces:
- <str>
# Set MLAG interface speed.
# Speed should be set in the format `<interface_speed>` or `forced <interface_speed>` or `auto <interface_speed>`.
mlag_interfaces_speed: <str>
# Underlay L3 peering SVI interface id.
# If set to 0 or the same vlan as mlag_peer_vlan, the mlag_peer_vlan will be used for L3 peering.
mlag_peer_l3_vlan: <int; 0-4094; default=4093>
# IP address pool used for MLAG underlay L3 peering. IP is derived from the node id.
# Required when MLAG leafs present in topology and they are using a separate L3 peering VLAN.
mlag_peer_l3_ipv4_pool: <str>
# MLAG Peer Link (control link) SVI interface id.
mlag_peer_vlan: <int; 1-4094; default=4094>
mlag_peer_link_allowed_vlans: <str>
# IP address family used to establish MLAG Peer Link (control link).
# `ipv6` requires EOS version 4.31.1F or higher.
# Note: `ipv6` is not supported in combination with a common MLAG peer link VLAN (ex. `mlag_peer_l3_vlan` set to 4094).
mlag_peer_address_family: <str; "ipv4" | "ipv6"; default="ipv4">
# IPv4 address pool used for MLAG Peer Link (control link). IP is derived from the node id.
# Required for MLAG leafs when `mlag_peer_address_family` is `ipv4` (default).
mlag_peer_ipv4_pool: <str>
# IPv6 address pool used for MLAG Peer Link (control link). IP is derived from the node id.
# Required for MLAG leafs when `mlag_peer_address_family` is `ipv6`.
mlag_peer_ipv6_pool: <str>
# If not set, the mlag port-channel id is generated based on the digits of the first interface present in 'mlag_interfaces'.
# Valid port-channel id numbers are < 1-2000 > for EOS < 4.25.0F and < 1 - 999999 > for EOS >= 4.25.0F.
mlag_port_channel_id: <int>
# MLAG Domain ID. If not set the node group name (Set with "group" key) will be used.
mlag_domain_id: <str>
spanning_tree_mode: <str; "mstp" | "rstp" | "rapid-pvst" | "none">
# Spanning-tree priority configured for the selected mode.
# For `rapid-pvst` the priority can also be set per VLAN under network services.
spanning_tree_priority: <int; default=32768>
spanning_tree_root_super: <bool; default=False>
# Virtual router mac address for anycast gateway.
virtual_router_mac_address: <str>
# Custom structured config applied to MLAG peer link port-channel id.
# Added under port_channel_interfaces.[name=<interface>] for eos_cli_config_gen.
# Overrides the settings on the port-channel interface level.
# "mlag_port_channel_structured_config" is applied after "structured_config", so it can override "structured_config" defined on node-level.
mlag_port_channel_structured_config: <dict>
# Custom structured config applied to MLAG Peer Link (control link) SVI interface id.
# Added under vlan_interfaces.[name=<interface>] for eos_cli_config_gen.
# Overrides the settings on the vlan interface level.
# "mlag_peer_vlan_structured_config" is applied after "structured_config", so it can override "structured_config" defined on node-level.
mlag_peer_vlan_structured_config: <dict>
# Custom structured config applied to MLAG underlay L3 peering SVI interface id.
# Added under vlan_interfaces.[name=<interface>] for eos_cli_config_gen.
# Overrides the settings on the vlan interface level.
# "mlag_peer_l3_vlan_structured_config" is applied after "structured_config", so it can override "structured_config" defined on node-level.
mlag_peer_l3_vlan_structured_config: <dict>
# Enable / Disable auto MLAG, when two nodes are defined in node group.
mlag: <bool; default=True>
# Enable / Disable MLAG dual primary detection.
mlag_dual_primary_detection: <bool; default=False>
# Set origin of routes received from MLAG iBGP peer to incomplete.
# The purpose is to optimize routing for leaf loopbacks from spine perspective and
# avoid suboptimal routing via peerlink for control plane traffic.
mlag_ibgp_origin_incomplete: <bool; default=True>
# Each list item supports range syntax that can be expanded into a list of interfaces.
# Required when MLAG leafs are present in the topology.
mlag_interfaces:
- <str>
# Set MLAG interface speed.
# Speed should be set in the format `<interface_speed>` or `forced <interface_speed>` or `auto <interface_speed>`.
mlag_interfaces_speed: <str>
# Underlay L3 peering SVI interface id.
# If set to 0 or the same vlan as mlag_peer_vlan, the mlag_peer_vlan will be used for L3 peering.
mlag_peer_l3_vlan: <int; 0-4094; default=4093>
# IP address pool used for MLAG underlay L3 peering. IP is derived from the node id.
# Required when MLAG leafs present in topology and they are using a separate L3 peering VLAN.
mlag_peer_l3_ipv4_pool: <str>
# MLAG Peer Link (control link) SVI interface id.
mlag_peer_vlan: <int; 1-4094; default=4094>
mlag_peer_link_allowed_vlans: <str>
# IP address family used to establish MLAG Peer Link (control link).
# `ipv6` requires EOS version 4.31.1F or higher.
# Note: `ipv6` is not supported in combination with a common MLAG peer link VLAN (ex. `mlag_peer_l3_vlan` set to 4094).
mlag_peer_address_family: <str; "ipv4" | "ipv6"; default="ipv4">
# IPv4 address pool used for MLAG Peer Link (control link). IP is derived from the node id.
# Required for MLAG leafs when `mlag_peer_address_family` is `ipv4` (default).
mlag_peer_ipv4_pool: <str>
# IPv6 address pool used for MLAG Peer Link (control link). IP is derived from the node id.
# Required for MLAG leafs when `mlag_peer_address_family` is `ipv6`.
mlag_peer_ipv6_pool: <str>
# If not set, the mlag port-channel id is generated based on the digits of the first interface present in 'mlag_interfaces'.
# Valid port-channel id numbers are < 1-2000 > for EOS < 4.25.0F and < 1 - 999999 > for EOS >= 4.25.0F.
mlag_port_channel_id: <int>
# MLAG Domain ID. If not set the node group name (Set with "group" key) will be used.
mlag_domain_id: <str>
spanning_tree_mode: <str; "mstp" | "rstp" | "rapid-pvst" | "none">
# Spanning-tree priority configured for the selected mode.
# For `rapid-pvst` the priority can also be set per VLAN under network services.
spanning_tree_priority: <int; default=32768>
spanning_tree_root_super: <bool; default=False>
# Virtual router mac address for anycast gateway.
virtual_router_mac_address: <str>
# Define variables per node.
nodes:
# The Node Name is used as "hostname".
- name: <str; required; unique>
# Custom structured config applied to MLAG peer link port-channel id.
# Added under port_channel_interfaces.[name=<interface>] for eos_cli_config_gen.
# Overrides the settings on the port-channel interface level.
# "mlag_port_channel_structured_config" is applied after "structured_config", so it can override "structured_config" defined on node-level.
mlag_port_channel_structured_config: <dict>
# Custom structured config applied to MLAG Peer Link (control link) SVI interface id.
# Added under vlan_interfaces.[name=<interface>] for eos_cli_config_gen.
# Overrides the settings on the vlan interface level.
# "mlag_peer_vlan_structured_config" is applied after "structured_config", so it can override "structured_config" defined on node-level.
mlag_peer_vlan_structured_config: <dict>
# Custom structured config applied to MLAG underlay L3 peering SVI interface id.
# Added under vlan_interfaces.[name=<interface>] for eos_cli_config_gen.
# Overrides the settings on the vlan interface level.
# "mlag_peer_l3_vlan_structured_config" is applied after "structured_config", so it can override "structured_config" defined on node-level.
mlag_peer_l3_vlan_structured_config: <dict>
# Enable / Disable auto MLAG, when two nodes are defined in node group.
mlag: <bool; default=True>
# Enable / Disable MLAG dual primary detection.
mlag_dual_primary_detection: <bool; default=False>
# Set origin of routes received from MLAG iBGP peer to incomplete.
# The purpose is to optimize routing for leaf loopbacks from spine perspective and
# avoid suboptimal routing via peerlink for control plane traffic.
mlag_ibgp_origin_incomplete: <bool; default=True>
# Each list item supports range syntax that can be expanded into a list of interfaces.
# Required when MLAG leafs are present in the topology.
mlag_interfaces:
- <str>
# Set MLAG interface speed.
# Speed should be set in the format `<interface_speed>` or `forced <interface_speed>` or `auto <interface_speed>`.
mlag_interfaces_speed: <str>
# Underlay L3 peering SVI interface id.
# If set to 0 or the same vlan as mlag_peer_vlan, the mlag_peer_vlan will be used for L3 peering.
mlag_peer_l3_vlan: <int; 0-4094; default=4093>
# IP address pool used for MLAG underlay L3 peering. IP is derived from the node id.
# Required when MLAG leafs present in topology and they are using a separate L3 peering VLAN.
mlag_peer_l3_ipv4_pool: <str>
# MLAG Peer Link (control link) SVI interface id.
mlag_peer_vlan: <int; 1-4094; default=4094>
mlag_peer_link_allowed_vlans: <str>
# IP address family used to establish MLAG Peer Link (control link).
# `ipv6` requires EOS version 4.31.1F or higher.
# Note: `ipv6` is not supported in combination with a common MLAG peer link VLAN (ex. `mlag_peer_l3_vlan` set to 4094).
mlag_peer_address_family: <str; "ipv4" | "ipv6"; default="ipv4">
# IPv4 address pool used for MLAG Peer Link (control link). IP is derived from the node id.
# Required for MLAG leafs when `mlag_peer_address_family` is `ipv4` (default).
mlag_peer_ipv4_pool: <str>
# IPv6 address pool used for MLAG Peer Link (control link). IP is derived from the node id.
# Required for MLAG leafs when `mlag_peer_address_family` is `ipv6`.
mlag_peer_ipv6_pool: <str>
# If not set, the mlag port-channel id is generated based on the digits of the first interface present in 'mlag_interfaces'.
# Valid port-channel id numbers are < 1-2000 > for EOS < 4.25.0F and < 1 - 999999 > for EOS >= 4.25.0F.
mlag_port_channel_id: <int>
# MLAG Domain ID. If not set the node group name (Set with "group" key) will be used.
mlag_domain_id: <str>
spanning_tree_mode: <str; "mstp" | "rstp" | "rapid-pvst" | "none">
# Spanning-tree priority configured for the selected mode.
# For `rapid-pvst` the priority can also be set per VLAN under network services.
spanning_tree_priority: <int; default=32768>
spanning_tree_root_super: <bool; default=False>
# Virtual router mac address for anycast gateway.
virtual_router_mac_address: <str>
Node type Loopback and VTEP configuration¶
Variable | Type | Required | Default | Value Restrictions | Description |
---|---|---|---|---|---|
<node_type_keys.key> | Dictionary | ||||
defaults | Dictionary | Define variables for all nodes of this type. | |||
loopback_ipv4_pool | String | Format: ipv4_cidr | IPv4 subnet for Loopback0 allocation. | ||
loopback_ipv4_address | String | Format: ipv4 | IPv4 address without mask for Loopback0. When set, it takes precedence over loopback_ipv4_pool .Note: AVD does not check for validity of the IPv4 address and does not catch duplicates. |
||
vtep_loopback_ipv4_pool | String | Format: ipv4_cidr | IPv4 subnet for VTEP-Loopback allocation. | ||
vtep_loopback_ipv4_address | String | Format: ipv4 | IPv4 address without mask for VTEP-Loopback. When set, it takes precedence over vtep_loopback_ipv4_pool .Note: AVD does not check for validity of the IPv4 address and does not catch duplicates. |
||
loopback_ipv4_offset | Integer | 0 |
Offset all assigned loopback IP addresses. Required when the < loopback_ipv4_pool > is same for 2 different node_types (like spine and l3leaf) to avoid over-lapping IPs. For example, set the minimum offset l3leaf.defaults.loopback_ipv4_offset: < total # spine switches > or vice versa. |
||
loopback_ipv6_pool | String | Format: ipv6_cidr | IPv6 subnet for Loopback0 allocation. | ||
loopback_ipv6_offset | Integer | 0 |
Offset all assigned loopback IPv6 addresses. Required when the < loopback_ipv6_pool > is same for 2 different node_types (like spine and l3leaf) to avoid overlapping IPs. For example, set the minimum offset l3leaf.defaults.loopback_ipv6_offset: < total # spine switches > or vice versa. |
||
vtep | Boolean | Node is configured as a VTEP when applicable based on ‘overlay_routing_protocol’. Overrides VTEP setting inherited from node_type_keys. |
|||
vtep_loopback | String | Pattern: Loopback[\d/]+ |
Set VXLAN source interface. | ||
node_groups | List, items: Dictionary | Define variables related to all nodes part of this group. | |||
- group | String | Required, Unique | The Node Group Name is used for MLAG domain unless set with ‘mlag_domain_id’. The Node Group Name is also used for peer description on downstream switches’ uplinks. |
||
nodes | List, items: Dictionary | Define variables per node. | |||
- name | String | Required, Unique | The Node Name is used as “hostname”. | ||
loopback_ipv4_pool | String | Format: ipv4_cidr | IPv4 subnet for Loopback0 allocation. | ||
loopback_ipv4_address | String | Format: ipv4 | IPv4 address without mask for Loopback0. When set, it takes precedence over loopback_ipv4_pool .Note: AVD does not check for validity of the IPv4 address and does not catch duplicates. |
||
vtep_loopback_ipv4_pool | String | Format: ipv4_cidr | IPv4 subnet for VTEP-Loopback allocation. | ||
vtep_loopback_ipv4_address | String | Format: ipv4 | IPv4 address without mask for VTEP-Loopback. When set, it takes precedence over vtep_loopback_ipv4_pool .Note: AVD does not check for validity of the IPv4 address and does not catch duplicates. |
||
loopback_ipv4_offset | Integer | 0 |
Offset all assigned loopback IP addresses. Required when the < loopback_ipv4_pool > is same for 2 different node_types (like spine and l3leaf) to avoid over-lapping IPs. For example, set the minimum offset l3leaf.defaults.loopback_ipv4_offset: < total # spine switches > or vice versa. |
||
loopback_ipv6_pool | String | Format: ipv6_cidr | IPv6 subnet for Loopback0 allocation. | ||
loopback_ipv6_offset | Integer | 0 |
Offset all assigned loopback IPv6 addresses. Required when the < loopback_ipv6_pool > is same for 2 different node_types (like spine and l3leaf) to avoid overlapping IPs. For example, set the minimum offset l3leaf.defaults.loopback_ipv6_offset: < total # spine switches > or vice versa. |
||
vtep | Boolean | Node is configured as a VTEP when applicable based on ‘overlay_routing_protocol’. Overrides VTEP setting inherited from node_type_keys. |
|||
vtep_loopback | String | Pattern: Loopback[\d/]+ |
Set VXLAN source interface. | ||
loopback_ipv4_pool | String | Format: ipv4_cidr | IPv4 subnet for Loopback0 allocation. | ||
loopback_ipv4_address | String | Format: ipv4 | IPv4 address without mask for Loopback0. When set, it takes precedence over loopback_ipv4_pool .Note: AVD does not check for validity of the IPv4 address and does not catch duplicates. |
||
vtep_loopback_ipv4_pool | String | Format: ipv4_cidr | IPv4 subnet for VTEP-Loopback allocation. | ||
vtep_loopback_ipv4_address | String | Format: ipv4 | IPv4 address without mask for VTEP-Loopback. When set, it takes precedence over vtep_loopback_ipv4_pool .Note: AVD does not check for validity of the IPv4 address and does not catch duplicates. |
||
loopback_ipv4_offset | Integer | 0 |
Offset all assigned loopback IP addresses. Required when the < loopback_ipv4_pool > is same for 2 different node_types (like spine and l3leaf) to avoid over-lapping IPs. For example, set the minimum offset l3leaf.defaults.loopback_ipv4_offset: < total # spine switches > or vice versa. |
||
loopback_ipv6_pool | String | Format: ipv6_cidr | IPv6 subnet for Loopback0 allocation. | ||
loopback_ipv6_offset | Integer | 0 |
Offset all assigned loopback IPv6 addresses. Required when the < loopback_ipv6_pool > is same for 2 different node_types (like spine and l3leaf) to avoid overlapping IPs. For example, set the minimum offset l3leaf.defaults.loopback_ipv6_offset: < total # spine switches > or vice versa. |
||
vtep | Boolean | Node is configured as a VTEP when applicable based on ‘overlay_routing_protocol’. Overrides VTEP setting inherited from node_type_keys. |
|||
vtep_loopback | String | Pattern: Loopback[\d/]+ |
Set VXLAN source interface. | ||
nodes | List, items: Dictionary | Define variables per node. | |||
- name | String | Required, Unique | The Node Name is used as “hostname”. | ||
loopback_ipv4_pool | String | Format: ipv4_cidr | IPv4 subnet for Loopback0 allocation. | ||
loopback_ipv4_address | String | Format: ipv4 | IPv4 address without mask for Loopback0. When set, it takes precedence over loopback_ipv4_pool .Note: AVD does not check for validity of the IPv4 address and does not catch duplicates. |
||
vtep_loopback_ipv4_pool | String | Format: ipv4_cidr | IPv4 subnet for VTEP-Loopback allocation. | ||
vtep_loopback_ipv4_address | String | Format: ipv4 | IPv4 address without mask for VTEP-Loopback. When set, it takes precedence over vtep_loopback_ipv4_pool .Note: AVD does not check for validity of the IPv4 address and does not catch duplicates. |
||
loopback_ipv4_offset | Integer | 0 |
Offset all assigned loopback IP addresses. Required when the < loopback_ipv4_pool > is same for 2 different node_types (like spine and l3leaf) to avoid over-lapping IPs. For example, set the minimum offset l3leaf.defaults.loopback_ipv4_offset: < total # spine switches > or vice versa. |
||
loopback_ipv6_pool | String | Format: ipv6_cidr | IPv6 subnet for Loopback0 allocation. | ||
loopback_ipv6_offset | Integer | 0 |
Offset all assigned loopback IPv6 addresses. Required when the < loopback_ipv6_pool > is same for 2 different node_types (like spine and l3leaf) to avoid overlapping IPs. For example, set the minimum offset l3leaf.defaults.loopback_ipv6_offset: < total # spine switches > or vice versa. |
||
vtep | Boolean | Node is configured as a VTEP when applicable based on ‘overlay_routing_protocol’. Overrides VTEP setting inherited from node_type_keys. |
|||
vtep_loopback | String | Pattern: Loopback[\d/]+ |
Set VXLAN source interface. |
<node_type_keys.key>:
# Define variables for all nodes of this type.
defaults:
# IPv4 subnet for Loopback0 allocation.
loopback_ipv4_pool: <str>
# IPv4 address without mask for Loopback0.
# When set, it takes precedence over `loopback_ipv4_pool`.
# Note: AVD does not check for validity of the IPv4 address and does not catch duplicates.
loopback_ipv4_address: <str>
# IPv4 subnet for VTEP-Loopback allocation.
vtep_loopback_ipv4_pool: <str>
# IPv4 address without mask for VTEP-Loopback.
# When set, it takes precedence over `vtep_loopback_ipv4_pool`.
# Note: AVD does not check for validity of the IPv4 address and does not catch duplicates.
vtep_loopback_ipv4_address: <str>
# Offset all assigned loopback IP addresses.
# Required when the < loopback_ipv4_pool > is same for 2 different node_types (like spine and l3leaf) to avoid over-lapping IPs.
# For example, set the minimum offset l3leaf.defaults.loopback_ipv4_offset: < total # spine switches > or vice versa.
loopback_ipv4_offset: <int; default=0>
# IPv6 subnet for Loopback0 allocation.
loopback_ipv6_pool: <str>
# Offset all assigned loopback IPv6 addresses.
# Required when the < loopback_ipv6_pool > is same for 2 different node_types (like spine and l3leaf) to avoid overlapping IPs.
# For example, set the minimum offset l3leaf.defaults.loopback_ipv6_offset: < total # spine switches > or vice versa.
loopback_ipv6_offset: <int; default=0>
# Node is configured as a VTEP when applicable based on 'overlay_routing_protocol'.
# Overrides VTEP setting inherited from node_type_keys.
vtep: <bool>
# Set VXLAN source interface.
vtep_loopback: <str>
# Define variables related to all nodes part of this group.
node_groups:
# The Node Group Name is used for MLAG domain unless set with 'mlag_domain_id'.
# The Node Group Name is also used for peer description on downstream switches' uplinks.
- group: <str; required; unique>
# Define variables per node.
nodes:
# The Node Name is used as "hostname".
- name: <str; required; unique>
# IPv4 subnet for Loopback0 allocation.
loopback_ipv4_pool: <str>
# IPv4 address without mask for Loopback0.
# When set, it takes precedence over `loopback_ipv4_pool`.
# Note: AVD does not check for validity of the IPv4 address and does not catch duplicates.
loopback_ipv4_address: <str>
# IPv4 subnet for VTEP-Loopback allocation.
vtep_loopback_ipv4_pool: <str>
# IPv4 address without mask for VTEP-Loopback.
# When set, it takes precedence over `vtep_loopback_ipv4_pool`.
# Note: AVD does not check for validity of the IPv4 address and does not catch duplicates.
vtep_loopback_ipv4_address: <str>
# Offset all assigned loopback IP addresses.
# Required when the < loopback_ipv4_pool > is same for 2 different node_types (like spine and l3leaf) to avoid over-lapping IPs.
# For example, set the minimum offset l3leaf.defaults.loopback_ipv4_offset: < total # spine switches > or vice versa.
loopback_ipv4_offset: <int; default=0>
# IPv6 subnet for Loopback0 allocation.
loopback_ipv6_pool: <str>
# Offset all assigned loopback IPv6 addresses.
# Required when the < loopback_ipv6_pool > is same for 2 different node_types (like spine and l3leaf) to avoid overlapping IPs.
# For example, set the minimum offset l3leaf.defaults.loopback_ipv6_offset: < total # spine switches > or vice versa.
loopback_ipv6_offset: <int; default=0>
# Node is configured as a VTEP when applicable based on 'overlay_routing_protocol'.
# Overrides VTEP setting inherited from node_type_keys.
vtep: <bool>
# Set VXLAN source interface.
vtep_loopback: <str>
# IPv4 subnet for Loopback0 allocation.
loopback_ipv4_pool: <str>
# IPv4 address without mask for Loopback0.
# When set, it takes precedence over `loopback_ipv4_pool`.
# Note: AVD does not check for validity of the IPv4 address and does not catch duplicates.
loopback_ipv4_address: <str>
# IPv4 subnet for VTEP-Loopback allocation.
vtep_loopback_ipv4_pool: <str>
# IPv4 address without mask for VTEP-Loopback.
# When set, it takes precedence over `vtep_loopback_ipv4_pool`.
# Note: AVD does not check for validity of the IPv4 address and does not catch duplicates.
vtep_loopback_ipv4_address: <str>
# Offset all assigned loopback IP addresses.
# Required when the < loopback_ipv4_pool > is same for 2 different node_types (like spine and l3leaf) to avoid over-lapping IPs.
# For example, set the minimum offset l3leaf.defaults.loopback_ipv4_offset: < total # spine switches > or vice versa.
loopback_ipv4_offset: <int; default=0>
# IPv6 subnet for Loopback0 allocation.
loopback_ipv6_pool: <str>
# Offset all assigned loopback IPv6 addresses.
# Required when the < loopback_ipv6_pool > is same for 2 different node_types (like spine and l3leaf) to avoid overlapping IPs.
# For example, set the minimum offset l3leaf.defaults.loopback_ipv6_offset: < total # spine switches > or vice versa.
loopback_ipv6_offset: <int; default=0>
# Node is configured as a VTEP when applicable based on 'overlay_routing_protocol'.
# Overrides VTEP setting inherited from node_type_keys.
vtep: <bool>
# Set VXLAN source interface.
vtep_loopback: <str>
# Define variables per node.
nodes:
# The Node Name is used as "hostname".
- name: <str; required; unique>
# IPv4 subnet for Loopback0 allocation.
loopback_ipv4_pool: <str>
# IPv4 address without mask for Loopback0.
# When set, it takes precedence over `loopback_ipv4_pool`.
# Note: AVD does not check for validity of the IPv4 address and does not catch duplicates.
loopback_ipv4_address: <str>
# IPv4 subnet for VTEP-Loopback allocation.
vtep_loopback_ipv4_pool: <str>
# IPv4 address without mask for VTEP-Loopback.
# When set, it takes precedence over `vtep_loopback_ipv4_pool`.
# Note: AVD does not check for validity of the IPv4 address and does not catch duplicates.
vtep_loopback_ipv4_address: <str>
# Offset all assigned loopback IP addresses.
# Required when the < loopback_ipv4_pool > is same for 2 different node_types (like spine and l3leaf) to avoid over-lapping IPs.
# For example, set the minimum offset l3leaf.defaults.loopback_ipv4_offset: < total # spine switches > or vice versa.
loopback_ipv4_offset: <int; default=0>
# IPv6 subnet for Loopback0 allocation.
loopback_ipv6_pool: <str>
# Offset all assigned loopback IPv6 addresses.
# Required when the < loopback_ipv6_pool > is same for 2 different node_types (like spine and l3leaf) to avoid overlapping IPs.
# For example, set the minimum offset l3leaf.defaults.loopback_ipv6_offset: < total # spine switches > or vice versa.
loopback_ipv6_offset: <int; default=0>
# Node is configured as a VTEP when applicable based on 'overlay_routing_protocol'.
# Overrides VTEP setting inherited from node_type_keys.
vtep: <bool>
# Set VXLAN source interface.
vtep_loopback: <str>
Node type L3 interfaces configuration¶
Variable | Type | Required | Default | Value Restrictions | Description |
---|---|---|---|---|---|
<node_type_keys.key> | Dictionary | ||||
defaults | Dictionary | Define variables for all nodes of this type. | |||
l3_interfaces | List, items: Dictionary | L3 Interfaces to configure on the node. Used to define the node for WAN interfaces when wan_carrier is set. |
|||
- profile | String | L3 interface profile name. Profile defined under l3_interface_profiles . |
|||
name | String | Required, Unique | Pattern: Ethernet[\d/]+(.[\d]+)? |
Ethernet interface name like ‘Ethernet2’ or subinterface name like ‘Ethernet2.42’. For a subinterface, the parent physical interface is automatically created. |
|
description | String | Interface description. If not set a default description will be configured with ‘[ |
|||
ip_address | String | Node IPv4 address/Mask or ‘dhcp’. | |||
dhcp_ip | String | When the ip_address is dhcp , this optional field allows to indicate the expectedIPv4 address (without mask) to be allocated on the interface if known. This is not rendered in the configuration but can be used for substitution of ‘interface_ip’ in the Access-list set under ipv4_acl_in and ipv4_acl_out . |
|||
public_ip | String | Node IPv4 address (no mask). This is used to get the public IP (if known) when the device is behind NAT. This is only used for wan_rr routers (AutoVPN RRs and Pathfinders) to determine the Public IPwith the following preference: wan_route_servers.path_groups.interfaces.ip_address -> l3_interfaces.public_ip -> l3_interfaces.ip_address The determined Public IP is used by WAN routers when peering with this interface. |
|||
encapsulation_dot1q_vlan | Integer | Min: 1 Max: 4094 |
For subinterfaces the dot1q vlan is derived from the interface name by default, but can also be specified. | ||
dhcp_accept_default_route | Boolean | True |
Accept a default route from DHCP if ip_address is set to dhcp . |
||
enabled | Boolean | True |
Enable or Shutdown the interface. | ||
speed | String | Speed should be set in the format <interface_speed> or forced <interface_speed> or auto <interface_speed> . |
|||
peer | String | The peer device name. Used for description and documentation. | |||
peer_interface | String | The peer device interface. Used for description and documentation. | |||
peer_ip | String | The peer device IPv4 address (no mask). Used as default route gateway if set_default_route is true and ip is an IP address. |
|||
bgp | Dictionary | Enforce IPv4 BGP peering for the peer | |||
peer_as | String | Required | BGP AS <1-4294967295> or AS number in asdot notation “<1-65535>.<0-65535>”. For asdot notation in YAML inputs, the value must be put in quotes, to prevent it from being interpreted as a float number. |
||
ipv4_prefix_list_in | String | Prefix List Name. Accept routes for only these prefixes from the peer. Required for wan interfaces. |
|||
ipv4_prefix_list_out | String | Prefix List Name. Advertise routes for only these prefixes. If not specified, nothing would be advertised. |
|||
ipv4_acl_in | String | Name of the IPv4 access-list to be assigned in the ingress direction. The access-list must be defined under ipv4_acls and supports field substitution for “interface_ip” and “peer_ip”.Required for all WAN interfaces ( wan_carrier is set) unless the carrier is marked as ‘trusted’ under wan_carriers . |
|||
ipv4_acl_out | String | Name of the IPv4 Access-list to be assigned in the egress direction. The access-list must be defined under ipv4_acls and supports field substitution for “interface_ip” and “peer_ip”. |
|||
static_routes | List, items: Dictionary | Min Length: 1 | Configure IPv4 static routes pointing to peer_ip . |
||
- prefix | String | Required | IPv4_network/Mask. | ||
qos_profile | String | QOS service profile. | |||
wan_carrier | String | The WAN carrier this interface is connected to. This is used to infer the path-groups in which this interface should be configured. Unless the carrier is marked as ‘trusted’ under wan_carriers , ipv4_acl_in is also required on all WAN interfaces. |
|||
wan_circuit_id | String | The WAN circuit ID for this interface. This is not rendered in the configuration but used for WAN designs. |
|||
connected_to_pathfinder | Boolean | True |
For a WAN interface (wan_carrier is set), allow to disable the static tunnel towards Pathfinders. |
||
cv_pathfinder_internet_exit | Dictionary | PREVIEW: This key is in preview mode | |||
policies | List, items: Dictionary | List of Internet-exit policies using this interface as exit. | |||
- name | String | Required, Unique | Internet-exit policy name. | ||
tunnel_interface_numbers | String | Number range to use for Tunnel interfaces to an internet-exit service provider using this local interface. Examples: ‘1-3’ or ‘100,200,300’ |
|||
raw_eos_cli | String | EOS CLI rendered directly on the interface in the final EOS configuration. | |||
flow_tracking | Dictionary | Configures flow-tracking on the interface. Overrides fabric_flow_tracking.l3_interfaces setting. |
|||
enabled | Boolean | ||||
name | String | Flow tracker name as defined in flow_tracking_settings. | |||
structured_config | Dictionary | Custom structured config for the Ethernet interface. | |||
node_groups | List, items: Dictionary | Define variables related to all nodes part of this group. | |||
- group | String | Required, Unique | The Node Group Name is used for MLAG domain unless set with ‘mlag_domain_id’. The Node Group Name is also used for peer description on downstream switches’ uplinks. |
||
nodes | List, items: Dictionary | Define variables per node. | |||
- name | String | Required, Unique | The Node Name is used as “hostname”. | ||
l3_interfaces | List, items: Dictionary | L3 Interfaces to configure on the node. Used to define the node for WAN interfaces when wan_carrier is set. |
|||
- profile | String | L3 interface profile name. Profile defined under l3_interface_profiles . |
|||
name | String | Required, Unique | Pattern: Ethernet[\d/]+(.[\d]+)? |
Ethernet interface name like ‘Ethernet2’ or subinterface name like ‘Ethernet2.42’. For a subinterface, the parent physical interface is automatically created. |
|
description | String | Interface description. If not set a default description will be configured with ‘[ |
|||
ip_address | String | Node IPv4 address/Mask or ‘dhcp’. | |||
dhcp_ip | String | When the ip_address is dhcp , this optional field allows to indicate the expectedIPv4 address (without mask) to be allocated on the interface if known. This is not rendered in the configuration but can be used for substitution of ‘interface_ip’ in the Access-list set under ipv4_acl_in and ipv4_acl_out . |
|||
public_ip | String | Node IPv4 address (no mask). This is used to get the public IP (if known) when the device is behind NAT. This is only used for wan_rr routers (AutoVPN RRs and Pathfinders) to determine the Public IPwith the following preference: wan_route_servers.path_groups.interfaces.ip_address -> l3_interfaces.public_ip -> l3_interfaces.ip_address The determined Public IP is used by WAN routers when peering with this interface. |
|||
encapsulation_dot1q_vlan | Integer | Min: 1 Max: 4094 |
For subinterfaces the dot1q vlan is derived from the interface name by default, but can also be specified. | ||
dhcp_accept_default_route | Boolean | True |
Accept a default route from DHCP if ip_address is set to dhcp . |
||
enabled | Boolean | True |
Enable or Shutdown the interface. | ||
speed | String | Speed should be set in the format <interface_speed> or forced <interface_speed> or auto <interface_speed> . |
|||
peer | String | The peer device name. Used for description and documentation. | |||
peer_interface | String | The peer device interface. Used for description and documentation. | |||
peer_ip | String | The peer device IPv4 address (no mask). Used as default route gateway if set_default_route is true and ip is an IP address. |
|||
bgp | Dictionary | Enforce IPv4 BGP peering for the peer | |||
peer_as | String | Required | BGP AS <1-4294967295> or AS number in asdot notation “<1-65535>.<0-65535>”. For asdot notation in YAML inputs, the value must be put in quotes, to prevent it from being interpreted as a float number. |
||
ipv4_prefix_list_in | String | Prefix List Name. Accept routes for only these prefixes from the peer. Required for wan interfaces. |
|||
ipv4_prefix_list_out | String | Prefix List Name. Advertise routes for only these prefixes. If not specified, nothing would be advertised. |
|||
ipv4_acl_in | String | Name of the IPv4 access-list to be assigned in the ingress direction. The access-list must be defined under ipv4_acls and supports field substitution for “interface_ip” and “peer_ip”.Required for all WAN interfaces ( wan_carrier is set) unless the carrier is marked as ‘trusted’ under wan_carriers . |
|||
ipv4_acl_out | String | Name of the IPv4 Access-list to be assigned in the egress direction. The access-list must be defined under ipv4_acls and supports field substitution for “interface_ip” and “peer_ip”. |
|||
static_routes | List, items: Dictionary | Min Length: 1 | Configure IPv4 static routes pointing to peer_ip . |
||
- prefix | String | Required | IPv4_network/Mask. | ||
qos_profile | String | QOS service profile. | |||
wan_carrier | String | The WAN carrier this interface is connected to. This is used to infer the path-groups in which this interface should be configured. Unless the carrier is marked as ‘trusted’ under wan_carriers , ipv4_acl_in is also required on all WAN interfaces. |
|||
wan_circuit_id | String | The WAN circuit ID for this interface. This is not rendered in the configuration but used for WAN designs. |
|||
connected_to_pathfinder | Boolean | True |
For a WAN interface (wan_carrier is set), allow to disable the static tunnel towards Pathfinders. |
||
cv_pathfinder_internet_exit | Dictionary | PREVIEW: This key is in preview mode | |||
policies | List, items: Dictionary | List of Internet-exit policies using this interface as exit. | |||
- name | String | Required, Unique | Internet-exit policy name. | ||
tunnel_interface_numbers | String | Number range to use for Tunnel interfaces to an internet-exit service provider using this local interface. Examples: ‘1-3’ or ‘100,200,300’ |
|||
raw_eos_cli | String | EOS CLI rendered directly on the interface in the final EOS configuration. | |||
flow_tracking | Dictionary | Configures flow-tracking on the interface. Overrides fabric_flow_tracking.l3_interfaces setting. |
|||
enabled | Boolean | ||||
name | String | Flow tracker name as defined in flow_tracking_settings. | |||
structured_config | Dictionary | Custom structured config for the Ethernet interface. | |||
l3_interfaces | List, items: Dictionary | L3 Interfaces to configure on the node. Used to define the node for WAN interfaces when wan_carrier is set. |
|||
- profile | String | L3 interface profile name. Profile defined under l3_interface_profiles . |
|||
name | String | Required, Unique | Pattern: Ethernet[\d/]+(.[\d]+)? |
Ethernet interface name like ‘Ethernet2’ or subinterface name like ‘Ethernet2.42’. For a subinterface, the parent physical interface is automatically created. |
|
description | String | Interface description. If not set a default description will be configured with ‘[ |
|||
ip_address | String | Node IPv4 address/Mask or ‘dhcp’. | |||
dhcp_ip | String | When the ip_address is dhcp , this optional field allows to indicate the expectedIPv4 address (without mask) to be allocated on the interface if known. This is not rendered in the configuration but can be used for substitution of ‘interface_ip’ in the Access-list set under ipv4_acl_in and ipv4_acl_out . |
|||
public_ip | String | Node IPv4 address (no mask). This is used to get the public IP (if known) when the device is behind NAT. This is only used for wan_rr routers (AutoVPN RRs and Pathfinders) to determine the Public IPwith the following preference: wan_route_servers.path_groups.interfaces.ip_address -> l3_interfaces.public_ip -> l3_interfaces.ip_address The determined Public IP is used by WAN routers when peering with this interface. |
|||
encapsulation_dot1q_vlan | Integer | Min: 1 Max: 4094 |
For subinterfaces the dot1q vlan is derived from the interface name by default, but can also be specified. | ||
dhcp_accept_default_route | Boolean | True |
Accept a default route from DHCP if ip_address is set to dhcp . |
||
enabled | Boolean | True |
Enable or Shutdown the interface. | ||
speed | String | Speed should be set in the format <interface_speed> or forced <interface_speed> or auto <interface_speed> . |
|||
peer | String | The peer device name. Used for description and documentation. | |||
peer_interface | String | The peer device interface. Used for description and documentation. | |||
peer_ip | String | The peer device IPv4 address (no mask). Used as default route gateway if set_default_route is true and ip is an IP address. |
|||
bgp | Dictionary | Enforce IPv4 BGP peering for the peer | |||
peer_as | String | Required | BGP AS <1-4294967295> or AS number in asdot notation “<1-65535>.<0-65535>”. For asdot notation in YAML inputs, the value must be put in quotes, to prevent it from being interpreted as a float number. |
||
ipv4_prefix_list_in | String | Prefix List Name. Accept routes for only these prefixes from the peer. Required for wan interfaces. |
|||
ipv4_prefix_list_out | String | Prefix List Name. Advertise routes for only these prefixes. If not specified, nothing would be advertised. |
|||
ipv4_acl_in | String | Name of the IPv4 access-list to be assigned in the ingress direction. The access-list must be defined under ipv4_acls and supports field substitution for “interface_ip” and “peer_ip”.Required for all WAN interfaces ( wan_carrier is set) unless the carrier is marked as ‘trusted’ under wan_carriers . |
|||
ipv4_acl_out | String | Name of the IPv4 Access-list to be assigned in the egress direction. The access-list must be defined under ipv4_acls and supports field substitution for “interface_ip” and “peer_ip”. |
|||
static_routes | List, items: Dictionary | Min Length: 1 | Configure IPv4 static routes pointing to peer_ip . |
||
- prefix | String | Required | IPv4_network/Mask. | ||
qos_profile | String | QOS service profile. | |||
wan_carrier | String | The WAN carrier this interface is connected to. This is used to infer the path-groups in which this interface should be configured. Unless the carrier is marked as ‘trusted’ under wan_carriers , ipv4_acl_in is also required on all WAN interfaces. |
|||
wan_circuit_id | String | The WAN circuit ID for this interface. This is not rendered in the configuration but used for WAN designs. |
|||
connected_to_pathfinder | Boolean | True |
For a WAN interface (wan_carrier is set), allow to disable the static tunnel towards Pathfinders. |
||
cv_pathfinder_internet_exit | Dictionary | PREVIEW: This key is in preview mode | |||
policies | List, items: Dictionary | List of Internet-exit policies using this interface as exit. | |||
- name | String | Required, Unique | Internet-exit policy name. | ||
tunnel_interface_numbers | String | Number range to use for Tunnel interfaces to an internet-exit service provider using this local interface. Examples: ‘1-3’ or ‘100,200,300’ |
|||
raw_eos_cli | String | EOS CLI rendered directly on the interface in the final EOS configuration. | |||
flow_tracking | Dictionary | Configures flow-tracking on the interface. Overrides fabric_flow_tracking.l3_interfaces setting. |
|||
enabled | Boolean | ||||
name | String | Flow tracker name as defined in flow_tracking_settings. | |||
structured_config | Dictionary | Custom structured config for the Ethernet interface. | |||
nodes | List, items: Dictionary | Define variables per node. | |||
- name | String | Required, Unique | The Node Name is used as “hostname”. | ||
l3_interfaces | List, items: Dictionary | L3 Interfaces to configure on the node. Used to define the node for WAN interfaces when wan_carrier is set. |
|||
- profile | String | L3 interface profile name. Profile defined under l3_interface_profiles . |
|||
name | String | Required, Unique | Pattern: Ethernet[\d/]+(.[\d]+)? |
Ethernet interface name like ‘Ethernet2’ or subinterface name like ‘Ethernet2.42’. For a subinterface, the parent physical interface is automatically created. |
|
description | String | Interface description. If not set a default description will be configured with ‘[ |
|||
ip_address | String | Node IPv4 address/Mask or ‘dhcp’. | |||
dhcp_ip | String | When the ip_address is dhcp , this optional field allows to indicate the expectedIPv4 address (without mask) to be allocated on the interface if known. This is not rendered in the configuration but can be used for substitution of ‘interface_ip’ in the Access-list set under ipv4_acl_in and ipv4_acl_out . |
|||
public_ip | String | Node IPv4 address (no mask). This is used to get the public IP (if known) when the device is behind NAT. This is only used for wan_rr routers (AutoVPN RRs and Pathfinders) to determine the Public IPwith the following preference: wan_route_servers.path_groups.interfaces.ip_address -> l3_interfaces.public_ip -> l3_interfaces.ip_address The determined Public IP is used by WAN routers when peering with this interface. |
|||
encapsulation_dot1q_vlan | Integer | Min: 1 Max: 4094 |
For subinterfaces the dot1q vlan is derived from the interface name by default, but can also be specified. | ||
dhcp_accept_default_route | Boolean | True |
Accept a default route from DHCP if ip_address is set to dhcp . |
||
enabled | Boolean | True |
Enable or Shutdown the interface. | ||
speed | String | Speed should be set in the format <interface_speed> or forced <interface_speed> or auto <interface_speed> . |
|||
peer | String | The peer device name. Used for description and documentation. | |||
peer_interface | String | The peer device interface. Used for description and documentation. | |||
peer_ip | String | The peer device IPv4 address (no mask). Used as default route gateway if set_default_route is true and ip is an IP address. |
|||
bgp | Dictionary | Enforce IPv4 BGP peering for the peer | |||
peer_as | String | Required | BGP AS <1-4294967295> or AS number in asdot notation “<1-65535>.<0-65535>”. For asdot notation in YAML inputs, the value must be put in quotes, to prevent it from being interpreted as a float number. |
||
ipv4_prefix_list_in | String | Prefix List Name. Accept routes for only these prefixes from the peer. Required for wan interfaces. |
|||
ipv4_prefix_list_out | String | Prefix List Name. Advertise routes for only these prefixes. If not specified, nothing would be advertised. |
|||
ipv4_acl_in | String | Name of the IPv4 access-list to be assigned in the ingress direction. The access-list must be defined under ipv4_acls and supports field substitution for “interface_ip” and “peer_ip”.Required for all WAN interfaces ( wan_carrier is set) unless the carrier is marked as ‘trusted’ under wan_carriers . |
|||
ipv4_acl_out | String | Name of the IPv4 Access-list to be assigned in the egress direction. The access-list must be defined under ipv4_acls and supports field substitution for “interface_ip” and “peer_ip”. |
|||
static_routes | List, items: Dictionary | Min Length: 1 | Configure IPv4 static routes pointing to peer_ip . |
||
- prefix | String | Required | IPv4_network/Mask. | ||
qos_profile | String | QOS service profile. | |||
wan_carrier | String | The WAN carrier this interface is connected to. This is used to infer the path-groups in which this interface should be configured. Unless the carrier is marked as ‘trusted’ under wan_carriers , ipv4_acl_in is also required on all WAN interfaces. |
|||
wan_circuit_id | String | The WAN circuit ID for this interface. This is not rendered in the configuration but used for WAN designs. |
|||
connected_to_pathfinder | Boolean | True |
For a WAN interface (wan_carrier is set), allow to disable the static tunnel towards Pathfinders. |
||
cv_pathfinder_internet_exit | Dictionary | PREVIEW: This key is in preview mode | |||
policies | List, items: Dictionary | List of Internet-exit policies using this interface as exit. | |||
- name | String | Required, Unique | Internet-exit policy name. | ||
tunnel_interface_numbers | String | Number range to use for Tunnel interfaces to an internet-exit service provider using this local interface. Examples: ‘1-3’ or ‘100,200,300’ |
|||
raw_eos_cli | String | EOS CLI rendered directly on the interface in the final EOS configuration. | |||
flow_tracking | Dictionary | Configures flow-tracking on the interface. Overrides fabric_flow_tracking.l3_interfaces setting. |
|||
enabled | Boolean | ||||
name | String | Flow tracker name as defined in flow_tracking_settings. | |||
structured_config | Dictionary | Custom structured config for the Ethernet interface. | |||
l3_interface_profiles | List, items: Dictionary | Profiles to inherit common settings for l3_interfaces defined under the node type key. These profiles will not work for l3_interfaces defined under vrfs . |
|||
- profile | String | Required, Unique | L3 interface profile name. Any variable supported under l3_interfaces can be inherited from a profile. |
||
name | String | Pattern: Ethernet[\d/]+(.[\d]+)? |
Ethernet interface name like ‘Ethernet2’ or subinterface name like ‘Ethernet2.42’. For a subinterface, the parent physical interface is automatically created. |
||
description | String | Interface description. If not set a default description will be configured with ‘[ |
|||
ip_address | String | Node IPv4 address/Mask or ‘dhcp’. | |||
dhcp_ip | String | When the ip_address is dhcp , this optional field allows to indicate the expectedIPv4 address (without mask) to be allocated on the interface if known. This is not rendered in the configuration but can be used for substitution of ‘interface_ip’ in the Access-list set under ipv4_acl_in and ipv4_acl_out . |
|||
public_ip | String | Node IPv4 address (no mask). This is used to get the public IP (if known) when the device is behind NAT. This is only used for wan_rr routers (AutoVPN RRs and Pathfinders) to determine the Public IPwith the following preference: wan_route_servers.path_groups.interfaces.ip_address -> l3_interfaces.public_ip -> l3_interfaces.ip_address The determined Public IP is used by WAN routers when peering with this interface. |
|||
encapsulation_dot1q_vlan | Integer | Min: 1 Max: 4094 |
For subinterfaces the dot1q vlan is derived from the interface name by default, but can also be specified. | ||
dhcp_accept_default_route | Boolean | True |
Accept a default route from DHCP if ip_address is set to dhcp . |
||
enabled | Boolean | True |
Enable or Shutdown the interface. | ||
speed | String | Speed should be set in the format <interface_speed> or forced <interface_speed> or auto <interface_speed> . |
|||
peer | String | The peer device name. Used for description and documentation. | |||
peer_interface | String | The peer device interface. Used for description and documentation. | |||
peer_ip | String | The peer device IPv4 address (no mask). Used as default route gateway if set_default_route is true and ip is an IP address. |
|||
bgp | Dictionary | Enforce IPv4 BGP peering for the peer | |||
peer_as | String | Required | BGP AS <1-4294967295> or AS number in asdot notation “<1-65535>.<0-65535>”. For asdot notation in YAML inputs, the value must be put in quotes, to prevent it from being interpreted as a float number. |
||
ipv4_prefix_list_in | String | Prefix List Name. Accept routes for only these prefixes from the peer. Required for wan interfaces. |
|||
ipv4_prefix_list_out | String | Prefix List Name. Advertise routes for only these prefixes. If not specified, nothing would be advertised. |
|||
ipv4_acl_in | String | Name of the IPv4 access-list to be assigned in the ingress direction. The access-list must be defined under ipv4_acls and supports field substitution for “interface_ip” and “peer_ip”.Required for all WAN interfaces ( wan_carrier is set) unless the carrier is marked as ‘trusted’ under wan_carriers . |
|||
ipv4_acl_out | String | Name of the IPv4 Access-list to be assigned in the egress direction. The access-list must be defined under ipv4_acls and supports field substitution for “interface_ip” and “peer_ip”. |
|||
static_routes | List, items: Dictionary | Min Length: 1 | Configure IPv4 static routes pointing to peer_ip . |
||
- prefix | String | Required | IPv4_network/Mask. | ||
qos_profile | String | QOS service profile. | |||
wan_carrier | String | The WAN carrier this interface is connected to. This is used to infer the path-groups in which this interface should be configured. Unless the carrier is marked as ‘trusted’ under wan_carriers , ipv4_acl_in is also required on all WAN interfaces. |
|||
wan_circuit_id | String | The WAN circuit ID for this interface. This is not rendered in the configuration but used for WAN designs. |
|||
connected_to_pathfinder | Boolean | True |
For a WAN interface (wan_carrier is set), allow to disable the static tunnel towards Pathfinders. |
||
cv_pathfinder_internet_exit | Dictionary | PREVIEW: This key is in preview mode | |||
policies | List, items: Dictionary | List of Internet-exit policies using this interface as exit. | |||
- name | String | Required, Unique | Internet-exit policy name. | ||
tunnel_interface_numbers | String | Number range to use for Tunnel interfaces to an internet-exit service provider using this local interface. Examples: ‘1-3’ or ‘100,200,300’ |
|||
raw_eos_cli | String | EOS CLI rendered directly on the interface in the final EOS configuration. | |||
flow_tracking | Dictionary | Configures flow-tracking on the interface. Overrides fabric_flow_tracking.l3_interfaces setting. |
|||
enabled | Boolean | ||||
name | String | Flow tracker name as defined in flow_tracking_settings. | |||
structured_config | Dictionary | Custom structured config for the Ethernet interface. |
<node_type_keys.key>:
# Define variables for all nodes of this type.
defaults:
# L3 Interfaces to configure on the node.
# Used to define the node for WAN interfaces when `wan_carrier` is set.
l3_interfaces:
# L3 interface profile name. Profile defined under `l3_interface_profiles`.
- profile: <str>
# Ethernet interface name like 'Ethernet2' or subinterface name like 'Ethernet2.42'.
# For a subinterface, the parent physical interface is automatically created.
name: <str; required; unique>
# Interface description.
# If not set a default description will be configured with '[<peer>[ <peer_interface>]]'.
description: <str>
# Node IPv4 address/Mask or 'dhcp'.
ip_address: <str>
# When the `ip_address` is `dhcp`, this optional field allows to indicate the expected
# IPv4 address (without mask) to be allocated on the interface if known.
# This is not rendered in the configuration but can be used for substitution of 'interface_ip' in the Access-list
# set under `ipv4_acl_in` and `ipv4_acl_out`.
dhcp_ip: <str>
# Node IPv4 address (no mask).
#
# This is used to get the public IP (if known) when the device is behind NAT.
# This is only used for `wan_rr` routers (AutoVPN RRs and Pathfinders) to determine the Public IP
# with the following preference:
# `wan_route_servers.path_groups.interfaces.ip_address`
# -> `l3_interfaces.public_ip`
# -> `l3_interfaces.ip_address`
#
# The determined Public IP is used by WAN routers when peering with this interface.
public_ip: <str>
# For subinterfaces the dot1q vlan is derived from the interface name by default, but can also be specified.
encapsulation_dot1q_vlan: <int; 1-4094>
# Accept a default route from DHCP if `ip_address` is set to `dhcp`.
dhcp_accept_default_route: <bool; default=True>
# Enable or Shutdown the interface.
enabled: <bool; default=True>
# Speed should be set in the format `<interface_speed>` or `forced <interface_speed>` or `auto <interface_speed>`.
speed: <str>
# The peer device name. Used for description and documentation.
peer: <str>
# The peer device interface. Used for description and documentation.
peer_interface: <str>
# The peer device IPv4 address (no mask). Used as default route gateway if `set_default_route` is true and `ip` is an IP address.
peer_ip: <str>
# Enforce IPv4 BGP peering for the peer
bgp:
# BGP AS <1-4294967295> or AS number in asdot notation "<1-65535>.<0-65535>".
# For asdot notation in YAML inputs, the value must be put in quotes, to prevent it from being interpreted as a float number.
peer_as: <str; required>
# Prefix List Name. Accept routes for only these prefixes from the peer.
# Required for wan interfaces.
ipv4_prefix_list_in: <str>
# Prefix List Name. Advertise routes for only these prefixes.
# If not specified, nothing would be advertised.
ipv4_prefix_list_out: <str>
# Name of the IPv4 access-list to be assigned in the ingress direction.
# The access-list must be defined under `ipv4_acls` and supports field substitution for "interface_ip" and "peer_ip".
# Required for all WAN interfaces (`wan_carrier` is set) unless the carrier is marked as 'trusted' under `wan_carriers`.
ipv4_acl_in: <str>
# Name of the IPv4 Access-list to be assigned in the egress direction.
# The access-list must be defined under `ipv4_acls` and supports field substitution for "interface_ip" and "peer_ip".
ipv4_acl_out: <str>
# Configure IPv4 static routes pointing to `peer_ip`.
static_routes: # >=1 items
# IPv4_network/Mask.
- prefix: <str; required>
# QOS service profile.
qos_profile: <str>
# The WAN carrier this interface is connected to.
# This is used to infer the path-groups in which this interface should be configured.
# Unless the carrier is marked as 'trusted' under `wan_carriers`, `ipv4_acl_in` is also required on all WAN interfaces.
wan_carrier: <str>
# The WAN circuit ID for this interface.
# This is not rendered in the configuration but used for WAN designs.
wan_circuit_id: <str>
# For a WAN interface (`wan_carrier` is set), allow to disable the static tunnel towards Pathfinders.
connected_to_pathfinder: <bool; default=True>
# PREVIEW: This key is in preview mode
cv_pathfinder_internet_exit:
# List of Internet-exit policies using this interface as exit.
policies:
# Internet-exit policy name.
- name: <str; required; unique>
# Number range to use for Tunnel interfaces to an internet-exit service provider using this local interface.
# Examples: '1-3' or '100,200,300'
tunnel_interface_numbers: <str>
# EOS CLI rendered directly on the interface in the final EOS configuration.
raw_eos_cli: <str>
# Configures flow-tracking on the interface. Overrides `fabric_flow_tracking.l3_interfaces` setting.
flow_tracking:
enabled: <bool>
# Flow tracker name as defined in flow_tracking_settings.
name: <str>
# Custom structured config for the Ethernet interface.
structured_config: <dict>
# Define variables related to all nodes part of this group.
node_groups:
# The Node Group Name is used for MLAG domain unless set with 'mlag_domain_id'.
# The Node Group Name is also used for peer description on downstream switches' uplinks.
- group: <str; required; unique>
# Define variables per node.
nodes:
# The Node Name is used as "hostname".
- name: <str; required; unique>
# L3 Interfaces to configure on the node.
# Used to define the node for WAN interfaces when `wan_carrier` is set.
l3_interfaces:
# L3 interface profile name. Profile defined under `l3_interface_profiles`.
- profile: <str>
# Ethernet interface name like 'Ethernet2' or subinterface name like 'Ethernet2.42'.
# For a subinterface, the parent physical interface is automatically created.
name: <str; required; unique>
# Interface description.
# If not set a default description will be configured with '[<peer>[ <peer_interface>]]'.
description: <str>
# Node IPv4 address/Mask or 'dhcp'.
ip_address: <str>
# When the `ip_address` is `dhcp`, this optional field allows to indicate the expected
# IPv4 address (without mask) to be allocated on the interface if known.
# This is not rendered in the configuration but can be used for substitution of 'interface_ip' in the Access-list
# set under `ipv4_acl_in` and `ipv4_acl_out`.
dhcp_ip: <str>
# Node IPv4 address (no mask).
#
# This is used to get the public IP (if known) when the device is behind NAT.
# This is only used for `wan_rr` routers (AutoVPN RRs and Pathfinders) to determine the Public IP
# with the following preference:
# `wan_route_servers.path_groups.interfaces.ip_address`
# -> `l3_interfaces.public_ip`
# -> `l3_interfaces.ip_address`
#
# The determined Public IP is used by WAN routers when peering with this interface.
public_ip: <str>
# For subinterfaces the dot1q vlan is derived from the interface name by default, but can also be specified.
encapsulation_dot1q_vlan: <int; 1-4094>
# Accept a default route from DHCP if `ip_address` is set to `dhcp`.
dhcp_accept_default_route: <bool; default=True>
# Enable or Shutdown the interface.
enabled: <bool; default=True>
# Speed should be set in the format `<interface_speed>` or `forced <interface_speed>` or `auto <interface_speed>`.
speed: <str>
# The peer device name. Used for description and documentation.
peer: <str>
# The peer device interface. Used for description and documentation.
peer_interface: <str>
# The peer device IPv4 address (no mask). Used as default route gateway if `set_default_route` is true and `ip` is an IP address.
peer_ip: <str>
# Enforce IPv4 BGP peering for the peer
bgp:
# BGP AS <1-4294967295> or AS number in asdot notation "<1-65535>.<0-65535>".
# For asdot notation in YAML inputs, the value must be put in quotes, to prevent it from being interpreted as a float number.
peer_as: <str; required>
# Prefix List Name. Accept routes for only these prefixes from the peer.
# Required for wan interfaces.
ipv4_prefix_list_in: <str>
# Prefix List Name. Advertise routes for only these prefixes.
# If not specified, nothing would be advertised.
ipv4_prefix_list_out: <str>
# Name of the IPv4 access-list to be assigned in the ingress direction.
# The access-list must be defined under `ipv4_acls` and supports field substitution for "interface_ip" and "peer_ip".
# Required for all WAN interfaces (`wan_carrier` is set) unless the carrier is marked as 'trusted' under `wan_carriers`.
ipv4_acl_in: <str>
# Name of the IPv4 Access-list to be assigned in the egress direction.
# The access-list must be defined under `ipv4_acls` and supports field substitution for "interface_ip" and "peer_ip".
ipv4_acl_out: <str>
# Configure IPv4 static routes pointing to `peer_ip`.
static_routes: # >=1 items
# IPv4_network/Mask.
- prefix: <str; required>
# QOS service profile.
qos_profile: <str>
# The WAN carrier this interface is connected to.
# This is used to infer the path-groups in which this interface should be configured.
# Unless the carrier is marked as 'trusted' under `wan_carriers`, `ipv4_acl_in` is also required on all WAN interfaces.
wan_carrier: <str>
# The WAN circuit ID for this interface.
# This is not rendered in the configuration but used for WAN designs.
wan_circuit_id: <str>
# For a WAN interface (`wan_carrier` is set), allow to disable the static tunnel towards Pathfinders.
connected_to_pathfinder: <bool; default=True>
# PREVIEW: This key is in preview mode
cv_pathfinder_internet_exit:
# List of Internet-exit policies using this interface as exit.
policies:
# Internet-exit policy name.
- name: <str; required; unique>
# Number range to use for Tunnel interfaces to an internet-exit service provider using this local interface.
# Examples: '1-3' or '100,200,300'
tunnel_interface_numbers: <str>
# EOS CLI rendered directly on the interface in the final EOS configuration.
raw_eos_cli: <str>
# Configures flow-tracking on the interface. Overrides `fabric_flow_tracking.l3_interfaces` setting.
flow_tracking:
enabled: <bool>
# Flow tracker name as defined in flow_tracking_settings.
name: <str>
# Custom structured config for the Ethernet interface.
structured_config: <dict>
# L3 Interfaces to configure on the node.
# Used to define the node for WAN interfaces when `wan_carrier` is set.
l3_interfaces:
# L3 interface profile name. Profile defined under `l3_interface_profiles`.
- profile: <str>
# Ethernet interface name like 'Ethernet2' or subinterface name like 'Ethernet2.42'.
# For a subinterface, the parent physical interface is automatically created.
name: <str; required; unique>
# Interface description.
# If not set a default description will be configured with '[<peer>[ <peer_interface>]]'.
description: <str>
# Node IPv4 address/Mask or 'dhcp'.
ip_address: <str>
# When the `ip_address` is `dhcp`, this optional field allows to indicate the expected
# IPv4 address (without mask) to be allocated on the interface if known.
# This is not rendered in the configuration but can be used for substitution of 'interface_ip' in the Access-list
# set under `ipv4_acl_in` and `ipv4_acl_out`.
dhcp_ip: <str>
# Node IPv4 address (no mask).
#
# This is used to get the public IP (if known) when the device is behind NAT.
# This is only used for `wan_rr` routers (AutoVPN RRs and Pathfinders) to determine the Public IP
# with the following preference:
# `wan_route_servers.path_groups.interfaces.ip_address`
# -> `l3_interfaces.public_ip`
# -> `l3_interfaces.ip_address`
#
# The determined Public IP is used by WAN routers when peering with this interface.
public_ip: <str>
# For subinterfaces the dot1q vlan is derived from the interface name by default, but can also be specified.
encapsulation_dot1q_vlan: <int; 1-4094>
# Accept a default route from DHCP if `ip_address` is set to `dhcp`.
dhcp_accept_default_route: <bool; default=True>
# Enable or Shutdown the interface.
enabled: <bool; default=True>
# Speed should be set in the format `<interface_speed>` or `forced <interface_speed>` or `auto <interface_speed>`.
speed: <str>
# The peer device name. Used for description and documentation.
peer: <str>
# The peer device interface. Used for description and documentation.
peer_interface: <str>
# The peer device IPv4 address (no mask). Used as default route gateway if `set_default_route` is true and `ip` is an IP address.
peer_ip: <str>
# Enforce IPv4 BGP peering for the peer
bgp:
# BGP AS <1-4294967295> or AS number in asdot notation "<1-65535>.<0-65535>".
# For asdot notation in YAML inputs, the value must be put in quotes, to prevent it from being interpreted as a float number.
peer_as: <str; required>
# Prefix List Name. Accept routes for only these prefixes from the peer.
# Required for wan interfaces.
ipv4_prefix_list_in: <str>
# Prefix List Name. Advertise routes for only these prefixes.
# If not specified, nothing would be advertised.
ipv4_prefix_list_out: <str>
# Name of the IPv4 access-list to be assigned in the ingress direction.
# The access-list must be defined under `ipv4_acls` and supports field substitution for "interface_ip" and "peer_ip".
# Required for all WAN interfaces (`wan_carrier` is set) unless the carrier is marked as 'trusted' under `wan_carriers`.
ipv4_acl_in: <str>
# Name of the IPv4 Access-list to be assigned in the egress direction.
# The access-list must be defined under `ipv4_acls` and supports field substitution for "interface_ip" and "peer_ip".
ipv4_acl_out: <str>
# Configure IPv4 static routes pointing to `peer_ip`.
static_routes: # >=1 items
# IPv4_network/Mask.
- prefix: <str; required>
# QOS service profile.
qos_profile: <str>
# The WAN carrier this interface is connected to.
# This is used to infer the path-groups in which this interface should be configured.
# Unless the carrier is marked as 'trusted' under `wan_carriers`, `ipv4_acl_in` is also required on all WAN interfaces.
wan_carrier: <str>
# The WAN circuit ID for this interface.
# This is not rendered in the configuration but used for WAN designs.
wan_circuit_id: <str>
# For a WAN interface (`wan_carrier` is set), allow to disable the static tunnel towards Pathfinders.
connected_to_pathfinder: <bool; default=True>
# PREVIEW: This key is in preview mode
cv_pathfinder_internet_exit:
# List of Internet-exit policies using this interface as exit.
policies:
# Internet-exit policy name.
- name: <str; required; unique>
# Number range to use for Tunnel interfaces to an internet-exit service provider using this local interface.
# Examples: '1-3' or '100,200,300'
tunnel_interface_numbers: <str>
# EOS CLI rendered directly on the interface in the final EOS configuration.
raw_eos_cli: <str>
# Configures flow-tracking on the interface. Overrides `fabric_flow_tracking.l3_interfaces` setting.
flow_tracking:
enabled: <bool>
# Flow tracker name as defined in flow_tracking_settings.
name: <str>
# Custom structured config for the Ethernet interface.
structured_config: <dict>
# Define variables per node.
nodes:
# The Node Name is used as "hostname".
- name: <str; required; unique>
# L3 Interfaces to configure on the node.
# Used to define the node for WAN interfaces when `wan_carrier` is set.
l3_interfaces:
# L3 interface profile name. Profile defined under `l3_interface_profiles`.
- profile: <str>
# Ethernet interface name like 'Ethernet2' or subinterface name like 'Ethernet2.42'.
# For a subinterface, the parent physical interface is automatically created.
name: <str; required; unique>
# Interface description.
# If not set a default description will be configured with '[<peer>[ <peer_interface>]]'.
description: <str>
# Node IPv4 address/Mask or 'dhcp'.
ip_address: <str>
# When the `ip_address` is `dhcp`, this optional field allows to indicate the expected
# IPv4 address (without mask) to be allocated on the interface if known.
# This is not rendered in the configuration but can be used for substitution of 'interface_ip' in the Access-list
# set under `ipv4_acl_in` and `ipv4_acl_out`.
dhcp_ip: <str>
# Node IPv4 address (no mask).
#
# This is used to get the public IP (if known) when the device is behind NAT.
# This is only used for `wan_rr` routers (AutoVPN RRs and Pathfinders) to determine the Public IP
# with the following preference:
# `wan_route_servers.path_groups.interfaces.ip_address`
# -> `l3_interfaces.public_ip`
# -> `l3_interfaces.ip_address`
#
# The determined Public IP is used by WAN routers when peering with this interface.
public_ip: <str>
# For subinterfaces the dot1q vlan is derived from the interface name by default, but can also be specified.
encapsulation_dot1q_vlan: <int; 1-4094>
# Accept a default route from DHCP if `ip_address` is set to `dhcp`.
dhcp_accept_default_route: <bool; default=True>
# Enable or Shutdown the interface.
enabled: <bool; default=True>
# Speed should be set in the format `<interface_speed>` or `forced <interface_speed>` or `auto <interface_speed>`.
speed: <str>
# The peer device name. Used for description and documentation.
peer: <str>
# The peer device interface. Used for description and documentation.
peer_interface: <str>
# The peer device IPv4 address (no mask). Used as default route gateway if `set_default_route` is true and `ip` is an IP address.
peer_ip: <str>
# Enforce IPv4 BGP peering for the peer
bgp:
# BGP AS <1-4294967295> or AS number in asdot notation "<1-65535>.<0-65535>".
# For asdot notation in YAML inputs, the value must be put in quotes, to prevent it from being interpreted as a float number.
peer_as: <str; required>
# Prefix List Name. Accept routes for only these prefixes from the peer.
# Required for wan interfaces.
ipv4_prefix_list_in: <str>
# Prefix List Name. Advertise routes for only these prefixes.
# If not specified, nothing would be advertised.
ipv4_prefix_list_out: <str>
# Name of the IPv4 access-list to be assigned in the ingress direction.
# The access-list must be defined under `ipv4_acls` and supports field substitution for "interface_ip" and "peer_ip".
# Required for all WAN interfaces (`wan_carrier` is set) unless the carrier is marked as 'trusted' under `wan_carriers`.
ipv4_acl_in: <str>
# Name of the IPv4 Access-list to be assigned in the egress direction.
# The access-list must be defined under `ipv4_acls` and supports field substitution for "interface_ip" and "peer_ip".
ipv4_acl_out: <str>
# Configure IPv4 static routes pointing to `peer_ip`.
static_routes: # >=1 items
# IPv4_network/Mask.
- prefix: <str; required>
# QOS service profile.
qos_profile: <str>
# The WAN carrier this interface is connected to.
# This is used to infer the path-groups in which this interface should be configured.
# Unless the carrier is marked as 'trusted' under `wan_carriers`, `ipv4_acl_in` is also required on all WAN interfaces.
wan_carrier: <str>
# The WAN circuit ID for this interface.
# This is not rendered in the configuration but used for WAN designs.
wan_circuit_id: <str>
# For a WAN interface (`wan_carrier` is set), allow to disable the static tunnel towards Pathfinders.
connected_to_pathfinder: <bool; default=True>
# PREVIEW: This key is in preview mode
cv_pathfinder_internet_exit:
# List of Internet-exit policies using this interface as exit.
policies:
# Internet-exit policy name.
- name: <str; required; unique>
# Number range to use for Tunnel interfaces to an internet-exit service provider using this local interface.
# Examples: '1-3' or '100,200,300'
tunnel_interface_numbers: <str>
# EOS CLI rendered directly on the interface in the final EOS configuration.
raw_eos_cli: <str>
# Configures flow-tracking on the interface. Overrides `fabric_flow_tracking.l3_interfaces` setting.
flow_tracking:
enabled: <bool>
# Flow tracker name as defined in flow_tracking_settings.
name: <str>
# Custom structured config for the Ethernet interface.
structured_config: <dict>
# Profiles to inherit common settings for l3_interfaces defined under the node type key.
# These profiles will *not* work for `l3_interfaces` defined under `vrfs`.
l3_interface_profiles:
# L3 interface profile name. Any variable supported under `l3_interfaces` can be inherited from a profile.
- profile: <str; required; unique>
# Ethernet interface name like 'Ethernet2' or subinterface name like 'Ethernet2.42'.
# For a subinterface, the parent physical interface is automatically created.
name: <str>
# Interface description.
# If not set a default description will be configured with '[<peer>[ <peer_interface>]]'.
description: <str>
# Node IPv4 address/Mask or 'dhcp'.
ip_address: <str>
# When the `ip_address` is `dhcp`, this optional field allows to indicate the expected
# IPv4 address (without mask) to be allocated on the interface if known.
# This is not rendered in the configuration but can be used for substitution of 'interface_ip' in the Access-list
# set under `ipv4_acl_in` and `ipv4_acl_out`.
dhcp_ip: <str>
# Node IPv4 address (no mask).
#
# This is used to get the public IP (if known) when the device is behind NAT.
# This is only used for `wan_rr` routers (AutoVPN RRs and Pathfinders) to determine the Public IP
# with the following preference:
# `wan_route_servers.path_groups.interfaces.ip_address`
# -> `l3_interfaces.public_ip`
# -> `l3_interfaces.ip_address`
#
# The determined Public IP is used by WAN routers when peering with this interface.
public_ip: <str>
# For subinterfaces the dot1q vlan is derived from the interface name by default, but can also be specified.
encapsulation_dot1q_vlan: <int; 1-4094>
# Accept a default route from DHCP if `ip_address` is set to `dhcp`.
dhcp_accept_default_route: <bool; default=True>
# Enable or Shutdown the interface.
enabled: <bool; default=True>
# Speed should be set in the format `<interface_speed>` or `forced <interface_speed>` or `auto <interface_speed>`.
speed: <str>
# The peer device name. Used for description and documentation.
peer: <str>
# The peer device interface. Used for description and documentation.
peer_interface: <str>
# The peer device IPv4 address (no mask). Used as default route gateway if `set_default_route` is true and `ip` is an IP address.
peer_ip: <str>
# Enforce IPv4 BGP peering for the peer
bgp:
# BGP AS <1-4294967295> or AS number in asdot notation "<1-65535>.<0-65535>".
# For asdot notation in YAML inputs, the value must be put in quotes, to prevent it from being interpreted as a float number.
peer_as: <str; required>
# Prefix List Name. Accept routes for only these prefixes from the peer.
# Required for wan interfaces.
ipv4_prefix_list_in: <str>
# Prefix List Name. Advertise routes for only these prefixes.
# If not specified, nothing would be advertised.
ipv4_prefix_list_out: <str>
# Name of the IPv4 access-list to be assigned in the ingress direction.
# The access-list must be defined under `ipv4_acls` and supports field substitution for "interface_ip" and "peer_ip".
# Required for all WAN interfaces (`wan_carrier` is set) unless the carrier is marked as 'trusted' under `wan_carriers`.
ipv4_acl_in: <str>
# Name of the IPv4 Access-list to be assigned in the egress direction.
# The access-list must be defined under `ipv4_acls` and supports field substitution for "interface_ip" and "peer_ip".
ipv4_acl_out: <str>
# Configure IPv4 static routes pointing to `peer_ip`.
static_routes: # >=1 items
# IPv4_network/Mask.
- prefix: <str; required>
# QOS service profile.
qos_profile: <str>
# The WAN carrier this interface is connected to.
# This is used to infer the path-groups in which this interface should be configured.
# Unless the carrier is marked as 'trusted' under `wan_carriers`, `ipv4_acl_in` is also required on all WAN interfaces.
wan_carrier: <str>
# The WAN circuit ID for this interface.
# This is not rendered in the configuration but used for WAN designs.
wan_circuit_id: <str>
# For a WAN interface (`wan_carrier` is set), allow to disable the static tunnel towards Pathfinders.
connected_to_pathfinder: <bool; default=True>
# PREVIEW: This key is in preview mode
cv_pathfinder_internet_exit:
# List of Internet-exit policies using this interface as exit.
policies:
# Internet-exit policy name.
- name: <str; required; unique>
# Number range to use for Tunnel interfaces to an internet-exit service provider using this local interface.
# Examples: '1-3' or '100,200,300'
tunnel_interface_numbers: <str>
# EOS CLI rendered directly on the interface in the final EOS configuration.
raw_eos_cli: <str>
# Configures flow-tracking on the interface. Overrides `fabric_flow_tracking.l3_interfaces` setting.
flow_tracking:
enabled: <bool>
# Flow tracker name as defined in flow_tracking_settings.
name: <str>
# Custom structured config for the Ethernet interface.
structured_config: <dict>
Node type BGP configuration¶
Variable | Type | Required | Default | Value Restrictions | Description |
---|---|---|---|---|---|
<node_type_keys.key> | Dictionary | ||||
defaults | Dictionary | Define variables for all nodes of this type. | |||
bgp_as | String | BGP AS <1-4294967295> or AS number in asdot notation “<1-65535>.<0-65535>”. For asdot notation in YAML inputs, the value must be put in quotes, to prevent it from being interpreted as a float number. Required with eBGP. |
|||
bgp_defaults | List, items: String | List of EOS commands to apply to BGP daemon. | |||
- <str> | String | ||||
evpn_role | String | Valid Values: - client - server - none |
Acting role in EVPN control plane. Default is set in node_type definition from node_type_keys. |
||
evpn_route_servers | List, items: String | List of nodes acting as EVPN Route-Servers / Route-Reflectors. | |||
- <str> | String | ||||
node_groups | List, items: Dictionary | Define variables related to all nodes part of this group. | |||
- group | String | Required, Unique | The Node Group Name is used for MLAG domain unless set with ‘mlag_domain_id’. The Node Group Name is also used for peer description on downstream switches’ uplinks. |
||
nodes | List, items: Dictionary | Define variables per node. | |||
- name | String | Required, Unique | The Node Name is used as “hostname”. | ||
bgp_as | String | BGP AS <1-4294967295> or AS number in asdot notation “<1-65535>.<0-65535>”. For asdot notation in YAML inputs, the value must be put in quotes, to prevent it from being interpreted as a float number. Required with eBGP. |
|||
bgp_defaults | List, items: String | List of EOS commands to apply to BGP daemon. | |||
- <str> | String | ||||
evpn_role | String | Valid Values: - client - server - none |
Acting role in EVPN control plane. Default is set in node_type definition from node_type_keys. |
||
evpn_route_servers | List, items: String | List of nodes acting as EVPN Route-Servers / Route-Reflectors. | |||
- <str> | String | ||||
bgp_as | String | BGP AS <1-4294967295> or AS number in asdot notation “<1-65535>.<0-65535>”. For asdot notation in YAML inputs, the value must be put in quotes, to prevent it from being interpreted as a float number. Required with eBGP. |
|||
bgp_defaults | List, items: String | List of EOS commands to apply to BGP daemon. | |||
- <str> | String | ||||
evpn_role | String | Valid Values: - client - server - none |
Acting role in EVPN control plane. Default is set in node_type definition from node_type_keys. |
||
evpn_route_servers | List, items: String | List of nodes acting as EVPN Route-Servers / Route-Reflectors. | |||
- <str> | String | ||||
nodes | List, items: Dictionary | Define variables per node. | |||
- name | String | Required, Unique | The Node Name is used as “hostname”. | ||
bgp_as | String | BGP AS <1-4294967295> or AS number in asdot notation “<1-65535>.<0-65535>”. For asdot notation in YAML inputs, the value must be put in quotes, to prevent it from being interpreted as a float number. Required with eBGP. |
|||
bgp_defaults | List, items: String | List of EOS commands to apply to BGP daemon. | |||
- <str> | String | ||||
evpn_role | String | Valid Values: - client - server - none |
Acting role in EVPN control plane. Default is set in node_type definition from node_type_keys. |
||
evpn_route_servers | List, items: String | List of nodes acting as EVPN Route-Servers / Route-Reflectors. | |||
- <str> | String |
<node_type_keys.key>:
# Define variables for all nodes of this type.
defaults:
# BGP AS <1-4294967295> or AS number in asdot notation "<1-65535>.<0-65535>".
# For asdot notation in YAML inputs, the value must be put in quotes, to prevent it from being interpreted as a float number.
# Required with eBGP.
bgp_as: <str>
# List of EOS commands to apply to BGP daemon.
bgp_defaults:
- <str>
# Acting role in EVPN control plane.
# Default is set in node_type definition from node_type_keys.
evpn_role: <str; "client" | "server" | "none">
# List of nodes acting as EVPN Route-Servers / Route-Reflectors.
evpn_route_servers:
- <str>
# Define variables related to all nodes part of this group.
node_groups:
# The Node Group Name is used for MLAG domain unless set with 'mlag_domain_id'.
# The Node Group Name is also used for peer description on downstream switches' uplinks.
- group: <str; required; unique>
# Define variables per node.
nodes:
# The Node Name is used as "hostname".
- name: <str; required; unique>
# BGP AS <1-4294967295> or AS number in asdot notation "<1-65535>.<0-65535>".
# For asdot notation in YAML inputs, the value must be put in quotes, to prevent it from being interpreted as a float number.
# Required with eBGP.
bgp_as: <str>
# List of EOS commands to apply to BGP daemon.
bgp_defaults:
- <str>
# Acting role in EVPN control plane.
# Default is set in node_type definition from node_type_keys.
evpn_role: <str; "client" | "server" | "none">
# List of nodes acting as EVPN Route-Servers / Route-Reflectors.
evpn_route_servers:
- <str>
# BGP AS <1-4294967295> or AS number in asdot notation "<1-65535>.<0-65535>".
# For asdot notation in YAML inputs, the value must be put in quotes, to prevent it from being interpreted as a float number.
# Required with eBGP.
bgp_as: <str>
# List of EOS commands to apply to BGP daemon.
bgp_defaults:
- <str>
# Acting role in EVPN control plane.
# Default is set in node_type definition from node_type_keys.
evpn_role: <str; "client" | "server" | "none">
# List of nodes acting as EVPN Route-Servers / Route-Reflectors.
evpn_route_servers:
- <str>
# Define variables per node.
nodes:
# The Node Name is used as "hostname".
- name: <str; required; unique>
# BGP AS <1-4294967295> or AS number in asdot notation "<1-65535>.<0-65535>".
# For asdot notation in YAML inputs, the value must be put in quotes, to prevent it from being interpreted as a float number.
# Required with eBGP.
bgp_as: <str>
# List of EOS commands to apply to BGP daemon.
bgp_defaults:
- <str>
# Acting role in EVPN control plane.
# Default is set in node_type definition from node_type_keys.
evpn_role: <str; "client" | "server" | "none">
# List of nodes acting as EVPN Route-Servers / Route-Reflectors.
evpn_route_servers:
- <str>
Node type network services configuration¶
Variable | Type | Required | Default | Value Restrictions | Description |
---|---|---|---|---|---|
<node_type_keys.key> | Dictionary | ||||
defaults | Dictionary | Define variables for all nodes of this type. | |||
evpn_services_l2_only | Boolean | False |
Possibility to prevent configuration of Tenant VRFs and SVIs. Override node definition “network_services_l3” from node_type_keys. This allows support for centralized routing. |
||
filter | Dictionary | Filter L3 and L2 network services based on tenant and tags (and operation filter). If filter is not defined it will default to all. |
|||
tenants | List, items: String | ['all'] |
Limit configured Network Services to those defined under these Tenants. Set to [‘all’] for all Tenants (default). This list also limits Tenants included by always_include_vrfs_in_tenants . |
||
- <str> | String | ||||
tags | List, items: String | ['all'] |
Limit configured VLANs to those matching the given tags. Set to [‘all’] for all VLANs (default). | ||
- <str> | String | ||||
allow_vrfs | List, items: String | ['all'] |
Limit configured Network Services to those defined under these VRFs. Set to [‘all’] for all VRFs (default). This list also limits VRFs included by always_include_vrfs_in_tenants . |
||
- <str> | String | ||||
deny_vrfs | List, items: String | ['all'] |
Prevent configuration of Network Services defined under these VRFs. This list prevents the given VRFs to be included by any other filtering mechanism. |
||
- <str> | String | ||||
always_include_vrfs_in_tenants | List, items: String | List of tenants where VRFs will be configured even if VLANs are not included in tags. Useful for L3 “border” leaf. |
|||
- <str> | String | ||||
only_vlans_in_use | Boolean | False |
Only configure VLANs, SVIs, VRFs in use by connected endpoints or downstream L2 switches. Note! This feature only considers configuration managed by eos_designs. This excludes structured_config, custom_structured_configuration_, raw_eos_cli, eos_cli, custom templates, configlets etc. |
||
igmp_snooping_enabled | Boolean | Activate or deactivate IGMP snooping on device level. | |||
node_groups | List, items: Dictionary | Define variables related to all nodes part of this group. | |||
- group | String | Required, Unique | The Node Group Name is used for MLAG domain unless set with ‘mlag_domain_id’. The Node Group Name is also used for peer description on downstream switches’ uplinks. |
||
nodes | List, items: Dictionary | Define variables per node. | |||
- name | String | Required, Unique | The Node Name is used as “hostname”. | ||
evpn_services_l2_only | Boolean | False |
Possibility to prevent configuration of Tenant VRFs and SVIs. Override node definition “network_services_l3” from node_type_keys. This allows support for centralized routing. |
||
filter | Dictionary | Filter L3 and L2 network services based on tenant and tags (and operation filter). If filter is not defined it will default to all. |
|||
tenants | List, items: String | ['all'] |
Limit configured Network Services to those defined under these Tenants. Set to [‘all’] for all Tenants (default). This list also limits Tenants included by always_include_vrfs_in_tenants . |
||
- <str> | String | ||||
tags | List, items: String | ['all'] |
Limit configured VLANs to those matching the given tags. Set to [‘all’] for all VLANs (default). | ||
- <str> | String | ||||
allow_vrfs | List, items: String | ['all'] |
Limit configured Network Services to those defined under these VRFs. Set to [‘all’] for all VRFs (default). This list also limits VRFs included by always_include_vrfs_in_tenants . |
||
- <str> | String | ||||
deny_vrfs | List, items: String | ['all'] |
Prevent configuration of Network Services defined under these VRFs. This list prevents the given VRFs to be included by any other filtering mechanism. |
||
- <str> | String | ||||
always_include_vrfs_in_tenants | List, items: String | List of tenants where VRFs will be configured even if VLANs are not included in tags. Useful for L3 “border” leaf. |
|||
- <str> | String | ||||
only_vlans_in_use | Boolean | False |
Only configure VLANs, SVIs, VRFs in use by connected endpoints or downstream L2 switches. Note! This feature only considers configuration managed by eos_designs. This excludes structured_config, custom_structured_configuration_, raw_eos_cli, eos_cli, custom templates, configlets etc. |
||
igmp_snooping_enabled | Boolean | Activate or deactivate IGMP snooping on device level. | |||
evpn_services_l2_only | Boolean | False |
Possibility to prevent configuration of Tenant VRFs and SVIs. Override node definition “network_services_l3” from node_type_keys. This allows support for centralized routing. |
||
filter | Dictionary | Filter L3 and L2 network services based on tenant and tags (and operation filter). If filter is not defined it will default to all. |
|||
tenants | List, items: String | ['all'] |
Limit configured Network Services to those defined under these Tenants. Set to [‘all’] for all Tenants (default). This list also limits Tenants included by always_include_vrfs_in_tenants . |
||
- <str> | String | ||||
tags | List, items: String | ['all'] |
Limit configured VLANs to those matching the given tags. Set to [‘all’] for all VLANs (default). | ||
- <str> | String | ||||
allow_vrfs | List, items: String | ['all'] |
Limit configured Network Services to those defined under these VRFs. Set to [‘all’] for all VRFs (default). This list also limits VRFs included by always_include_vrfs_in_tenants . |
||
- <str> | String | ||||
deny_vrfs | List, items: String | ['all'] |
Prevent configuration of Network Services defined under these VRFs. This list prevents the given VRFs to be included by any other filtering mechanism. |
||
- <str> | String | ||||
always_include_vrfs_in_tenants | List, items: String | List of tenants where VRFs will be configured even if VLANs are not included in tags. Useful for L3 “border” leaf. |
|||
- <str> | String | ||||
only_vlans_in_use | Boolean | False |
Only configure VLANs, SVIs, VRFs in use by connected endpoints or downstream L2 switches. Note! This feature only considers configuration managed by eos_designs. This excludes structured_config, custom_structured_configuration_, raw_eos_cli, eos_cli, custom templates, configlets etc. |
||
igmp_snooping_enabled | Boolean | Activate or deactivate IGMP snooping on device level. | |||
nodes | List, items: Dictionary | Define variables per node. | |||
- name | String | Required, Unique | The Node Name is used as “hostname”. | ||
evpn_services_l2_only | Boolean | False |
Possibility to prevent configuration of Tenant VRFs and SVIs. Override node definition “network_services_l3” from node_type_keys. This allows support for centralized routing. |
||
filter | Dictionary | Filter L3 and L2 network services based on tenant and tags (and operation filter). If filter is not defined it will default to all. |
|||
tenants | List, items: String | ['all'] |
Limit configured Network Services to those defined under these Tenants. Set to [‘all’] for all Tenants (default). This list also limits Tenants included by always_include_vrfs_in_tenants . |
||
- <str> | String | ||||
tags | List, items: String | ['all'] |
Limit configured VLANs to those matching the given tags. Set to [‘all’] for all VLANs (default). | ||
- <str> | String | ||||
allow_vrfs | List, items: String | ['all'] |
Limit configured Network Services to those defined under these VRFs. Set to [‘all’] for all VRFs (default). This list also limits VRFs included by always_include_vrfs_in_tenants . |
||
- <str> | String | ||||
deny_vrfs | List, items: String | ['all'] |
Prevent configuration of Network Services defined under these VRFs. This list prevents the given VRFs to be included by any other filtering mechanism. |
||
- <str> | String | ||||
always_include_vrfs_in_tenants | List, items: String | List of tenants where VRFs will be configured even if VLANs are not included in tags. Useful for L3 “border” leaf. |
|||
- <str> | String | ||||
only_vlans_in_use | Boolean | False |
Only configure VLANs, SVIs, VRFs in use by connected endpoints or downstream L2 switches. Note! This feature only considers configuration managed by eos_designs. This excludes structured_config, custom_structured_configuration_, raw_eos_cli, eos_cli, custom templates, configlets etc. |
||
igmp_snooping_enabled | Boolean | Activate or deactivate IGMP snooping on device level. |
<node_type_keys.key>:
# Define variables for all nodes of this type.
defaults:
# Possibility to prevent configuration of Tenant VRFs and SVIs.
# Override node definition "network_services_l3" from node_type_keys.
# This allows support for centralized routing.
evpn_services_l2_only: <bool; default=False>
# Filter L3 and L2 network services based on tenant and tags (and operation filter).
# If filter is not defined it will default to all.
filter:
# Limit configured Network Services to those defined under these Tenants. Set to ['all'] for all Tenants (default).
# This list also limits Tenants included by `always_include_vrfs_in_tenants`.
tenants: # default=['all']
- <str>
# Limit configured VLANs to those matching the given tags. Set to ['all'] for all VLANs (default).
tags: # default=['all']
- <str>
# Limit configured Network Services to those defined under these VRFs. Set to ['all'] for all VRFs (default).
# This list also limits VRFs included by `always_include_vrfs_in_tenants`.
allow_vrfs: # default=['all']
- <str>
# Prevent configuration of Network Services defined under these VRFs.
# This list prevents the given VRFs to be included by any other filtering mechanism.
deny_vrfs: # default=['all']
- <str>
# List of tenants where VRFs will be configured even if VLANs are not included in tags.
# Useful for L3 "border" leaf.
always_include_vrfs_in_tenants:
- <str>
# Only configure VLANs, SVIs, VRFs in use by connected endpoints or downstream L2 switches.
# Note! This feature only considers configuration managed by eos_designs.
# This excludes structured_config, custom_structured_configuration_, raw_eos_cli, eos_cli, custom templates, configlets etc.
only_vlans_in_use: <bool; default=False>
# Activate or deactivate IGMP snooping on device level.
igmp_snooping_enabled: <bool>
# Define variables related to all nodes part of this group.
node_groups:
# The Node Group Name is used for MLAG domain unless set with 'mlag_domain_id'.
# The Node Group Name is also used for peer description on downstream switches' uplinks.
- group: <str; required; unique>
# Define variables per node.