By Manny Fernandez

July 23, 2026

EVPN Route Types: The Practitioner’s Field Guide

Everyone learns EVPN as “type 2 carries MACs and type 5 carries prefixes,” then gets wrecked the first time a multihomed server duplicates broadcast frames or a silent host goes unreachable across the fabric. The route types are not trivia. Each one exists because a specific failure mode had to be solved, and if you can read the NLRI you can name the broken thing in about ninety seconds. This guide walks all eleven assigned types, the fields inside them, what breaks when they are missing, and the show commands that expose them on FRR, NX-OS, EOS, Junos, and FortiOS.

Start with the NLRI, not the route type

EVPN is carried in MP-BGP under AFI 25 (L2VPN) and SAFI 70 (EVPN). Every EVPN advertisement uses the same three byte header, and everything that makes a type interesting lives in the variable payload after it.

+-----------------------------------+
|  Route Type          (1 octet)    |   1 through 11 today, 0 reserved
+-----------------------------------+
|  Length              (1 octet)    |   length of the payload below
+-----------------------------------+
|  Route Type Specific (variable)   |   the part you actually care about
+-----------------------------------+

Five building blocks show up again and again inside that payload. Learn these once and every route type becomes readable:

Field Size What it does
Route Distinguisher 8 octets Makes an otherwise identical MAC or prefix unique per originating device and per EVI. Usually auto-derived as router-id:VNI-index. It does not control import. Ever.
Ethernet Segment ID (ESI) 10 octets Identifies the link or LAG bundle a CE uses to attach to one or more PEs. All zeros means single homed. Non zero means multihoming logic engages.
Ethernet Tag ID 4 octets Broadcast domain selector inside an EVI. Zero in VLAN based service (the common VXLAN case), the VLAN ID in VLAN aware bundle, and 0xFFFFFFFF (4294967295) as the MAX-ET wildcard in per-ES routes.
MPLS Label / VNI 3 octets In MPLS EVPN this is a real label. In VXLAN the 24 bit field carries the VNI directly, which is why label and VNI get used interchangeably in show output.
Extended communities 8 octets each Where the real behavior hides: Route Target, Encapsulation, Router MAC, MAC Mobility, ESI Label, DF Election, Default Gateway, Multicast Flags.

Practitioner note: import is driven entirely by Route Target, never by RD. When a leaf receives EVPN routes but installs nothing, the first two checks are always RT import policy and whether the next hop is resolvable in the underlay. Mismatched RDs are ugly but harmless. Mismatched RTs are silent and fatal.

All eleven route types at a glance

Type Name Reference Job in one line
1 Ethernet Auto-Discovery RFC 7432 Fast convergence (mass withdrawal), aliasing and backup path, and the split horizon label for multihoming.
2 MAC/IP Advertisement RFC 7432, RFC 9135 Advertises a host MAC, optionally its IP, and the L2VNI plus L3VNI used to reach it.
3 Inclusive Multicast Ethernet Tag RFC 7432 Builds the BUM flood list. Who else has this VNI, and how do I replicate to them.
4 Ethernet Segment RFC 7432, RFC 8584 Discovers the other PEs on the same segment and elects the Designated Forwarder.
5 IP Prefix RFC 9136 Carries an IP prefix with no MAC attached: external routes, summaries, silent hosts, firewall segments.
6 Selective Multicast Ethernet Tag (SMET) RFC 9251 Tells the fabric which multicast groups a VTEP actually wants, so BUM stops being all or nothing.
7 Multicast Membership Report Synch RFC 9251 Syncs IGMP joins between PEs on the same multihomed segment.
8 Multicast Leave Synch RFC 9251 Syncs IGMP leaves so the non-DF does not tear state down early.
9 Per-Region I-PMSI A-D RFC 9572 Inclusive BUM tree per region for segmented, inter-AS or inter-area deployments.
10 S-PMSI A-D RFC 9572 Selective tree binding for a specific flow instead of the inclusive tree.
11 Leaf A-D RFC 9572 Leaf tracking so the root knows who to graft onto a P2MP tree.

