Skip to content

EVPN

EVPN (Ethernet Virtual Private Network) is a standards-based control plane technology that provides advanced Layer 2 and Layer 3 VPN services over IP/MPLS and IP-only networks, commonly used with VXLAN overlay networks in modern data center architectures. It enables efficient forwarding, optimal multicast handling, and integrated routing and bridging (IRB) capabilities while supporting advanced features like MAC mobility, ARP suppression, multi-tenancy, and Ethernet Segment (ES) multihoming. EVPN Ethernet Segments provide active-active or active-standby redundancy for connecting devices to multiple provider edge routers, ensuring high availability and load balancing. EVPN provides automatic discovery of endpoints, eliminates flooding of unknown unicast traffic, and enables seamless workload mobility across geographically distributed data centers with built-in redundancy and load balancing.

Note: The identifier field accepts two formats that are automatically detected:

  • ESI hex string (Type 0): 9 octets in dotted hex format, e.g., 0.0.0.0.0.0.1.1.1
  • System MAC (Type 3): MAC address in any format - colon-separated (00:11:22:33:44:55), hyphen-separated (00-11-22-33-44-55), or Cisco dotted notation (0011.2233.4455). All MAC formats are automatically normalized to Cisco dotted notation.
Diagram
NameTypeConstraintMandatoryDefault Value
evpnClass[evpn]No

NameTypeConstraintMandatoryDefault Value
instancesList[instances]No
ethernet_segmentsList[ethernet_segments]No
replication_typeChoiceingress, static, p2mp, mp2mpNo
mac_duplication_limitIntegermin: 2, max: 1000No
mac_duplication_timeIntegermin: 10, max: 36000No
ip_duplication_limitIntegermin: 2, max: 1000No
ip_duplication_timeIntegermin: 10, max: 36000No
router_id_interface_typeChoiceLoopbackNo
router_id_interface_idAnyString or Integer[min: 0]No
default_gateway_advertiseBooleantrue, falseNo
logging_peer_stateBooleantrue, falseNo
route_target_auto_vniBooleantrue, falseNo
anycast_gateway_mac_autoBooleantrue, falseNo
multicast_advertiseBooleantrue, falseNo
flooding_suppression_address_resolution_disableBooleantrue, falseNo

instances (iosxe.devices.configuration.evpn)

Section titled “instances (iosxe.devices.configuration.evpn)”
NameTypeConstraintMandatoryDefault Value
numberIntegermin: 1, max: 65535No
vlan_basedClass[vlan_based]No

ethernet_segments (iosxe.devices.configuration.evpn)

