Skip to content

Conversation

@sdargoeuves
Copy link

When trying to use the vrnetlab project to build EXOS, it worked fine with the version v32.6.126, but failed with the other two currently available on the Extreme github (v32.7.x and v33.1.1.31).

In this pull request:

  • Update the Dockerfile to use the vrnetlab image
  • update on the launch.py, which worked for me with the 3 current versions from Extreme's github page
  • add a README file

@sdargoeuves sdargoeuves marked this pull request as draft December 22, 2025 02:05
@sdargoeuves
Copy link
Author

oh no... I've faced another issue with the v33.1.1.31, it seems to be inconsistent as it worked fine for a few times whilst testing, but failed just now.
I will investigate further

╰─❯ docker logs clab-ml_2-vos1
2025-12-22 01:15:31,085: vrnetlab         DEBUG Creating overlay disk image: /EXOS-VM_v33.1.1.31-overlay.qcow2
2025-12-22 01:15:31,165: vrnetlab         DEBUG Starting vrnetlab EXOS
2025-12-22 01:15:31,165: vrnetlab         DEBUG VMs: [<__main__.EXOS_vm object at 0x7f3211955130>]
2025-12-22 01:15:31,165: vrnetlab         DEBUG VM not started; starting!
2025-12-22 01:15:31,166: vrnetlab         INFO ----------------START ENVIRONMENT VARIABLES-----------------
2025-12-22 01:15:31,166: vrnetlab         INFO CLAB_INTFS: 2
2025-12-22 01:15:31,166: vrnetlab         INFO CLAB_LABEL_CLAB_NODE_GROUP: unprovisioned
2025-12-22 01:15:31,166: vrnetlab         INFO CLAB_LABEL_CLAB_NODE_KIND: linux
2025-12-22 01:15:31,166: vrnetlab         INFO CLAB_LABEL_CLAB_NODE_LAB_DIR: /home/sa/code/quick-netlab-lab/extreme-lab/clab-ml_2/vos1
2025-12-22 01:15:31,166: vrnetlab         INFO CLAB_LABEL_CLAB_NODE_LONGNAME: clab-ml_2-vos1
2025-12-22 01:15:31,166: vrnetlab         INFO CLAB_LABEL_CLAB_NODE_NAME: vos1
2025-12-22 01:15:31,166: vrnetlab         INFO CLAB_LABEL_CLAB_NODE_TYPE:
2025-12-22 01:15:31,166: vrnetlab         INFO CLAB_LABEL_CLAB_OWNER: sa
2025-12-22 01:15:31,166: vrnetlab         INFO CLAB_LABEL_CLAB_TOPO_FILE: /home/sa/code/quick-netlab-lab/extreme-lab/clab.yml
2025-12-22 01:15:31,166: vrnetlab         INFO CLAB_LABEL_CONTAINERLAB: ml_2
2025-12-22 01:15:31,166: vrnetlab         INFO HOME: /root
2025-12-22 01:15:31,166: vrnetlab         INFO HOSTNAME: vos1
2025-12-22 01:15:31,166: vrnetlab         INFO LC_CTYPE: C.UTF-8
2025-12-22 01:15:31,166: vrnetlab         INFO NO_PROXY: localhost,127.0.0.1,::1,*.local,10.194.57.0/24,10.194.57.11,10.194.57.12,10.194.57.13,10.194.57.14,10.194.57.15,r1,vos1,vos2,vos3,vos4
2025-12-22 01:15:31,166: vrnetlab         INFO PASSWORD: admin@123
2025-12-22 01:15:31,166: vrnetlab         INFO PATH: /.venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2025-12-22 01:15:31,166: vrnetlab         INFO QEMU_MEMORY: 2048
2025-12-22 01:15:31,166: vrnetlab         INFO TERM: xterm
2025-12-22 01:15:31,166: vrnetlab         INFO USERNAME: admin
2025-12-22 01:15:31,166: vrnetlab         INFO VIRTUAL_ENV: /.venv
2025-12-22 01:15:31,166: vrnetlab         INFO no_proxy: localhost,127.0.0.1,::1,*.local,10.194.57.0/24,10.194.57.11,10.194.57.12,10.194.57.13,10.194.57.14,10.194.57.15,r1,vos1,vos2,vos3,vos4
2025-12-22 01:15:31,166: vrnetlab         INFO -----------------END ENVIRONMENT VARIABLES------------------
2025-12-22 01:15:31,166: vrnetlab         INFO Launching EXOS_vm with 1 SMP/VCPU and 2048 M of RAM
2025-12-22 01:15:31,166: vrnetlab         INFO Scrapli: Disabled
2025-12-22 01:15:31,166: vrnetlab         INFO Transparent mgmt interface: Disabled
2025-12-22 01:15:31,166: vrnetlab         DEBUG number of provisioned data plane interfaces is 2
2025-12-22 01:15:31,166: vrnetlab         DEBUG waiting for provisioned interfaces to appear...
2025-12-22 01:15:31,167: vrnetlab         DEBUG highest allocated interface id determined to be: 2...
2025-12-22 01:15:31,167: vrnetlab         DEBUG interfaces provisioned, continuing...
2025-12-22 01:15:31,647: vrnetlab         DEBUG Found MAC address aa:c1:ab:b9:7a:c7 for interface eth1
2025-12-22 01:15:31,647: vrnetlab         INFO Using container interface MAC aa:c1:ab:b9:7a:c7 for VM NIC eth1
2025-12-22 01:15:31,649: vrnetlab         DEBUG Found MAC address aa:c1:ab:60:33:78 for interface eth2
2025-12-22 01:15:31,649: vrnetlab         INFO Using container interface MAC aa:c1:ab:60:33:78 for VM NIC eth2
2025-12-22 01:15:31,649: vrnetlab         DEBUG qemu cmd: qemu-system-x86_64 -enable-kvm -display none -machine pc -chardev socket,id=monitor0,host=::,port=4000,server=on,wait=off -monitor chardev:monitor0 -chardev socket,id=serial0,host=::,port=5000,server=on,wait=off,telnet=on -serial chardev:serial0 -m 2048 -cpu core2duo -smp 1 -drive if=ide,file=/EXOS-VM_v33.1.1.31-overlay.qcow2 -device pci-bridge,chassis_nr=1,id=pci.1 -device rtl8139,netdev=p00,mac=0C:00:8f:c5:4a:00 -netdev user,id=p00,net=10.0.0.0/24,host=10.0.0.2,dns=10.0.0.3,dhcpstart=10.0.0.15,hostfwd=tcp:0.0.0.0:22-10.0.0.15:22,hostfwd=udp:0.0.0.0:161-10.0.0.15:161,hostfwd=tcp:0.0.0.0:80-10.0.0.15:80,hostfwd=tcp:0.0.0.0:443-10.0.0.15:443,hostfwd=tcp:0.0.0.0:830-10.0.0.15:830,hostfwd=tcp:0.0.0.0:6030-10.0.0.15:6030,hostfwd=tcp:0.0.0.0:8080-10.0.0.15:8080,hostfwd=tcp:0.0.0.0:9339-10.0.0.15:9339,hostfwd=tcp:0.0.0.0:32767-10.0.0.15:32767,hostfwd=tcp:0.0.0.0:50051-10.0.0.15:50051,hostfwd=tcp:0.0.0.0:57400-10.0.0.15:57400,tftp=/tftpboot -device rtl8139,netdev=p01,mac=aa:c1:ab:b9:7a:c7,bus=pci.1,addr=0x2 -netdev tap,id=p01,ifname=tap1,script=/etc/tc-tap-ifup,downscript=no -device rtl8139,netdev=p02,mac=aa:c1:ab:60:33:78,bus=pci.1,addr=0x3 -netdev tap,id=p02,ifname=tap2,script=/etc/tc-tap-ifup,downscript=no
2025-12-22 01:20:38,601: vrnetlab         DEBUG writing to serial console: ''
2025-12-22 01:20:38,602: vrnetlab         INFO waiting for 'login:' on serial console
2025-12-22 01:20:38,604: vrnetlab         INFO read from serial console: '