Values 12 through 255 are unassigned. In a typical VXLAN data center fabric you will live inside types 2, 3, and 5, add 1 and 4 the moment anything is multihomed, and only meet 6 through 8 if you turn on IGMP proxy for multicast tenants. Types 9 through 11 belong to segmented service provider designs, not to a leaf-spine pod.

Type 1: Ethernet Auto-Discovery

Type 1 is the least understood and the most operationally important route in a multihomed fabric. It exists in two flavors that look nearly identical on the wire and do completely different jobs.

Type 1 NLRI
+-----------------------------------+
|  RD                    (8 octets) |
+-----------------------------------+
|  Ethernet Segment ID  (10 octets) |
+-----------------------------------+
|  Ethernet Tag ID       (4 octets) |  0xFFFFFFFF = per-ES, else per-EVI
+-----------------------------------+
|  MPLS Label            (3 octets) |  ESI label context / aliasing label
+-----------------------------------+

Per-ES (Ethernet Tag = 0xFFFFFFFF)

One route per Ethernet Segment, advertised with the MAX-ET wildcard and carrying the ESI Label extended community. It does two things:

  • Mass withdrawal. When the link to the CE fails, the PE withdraws one route and every remote PE instantly invalidates every MAC it learned from that PE on that segment. Without it, convergence is a per-MAC withdrawal storm that scales with host count instead of segment count.
  • Split horizon label. In MPLS EVPN the ESI label lets a peer PE recognize BUM traffic that originated from the shared segment and drop it before it loops back to the CE. In VXLAN there is no room for that label in the header, so implementations use local bias instead: the receiving PE drops BUM sourced from a VTEP it knows shares the segment.

Per-EVI (Ethernet Tag = the EVI or 0)

One route per Ethernet Segment per EVI, and this is what makes aliasing work. In an all-active pair, a host MAC may only ever be learned by one of the two PEs, because the CE hashed its traffic that way. Without aliasing, remote VTEPs would send all return traffic to that single PE and half your bandwidth would sit idle. The per-EVI type 1 route tells remote VTEPs “this ESI is reachable through me for this EVI too,” so they can install both next hops as ECMP even though only one advertised the type 2. The same mechanism provides backup path signaling in single-active mode.

# FRR: both flavors in one view
leaf01# show bgp l2vpn evpn route type ead

*> [1]:[0]:[03:44:38:39:be:ef:00:00:01]:[4294967295]   <-- per-ES, MAX-ET
                    10.0.0.11                     0 65001 i
                    RT:65001:10 ESI-label:20 (all-active)

*> [1]:[0]:[03:44:38:39:be:ef:00:00:01]:[0]            <-- per-EVI, aliasing
                    10.0.0.11                     0 65001 i
                    RT:65001:10010 ET:8

Field symptom: a multihomed server sees roughly half its inbound sessions land on one leaf and the other half blackhole after a MAC ages out. That is missing or unimported per-EVI type 1. Aliasing is not a nice to have, it is the reason all-active works at all.

Type 2: MAC/IP Advertisement

The workhorse. Type 2 replaces flood and learn with a control plane advertisement, and in a routed fabric it also does the ARP suppression and the symmetric IRB lookup.

Type 2 NLRI
+-----------------------------------+
|  RD                    (8 octets) |
+-----------------------------------+
|  Ethernet Segment ID  (10 octets) |  zeros = single homed
+-----------------------------------+
|  Ethernet Tag ID       (4 octets) |
+-----------------------------------+
|  MAC Address Length    (1 octet)  |  always 48
+-----------------------------------+
|  MAC Address           (6 octets) |
+-----------------------------------+
|  IP Address Length     (1 octet)  |  0, 32, or 128
+-----------------------------------+
|  IP Address        (0/4/16 octet) |  optional, enables ARP/ND suppression
+-----------------------------------+
|  MPLS Label1           (3 octets) |  L2VNI, bridging
+-----------------------------------+
|  MPLS Label2      (0 or 3 octets) |  L3VNI, symmetric IRB routing
+-----------------------------------+

