Getting older, not necessarily wiser!
In a previous post I talked about setting up a virtual computer network that I could run a variety of tests with, as I had already disassembled and packed my actual computers and network components. For this post I will go a little deeper into my thoughts and planning process.
It can be educational and entertaining to just dive in and play around (and I have done my share of that over the years). However in this case I had a specific objective in mind, so I actually did all that stuff you learn in any project management course and wrote an objective statement, did some research, reviewed available resources, and came up with a plan of attack. It actually worked out surprisingly well, as I did not have to deal with vague and unrealistic expectations and requirements from management (but that is a rant for another time).
My intent was to reproduce a virtual model of my now packed up hardware consisting of two servers and a desktop along with the associated network hardware. My intend is to continue some testing I had started before everything got packed up.
I reviewed my notes on previous network setups I had used (I highly recommend taking lots of notes, it has saved me more than once when I had issues with test systems). Then sketched out what I wanted to make. This is not going to be a step by step. Rather I will discuss the approach I took to get thing sup and running.
My first step was to list out what I would be running. I should note that I created quite a few virtual computers, only a few of which I use at any one time. In no particular order, this is what I needed to virtualize.
Below is the initial network diagram I created. I will walk through the various elements of it.
The host network is running with a default gateway of 192.168.1.1. The host computer has a Static IP address of 192.168.1.4. I is running a quad core hyper threaded processor which yields eight logical cores. 24 gigabytes of RAM are installed, along with a 512 gigabyte SSD.
The virtual router/firewall has two network adapters. The first adapter is setup as a bridge with a IP address of 192.168.1.5. This is equivalent to a router WAN port. A bridge shares the hosts network adapter, and is visible to computers on the network. So the host adapter has two different IP addresses. 192.168.1.4 is assigned to the host system, and 192.168.1.5 is assigned to the VirtualBox network adapter.
The second adapter of the virtual router/firewall uses the Virtualbox internal network with an IP address of 192.168.2.1. This is equivalent to a router LAN port. This network is not visible to any computer outside of the virtualization. The virtual router forwards input from 192.168.1.5 to 192.168.2.1, along with NAT translation to the virtual computers.
The three virtual computers all have one virtual network adapter assigned to the internal network. The internal network acts like a switch to all connected computers. They receive IP addresses from the virtual router DHCP server.
Because all the virtual computers are running Unix/Linux, over head is very low. With the exception of the two servers, everything else will run with one virtual CPU and two gigabytes of virtual RAM.
With the exception of the desktop, all other virtual computers are running command line and so require very little video memory.
This virtual setup is running without issue, although the performance can be somewhat lacking under load. It emulates my old lab network without the physical router or computers.
Using a base build it is pretty easy to turn out home brew servers also.
This has been a successful test, thanks to a little pre-planing and a lot of notes. The performance issues are minor for what I am doing. I am looking forward to testing out a Type 1 Hypervisor on a more up to date computer sometime in the near future. I am curios about how performance will compare to the Type 2 Hypervisor setup.