Keywords

1 Introduction

Nowadays, our society access to Internet through the use of World Wide Web protocol, emails, programs that allow information sharing, etc., without knowing how these applications and protocols actually interact each other. However, the study of data networks is important for students to know how network services are able to transmit and interpret messages sent and received through the network.

Configure and test the proper operation of the most common services used on the Internet is essential for every student of Information and Communication Technologies (ICT). Being able to do tests in a safe environment, and the capability to return to an initial and stable configuration, is a goal of every course dedicated to network services.

Allowing the applications to run on a virtual network just like a physical network is an achievement of network virtualization. Additionally, performing different sets of configuration tests and command execution or applications, allowing to save the current state and recover it after a while is one of the advantages of using virtualized environments.

In this paper is proposed the creation of a Portable Network Laboratory, an important tool for the development of practices in the “Services in Network Operating System” course and all other matters of the Computer Networks University Technician (TUR) of the National University of San Luis that require its use, helping teachers and students in the teaching-learning process. PNL is the result of the authors of this document’s final work.

The rest of this document is organized in the following way: the next section describes the theoretical concepts involved in the development of the prototype. Section 3 specifies basic aspects of the proposed tool design, describing the context where it will be used and the issues addressed. Section 4 shows trials and experimental tests. After that, is explained the criteria used in the selection of the prototype technology adopted. Finally, conclusions and future work are detailed.

2 Background

This section introduces different concepts used in the development of our work, highlighting the virtualization, types and implementations. Then, different technologies are described.

2.1 Virtualization

When a computer is used, the operating system (OS) is installed and executed directly over the hardware and it takes advantage of its potential in a complete way. However, there are some kind of program called virtualization software or virtual machine that emulates certain hardware, taking advantage of the real resources of the computer. On top of these softwares is possible to install an OS as it was on a real computer, calling it guest OS. The guest OS works, broadly speaking, like a main OS, so all his functions and characteristics are available, turning it into a perfect tool for making tests.

Virtualization refers to the process of physical devices replacement for virtual ones, availables by using a software. Servers, workstations, networks, and applications can be virtualized. In order to do that, the virtualization software manages the physical resources of that machine: memory, CPU, storage, and network bandwidth, among the most relevant aspect.

With the decrease of the amount of physical equipment, the virtualization brings benefits like reduction in maintenance costs and energy consumption. This originates a consolidation of the serves, optimizing the use of the physical space.

2.2 Virtualization Types

In Virtualization, there are several ways to achieve the same result through different levels of abstraction, being the most used [2, 3]:

  • Paravirtualization: this mechanism adds a special set of instructions (called hypercalls), replacing the instructions of the set of instructions referred to the architecture of the real machine. In the ×86 architecture, for example, the hypervisor is executed just above the physical hardware (Ring 0) so the guests OS run at higher levels. The core of the guests OS needs to be modified in order to use the hypercalls. On the other hand, the advantage is a virtualization low overload.

  • OS level: this technique virtualizes the physical server at the OS level. Here, the host OS is a modified kernel that allows the running of multiple isolated containers, also known as Virtual Private Servers (VPS) or virtualized servers. Each container is an instance that shares the kernel of the host OS. It has a low overload, and its implementations are widely used. The main inconvenient is that it does not allow to virtualize different OS types others than host OS.

  • Full Virtualization: this technique is used for the emulation of a processor architecture over other architecture. It allows to run unmodified guests OS, emulating each instruction of the first one through the code translation on the second. The advantage of the full emulation of the processor is its portability multi-platform and OS. The disadvantage is the overload caused by the emulation on software of the complete set of instructions.

  • Hardware Assisted: this type of virtualization implements a new Ring (Ring −1) with a higher privilege than the four Rings normal processor architecture. The CPU extensions for the virtualization support allow to run the guests OS without any modification, so they work in Ring 0, while the hypervisor runs in Ring −1. This allows to support the virtualization without using the full virtualization or paravirtualization. The advantage of this technique is the reduction of the overload caused by the software emulation.

Each of the types of virtualization named can be implemented using various techniques such as those listed below.

2.3 Virtualization Implementations