The two labels are the whole story

Label1 carries the L2VNI and answers “which bridge domain do I drop this frame into.” Label2 carries the L3VNI and only appears when the advertising device does symmetric IRB. When a remote leaf routes toward that host, it encapsulates with the L3VNI, sets the inner destination MAC to the value in the Router MAC extended community, and the egress leaf does a lookup in the matching tenant VRF. No L3VNI and no Router MAC means no symmetric routing, only bridging.

MAC mobility and the sequence number

When a VM moves, the new leaf advertises the same MAC with a MAC Mobility extended community whose sequence number is one higher than what it saw. Highest sequence wins, the old leaf withdraws, done. That same field also carries the sticky bit for statically pinned MACs, which tells the fabric to reject moves entirely.

Duplicate address detection watches that sequence number climb. Most platforms default to a threshold in the neighborhood of five moves inside 180 seconds before they freeze the entry and log it. If you see a MAC frozen in a fabric with no VM mobility, you are usually looking at one of three things: the same MAC configured on two hosts, a loop bridging two leaves outside the fabric, or a multihomed CE whose two links carry mismatched ESI values so each leaf believes the host just moved.

# NX-OS: a single type 2 with everything that matters
leaf01# show bgp l2vpn evpn 0050.56a1.3c9f

Route Distinguisher: 10.0.0.11:32777    (L2VNI 10010)
BGP routing table entry for [2]:[0]:[0]:[48]:[0050.56a1.3c9f]:[32]:[10.10.10.51]/272
Paths: (1 available, best #1)
  Path type: local, path is valid, is best path
  AS-Path: NONE, path locally originated
    10.0.0.11 (metric 0) from 0.0.0.0 (10.0.0.11)
      Origin IGP, MED not set, localpref 100, weight 32768
      Received label 10010 50000
      Extcommunity: RT:65001:10010 RT:65001:50000 ENCAP:8
                    Router MAC:0c29.1234.5678 MAC Mobility Sequence:00:3

Read that entry left to right: MAC length 48, the MAC, IP length 32, the host IP, then two labels (10010 = L2VNI, 50000 = L3VNI), two Route Targets (one for the MAC-VRF, one for the IP-VRF), encapsulation type 8 for VXLAN, the Router MAC for symmetric IRB, and a mobility sequence of 3 telling you this host has moved.

ARP suppression: the MAC-plus-IP form is what populates the local ARP cache proxy. Enable it and the leaf answers ARP locally instead of flooding into the VNI. Disable it, or advertise MAC-only type 2 routes, and every ARP becomes a fabric wide broadcast. On FortiOS this is set arp-suppression enable under the EVPN instance.

Type 3: Inclusive Multicast Ethernet Tag

Type 3 is how a VTEP says “I have VNI 10010, and here is how to send me broadcast, unknown unicast, and multicast.” Every VTEP with a given L2VNI originates exactly one of these per VNI, and every receiver uses them to build its replication list.

Type 3 NLRI                          Plus the PMSI Tunnel attribute
+-----------------------------------+  +--------------------------------+
|  RD                    (8 octets) |  |  Flags            (1 octet)    |
+-----------------------------------+  +--------------------------------+
|  Ethernet Tag ID       (4 octets) |  |  Tunnel Type      (1 octet)    | 6 = ingress replication
+-----------------------------------+  +--------------------------------+
|  IP Address Length     (1 octet)  |  |  MPLS Label       (3 octets)   | the VNI
+-----------------------------------+  +--------------------------------+
|  Originating Router IP (4 or 16)  |  |  Tunnel Identifier (variable)  | the VTEP IP
+-----------------------------------+  +--------------------------------+

The NLRI itself is thin. The behavior lives in the PMSI Tunnel attribute. Tunnel type 6 means ingress replication, which is what nearly every VXLAN fabric uses: the ingress VTEP makes N copies and unicasts one to each peer. Tunnel type 3 (PIM-SSM), 4 (PIM-SM), and 5 (BIDIR-PIM) push replication into the underlay instead, which scales better for heavy BUM but requires underlay multicast you have to operate.

# FRR: the flood list, straight from type 3
leaf01# show bgp l2vpn evpn route type multicast

*> [3]:[0]:[32]:[10.0.0.11]   10.0.0.11   32768 i   RT:65001:10010 ET:8
*>i[3]:[0]:[32]:[10.0.0.12]   10.0.0.12       0 i   RT:65001:10010 ET:8
*>i[3]:[0]:[32]:[10.0.0.13]   10.0.0.13       0 i   RT:65001:10010 ET:8

# and the resulting replication list in the data plane
leaf01# show evpn vni 10010
VNI: 10010  type: L2  VxLAN IF: vxlan10010
Remote VTEPs for this VNI:
  10.0.0.12 flood: HER
  10.0.0.13 flood: HER

Field symptom: unicast between two known hosts works, but DHCP, ARP for unknown hosts, and anything broadcast fails. Check type 3. A missing or unimported type 3 means the remote VTEP never made it onto the flood list, and only preexisting control plane state saves you.

Type 4: Ethernet Segment

Type 4 only appears when something is multihomed. Its two jobs are discovering which PEs share an Ethernet Segment and running the Designated Forwarder election so exactly one of them forwards BUM toward the CE.

Type 4 NLRI
+-----------------------------------+
|  RD                    (8 octets) |
+-----------------------------------+
|  Ethernet Segment ID  (10 octets) |
+-----------------------------------+
|  IP Address Length     (1 octet)  |
+-----------------------------------+
|  Originating Router IP (4 or 16)  |
+-----------------------------------+

The ES-Import Route Target trick

Type 4 routes carry an ES-Import Route Target that is auto-derived from the middle six bytes of the ESI. Only PEs configured with that exact ESI will import the route, which means ES discovery works without any RT configuration and without leaking segment state to the rest of the fabric. It also means a single mistyped digit in an ESI produces two segments of one member each, both of which happily elect themselves DF, and your CE gets every broadcast frame twice.

ESI formats worth knowing

Type Derivation Practical use
T0 Manually configured Most common in data centers. Deterministic, auditable, and the one that gets typo’d.
T1 LACP system MAC plus key Auto-derives from the CE’s LACP identity. Great until someone rebuilds the bond and the ESI changes underneath you.
T3 System MAC plus local discriminator Common auto-generation scheme on modern NOS releases.
T5 AS number plus local discriminator Used where the segment is a routed attachment rather than a LAG.

DF election, and why the default is bad for you

The RFC 7432 default is service carving by modulo: sort the originating router IPs of all PEs on the segment, then for each Ethernet Tag i = V mod N picks the winner. It is simple, and it is disruptive: add or remove one PE and N changes, which reshuffles the DF role for every VLAN on the segment, not just the affected ones.

RFC 8584 fixes this with the DF Election extended community and two better algorithms: highest random weight (HRW), which keeps most assignments stable when membership changes, and preference-based election, which lets you deterministically pin the DF to the leaf you want. RFC 8584 also adds non-revertive behavior, so a recovering leaf does not steal the role back and cause a second outage. If your platform supports it, use preference-based or HRW and stop pretending modulo carving is fine.

# FRR: is the segment actually formed, and who is DF
leaf01# show evpn es
ESI                            Type  ES-IF     VTEPs
03:44:38:39:be:ef:00:00:01     LO    bond1     10.0.0.11,10.0.0.12

leaf01# show evpn es 03:44:38:39:be:ef:00:00:01
 ESI: 03:44:38:39:be:ef:00:00:01
 Type: Local
 Interface: bond1
 VTEPs: 10.0.0.11(DF),10.0.0.12

# Arista EOS equivalent
leaf01# show bgp evpn route-type ethernet-segment
leaf01# show evpn instance detail

Field symptom: the multihomed host receives every broadcast twice, or the switch below the fabric reports MAC flapping between two uplinks. Both leaves believe they are DF. Verify the ESI matches byte for byte on both sides, then verify the type 4 route is actually being received and imported.

Type 5: IP Prefix

Type 5 decouples IP reachability from MAC reachability. There is no MAC in the NLRI at all, which is exactly the point: you can advertise a prefix into a tenant VRF without any host in the fabric owning it.

Type 5 NLRI
+-----------------------------------+
|  RD                    (8 octets) |
+-----------------------------------+
|  Ethernet Segment ID  (10 octets) |  overlay index option
+-----------------------------------+
|  Ethernet Tag ID       (4 octets) |
+-----------------------------------+
|  IP Prefix Length      (1 octet)  |  0 to 32, or 0 to 128
+-----------------------------------+
|  IP Prefix        (4 or 16 octet) |
+-----------------------------------+
|  GW IP Address    (4 or 16 octet) |  overlay index option
+-----------------------------------+
|  MPLS Label            (3 octets) |  L3VNI
+-----------------------------------+

Overlay index models

RFC 9136 defines several ways to resolve the next hop for a type 5 prefix, and the one you will see in almost every VXLAN fabric is the interface-less model: GW IP set to zero, the L3VNI in the label field, and the egress leaf’s router MAC in the Router MAC extended community. The ingress leaf encapsulates with that L3VNI, sets the inner destination MAC to the router MAC, and the egress leaf routes in the tenant VRF. Nothing else needs to be resolved.

The interface-ful models use a real GW IP or an ESI as an overlay index, which then has to be recursively resolved through a type 2 route. They exist for service provider designs and for prefixes reachable behind a specific attachment circuit. If you are debugging a DC fabric and you see a non-zero GW IP, ask why before you assume it is correct.

When to use type 5 instead of type 2

Scenario Why type 5
Silent hosts A host that never sources traffic is never learned, so no type 2 exists. A subnet prefix advertised as type 5 keeps it reachable and lets the local leaf ARP for it.
External and WAN routes A border leaf injects a default route or WAN summaries into the tenant VRF with no MAC semantics attached.
Firewall or service segments Networks living behind a FortiGate or load balancer are routed to, not bridged to. Type 5 advertises them cleanly into the VRF.
Scale control One /24 replaces 254 host routes in remote leaf hardware tables. On merchant silicon with tight route scale this is the difference between working and not.
DCI without stretching L2 Routed interconnect between sites where you deliberately do not want a shared broadcast domain.

# NX-OS: interface-less type 5, the shape you want to see
leaf01# show bgp l2vpn evpn route-type 5

Route Distinguisher: 10.0.0.21:3    (L3VNI 50000)
BGP routing table entry for [5]:[0]:[0]:[24]:[192.168.50.0]/224
  Path type: internal, path is valid, is best path
    10.0.0.21 (metric 81) from 10.0.0.1 (10.0.0.1)
      Origin IGP, localpref 100, weight 0
      Received label 50000
      Extcommunity: RT:65001:50000 ENCAP:8 Router MAC:0c29.aabb.ccdd

# the resulting VRF route
leaf01# show ip route vrf TENANT-A 192.168.50.0/24
192.168.50.0/24, ubest/mbest: 1/0
    *via 10.0.0.21%default, [200/0], 00:04:11, bgp-65001, internal,
         tag 65001, segid 50000 tunnelid 0x0a000015 encap VXLAN

Field symptom: the type 5 route is in the BGP table but traffic blackholes. Ninety percent of the time the L3VNI is not configured or not up on the ingress leaf, or the Router MAC extended community is missing, so the ingress device cannot build a valid inner header. Confirm the L3VNI exists on both ends before you touch anything else.

Types 6, 7, and 8: making multicast selective

RFC 9251 adds IGMP and MLD proxy to EVPN. Without it, a multicast stream inside a VNI is just BUM traffic: it goes to every VTEP in the flood list whether or not a receiver exists there. In a fabric carrying video, market data, or industrial telemetry, that is a lot of wasted fabric bandwidth and a lot of wasted host NIC interrupts.

Type Name Behavior
6 SMET The VTEP snoops local IGMP joins and advertises the (S,G) or (*,G) it wants. Senders replicate only to VTEPs that asked. Carries the Multicast Flags extended community with the IGMP version bits.
7 Join Synch On a multihomed segment only one PE sees the IGMP report, because the CE hashes it to one uplink. Type 7 syncs that membership to the peer PE so the DF can forward correctly.
8 Leave Synch Same problem in reverse. It coordinates the leave and the last member query timing so state is not torn down while a receiver on the peer still wants the group.

Types 7 and 8 only exist because of multihoming. If nothing in your fabric is multihomed you will see type 6 and never the other two.

Types 9, 10, and 11: segmented BUM

RFC 9572 covers EVPN BUM delivery when the network is split into regions or autonomous systems and you do not want one flat inclusive tree spanning everything. Type 9 (Per-Region I-PMSI A-D) advertises the inclusive tree for a region, type 10 (S-PMSI A-D) binds a specific flow to a selective tree, and type 11 (Leaf A-D) provides explicit leaf tracking so the root knows exactly who to graft.

If you run a leaf-spine pod with ingress replication, you will never see these. They matter for carriers stitching EVPN across ASBRs and for large segmented cores. Recognize them so that a packet capture or a BMP feed does not send you down a rabbit hole.

The order things actually happen

Bring-up order is a diagnostic tool. If you know what should appear when, a missing stage tells you where to look.

Step Route What has to be true first
1 None Underlay routing converged, loopbacks reachable, EVPN address family negotiated on the BGP session.
2 Type 3 L2VNI configured and up. Flood lists build here, before any host exists.
3 Type 4 Only if an ESI is configured. DF election completes before the segment forwards BUM.
4 Type 1 Per-ES and per-EVI follow segment formation. Split horizon and aliasing come online here.
5 Type 2 A host has to actually speak. MAC-only first, MAC plus IP once ARP or ND is seen.
6 Type 5 L3VNI and tenant VRF up, plus a redistribution or network statement that injects the prefix.
7 Types 6-8 IGMP snooping and EVPN multicast proxy enabled, plus a receiver that actually joins a group.

One packet, three route types

Host A in VNI 10010 on leaf01 sends to Host B in VNI 10020 on leaf03, symmetric IRB, tenant VRF with L3VNI 50000. Here is which route type does what at each hop.

Host A                 leaf01                  spine                 leaf03            Host B
  |                      |                        |                     |                 |
  |-- ARP for GW ------> |  answered locally (anycast GW, same MAC everywhere)
  |-- frame to GW MAC -->|
  |                      | route lookup in VRF:
  |                      |   dst host route from TYPE 2 (or prefix from TYPE 5)
  |                      |   next hop = 10.0.0.13, L3VNI 50000 from Label2
  |                      |   inner dst MAC = Router MAC extcomm
  |                      |-- VXLAN VNI 50000 --->|-- underlay ECMP --->|
  |                      |                        |                     | decap, VRF lookup
  |                      |                        |                     | ARP entry from TYPE 2
  |                      |                        |                     |-- frame --->|
BUM path instead:        | flood list from TYPE 3, DF check from TYPE 4,
                         | split horizon from TYPE 1 per-ES

Show commands by platform

FRRouting

show bgp l2vpn evpn summary
show bgp l2vpn evpn route type ead
show bgp l2vpn evpn route type macip
show bgp l2vpn evpn route type multicast
show bgp l2vpn evpn route type es
show bgp l2vpn evpn route type prefix
show bgp l2vpn evpn vni
show evpn vni detail
show evpn mac vni 10010
show evpn arp-cache vni 10010
show evpn es
show evpn next-hops vni all

Cisco NX-OS

show bgp l2vpn evpn summary
show bgp l2vpn evpn route-type 1
show bgp l2vpn evpn route-type 2
show bgp l2vpn evpn route-type 3
show bgp l2vpn evpn route-type 4
show bgp l2vpn evpn route-type 5
show bgp l2vpn evpn 0050.56a1.3c9f
show l2route evpn mac all
show l2route evpn mac-ip all
show nve peers
show nve vni
show fabric forwarding ip local-host-db vrf TENANT-A

Arista EOS

show bgp evpn summary
show bgp evpn route-type auto-discovery
show bgp evpn route-type mac-ip
show bgp evpn route-type imet
show bgp evpn route-type ethernet-segment
show bgp evpn route-type ip-prefix ipv4
show vxlan vtep
show vxlan address-table
show evpn instance detail

Junos

show route table bgp.evpn.0
show route table bgp.evpn.0 match-prefix 2:*
show route table bgp.evpn.0 match-prefix 5:*
show evpn database
show evpn instance extensive
show evpn multicast-snooping

FortiOS

FortiGate participates as a VTEP using the EVPN instance, VXLAN interface, and BGP configuration below. Note that the EVPN instance holds the RD and RTs, the VXLAN interface binds the VNI to it, and the BGP neighbor needs the EVPN soft reconfiguration knob.

config system evpn
    edit 100
        set rd "100:100"
        set import-rt "1:1"
        set export-rt "1:1"
        set ip-local-learning enable
        set arp-suppression enable
    next
end

config system vxlan
    edit "vxlan1"
        set interface "loopback2"
        set vni 1000
        set evpn-id 100
    next
end

config router bgp
    set as 65001
    set router-id 2.2.2.2
    set ibgp-multipath enable
    set recursive-next-hop enable
    set graceful-restart enable
    config neighbor
        edit "172.25.160.100"
            set remote-as 65001
            set ebgp-enforce-multihop enable
            set next-hop-self enable
            set next-hop-self-vpnv4 enable
            set soft-reconfiguration enable
            set soft-reconfiguration-evpn enable
        next
    end
    config network
        edit 1
            set prefix 2.2.2.2 255.255.255.255
        next
    end
end

# Verify the EVPN instance is bound and the RTs are what you think
FGT # get router info bgp evpn context

L2VPN EVPN context for VRF 0
ID 100 vlan-based, RD is [100:100]
  Import RT: RT:1:1
  Export RT: RT:1:1
  Bridge domain 0 VNI 1000
  Encapsulation 8(VXLAN)
  Source interface loopback1
  Source address 1.1.1.1

# Confirm learned entries landed in the VXLAN forwarding database
FGT # diagnose sys vxlan fdb list vxlan1

Failure signatures, mapped to route types

What the user reports Suspect First three checks
DHCP and ARP fail, established flows keep working Type 3 Is the remote type 3 received, is the RT imported, is the L2VNI up on both ends.
Host unreachable from remote leaves only Type 2 Does the type 2 exist locally, is it advertised, is the next hop resolvable in the underlay.
Duplicate broadcast frames at a multihomed CE Type 4 Compare ESI on both leaves byte for byte, confirm type 4 import, confirm a single DF per Ethernet Tag.
BUM echoes back onto the segment it came from Type 1 per-ES Is the per-ES route present with an ESI Label community, is local bias supported and enabled on this platform.
Half the return traffic to an all-active host blackholes Type 1 per-EVI Are per-EVI routes present from both leaves, is multipath enabled, does the remote install both next hops.
MAC frozen or flapping with no VM mobility Type 2 mobility Read the mobility sequence, look for a duplicate MAC or a loop, verify ESI consistency on the multihomed pair.
Prefix in BGP, traffic blackholed Type 5 Is the L3VNI configured and up on the ingress leaf, is the Router MAC community present, is the VRF RT imported.
Silent host unreachable until you ping from it Type 2 vs 5 No type 2 exists because nothing was learned. Advertise the subnet as a type 5, or enable ARP probing for the segment.
Multicast reaching leaves with no receivers Type 6 Is IGMP snooping on, is EVPN multicast proxy enabled, are SMET routes actually being originated.

Six things worth keeping

  1. Route Target controls import. RD only provides uniqueness. When routes are present but nothing installs, look at RT first, next hop resolution second.
  2. Type 3 builds the flood list before a single host exists. Its absence looks like a broadcast problem, not a routing problem.
  3. Type 1 per-ES and per-EVI are different routes with different jobs. Mass withdrawal and split horizon versus aliasing and backup path.
  4. In symmetric IRB, Label2 plus the Router MAC extended community are what make routing work. Missing either one turns a valid looking type 2 or type 5 into a blackhole.
  5. Type 5 is not just for external routes. It is your answer to silent hosts and to hardware route scale on merchant silicon.
  6. If your platform supports RFC 8584, move off modulo DF election. Preference-based or HRW with non-revertive behavior will save you an outage you would otherwise schedule for yourself.

References worth bookmarking: RFC 7432 (BGP MPLS-Based Ethernet VPN), RFC 8365 (network virtualization overlay solution), RFC 9135 (integrated routing and bridging), RFC 9136 (IP prefix advertisement), RFC 8584 (framework for EVPN DF election), RFC 9251 (IGMP and MLD proxy for EVPN), RFC 9572 (updates on EVPN BUM procedures), and the IANA EVPN Route Types registry for anything assigned after this was written.

Recent posts

  • If you've spent any time configuring user authentication on... Full Story

  • DNS is one of those technologies that quietly underpins... Full Story

  • BGP issues on FortiGate firewalls usually trace back to... Full Story

  • Every time your laptop talks to your router, a... Full Story

  • If you've spent any time configuring NAT on a... Full Story

  • If you have spent any time configuring firewall policies... Full Story

  • High availability on FortiGate is one of those features... Full Story

  • If you've configured SD-WAN on a FortiGate, you've almost... Full Story

  • FortiLink is the management protocol that turns a FortiSwitch... Full Story

  • FortiSwitches are pretty rock solid from Mean Time Between... Full Story

  • This is a quicky tip.  Have you ever gone... Full Story

  • DNS is one of those quiet pieces of internet... Full Story

  • This article is an updated version of the previous... Full Story

  • You will add ns2 as a secondary (slave) BIND9... Full Story

  • In the process of deploying my lab, I needed... Full Story

  • RFC 8805, used to be known as Self-Correcting IP... Full Story

  • Years back, I wrote an article about certificate pinning. ... Full Story

  • FortiGates have the ability to send alerts to Microsoft... Full Story

  • In this post, I am going to walk through... Full Story

  • Troubleshooting VoIP on a FortiGate can feel like trying... Full Story

  • Prior to FortiOS 7.0, there were three commands to... Full Story

  • In this post, I am going to go over... Full Story

  • What we are going to do:  We are going... Full Story

  • Choosing between FGCP (FortiGate Clustering Protocol) and FGSP (FortiGate... Full Story

  • Creating a VLAN on macOS (The "Pro" Move) A... Full Story

  • This blog post explores the logic behind how macOS... Full Story

  • Pretty Fly for a Wi-Fi Tell My Wi-Fi Love... Full Story

  • Part of my daily gig is creating BoMs (Bill-of-Materials)... Full Story

  • ICMP introduces several security risks, but careful filtering, rate... Full Story

  • The command diag debug application dhcps -1 enables full... Full Story

  • In the world of FortiOS, execute tac report is... Full Story

  • LLDP; What is it The Link Layer Discovery Protocol... Full Story

  • What it actually does When you run diagnose fdsm... Full Story

  • Monkey Bites are bite-sized, high-impact security insights designed for... Full Story

  • I have run macOS in macOS with Parallels but... Full Story

  • Don't be confused with my other FortiNAC posts where... Full Story

  • This is the third session in a multi-part article... Full Story

  • Today I was configuring key-based authentication on a FortiGate... Full Story

  • Netcat, often called the "Swiss Army knife" of networking,... Full Story

  • At its core, IEEE 802.1X is a network layer... Full Story

  • In case you did not see the previous FortiNAC... Full Story

  • This is our 5th session where we are going... Full Story

  • Now that we have Wireshark installed and somewhat configured,... Full Story

  • The Philosophy of Packet Analysis Troubleshooting isn't about looking... Full Story

  • Everyone learns EVPN as "type 2 carries MACs and... Full Story

  • The short answer. XDR and SOAR overlap on automated... Full Story

  • If your team manages SSL/TLS certificates using spreadsheets, calendar... Full Story