Section titled “ethernet_segments (iosxe.devices.configuration.evpn)”
NameTypeConstraintMandatoryDefault Value
es_valueIntegermin: 1, max: 65535Yes
df_election_wait_timeIntegermin: 1, max: 10No
redundancyChoiceall-active, single-activeNo
identifierAnyString[Regex: ^[0-9a-fA-F]{1,2}(\.[0-9a-fA-F]{1,2}){8}$] or MAC or String[Regex: ^[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}$] or String[Regex: ^[0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){5}$] or String[Regex: ^.*[\$\%]\{.*$]No

vlan_based (iosxe.devices.configuration.evpn.instances)

Section titled “vlan_based (iosxe.devices.configuration.evpn.instances)”
NameTypeConstraintMandatoryDefault Value
replication_typeChoiceingress, static, p2mp, mp2mpNo
encapsulationChoicempls, vxlanNo
auto_route_targetBooleantrue, falseNo
rdStringNo
route_target_importsListStringNo
route_target_exportsListStringNo
ip_local_learning_disableBooleantrue, falseNo
ip_local_learning_enableBooleantrue, falseNo
default_gateway_advertiseBooleantrue, falseNo
re_originate_route_type5Booleantrue, falseNo
multicast_advertiseChoiceenable, disable, sync-onlyNo

l2vpn evpn
replication-type static
logging peer state
router-id Loopback 100
default-gateway advertise
flooding-suppression address-resolution disable
mac duplication limit 15 time 600
ip duplication limit 15 time 600
!
l2vpn evpn instance 1 vlan-based
encapsulation vxlan
replication-type static
rd 100:1
route-target import 100:1
route-target import 200:1
route-target export 100:1
no ip local-learning
default-gateway advertise
re-originate route-type5

Basic EVPN Configuration with VLAN-Based Instances

Section titled “Basic EVPN Configuration with VLAN-Based Instances”
iosxe:
devices:
- name: Device1
configuration:
evpn:
replication_type: static
logging_peer_state: true
default_gateway_advertise: true
route_target_auto_vni: false
router_id_interface_type: Loopback
router_id_interface_id: 100
mac_duplication_limit: 15
mac_duplication_time: 600
ip_duplication_limit: 15
ip_duplication_time: 600
anycast_gateway_mac_auto: true
multicast_advertise: true
flooding_suppression_address_resolution_disable: true
instances:
- number: 1
vlan_based:
multicast_advertise: enable
replication_type: static
encapsulation: vxlan
auto_route_target: false
rd: 100:1
route_target_imports:
- 100:1
- 200:1
route_target_exports:
- 100:1
ip_local_learning_disable: false
ip_local_learning_enable: true
default_gateway_advertise: true
re_originate_route_type5: true

EVPN with Ethernet Segments (All-Active Multihoming)

Section titled “EVPN with Ethernet Segments (All-Active Multihoming)”
iosxe:
devices:
- name: Device1
configuration:
evpn:
replication_type: static
router_id_interface_type: Loopback
router_id_interface_id: 100
ethernet_segments:
- es_value: 1
df_election_wait_time: 10
redundancy: all-active
identifier: "0.0.0.0.0.0.1.1.1"

EVPN with Ethernet Segments (Single-Active Multihoming)

Section titled “EVPN with Ethernet Segments (Single-Active Multihoming)”
iosxe:
devices:
- name: Device1
configuration:
evpn:
ethernet_segments:
- es_value: 2
df_election_wait_time: 5
redundancy: single-active
identifier: "00:11:22:33:44:55"

Complete EVPN Configuration with Ethernet Segments and Instances

Section titled “Complete EVPN Configuration with Ethernet Segments and Instances”
iosxe:
devices:
- name: CoreSwitch1
configuration:
evpn:
replication_type: ingress
logging_peer_state: true
default_gateway_advertise: true
router_id_interface_type: Loopback
router_id_interface_id: 0
mac_duplication_limit: 10
mac_duplication_time: 480
ip_duplication_limit: 10
ip_duplication_time: 480
# Configure Ethernet Segments for multihoming
ethernet_segments:
- es_value: 1
df_election_wait_time: 3
redundancy: all-active
identifier: "0.0.0.0.0.0.1.1.1"
- es_value: 2
df_election_wait_time: 5
redundancy: single-active
identifier: "0.0.0.0.0.0.2.2.2"
# Configure EVPN instances
instances:
- number: 100
vlan_based:
replication_type: ingress
encapsulation: vxlan
auto_route_target: true
rd: "65000:100"
default_gateway_advertise: true
ip_local_learning_enable: true
- number: 200
vlan_based:
replication_type: static
encapsulation: vxlan
rd: "65000:200"
route_target_imports:
- "65000:200"
route_target_exports:
- "65000:200"
default_gateway_advertise: true

EVPN (Ethernet Virtual Private Network) is a standards-based control plane technology that provides advanced Layer 2 and Layer 3 VPN services over IP/MPLS and IP-only networks, commonly used with VXLAN overlay networks in modern data center architectures. It enables efficient forwarding, optimal multicast handling, and integrated routing and bridging (IRB) capabilities while supporting advanced features like MAC mobility, ARP suppression, and multi-tenancy. EVPN provides automatic discovery of endpoints, eliminates flooding of unknown unicast traffic, and enables seamless workload mobility across geographically distributed data centers with built-in redundancy and load balancing.

Diagram
NameTypeConstraintMandatoryDefault Value
evpnClass[evpn]No

NameTypeConstraintMandatoryDefault Value
instancesList[instances]No
replication_typeChoiceingress, static, p2mp, mp2mpNo
mac_duplication_limitIntegermin: 2, max: 1000No
mac_duplication_timeIntegermin: 10, max: 36000No
ip_duplication_limitIntegermin: 2, max: 1000No
ip_duplication_timeIntegermin: 10, max: 36000No
router_id_interface_typeChoiceLoopbackNo
router_id_interface_idAnyString or Integer[min: 0]No
default_gateway_advertiseBooleantrue, falseNo
logging_peer_stateBooleantrue, falseNo
route_target_auto_vniBooleantrue, falseNo
anycast_gateway_mac_autoBooleantrue, falseNo
flooding_suppression_address_resolution_disableBooleantrue, falseNo

instances (iosxe.devices.configuration.evpn)

Section titled “instances (iosxe.devices.configuration.evpn)”
NameTypeConstraintMandatoryDefault Value
numberIntegermin: 1, max: 65535No
vlan_basedClass[vlan_based]No

vlan_based (iosxe.devices.configuration.evpn.instances)

Section titled “vlan_based (iosxe.devices.configuration.evpn.instances)”
NameTypeConstraintMandatoryDefault Value
replication_typeChoiceingress, static, p2mp, mp2mpNo
encapsulationChoicempls, vxlanNo
auto_route_targetBooleantrue, falseNo
rdStringNo
route_target_importsListStringNo
route_target_exportsListStringNo
ip_local_learning_disableBooleantrue, falseNo
ip_local_learning_enableBooleantrue, falseNo
default_gateway_advertiseBooleantrue, falseNo
re_originate_route_type5Booleantrue, falseNo

iosxe:
devices:
- name: Device1
configuration:
evpn:
replication_type: static
logging_peer_state: true
default_gateway_advertise: true
route_target_auto_vni: false
router_id_interface_type: Loopback
router_id_interface_id: 100
mac_duplication_limit: 15
mac_duplication_time: 600
ip_duplication_limit: 15
ip_duplication_time: 600
anycast_gateway_mac_auto: true
flooding_suppression_address_resolution_disable: true
instances:
- number: 1
vlan_based:
replication_type: static
encapsulation: vxlan
auto_route_target: false
rd: 100:1
route_target_imports:
- 100:1
- 200:1
route_target_exports:
- 100:1
ip_local_learning_disable: false
ip_local_learning_enable: true
default_gateway_advertise: true
re_originate_route_type5: false