In order to implement virtualization environments there are different technologies. In this subsection a survey of some existing technologies is made:

  • KVM (Kernel based Virtual Machine) [4]. It’s a free software tool which allows the assisted virtualization by hardware, for Intel and AMD platforms. It’s included by default from the kernel 2.6.20 of Linux, allowing fast implementations. Is supported by the community and has a huge amount of administration tools that can be used together.

  • Xen [5]. Is a hypervisor for virtualization developed with free software. The virtualization is implemented with paravirtualization or assisted hardware. It has a spread support in the developer’s community and a mature implementation, for over 10 years.

  • LXC (Linux Container) [6]. Is an interface in user space for OS Level virtualization, and it is implemented with a powerful API (Application Program Interface) and simple tools, allowing the Linux users to create and manage containers in an easy way. The development of this interface was made using free software and the support is actually included in the majority of Linux distributions. Its development started in 2008 year.

  • Docker [7]. Is a tool of free software that implement OS level virtualization, allowing to package environments and applications that later can be deployed over other OS with this technology. Docker accesses to the virtualization of Linux kernel by the libcontainer library, or indirectly through LXC. This project began in 2013.

  • Proxmox [9]. Is an open code platform that does not virtualize by itself. It uses the KVM hypervisor to support hardware assisted virtualization and LXC to support OS level virtualization. It has a very complete administration web site, allowing to make all administration from a web browser. It is based on Debian distribution, available since 2009.

  • VirtualBox [10]. Is a virtualization software that uses hardware assistance and full virtualization techniques. The software was offered under a privative software licence, but in 2007, after years of development, an Open Source Edition version came up, Virtualbox OSE under the GPL 2 licence.

  • Qemu [11]. Is a tool that allows virtualization and hardware architecture emulation. When it is used to virtualize, Qemu uses a full virtualization technique, when is used as a hardware emulator, it can execute another architecture’s programs. It can be used together with the hypervisor Xen o KMV. The first stable version of the software dates from 2006, so it’s development is mature.

There are other virtualization softwares, but the previous ones only were considered in this paper for free licences reasons.

3 Design of a Portable Network Laboratory: PNL

The main objective of this work is to create an environment where a computer network can be built using a virtualization method. Below is detailed the context in which it will be used, the problems and motivations, the objectives pursued and the technologies used to create the PNL prototype.

3.1 Context

A network service is an application that provides information to different clients that do a request for it. Generally, network services are installed over the OS of one or more servers to share information and resources with client computers.

The present work has as main objective to be used in the “Network Operating Systems Services” course corresponding to the 3rd level of the Computer Networks University Technician (TUR). This course develop high practical skills in the students since it is mainly based on configuration, start-up and test of different services.

The network services used in this course are: Dynamic Host Configuration Protocol (DHCP), Email (SMTP), Domain Name System (DNS), Hypertext Transfer Protocol (HTTP), Proxy, Firewall, Virtual Private Network (VPN) and Server Message Block (SMB).

3.2 Problems and Motivation

Due the practical nature of the subject, in its first cohort during the 2009 year there were several drawbacks to carry out this practices efficiently in the Physical, Mathematics and Natural Sciences Faculty Laboratory of the San Luis National University. Some of these are detailed below:

  • Limitation in amount of networks for carrying out the studies of routing on network layer. It was needed at least two physical networks or an active device capable to create different Vlan, but there was no availability.

  • Limitation in multi-homed network interfaces. The machines that had the role of routers, needed at least two network interfaces, but there was no availability.

  • Limitation in the number of computers, which didn’t allow access the services from many clients simultaneously.

  • Unavailability of free software to install some services in the proprietary OS installed in the computers.

  • Lack of administration permissions in laboratory computer’s OS to install and/or modify the services to be tested.

  • Propagation of services tested to the complete faculty’s network such as DHCP and DNS, delivering fake network address, gateways and resolutions to domain names to the whole campus.

  • Finally, if the students tried to recreate these practices at their homes, they may find the same or greater limitations, because they usually had only one computer available.

With the aim of improving laboratory practices, particularly the teaching-learning process, the motivation for the PNL implementation appears.

3.3 Previous Work: ADIOS Distribution

As a short term alternative to solve some of the problems presented in point 3.2 a survey among various virtualization software and test scenarios was done.

Different simulation alternatives were evaluated, such as Cisco Packet Tracer [12], CLOONIX [13] or virtualization tools such as VNUML (Virtual Network User Mode Linux) [14] of the Madrid Polytechnic University, or ADIOS [15] of the Australian CQ University. Due his functionality and use of scarce hardware resources, ADIOS was selected. It is a distribution based on Fedora Release 8 live CD that uses User Mode Linux (UML) [16] to create virtual machines, has some services needed by the Course already installed, and a very flexible network topology [17], as can be seen in Fig. 1.

Fig. 1.
figure 1

Interconnection detail between ADIOS VM network cards.

As the ADIOS distribution is free and open source, it was possible to make several modifications over the years, adapting it to the matter needs. Some of the changes were:

  • De-assignment of pre-configured network addresses, and active interfaces in the VMs, in order to activate and configure the necessaries in each exercise.

  • Installation of OpenLDAP service; telnet, elinks, mutt and thunderbird client applications.

  • Problem resolution related IPv6 addresses assigned through EUI-64, due to poorly generated mac addresses.

  • Scripts creation to store changed configuration files and a command history executed in each virtual machine.

  • Accessibility modification, such as: font size in terminals and creation of a GUI to start or stop virtual machines.

At now, the distribution (with a size of 650 Mb) is fully functional to perform all the practices of the course, allowing it to be used from a liveCD. Therefore, without installing any software, students can perform the exercises proposed in faculty laboratory, or at their home. The only they need is a computer with a CD reader and at least 512 MB of RAM memory.

