Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial VXLAN implementation on Junos #324

Open
ipspace opened this issue Jul 22, 2022 · 7 comments
Open

Initial VXLAN implementation on Junos #324

ipspace opened this issue Jul 22, 2022 · 7 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@ipspace
Copy link
Owner

ipspace commented Jul 22, 2022

8f3e5a4 added support for VLAN-to-VXLAN bridging. I decided to make it as simple as possible -- it uses static (configured) ingress replication and supports extending a selected subset of VLANs across a VXLAN domain.

Adding VXLAN routing seems to be a no-brainer on Arista EOS, anycast gateway will be implemented in another module together with HSRP/VRRP (because it's not VXLAN-specific), and we'll eventually integrate EVPN control plane (I'm pretty sure we'll have to add L2VRFs when we get there, or add RD/RT parameters to VLANs).

It's currently implemented on Arista EOS, and it was just a few lines of configuration. Implementations on other devices would be most welcome -- I might be able to do a Nexus OS or Cumulus Linux implementation, but neither one of them has a VLAN implementation at the moment, so we need to fix that first.

cc: @jbemmel @ssasso @petercrocker @ddutt

@jbemmel
Copy link
Collaborator

jbemmel commented Jul 22, 2022

On SR Linux they're called macvrfs, see e.g rfc8365; they're conceptually different than VLANs, as you can have multiple VLANs attached to a single macvrf.

My preference would be to create a 'macvrf' module, and implement RT/RD and VNI parameters there. Macvrfs can exist in isolation, or within the context of a L3 vrf; both a top-level 'macvrfs:' element and an optional element under each vrf in vrfs: seem appropriate

@jbemmel
Copy link
Collaborator

jbemmel commented Jul 22, 2022

For SR Linux, the vxlan module would depend on this 'macvrf' module

@ipspace
Copy link
Owner Author

ipspace commented Jul 23, 2022

RFC 7432 defines multiple EVPN service types. At the moment, I plan to implement only "VLAN-based Service Interface" (one-to-one mapping between VLAN tags, VXLAN VNIs and EVPN RT/RDs), which does not need an intermediate MAC-VRF construct in the data model regardless of how it needs to be configured on any particular device.

Furthermore, RFC 8365 makes no data-plane difference between "VLAN-aware Bundle Service" and "VLAN-based Service" -- in both cases, each VLAN needs a VNI, which means that we could implement MAC-VRF within EVPN module, because it's a pure control-plane construct (multiple independent VLANs share RT/RD).

Beyond those two service types, we're entering the murky land of 802.1Q-in-VXLAN encapsulation, and I don't want to go there; that would be best solved with a totally separate set of modules.

@ipspace
Copy link
Owner Author

ipspace commented Jul 23, 2022

As for "MAC VRF" EVPN construct, I feel like we could solve it within the existing framework by using VLAN-in-VRF setup and set VLAN mode to "bridge" for pure L2VRF, or leave it at "irb" for IRB. Have to check how that would translate into device configurations for a few platforms (I don't want to look just at Arista EOS).

Asymmetric IRB would be solved automatically with the current setup (using existing VRF, VLAN, and VXLAN modules you get it out of the box), for symmetric IRB we'd need "transit_vni" VRF attribute.

@ipspace
Copy link
Owner Author

ipspace commented Jul 23, 2022

Nexus OS support added in 548693e

@ssasso
Copy link
Collaborator

ssasso commented Jul 29, 2022

Initial VXLAN support on VyOS and Dell OS10 added in #327 :-)

@ipspace ipspace changed the title Initial VXLAN implementation on multiple platforms Initial VXLAN implementation on Junos, Cumulus, Nokia SR Linux Jul 29, 2022
@ipspace ipspace added the enhancement New feature or request label Aug 9, 2022
@ipspace ipspace changed the title Initial VXLAN implementation on Junos, Cumulus, Nokia SR Linux Initial VXLAN implementation on Junos and Cumulus Aug 18, 2022
@ipspace ipspace added the help wanted Extra attention is needed label Aug 29, 2022
@ipspace
Copy link
Owner Author

ipspace commented Sep 16, 2022

Cumulus implementation in 223f43e

@ipspace ipspace changed the title Initial VXLAN implementation on Junos and Cumulus Initial VXLAN implementation on Junos Sep 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants