ExtremeXOS, Arista and Cisco vIOS-Layer2 Virtual GNS3 Lab

ExtremeXOS is a network operating system used in Extreme Networks network switches. Virtualized version of ExtremeXOS - EXOS virtual machine vmdk image can be used to build virtual lab without need to use hardware switches. Although ExtremeXOS virtual machine can be downloaded for free only certain features are known to work. For this reason software should not be used for testing any actual networking setups or performance tests.

The tutorial consist of two parts. The part one explains how to configure Qemu emulator to run ExtremeXOS virtual machine. In part two, ExtremeXOS VM is connected to virtual lab run by GNS3 software. In this lab, features such as VLANs, 802.1q trunks and OSPF routing protocol are tested between multilayer switches from different vendors - Cisco, Arista and Extreme Networks.

Host Software and Hardware Requirements

  • Linux x86-64,
  • Qemu emulator version 2.1.2 (qemu-system-x86_64, qemu-system-i386 ) or later,
  • GNS3 version 1.1 or later,
  • RAM - at least 4 GB,
  • CPU with hardware virtualization support (VT-x or AMD-V)

Virtual Machines Software and Hardware Requirements

  • ExtremeXOS VM 15.3.2, exosvm.vmdk,
    RAM 256 MB ,CPU x86-64
    Qemu additional parameters: -nographic -enable-kvm
  • Vios_l2-ADVENTERPRISEK9-M), Version 15.0, vIOS-L2.vmdk,
    RAM 512MB, CPU x86-64
    Qemu additional parameters: -enable-kvm -nographic
  • Arista 4.14.2F, image vEOS-4.14.2F.vmdk
    RAM 1024 MB, x86-64 CPU
    Qemu additional parameters: -boot d -cdrom Aboot-veos-serial-2.0.8.iso -enable-kvm -nographic
  • Linux Core 3.0.21-tinycore, linux-core-4.7.7.img
    RAM 128 MB, CPU i386
    Qemu additional parameters: -nographic -enable-kvm

To download ExtremeXOS 15.3.2 virtual machine, you must register first. Create your account here and you will get your free registration code. When  you finish registration process, navigate to  download page.

Click on Download Free button and enter the mail address you used during the registration. Login with your username (email address) and password.

1. ExtremeXOS Virtual Machine on GNS3

1. Extract ZIP archive

$ unzip extremexosvm1532.zip
$ cd XOS_VM_Lab
$ unzip EXOS_VM_15_3_2.zip

2. Run XOS Virtual Machine using Qemu

Use Qemu to run virtual machine vmdk image.

$ /usr/local/bin/qemu-system-x86_64 -serial telnet::3366,server,nowait -m 512MB -enable-kvm exosvm.vmdk

Note: If you use Windows OS, omit the parameter -enable-kvm otherwise the virtual machine fails to start.

Once the machine starts, select an option Primary EXOS Image on (hd0,1) using serial console.


Picture 1 - ExtremeXOS Virtual Machine Grub Menu

Connect to virtual machine serial port with the telnet command.

$ telnet localhost 3366

Once the machine boots it sits on the login prompt. Username is admin without password set. After the first successful login you will be asked to answer several configuration questions.


Picture 2 - Boot with the Empty Configuration

3. Connect XIOS Virtual Machine to GNS3

Navigate to Edit-> Preferences-> Qemu VMs -> and create New machine according to settings below. After you finish Qemu VM configuration, you can change parameters clicking on Edit button. For instance, you can change number of  NICs or configure additional Qemu parameters (-nographic, -enable-kvm) etc.


Picture 3 - Qemu Advanced Settings Tab

2. GNS3 Lab Configuration

The lab consist of three multilayer switches from different vendors. Cisco switch is represented by Virtual IOS L2 image, Arista switch is running Arista virtual EOS and extreme switch is running ExtremeXOS. Switches are connected by their ports that are configured as 802.1q trunks. Only tagged frames from VLAN ID 50, 51 and 52  are allowed on particular trunk ports. Clients connected to the switch ports are simulated by Linux Core.


Picture 4 - Lab Topology


Login with username admin. Password is not set.

localhost#conf t

localhost(config)#hostname Arista-I

Arista-I(config)#vlan 52
Arista-I(config-vlan-52)#vlan 20
Arista-I(config-vlan-20)#vlan 51

Password for Access to Privileged User Mode
Arista-I(config)#enable secret arista

Allow SSH Access to CLI
Arista-I(config)#username admin secret arista

Trunk Ports and Access Port
Arista-I(config)#interface ethernet 4
Arista-I(config-if-Et4)#switchport mode trunk
Arista-I(config-if-Et4)#switchport trunk allowed vlan 52

Arista-I(config-if-Et4)#interface ethernet 1
Arista-I(config-if-Et1)#switchport mode trunk
Arista-I(config-if-Et1)#switchport trunk allowed vlan 51

Arista-I(config-if-Et1)#interface ethernet 2
Arista-I(config-if-Et2)#switchport mode access
Arista-I(config-if-Et2)#switchport access vlan 20

VLAN Interfaces
Arista-I(config-if-Et2)#interface vlan 52
Arista-I(config-if-Vl52)#ip address
Arista-I(config-if-Vl52)#no shutdown

Arista-I(config-if-Vl52)#interface vlan 51
Arista-I(config-if-Vl51)#ip address
Arista-I(config-if-Vl51)#no shutdown

Arista-I(config-if-Vl51)#interface vlan 20
Arista-I(config-if-Vl20)#ip address
Arista-I(config-if-Vl20)#no shutdown

IPv4 Routing
Arista-I(config)#ip routing