However, new problems arose due to the hardware update in the FCFMyN laboratories two years ago. The ADIOS kernel (2.6.24) does not recognize some new multi-core processors, so it does not work with them, getting a kernel panic while is booting.

In addition to this new limitation, the version of the services on which ADIOS was developed have ten years old. Many of them presents new features that are desirable to be teached in this course. An attempt was made to update ADIOS to newer version of the different services used, but due to dependency problems of other packages and the kernel itself, it was impossible to do so.

3.4 Proposed Goals

The specific objectives and scope of PNL are detailed below:

  • Develope a free and open source tool.

  • Deploy a virtualized computer network in an unique physical computer without installing additional software in his OS.

  • Create a working set with at least 6 nodes and different OS on its.

  • Interconnect in different way the created nodes, in order to satisfy different link layer topologies.

  • Store all the configuration changes done to use them in the future.

  • Create a bootable image to boot from a DVD or a USB.

  • Resources optimization in order to be used in hardware limited computers.

3.5 Proposed Technologies for the Development

For the implementation of the different nodes, the use of virtualization technologies is proposed, which allows to abstract and isolate the different nodes from each other. Between they emphasize KVM, XEN, LXC, VirtualBox, Qemu, Uml.

The proposal of link layer connectivity between nodes is the use of virtual interfaces (vnics) and virtual switches, such as Open Vswitch. An alternative method to consider is the use of Vlans.

To deploy application services, the use of GPL software is proposed, which allows great flexibility in order to make different configuration types.

Storage in virtual machines is proposed through the use of Snapshot technologies, applied in each virtual machine (depending on the hypervisor to be used), or through the use of storage technologies such as LVM.

In order to get resources optimization in virtual machines, the use of a CLI (Character Line Interface) interface is proposed, such as the Bourne Shell.

4 Test Bed

In this section the tests that were made in each of the virtualizations are presented. In order to do that, two computers were used with the following hardware:

  • Computer 1: AMD Athlon (tm) 64 × 2 dual core processor with 2 Gb of RAM memory, disk storage SAMSUNG HD080HJ of 8 Gb. Motherboard ASUS M2N-MX SE Plus.

  • Computer 2: AMD Athlon (tm) 64 × 2 dual core processor with 2 Gb of RAM memory, disk storage of 160 Gb. Motherboard ASUS M2N-MX SE Plus.

On the other hand, the OS used were Ubuntu 12.04 LTS, Debian 8 and Debian 9.

4.1 Tasks in Each Virtualization Environment

  • Study of LXC, VNX, CLOONIX and snapshots technologies.

  • Virtualization of LAN and WAN networks, testing the connection between the different hosts.

  • Interconnection between two, four and six virtual hosts.

  • Quantification of the resources consumption of the virtual machines.

  • Installation, verification and testing of the services used in the Course.

  • Access and interaction to a graphical remote desk of a virtual machine using free software VNCserver tool.

Following the network scheme proposed by ADIOS, the Linux support was used for bridging and, according to the docker documentation about it [18, 19], it was possible to successfully set up an environment with the same characteristics.

4.2 Technologies Comparison

After the installation of all the tools needed for a correct operation of each one of the virtualizations techniques, a comparison was made between them. Table 1 shows the comparison made in detail.

Table 1. Comparison between virtualizations techniques.

5 Technology Selection Criteria and Prototype Evaluation

As one of the objectives proposed was that the laboratory can be reproduced by the students in their homes, and due not all the computers have hardware support for virtualization, the techniques that uses hardware assistance were discarded and therefore KVM was not used.

Additionally, it was not necessary to emulate other processor architectures in the proposed laboratory, so the use of QEMU to virtualize did not add any improvement.

Finally, from the comparison made in Table 1, and with the feature “few hardware resources” in mind, was decided to make the prototype using the virtualization tool DOCKER.

The prototype developed is in evaluation process nowadays. Although it has had a preliminary evaluation by the Course Professors, the real and exhaustive evaluation will be carried out when the students will use it next year, in “Services in Network Operating System” Course. Then, it can be analyzed the weaknesses and strengths present in PNL.

However, it was possible to observe the correct construction of various network topologies, the correct communication between different hosts and the correct operation of all the services used in the Course. The prototype is available to be downloaded and used for free [20].

6 Conclusions and Future Work

PNL meet almost all of the proposed goals. The work showed in this paper is considered very important in the development the practices of “Services in Network Operating System” course, being a fundamental tool in the process of teaching-learning. As a free software development, it is permitted to use it by another course, that needs some similar requirements.

On the other hand, we are analyzing the possibility to add Microsoft Windows as guest OS, in order to develop the practice of SMB and test it on different OS.

It is also desired that PNL can be executed from a removable media like a USB, to store the changes of configurations, because this objective not reached yet.