NX-OS to NVUE EVPN Configuration
Cumulus Linux version 4.4 introduces a new CLI called NVUE; a complete object model for Cumulus Linux. NVUE makes translating configurations from one vendor to another much more reliable the first time you use Cumulus Linux and across Cumulus Linux versions.
This KB article describes how to take a basic NX-OS configuration for EVPN and translate it to NVUE. The example confiuration derives from this Cisco Configuration Example.
NX-OS Command | NVUE Command | Comments |
---|---|---|
nv overlay evpn | none | Cumulus Linux does not require features to be explicitly enabled. |
feature ospf | none | |
feature bgp | none | |
feature pim | none | |
feature interface-vlan | none | |
feature vn-segment-vlan-based | none | |
feature lacp | none | |
feature vpc | none | |
feature nv overlay | none | |
fabric forwarding anycast-gateway-mac 0001.0001.0001 | nv set system global anycast-mac 44:38:39:BE:EF:AA | |
ip pim rp-address 192.168.9.9 group-list 224.0.0.0/4 | none | NVIDIA recommends you use Head End Replication for EVPN, removing the need for PIM. Scale-out deployments support PIM Replication. |
ip pim ssm range 232.0.0.0/8 | none | |
vlan 1,10,20,30,40 | nv set bridge domain br_default vlan 30,40 | Ethernet Bridging |
vlan 10 | none | The layer 3 VNI does not require a unique VLAN interface. |
name L3-VNI-VLAN-10 | none | |
vn-segment 10000010 | none | |
vlan 30 | nv set bridge domain br_default vlan 30 vni 10000030 | |
vn-segment 10000030 | none | A single command with NVUE defines the vn-segment and vlan . |
vlan 40 | nv set bridge domain br_default vlan 40 vni 10000040 | |
vn-segment 10000040 | none | |
vpc domain 2 | nv set mlag backup 10.197.204.103 | Cumulus Linux Multi-Chassis Link Aggregation - MLAG uses remote and local peering to ensure uptime. |
peer-keepalive destination 10.197.204.103 | nv set mlag peer-ip linklocal | You can determine the local peer IP automatically with link-local addresses. |
interface Vlan10 | none | The layer 3 VNI does not require a unique VLAN interface. |
no shutdown | none | |
vrf member EVPN-L3-VNI-VLAN-10 | none | |
ip forward | none | |
interface Vlan30 | ||
no shutdown | none | Interfaces are no shut by default. |
vrf member EVPN-L3-VNI-VLAN-10 | nv set interface vlan30 ip vrf EVPN-L3-VNI-VLAN-10 | |
ip address 172.16.30.1/24 | nv set interface vlan30 ip address 172.16.30.1/24 | |
fabric forwarding mode anycast-gateway | none | You do not speceify an explicit command for this setting in NVUE. |
interface Vlan40 | ||
no shutdown | none | |
vrf member EVPN-L3-VNI-VLAN-10 | nv set interface vlan40 ip vrf EVPN-L3-VNI-VLAN-10 | |
ip address 172.16.40.1/24 | nv set interface vlan40 ip address 172.16.40.1/24 | |
fabric forwarding mode anycast-gateway | none | |
interface port-channel2 | nv set interface bond2 bond member swp1 | This example uses swp1 instead of NX-OS port e1/13 . |
switchport mode trunk | nv set interface bond2 bridge domain br_default vlan all | br_default is the name of the default bridge. |
vpc 2 | nv set interface bond2 bond mlag id 2 | |
interface port-channel34 | nv set interface peerlink bond member swp49 | This example uses swp49 instead of NX-OS port e1/1 . |
switchport mode trunk | none | The peerlink is a trunk port by default. |
spanning-tree port type network | none | Enabled by default. |
vpc peer-link | none | You do this with the name peerlink . |
interface nve1 | none | NVUE does not have an explicit interface. |
no shutdown | none | |
source-interface loopback2 | nv set nve vxlan source address 192.168.33.33 | You configure NVUE interface settings globally with nv set nve vxlan commands. |
host-reachability protocol bgp | none | |
member vni 10000010 associate-vrf | nv set vrf EVPN-L3-VNI-VLAN-10 evpn vni 10000010 | |
member vni 10000030 | none | You only need to associate the VRF VNI. |
suppress-arp | nv set nve vxlan arp-nd-suppress on | |
mcast-group 239.1.1.10 | none | NVIDIA recommends you use Head end Replication. |
member vni 10000040 | none | |
suppress-arp | none | |
mcast-group 239.1.1.20 | none | |
interface Ethernet1/1 | none | |
switchport mode trunk | none | You defined the interface when you created the bond earlier. |
channel-group 34 mode active | none | |
interface Ethernet1/2 | none | |
no switchport | none | Interfaces are layer 3 by default. |
ip address 192.168.39.3/24 | none | NVIDIA recommends BGP Unnumbered for the underlay, removing the need for an IP address. |
ip router ospf UNDERLAY area 0.0.0.0 | none | NVIDIA recommends BGP Unnumbered. |
ip pim sparse-mode | none | NVIDIA recommends Head End Replication. |
no shutdown | none | |
interface Ethernet1/13 | none | This example uses port swp1 instead of e1/13 . |
switchport mode trunk | none | Port configuration is part of the bond definition. |
channel-group 2 mode active | none | |
interface loopback2 | nv set interface lo ip address 192.168.33.33/32 | Cumulus Linux uses a single loopback lo . |
ip address 192.168.33.33/32 | none | Defined with the creation of the loopback interface. |
ip address 192.168.33.34/32 secondary | nv set nve vxlan mlag shared-address 192.168.33.34 | |
ip router ospf UNDERLAY area 0.0.0.0 | none | NVIDIA recommends using BGP for both the underlay and overlay. |
router bgp 65000 | nv set router bgp autonomous-system 65000 | |
address-family ipv4 unicast | none | |
address-family l2vpn evpn | none | |
neighbor 192.168.9.9 remote-as 100 | nv set vrf default router bgp neighbor swp51 remote-as external | This command uses eBGP unnumbered instead of IP based peering. |
remote-as 65000 | none | This command combines with the peer command above. |
update-source loopback2 | none | BGP unnumbered uses the interface instead of a loopback source. |
address-family ipv4 unicast | none | |
address-family l2vpn evpn | nv set vrf default router bgp neighbor swp51 address-family l2vpn-evpn enable on | |
send-community extended | none | Enabled by default. |
vrf EVPN-L3-VNI-VLAN-10 | none | You manage this through an earlier nv set vrf command. |
address-family ipv4 unicast | none | |
advertise l2vpn evpn | none | |
evpn | none | |
vni 10000030 l2 | none | |
rd auto | none | |
route-target import auto | none | |
route-target export auto | none | |
vni 10000040 l2 | none | |
rd auto | none | |
route-target import auto | none | |
route-target export auto | none |
Complete NVUE Configuration
nv set system global anycast-mac 44:38:39:BE:EF:AA
nv set bridge domain br_default vlan 30,40
nv set bridge domain br_default vlan 30 vni 10000030
nv set bridge domain br_default vlan 40 vni 10000040
nv set mlag backup 10.197.204.103
nv set mlag peer-ip linklocal
nv set interface vlan30 ip vrf EVPN-L3-VNI-VLAN-10
nv set interface vlan30 ip address 172.16.30.1/24
nv set interface vlan40 ip vrf EVPN-L3-VNI-VLAN-10
nv set interface vlan40 ip address 172.16.40.1/24
nv set interface bond2 bond member swp1
nv set interface bond2 bridge domain br_default vlan all
nv set interface bond2 bond mlag id 2
nv set interface peerlink bond member swp49
nv set nve vxlan source address 192.168.33.33
nv set vrf EVPN-L3-VNI-VLAN-10 evpn vni 10000010
nv set nve vxlan arp-nd-suppress on
nv set interface lo ip address 192.168.33.33/32
nv set nve vxlan mlag shared-address 192.168.33.34
nv set router bgp autonomous-system 65000
nv set vrf default router bgp neighbor swp51 remote-as external
nv set vrf default router bgp neighbor swp51 address-family l2vpn-evpn enable on