login:'
2025-12-22 01:20:38,604: vrnetlab         DEBUG writing to serial console: 'admin'
2025-12-22 01:20:38,604: vrnetlab         INFO waiting for 'password:' on serial console
2025-12-22 01:20:38,607: vrnetlab         INFO read from serial console: ' admin
password:'
2025-12-22 01:20:38,607: vrnetlab         DEBUG writing to serial console: ''
2025-12-22 01:20:39,976: vrnetlab         DEBUG writing to serial console: 'q'
2025-12-22 01:20:39,976: vrnetlab         INFO waiting for '#' on serial console
2025-12-22 01:20:41,174: vrnetlab         INFO read from serial console: ': quit
Multiple Spanning Tree Protocol (MSTP) is enabled by default to prevent
broadcast storms

Would you like to disable MSTP? [y/N/q]:

The switch offers an enhanced security mode. Would you like to read more,
and have the choice to enable this enhanced security mode? [y/N/q]:

Telnet is enabled by default. Telnet is unencrypted and has been the target of
security exploits in the past.

Would you like to disable Telnet? [y/N/q]:

SNMP access is disabled by default. SNMPv1/v2c uses no encryption, SNMPv3 can be
configured to eliminate this problem.

Would you like to enable SNMPv1/v2c? [y/N/q]:

