Cumulus Linux 3.2 shipped with a rudimentary EVPN implementation and everyone got really excited, including smaller ASIC manufacturers that finally got a control plane for their hardware VTEP functionality.
However, while it’s nice to have EVPN support in Cumulus Linux, the claims of its benefits are sometimes greatly exaggerated.
For example, David Iles from Mellanox claims that “… with EVPN, we have an industry standardized control plane for VTEP orchestration using an extension of BGP” and “… EVPN will deliver many of the promises of TRILL, FabricPath, VCS, and other data center fabrics but in a scalable, non-proprietary, way”
Let’s get a few things straight:
- TRILL is as standard as EVPN (if not more). Mentioning TRILL in the same list as VCS and FabricPath is disingenuous.
- As much as I love EVPN, TRILL has fewer options and thus higher chance of having at least two interoperable implementations.
Finally, EVPN can be implemented in so many ways that I started calling it “the SIP of networking”. For example, at the moment (in release 3.2.1) Cumulus Linux implements only Type-3 routes (similar to what Cisco Nexus 1000V was doing) and relies on dynamic MAC learning, while Cisco’s and Juniper’s implementations on ToR switches use BGP-based MAC+IP address propagation with Type-2 routes.
2017-02-23: Cumulus Linux already supports type-2 (MAC/IP) routes. That was fast ;) However, I got a hefty dose of “these are all the things that can go wrong” information a few days back, and it's even worse than what I thought. More details in a future blog post.
I’m also hearing rumors that symmetrical IRB (Cisco) and asymmetrical IRB (Juniper) implementations (you’ll find more details in the Mixed Layer-2 + Layer-3 Designs part of Leaf-and-Spine Architectures webinar) don’t work well together… or maybe that’s just FUD - I would love to hear from someone who got EVPN working between a Nexus 9000 and QFX 5100 or QFX 10K.