Saving Virtual Link Extension Topology Configurations
In lab automation deployments in which Arista Networks switches are used with the vLE feature, users require easy repeatability when the same topology is to be deployed. For example, there is a need to be able to configure different vLE connections and then save them to be re-created when required.
Before NetVisor OS release 7.0.0, the software only supported saving and replaying individual configurations by using the switch-config-export and switch-config-import commands. However, this process is not optimal and convenient for vLE setups because it saves entire switch configurations and restarts the devices.
Starting from release 7.0.0, a new vLE topology feature can be used to automate the creation of vLEs, their associated transparent VLANs and the associated VXLAN IDs on the tunnels, in a convenient and user-friendly fashion. This new functionality introduces the topology-vle-add/-remove/-modify/-show commands to store and create the vLEs so that users can easily save and replay their topologies without having to restart the devices.
The feature’s logic checks for the presence of the static VXLAN tunnel(s) that is/are needed between the vLE nodes: a warning is displayed in case they are not active, and the automation does not proceed. On the other hand, if the tunnel(s) required for vLE creation is/are present, then the automation process adds the required VXLAN ID to each tunnel and the vLE setup is created.
The feature’s logic uses automatic assignment for parameters that are not specified and uses a dry run process to verify potential conflicts. The software checks:
- Ports for conflicts during vLE creation
- VLAN and VXLAN IDs to see if they are already in use
- The tunnels required for the vLE functionality
Note: Auto-tunnels are not supported. Only static ones are.
Note: Only single fabric deployments are supported.
The feature includes the following commands:
- topology-create name <name> is used to create a named topology entity.
Example:
CLI (network-admin@switch) > topology-create name topo1
- topology-delete name <name> deletes the topology configuration.
Example:
CLI (network-admin@switch) > topology-delete name topo1
- topology-show displays all the configured topologies and their enabled state.
Example:
CLI (network-admin@switch) > topology-show
name enable
----- ------
topo1 yes
topo2 no
- topology-modify enable | disable creates or deletes the vLEs.
enable creates the vLEs and the associated VLANs between the node ports
disable deletes the vLEs and the associated VLANs between the node ports
Example:
CLI (network-admin@leaf-1) > topology-modify name topo1 enable
CLI (network-admin@leaf-1) > vlan-show format switch,id,vxlan,auto-vxlan,vxlanmode,description,active,ports,untagged-ports,active-edge-ports
switch id vxlan auto-vxlan vxlan-mode description active ports untagged-ports active-edge-ports
------ ---- ------ ---------- ----------- -------------------- ------ ----- -------------- -----------------
leaf-1 3001 300100 no transparent topo-topo1-vlan-2750 yes 14 14 none
leaf-5 3001 300100 no transparent topo-topo1-vlan-2750 yes 12 12 none
CLI (network-admin@leaf-1) > tunnel-vxlan-show
switch name vxlan
------ ------------ ------
leaf-1 VLE_L5_to_L1 300100
leaf-5 VLE_L1_to_L5 300100
CLI (network-admin@leaf-1) > vle-show format name,node-1,node-2,node-1-port,node-2-port,status,tracking,ports-state,topology
name node-1 node-2 node-1-port node-2-port status tracking ports-state topology
--------- ------ ------ ----------- ----------- ------ -------- ----------- --------
topo1-vle leaf-1 leaf-5 10 17 up enabled override topo1
- topology-import imports existing vLEs into a topology and stores the endpoints’ information (switch name and port).
Note: After importing an existing vLE connection into a topology, you must delete it before enabling the topology, because the topology setup process needs to recreate the vLE connection from scratch.
Example of successful imports:
CLI (network-admin@leaf-1) > vle-show format name,node-1,node-2,node-1-port,node-2-
port,status,tracking,ports-state,topology
name node-1 node-2 node-1-port node-2-port status tracking ports-state topology
------------ ------ ------ ----------- ----------- ------ -------- ----------- --------
DUT2-to-DUT3 leaf2 leaf3 11 19 up enabled override
CLI (network-admin@leaf-1) > topology-import name topo1 vle_name DUT2-to-DUT3
CLI (network-admin@leaf-1) > topology-vle-show
name vle-name node1 node2 node-1-port node-2-port vlan-id vxlan
----- ------------ ----- ----- ----------- ----------- ------- ---------
topo1 DUT2-to-DUT3 leaf2 leaf3 11 19 100 100000
Example of import with conflict when the topology is enabled:
CLI (network-admin@leaf-1) > topology-import name topo2 type vle vle_name vle1
CLI (network-admin@leaf-1) > topology-vle-show
name vle-name node1 node2 node-1-port node-2-port vlan vxlan
----- -------- ------ ------ ----------- ----------- ---- --------
topo1 vle4 leaf-0 leaf-1 13 16 2752 12500003
topo1 vle2 leaf-0 leaf-1 12 15 2753 12500004
topo2 vle1 leaf-0 leaf-0 13 14 2754 12500005
CLI (network-admin@leaf-1) > topology-modify name topo2 enable
topology-modify: vle conflict, please delete vle vle1 or modify node-1-port of topology vle vle1
- topology-vle-add specifies the vLE name to be added, the node and the node ports between which the vLE needs to be set up. VLAN ID and VXLAN ID are optional. IDs are taken from the auto VXLAN range when not specified.
Example:
CLI (network-admin@leaf-1)> tunnel-create name VLE_L1_to_L5 scope local local-ip 10.21.1.1 remote-ip 10.21.7.1 vrouter-name vr1
CLI (network-admin@leaf-5)> tunnel-create name VLE_L5_to_L1 scope local local-ip 10.21.7.1 remote-ip 10.21.1.1 vrouter-name vr2
CLI (network-admin@leaf-1) > tunnel-show local-ip 10.21.1.1 format switch,scope,name,type,vrouter-name,local-ip,remote-ip
switch scope name type vrouter-name local-ip remote-ip
------ ----- ------------ ----- ------------ --------- ---------
leaf-1 local VLE_L1_to_L5 vxlan Leaf-1 10.21.1.1 10.21.7.1
CLI (network-admin@leaf-5) > tunnel-show local-ip 10.21.7.1 format switch,scope,name,type,vrouter-name,local-ip,remote-ip
switch scope name type vrouter-name local-ip remote-ip
------ ----- ------------ ----- ------------ --------- ---------
leaf-5 local VLE_L5_to_L1 vxlan Leaf-5 10.21.7.1 10.21.1.1
CLI (network-admin@leaf-1) > topology-vle-add name topo1 vle-name DUT1-to-DUT5 node-1 leaf-1 node-1-port 10 node-2 leaf-5 node-2-port 17 [vlan 3001] [vxlan 300100]
- topology-vle-remove removes a VLE from a topology. To succeed, it requires the topology to be disabled first.
Example of successful removal:
CLI (network-admin@leaf-1) > topology-vle-show
name vle-name node1 node2 node-1-port node-2-port vlan vxlan
----- -------- ------ ------ ----------- ----------- ---- --------
topo1 vle1 leaf-0 leaf-1 12 14 2750 12500000
topo1 vle4 leaf-0 leaf-1 13 16 2752 12500003
CLI (network-admin@leaf-1) > topology-vle-remove name topo1 vle-name vle1
CLI (network-admin@leaf-1) > topology-vle-show
name vle-name node1 node2 node-1-port node-2-port vlan vxlan
----- -------- ----- ------ ----------- ----------- ---- --------
topo1 vle4 leaf-0 leaf-1 13 16 2752 12500003
Example of unsuccessful removal:
CLI (network-admin@leaf-1) > topology-show
name enable
----- ------
topo1 yes
CLI (network-admin@leaf-1) > topology-vle-remove name topo1 vle-name vle2 topology-vle-remove: topology topo1 is enabled, please disable it before removing a vle connection
- topology-vle-show displays the list of vLEs that have been added, the corresponding node names and ports, as well as the VLAN IDs and VXLAN IDs.
Example:
CLI (network-admin@leaf-1) > topology-vle-show
name vle-name node1 node2 node-1-port node-2-port vlan vxlan
----- ------------ ----- ----- ----------- ----------- ---- ------
topo1 DUT1-to-DUT5 leaf1 leaf5 10 17 3001 300100
- topology-vle-modify modifies a vLE’s parameters.
Example of node port modification:
CLI (network-admin@leaf-1) > topology-vle-show
name vle-name node1 node2 node-1-port node-2-port vlan vxlan
----- -------- ------ ------ ----------- ----------- ---- --------
topo1 vle4 leaf-0 leaf-1 13 16 2752 12500003
topo1 vle2 leaf-0 leaf-1 12 15 2753 12500004
CLI (network-admin@leaf-1) > topology-vle-modify name topo1 vle-name vle2 node-2-port 17
CLI (network-admin@leaf-1) > topology-vle-show
name vle-name node1 node2 node-1-port node-2-port vlan vxlan
----- -------- ------ ------ ----------- ----------- ---- --------
topo1 vle4 leaf-0 leaf-1 13 17 2752 12500003
topo1 vle2 leaf-0 leaf-1 12 15 2753 12500004
Example of VLAN modification:
CLI (network-admin@leaf-1) > topology-vle-show
name vle-name node1 node2 node-1-port node-2-port vlan vxlan
----- -------- ------ ------ ----------- ----------- ---- --------
topo1 vle4 leaf-0 leaf-1 13 16 2752 12500003
topo1 vle2 leaf-0 leaf-1 12 15 2753 12500004
CLI (network-admin@leaf-1) > topology-vle-modify name topo1 vle-name vle2 vlan 1234
CLI (network-admin@leaf-1) > topology-vle-show
name vle-name node1 node2 node-1-port node-2-port vlan vxlan
----- -------- ------ ------ ----------- ----------- ---- --------
topo1 vle4 leaf-0 leaf-1 13 17 2752 12500003
topo1 vle2 leaf-0 leaf-1 12 15 1234 12500004
The feature’s dry run logic can catch conflicts when they occur and notify the user, as shown in the examples below:
CLI (network-admin@leaf-1) > topology-modify name topo2 enable
topology-modify: vle conflict, please disable topology topo1 or modify node-1-port of topology vle vle1
In this case, when topo2 is applied, it conflicts with the vLE of another topology.
CLI (network-admin@leaf-1) > topology-modify name topo2 enable
topology-modify: vle conflict, please delete vle vle1 or modify node-1-port of topology vle vle1
In the case above there is a conflict with an existing vLE, which needs to be deleted first.
CLI (network-admin@leaf-1) > tunnel-delete name VLE_L5_to_L1
CLI (network-admin@leaf-1) > topology-modify name topo1 enable
topology-modify: tunnels do not exist between the switches leaf-0 and leaf-1 for vle vle1 creation or tunnels between these switches have vxlan of standard mode.Please create new tunnels as per vle config docs
In the case above the required static VXLAN tunnels don’t exist.
CLI (network-admin@leaf3*) > vlan-show ports 12 format id,vxlan,autovxlan, scope,description,active,ports
id vxlan auto-vxlan scope description active ports
--- -------- ---------- ------ ----------- ------ --------------------------
100 12500000 yes fabric vlan-100 yes 0-12,14-48,50-52,54-72,397
CLI (network-admin@leaf3) > topology-vle-show
name vle-name node1 node2 node-1-port node-2-port vlan vxlan
----- -------- ----- ----- ----------- ----------- ---- -----
topo1 vle1 leaf3 leaf4 12 13 2625 12345
CLI (network-admin@leaf3*) > topology-modify name topo1 enable
topology-modify: node_1_port 12 of topology vle vle1 has vlan 100 already created, please delete it or use a different port using topology-vle-modify
In the case above a VLAN ID is already present on a port when the vLE creation takes place.
CLI (network-admin@leaf3*) > vlan-show vxlan 12345
id type vxlan auto-vxlan vxlan-hybrid-mode replicators scope description active
---- ------ ----- ---------- ----------------- ----------- ----- ----------- ------
1234 public 12345 no standard none local vlan-1234 yes
CLI (network-admin@leaf3*) > topology-modify name topo1 enable
topology-modify: vxlan 12345 is in use, please use a different vxlan for vle vle1 using topology-vle-modify
In the case above a VXLAN ID to be added to a tunnel is already active.
CLI (network-admin@leaf3*) > vpg-show
scope name type ports
------ ---- ----- -----
fabric vpg2 source 12
CLI (network-admin@leaf3*) > topology-vle-show
name vle-name node1 node2 node-1-port node-2-port vlan vxlan
----- -------- ----- ----- ----------- ----------- ---- -----
topo1 vle1 leaf3 leaf4 12 13 2625 12345
CLI (network-admin@leaf3*) > topology-modify name topo1 enable
topology-modify: vle vle1 of topology has port conflict. Port 12 is already configured for vpg
In this case, a port that is needed for vLE creation is already in use by a vPG.