Would you like to enable SNMPv3? [y/N/q]:

All ports are enabled by default. In some secure applications, it may be more
desirable for the ports to be turned off.

Would you like unconfigured ports to be turned off by default? [y/N/q]:

No failsafe account username and password are in effect.  If you choose to
configure them, please remember them because they cannot be recovered.
Would you like to configure the failsafe username and password now? [y/N/q]:

Do you want to see some basic CLI commands before entering the CLI? [y/N/q]:

Since you have chosen less secure management methods, please remember to
increase the security of your network by taking the following actions:

  * change your admin password

* EXOS-VM.1 #'
2025-12-22 01:20:41,174: vrnetlab         DEBUG writing to serial console: ''
2025-12-22 01:20:41,174: launch           INFO Found config prompt
2025-12-22 01:20:41,174: launch           INFO Running bootstrap_config()
2025-12-22 01:20:41,174: vrnetlab         INFO waiting for '#' on serial console
2025-12-22 01:20:41,176: vrnetlab         INFO read from serial console: '
* EXOS-VM.1 #'
2025-12-22 01:20:41,176: vrnetlab         DEBUG writing to serial console: 'configure snmp sysName vr-exos'
2025-12-22 01:20:41,176: vrnetlab         INFO waiting for '#' on serial console
2025-12-22 01:20:41,374: vrnetlab         INFO read from serial console: ' configure snmp sysName vr-exos
This command cannot be executed during configuration load.
* EXOS-VM.2 #'
2025-12-22 01:20:41,374: vrnetlab         DEBUG writing to serial console: 'unconfigure vlan Mgmt ipaddress'
2025-12-22 01:20:41,374: vrnetlab         INFO waiting for '#' on serial console
2025-12-22 01:20:41,683: vrnetlab         INFO read from serial console: ' unconfigure vlan Mgmt ipaddress
Error: This command cannot be executed during configuration load.
* EXOS-VM.3 #'
2025-12-22 01:20:41,683: vrnetlab         DEBUG writing to serial console: 'configure vlan Mgmt ipaddress 10.0.0.15/24'
2025-12-22 01:20:41,683: vrnetlab         INFO waiting for '#' on serial console
2025-12-22 01:20:42,172: vrnetlab         INFO read from serial console: ' configure vlan Mgmt ipaddress 10.0.0.15/24
Error: This command cannot be executed during configuration load.
* EXOS-VM.4 #'
2025-12-22 01:20:42,173: vrnetlab         DEBUG writing to serial console: 'configure iproute add default 10.0.0.2 vr VR-Mgmt'
2025-12-22 01:20:42,173: vrnetlab         INFO waiting for '#' on serial console
2025-12-22 01:20:42,580: vrnetlab         INFO read from serial console: ' configure iproute add default 10.0.0.2 vr VR-Mgmt
This command cannot be executed during configuration load.
* EXOS-VM.5 #'
2025-12-22 01:20:42,580: vrnetlab         DEBUG writing to serial console: 'configure account admin password'
2025-12-22 01:20:42,580: vrnetlab         INFO waiting for 'Current user's password:' on serial console
2025-12-22 01:20:42,782: vrnetlab         INFO read from serial console: ' configure account admin password
Current user's password:'
2025-12-22 01:20:42,782: vrnetlab         DEBUG writing to serial console: ''
2025-12-22 01:20:42,782: vrnetlab         INFO waiting for 'New password:' on serial console
2025-12-22 01:20:42,888: vrnetlab         INFO read from serial console: '
New password:'
2025-12-22 01:20:42,888: vrnetlab         DEBUG writing to serial console: 'admin@123'
2025-12-22 01:20:42,888: vrnetlab         INFO waiting for 'Reenter password:' on serial console
2025-12-22 01:20:42,894: vrnetlab         INFO read from serial console: '
Reenter password:'
2025-12-22 01:20:42,894: vrnetlab         DEBUG writing to serial console: 'admin@123'
2025-12-22 01:20:42,894: vrnetlab         INFO waiting for '#' on serial console
2025-12-22 01:20:42,975: vrnetlab         INFO read from serial console: '
Error:  This command cannot be executed during configuration load.
* EXOS-VM.6 #'
2025-12-22 01:20:42,975: vrnetlab         DEBUG writing to serial console: 'disable cli prompting'
2025-12-22 01:20:42,975: vrnetlab         INFO waiting for '#' on serial console
2025-12-22 01:20:43,173: vrnetlab         INFO read from serial console: ' disable cli prompting
* EXOS-VM.7 #'
2025-12-22 01:20:43,174: vrnetlab         DEBUG writing to serial console: 'configure ssh2 key'
2025-12-22 01:20:43,174: vrnetlab         INFO waiting for '#' on serial console
2025-12-22 01:20:43,373: vrnetlab         INFO read from serial console: ' configure ssh2 key
Error:can't read "xmlData(reply.message.exsshd.key_valid)": no such element in array

