hellt / vrnetlab

Make VM-based Network OSes run in Containerlab
https://containerlab.dev
MIT License
129 stars 88 forks source link

Fix vSRX startup configuration, expose SNMP port on vSRX #209

Closed vista- closed 5 months ago

vista- commented 5 months ago

This PR fixes vSRX startup configuration loading for Juniper conf-based configurations, and aligns startup configuration loading with other Juniper kinds.

As a bonus, this method of loading the startup configuration also speeds up the node's boot time due to not having to paste the configuration via a slow serial console, and also not having to issue commits multiple times. This brings down the overall boot time from ~6 minutes to ~4 minutes on the same hardware.

This configuration loading method has been tested with the newest available vSRX 3.0 image (23.2R1.15), as well as the oldest vSRX 2.0 image I could find (17.3R1.10) to ensure compatibility.

As only Juniper conf format startup images can be loaded via mounted config disks, those using set command-based startup configurations should keep using vSRX images built with vrnetlab 0.17.1 or older, or consider converting their startup configurations to the canonical Junos conf format. A tool that might help with conversion is junoser.

hellt commented 5 months ago

thanks a lot @vista- ! Appreciate your help on this.

I changed the base image to debian bookwork, would you be able to give the build another try? Hopefully the pinned qemu versions are still available with bookworm

vista- commented 5 months ago

(reposting with the correct GitHub account...)

Builds and works OK with bookworm!

I removed the pinned package versions and tested with the newest and a quite legacy image, both boot fine and networking works OK with the latest shipped stable qemu.

I also noticed that the apt command was installing a lot of unnecessary packages, this is because qemu-kvm has Xorg as a recommended dep by default (as it does not assume a headless install). Adding --no-install-recommends shrinks the layer from ~850 MB to a mere ~160 MB. A caveat is that qemu-utils also needs to be manually pulled in, as qemu-img comes in that package.

Perhaps this could be leveraged in other vrnetlab kinds as well? 🤔

hellt commented 5 months ago

good idea to adopt the slim dockerfile build for others, the only issue is that the images need to be revalidated, which can happen when someone tries to build a newer version.

Seems like at least this image is good to go, so I am merging this