OSPF Protocol
Arista-I(config)#router ospf 1
Arista-I(config-router-ospf)#network area 0
Arista-I(config-router-ospf)#network area 0
Arista-I(config-router-ospf)#network area 0
Arista-I(config-router-ospf)#passive-interface ethernet 2

Save Configuration
Arista-I(config)#do write mem

Linux Core-II

Login as user tc. Password is not set.

tc@box:~$ sudo su
root@box:~# echo "ip addr add dev eth0" >> /opt/bootlocal.sh
root@box:~#echo "ip route add default via" >> /opt/bootlocal.sh
root@box:~# echo "hostname Core-II" >> /opt/bootlocal.sh

Apply Changes
root@box:~# /opt/bootlocal.sh

Make Configuration Persistent After Boot
root@Core-II:~# /usr/bin/filetool.sh -b


vIOS-L2-01#conf t
vIOS-L2-01(config)#hostname vIOS-L2-I

vIOS-L2-I(config)#vlan 51
vIOS-L2-I(config-vlan)#vlan 30
vIOS-L2-I(config-vlan)#vlan 50

Password for Access to Privileged User Mode
vIOS-L2-I(config)#enable secret cisco

SSH server on Switch
vIOS-L2-I(config)#username admin secret cisco
vIOS-L2-I(config)#ip ssh version 2
vIOS-L2-I(config)#ip domain-name cisco
vIOS-L2-I(config)#crypto key generate rsa

Access to VTY ports
vIOS-L2-I(config)#line vty 0 15
vIOS-L2-I(config-line)#login local

Access to console port
vIOS-L2-I(config)#line console 0
vIOS-L2-I(config-line)#login local

Trunk Ports and Access port
vIOS-L2-I(config)#interface GigabitEthernet 0/1
vIOS-L2-I(config-if)#switchport trunk encapsulation dot1q
vIOS-L2-I(config-if)#switchport mode trunk
vIOS-L2-I(config-if)#switchport trunk allowed vlan 51

vIOS-L2-I(config)#interface gigabitEthernet 0/2
vIOS-L2-I(config-if)#switchport trunk encapsulation dot1q
vIOS-L2-I(config-if)#switchport mode trunk
vIOS-L2-I(config-if)#switchport trunk allowed vlan 50

vIOS-L2-I(config)#interface gigabitEthernet 0/0
vIOS-L2-I(config-if)#switchport mode access
vIOS-L2-I(config-if)#switchport access vlan 30

VLAN Interfaces
vIOS-L2-I(config)#interface vlan 51
vIOS-L2-I(config-if)#ip address
vIOS-L2-I(config-if)#no shutdown

vIOS-L2-I(config)#interface vlan 50
vIOS-L2-I(config-if)#ip address
vIOS-L2-I(config-if)#no shutdown

IOS-L2-I(config-if)#interface vlan 30
vIOS-L2-I(config-if)#ip address

IPv4 Routing
vIOS-L2-I(config-if)#ip routing

OSPF Protocol
vIOS-L2-I(config)#router ospf 1
vIOS-L2-I(config-router)#network area 0
vIOS-L2-I(config-router)#network area 0
vIOS-L2-I(config-router)#network area 0
vIOS-L2-I(config-router)#passive-interface GigabitEthernet 0/0

Save Configuration
vIOS-L2-I(config)#do write


tc@box:~$ sudo su
root@box:~# echo "ip addr add dev eth0" >> /opt/bootlocal.sh
root@box:~# echo "ip route add default via" >> /opt/bootlocal.sh
root@box:~# echo "hostname Core-III" >> /opt/bootlocal.sh

Apply Changes
root@box:~# /opt/bootlocal.sh

Persistent Configuration after Boot
root@Core-III:~# /usr/bin/filetool.sh -b


Login with username admin. Password is not set.

Change password for user admin
Summit-PC.1 # configure account "admin" password

Summit-PC.2 # configure snmp sysName EXOS-I

To configure ssh, we must first download and install the separate Extreme Networks SSH software module (ssh.xmod). It is not shown in this tutorial.

EXOS-I.3 # create vlan data52 tag 52
EXOS-I.4 # create vlan data50 tag 50
EXOS-I.5 # create vlan data10 tag 10

Trunk Ports and Access pPort
EXOS-I.6 # configure vlan data50 add ports 2 tagged
EXOS-I.7 # configure vlan data52 add ports 4 tagged
EXOS-I.8 # configure vlan "Default" delete ports 1
EXOS-I.9 # configure vlan "data10" add ports 1 untagged

VLAN Interfaces
EXOS-I.10 # configure vlan data50 ipaddress
EXOS-I.11 # configure vlan data52 ipaddress
EXOS-I.12 # configure vlan data10 ipaddress

IPv4 Routing
EXOS-I.13 # enable ipforwarding

OSPF Protocol
EXOS-I.2 # configure ospf add vlan data50 area 0
EXOS-I.3 # configure ospf add vlan data52 area 0
EXOS-I.9 # configure ospf add vlan "data10" area 0 passive
EXOS-I.4 # enable ospf

Save configuration
Summit-PC.2 # save


tc@box:~$ sudo su
root@box:~# echo "ip addr add dev eth0" >> /opt/bootlocal.sh
root@box:~# echo "ip route add default via" >> /opt/bootlocal.sh
root@box:~# echo "hostname Core-I" >> /opt/bootlocal.sh

Apply Changes
root@box:~# /opt/bootlocal.sh

Persistent Configuration after Boot
root@Core-I:~# /usr/bin/filetool.sh -b

Used Links



2 thoughts on “ExtremeXOS, Arista and Cisco vIOS-Layer2 Virtual GNS3 Lab

  1. I thought that the Arista vEOS interfaces are 10-gig only? Is that not true? Can it connect to a virtual 1-gig interface at Layer 2?

Leave a comment

Your email address will not be published. Required fields are marked *