Unified Networking Lab for Nokia (Alcatel-Lucent), Juniper, Cisco and many more…

UNL_featured

A long time ago in a galaxy far, far away engineers hunted eBay for used routers to meet their demand for home labbing. Rack-rental services were kings and an ability to run cisco ios under dynamips felt like pure magic. Those dark days are gone… Thanks to massive eruption of virtualization technologies.

In this topic I will introduce you to Unified Networking Lab (UNL) – web-based tool which is capable to run so many images in a so convenient way that you might read this whole topic with your jaw opened.

Want to know how to run Cisco, Juniper, Alcatel-Lucent, F5, Vyatta, Mikrotik and dozens of other networking OSes? You came to the right place.

This post is the most popular one at this blog, it outstands other topics by far and the reason is simple — UNL is a solid tool that helped many of us to reach our goals and it was completely free.

At this moment UNL team is looking for our help in their pursuit of making a better product — EVE-NG — which is an evolution of UNL and has a lot of planned improvements and new features. For a complete list of features and a demo of EVE refer to their campaign on Indiegogo.

We are community, we help each other.

What is UNL?

Unified Networking Lab (http://www.unetlab.com/) is a project dedicated to provide a simple way to run every popular networking-related instances in a versatile, intuitive web-based interface. Simply put, UNL is a modern personal lab environment which is capable to run almost every virtual image out there and it has all the chances to become a must-have tool for every engineer.

In general Unetlab is a server-edition Ubuntu, tailored to run dynamips, IOL (IOS in Linux) and Qemu images. All of these building blocks were finely tuned and merged into a single virtual appliance so you are free of necessity to build the environment yourself.

A picture is worth 1000 words so I would refer you to this official introduction video which is a bit outdated and shows an early version of UNL but still worth watching

If you are prefer reading then I outline some key features of UNL:

  • Ease of install.UNL is easy to install since it comes in all sort of flavors and pre-built for you byunetlab team:
    • OVF template for immediate deployment on ESXi, VMWare player or VMware Workstation;
    • install script for zero-touch deployment on your bare metal server
  • Ease of maintenance. Since UNL is just an Ubuntu instance with pre-installed tools to run all the images shared among your team it is easy to keep it updated: just update the main package called, surprise, unetlab , and you are good to go!
  • Web-based. UNL has client-free (web-based) interface, so no more painful client updates and provisioning on different machines.
  • Multi-user mode. Team members can share the same unetlab installation by creating folders from a web UI and keeping their projects separate. So every one will work with the same unetlab server and still will not interfere with others.
  • Officially supported images. Unetlab already did a great job by making the templates for dozens of vendor’s virtual appliances, so you can be sure that if you see appliance in that list – you will run it without problems.
  • Portability. You can export UNL project into a zip file and import it on another UNL instance and it will work. Thats why migrating from one server to another is no longer an issue, just do export/import and keep going.
  • Wireshark integration. Native Wireshark live-capture integration is a top-notch feature.

Don’t dare you tell me this didn’t catch your imagination!

Installing and setting up Unetlab

As I said Unetlab comes in an ova archive which is available for free download. And when it comes to what to do with this ova file you are presented with several options, which are well described in the Installation section of the project’s documentation page.

Installation options:

  1. Dedicated (aka baremetal) server. Of course it is better to run Unetlab natively (on a dedicated or baremetal server), this option gives you the best performance and bug-free experience.
  2. If you have no free server at your hands then opt-out for ESXi installation. You will utilize server’s cores and memory yet you have to deal with bugs and limitations of nested virtualization. Yep, running real-time OSes under Qemu (wich is virtualization layer 1) under ESXi (that is virtualization layer 2) could be not so sleek and sexy as baremetal one.
  3. If all you have is a desktop/laptop than you still can run Unetlab by means of VMWare Workstation, VMWare Player or VMWare Fusion. But if you have less than 8GB of free RAM available  then I have bad news – you wont be able to run complex topologies with 4+ routers (like vMX, XRv, 7750 SR)

Despite that installation instructions are very thorough I would like to mention some difficulties I faced.

Proxy configuration

UNL itself does not need internet connection in any way, but you eventually will have to update it. If you have an internet proxy along your way to the internet then you should tell Unetlab how to use it. Moreover, the first time you start your server with Unetlab installed you meet configuration wizard. This wiz will ask you about your proxy address and configure host machine with the necessary linux magic.

But it didn’t work for me, when I tried to apt-get update I got apt.conf.d/95proxy:4: Extra junk at end of file  error. If you face this thing yourself you know what to do:

APT repo configuration

I mentioned that all you have to do to update this massive lab environment is to issue

Yet there is one thing you should keep in mind. There are two repos for Unetlab.

  1. deb http://public.routereflector.com/apt trusty rrlabs is outdated
  2. deb http://www.unetlab.com/apt trusty rrlabs is current repo

When I installed Unetlab on baremetal server I couldn’t get current repo (second one) provisioned to my system. To fix that I had to manually configure this repo:

Then check what version are you running and what version is the freshest one:

Adding users

Unetlab comes with a precreated user admin:unl . This is enough for a single-mode, but if you dreamed of using the same login:pwd for multiple users – it wont work. Every user should have its own account to things work properly. Starting with UNetLab version: 0.9.0-88 you can add users via GUI!.

I leave here an old manual version on how to add new users in case it will help you to modify smth. You have to make changes to Unetlab’s sqlite database located here:  /opt/unetlab/data/database.sdb . You can edit this database with sql editor of your choice or use this shell script:

Wireshark integration

Examining dumps in the quite and lonely months of Autumn what could be better, huh?  To let this happen you should do some magic.

For windows:

  1. Download unetlab package for windows from your unetlab installation by navigating with browser to  http://<unetlab_ip>/files/windows.zip .
  2. Unarhive Unetlab folder and move it to your C:/Program Files/  folder
  3. Edit file  wireshark_wrapper.bat by providing username and password for the root. This root user is the root of your server and not the default UNL user you use to enter the GUI.

Mac users should refer to this post to make Wireshark work.

Alcatel-Lucent Service Routers in UNL

Finally, the fun part. I hope you have successfully installed Unetlab and ready to boot some routers. I will cover here the steps one should take to boot Alcatel-Lucent virtual Service Router (vSR, vRR).

Adding the Alcatel-Lucent’s 7750 SR to the UNL

At first you should upload your *.qcow2  image of virtual Alcatel SR OS to unetlab server. UNL uses the predefined folders to keep all the images and you must place and name the images in a strong adherence to guides posted on official site.

Take a look at the place Unetlab wants you to keep all your 7750 SR images (from the official Alcatel-Lucent page on Unetlab):

What is crucial here is the naming of the folder  timos-12.0.R6 and the name of the image itself –  hda.qcow2 . The trick here is that you can create a subfolder under qemu  folder with a name following there rules:  timos-<anything_you_want> . You can change the part after  timos- to reflect another version of TiMOS, but must keep the starting phrase.

Under the subfolder  timos-12.0.R6/ must be an image with a one and only name  hda.qcow2 . You can not rename it!

Creating lab file and adding routers

Once you uploaded ALU image to the server you can navigate to  http://<unetlab_ip> log in with your credentials (either default admin/unl, or earlier added personal login:pwd in a multi-user setup) and add the routers:

In this short video I showed you how to add Alcatel-Lucent routers, link them via bridge Network element and how to actually run them.

It is important to outline perfomance limitations for ESXi environment: if your UNL is running under VMWare you could experience some bugs related to nested virtualization. If your router constantly reboots upon start up, try to set 1 CPU in a node configuration window. And remember, you will gain a huge perfomance boost once you run Alcatel-Lucent routers on dedicated server.

I will write series of posts on how to:

Juniper vMX

Navigate to this post to read about vMX integration.

UNL or GNS3?

Now that you have read about UNL you might be wondering what tool to choose: UNL or GNS3? Both projects are gems of the modern age, they keep innovate and make our lives easier day by day. And of course both of these tools are worth noticing. As to the differences between these two, UNL claims plenty of them:

UnetLab GNS3
User interface is web based Users must install a client on the PC
No need to install client except WireShark, PuTTY and VNC Installation for each OS
No OS dependency – works on all of them Each OS has its own issues and bugs
Everything (but vendor images) is within a single VM Need to be installed on the PC
No limitation on RAM under QEMU Under Windows, QEMU supports up to 2GB of RAM
No limitation on networks under QEMU QEMU limits network to 16 maximum
Multi user from CLI (UI will be ready soon) Single user
Everything runs inside a single VM IOU/IOL requires another VM
Users can add pitures with active links N/A
Self-funding Crowfunding

I wont lie if I tell you that a week ago I had no clue about UNL existence and now we have deployed this tool on bare metal server and currently testing it heavily. This brings me to the conclusion that at this moment UNL seems more user-friendly and feature rich. Though I will keep watching for GNS3 development as well. My general advice would be to start off with UNL and if something goes wrong – to try GNS3.

Roman Dodin

Network engineer at Nokia
Eagerness to learn multiplied by passion to share.
You can reach me at LinkedIn

You Might Also Like

  • Praveen Rai

    Hi Mate how to do multiuser through CLI can you please do let me method

    • http://hellt.ru/ Roman Dodin

      There is a section in this post describing the contents of the file unl_user_add.sh. You should create this file, edit it with a desired username and password and run it.

  • Lukas

    Hi Roman,

    I start with two nodes, 7750. I set 2 CPU, and 2048 MB on unetlab. My PC has stopped.

    My PC is rather too slow, I use win 10 has only 4GB, with processor is i3 3,5GHz.
    Is it too low to run smoothly? What machine do have? or suggest?

  • franck

    Hi , i am stuck with the step to install putty or secure CRT , I watch your youtube vide (5 how to telnet) but the process is not clear for me and for 4 days I am still stuck on the issue. Please help

  • dnt3z

    Hi There , thanks to your blog and UNL , i’m able to perform F5 lab for testing purposes and also F5 exam preparation.

    • 443News

      Did you ever get this working? I am having troubles connecting to the F5 management interface, I can ping it from a VPCS node, but not from any other node (linux node or a router). But need management access for the Web GUI!

      • dnt3z

        hi there , you may want to look at the Unified Networking Lab on youtube. There are steps which i’ve followed. Have you setup the telnet and VNC session ?

        Search the below youtube video

        #UNL HowTo – ESXi external VMs clouds and Internet

        • 443News

          I appear to have it working now. I was connecting a linux node inside UNL to the management interface, VNC to the linux node and trying to get to the web gui that way, which wasn’t working for me. Instead I connected management to a pnet interface and now the web gui is accessible from my PC’s browser. So all is well. Many thanks for your reply :)