We will remember “F5” easily when we are talking about Application Delivery Controller (ADC) or Load Balancer product. No wonder if F5 always become a Leader in Gartner Magic Quadrant for ADC category. In this session, I want to share my virtual lab experience while I’m still exploring a load balancer from ZEVENET, or most people call it as ZEN Load Balancer. Basically, they have two type of products in their website. Since I just wanna do a simple testing, I choose Community version which is you can get it for free.
OK, these are some requirements that I can prepare for my testing to play around with ZEN Load Balancer:
- ZEN LB image file – you can download the latest version from here.
- Virtual Box Guest OS, with the following specifications:
- OS Type: Linux Debian 32-bit
- Virtual Storage HDD: 8 GB
- RAM: 512 MB
- Network Interface: 1x Host Only interface, 1x NAT interface (optional)
To save my time, unfortunately, I will not explain how to install ZEN Load Balancer in VirtualBox. You can ask Google, because there are some tutorial for the installation. Basically, It’s easy to do once you booted the ISO image, just follow the instructions like you wanna do normal OS installation. Otherwise, you can visit this website as your reference.
L4xNAT Load Balancing Profile
The L4xNAT farm profile allows to create a L4 farm with a very high performance and much more concurrent connections than load balancer cores in layer 7 like TCP, UDP or HTTP farm profiles. That layer 4 performance improvement counteracts the advanced content handling that the layer 7 profiles could manage.
Additionally, L4xNAT farms could bind a range of ports, not only one virtual port as is used with other layer 7 profiles. In order to be able to select a range of virtual ports or a specific virtual port in L4xNAT farms, it’s mandatory to select a protocol type. In other case, the farm will be listening on all ports from the virtual IP ( indicated with a character ‘*’ ). Once a TCP or UDP protocol is selected, it will be available to specify a port, several ports between ‘,’ , ports range between ‘:’ or all ports with ‘*’. A combination of all of them will be valid as well. For the details about this profile, please feel free to visit their explanation here.
OK, I have prepared the steps to configure this basic load balancing system using L4xNAT profile. In my lab environment, I have another two virtual servers (Ubuntu Server 16.04) that are running simple HTTP application using Python.
Step 1 – Configuring Virtual Interface
Since I’m positioning ZEN as Single Arm Load Balancer in my topology, so I configured the Virtual IP interface in the same subnet address with the IP address of real servers.
Step 2 – Creating Farm Profile
From the dashboard menu, choose Manage -> Farms then create your new farm profile and select L4XNAT as the default option.
As shown in the menu above, select your Load Balance Algorithm to decide whether the traffic will be redirected based on Weight or Priority. Then select your Virtual IP interface with specific TCP port that will be accessed by the clients.
Step 3 – Configuring Load Balancing Algorithm
Once you finished configure the Farm profile, now it’s time register your real IP server into the Farm profile that you’ve created before. You need to decide how’s ZEN distribute the traffic based on your selected algorithm before. For example if you choose Weighted Algorithm, then based on my configuration above the traffic will be equally distributed into the real server (normally it’s using Round Robin). It’s because I put equal value for those two servers. Higher weight value will be prioritized.
However, if you choose load balancing algorithm based on Priority then the traffic will be forwarded to server with less priority value which is Server-0 (192.168.56.10).
If you just want to start to learn and play around with basic load balancing technology, I think ZEN Load Balancer Community version is enough for you. However, there’s no much you can do in this version. Even though the Load Balancing feature is working, but I didn’t see any sessions established in my farm graph when you’re trying to access HTTP server from the client side. I don’t know whether it’s consider as a bug or it’s due to limitation of the Community version. Since I’m still exploring another feature in this version, let’s see if we can do more!