* EXOS-VM.7 #'
2025-12-22 01:20:43,373: vrnetlab         DEBUG writing to serial console: 'enable ssh2'
2025-12-22 01:20:43,373: vrnetlab         INFO waiting for '#' on serial console
2025-12-22 01:20:43,575: vrnetlab         INFO read from serial console: ' enable ssh2
Error:can't read "xmlData(reply.message.exsshd.key_valid)": no such element in array

* EXOS-VM.7 #'
2025-12-22 01:20:43,575: vrnetlab         DEBUG writing to serial console: 'save'
2025-12-22 01:20:43,575: vrnetlab         INFO waiting for '#' on serial console
2025-12-22 01:20:43,772: vrnetlab         INFO read from serial console: ' save
No default configuration database has been selected to boot up the system.
Save configuration will set the new configuration as the default database.

Error: This command cannot be executed during configuration load.
* EXOS-VM.7 #'
2025-12-22 01:20:43,772: vrnetlab         DEBUG writing to serial console: 'enable cli prompting'
2025-12-22 01:20:45,774: launch           INFO Startup complete in: 0:05:14.607557

@sdargoeuves sdargoeuves marked this pull request as ready for review December 22, 2025 07:52
@sdargoeuves
Copy link
Author

Testing - Extreme complete startup time

EXOS

I brought up the same Containerlab topology repeatedly with a small set of EXOS devices, using the images currently available on the Extreme Networks GitHub page.

I ran the lab 5 times and recorded the time from container start until each device was fully ready.

The lab booted reliably in all runs (no failures), but v33.1.1.31 shows noticeably higher variance than the other versions.

Times are shown as m:ss.mmm.

Variance is shown as Std dev (standard deviation, σ) and CV (σ / mean).

  • Std dev (σ): typical spread around the average (same unit as the timings). Lower σ = more consistent.
  • CV: σ ÷ mean, shown as a percentage. Lower CV = more consistent relative to the average (handy when averages differ).

Version summary

Average values below are per device (across all runs × devices for that version).

Version Runs Devices Avg per device Std dev CV Fastest avg device Slowest avg device Best single measurement Worst single measurement
v33.1.1.31 5 5 4:07.438 3:34.472 86.7% vos5 (1:53.612) vos2 (6:28.799) vos5 (0:54.426) vos4 (14:32.952)
32.7.2.19 5 2 1:02.957 0:03.970 6.3% vos6 (1:01.350) vos7 (1:04.565) vos6 (0:56.371) vos7 (1:08.119)
v32.6.3.126 5 2 0:50.373 0:01.846 3.7% vos9 (0:49.777) vos8 (0:50.968) vos9 (0:47.573) vos8 (0:53.162)

v33.1.1.31

Device Avg Std dev CV Min Max
vos1 3:49.237 3:43.421 97.5% 0:59.707 10:18.328
vos2 6:28.799 1:44.727 26.9% 5:32.537 9:58.168
vos3 2:52.907 2:11.173 75.9% 0:58.400 5:40.173
vos4 5:32.633 4:57.784 89.5% 0:54.978 14:32.952
vos5 1:53.612 1:50.394 97.2% 0:54.426 5:34.239
Raw measurements
clab-ml_2-vos1: 0:10:18.328256
clab-ml_2-vos2: 0:05:36.674420
clab-ml_2-vos3: 0:00:58.399525
clab-ml_2-vos4: 0:05:33.227142
clab-ml_2-vos5: 0:00:54.425622

clab-ml_2-vos1: 0:05:44.691435
clab-ml_2-vos2: 0:05:41.639132
clab-ml_2-vos3: 0:01:17.761501
clab-ml_2-vos4: 0:01:00.137429
clab-ml_2-vos5: 0:00:54.986047

clab-ml_2-vos1: 0:00:59.926192
clab-ml_2-vos2: 0:05:32.536999
clab-ml_2-vos3: 0:05:26.369882
clab-ml_2-vos4: 0:00:54.977836
clab-ml_2-vos5: 0:00:58.147621

clab-ml_2-vos1: 0:01:03.534059
clab-ml_2-vos2: 0:05:34.973578
clab-ml_2-vos3: 0:01:01.829041
clab-ml_2-vos4: 0:05:41.870169
clab-ml_2-vos5: 0:05:34.238827

clab-ml_2-vos1: 0:00:59.707487
clab-ml_2-vos2: 0:09:58.168495
clab-ml_2-vos3: 0:05:40.173006
clab-ml_2-vos4: 0:14:32.952348
clab-ml_2-vos5: 0:01:06.261651

32.7.2.19

Device Avg Std dev CV Min Max
vos6 1:01.350 0:03.125 5.1% 0:56.371 1:05.797
vos7 1:04.565 0:04.073 6.3% 0:58.817 1:08.119
Raw measurements
clab-ml_2-vos6: 0:00:56.370790
clab-ml_2-vos7: 0:01:07.598649

clab-ml_2-vos6: 0:01:02.274488
clab-ml_2-vos7: 0:01:07.866764

clab-ml_2-vos6: 0:01:02.440598
clab-ml_2-vos7: 0:01:00.421939

clab-ml_2-vos6: 0:00:59.865288
clab-ml_2-vos7: 0:01:08.118745

clab-ml_2-vos6: 0:01:05.796704
clab-ml_2-vos7: 0:00:58.817058

v32.6.3.126

Device Avg Std dev CV Min Max
vos8 0:50.968 0:01.788 3.5% 0:47.800 0:53.162
vos9 0:49.777 0:01.706 3.4% 0:47.573 0:52.597
Raw measurements
clab-ml_2-vos8: 0:00:51.687234
clab-ml_2-vos9: 0:00:48.894086

clab-ml_2-vos8: 0:00:50.555641
clab-ml_2-vos9: 0:00:49.229465

clab-ml_2-vos8: 0:00:53.162293
clab-ml_2-vos9: 0:00:52.596502

clab-ml_2-vos8: 0:00:51.636471
clab-ml_2-vos9: 0:00:47.572937

clab-ml_2-vos8: 0:00:47.799605
clab-ml_2-vos9: 0:00:50.591178

VOSS

...not yet implemented...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant