• 6 hours
  • Easy

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 4/6/22

Establish Communication Between Virtual Machines

Select the Correct Network Mode

When you create a VM, a virtual network card is allocated by default, allowing it to access the internet. However, you'll have to configure it if it doesn't work automatically.

This table shows what each network mode is best for:

Network mode

Example of when it should be used

NAT

Only use one VM to download apps, carry out updates, or surf the internet.

Bridged network

You want your VM to become a web server. It needs to be seen on the network as a physical machine with its own externally accessible IP address.

Internal network

You are using several VMs to simulate private networks that do not have external access or access to the host machine.

NAT network

Similar to NAT, several VMs need to communicate with each other (impossible in classic NAT mode).

Private host network

Similar to an internal network, but when communication needs to be allowed with the host. 

Now that you understand all the network modes, let’s go back to our example from the first chapter. This was the context: you’re working on a multi-platform app for internal use only. The company has Android, Windows, and Linux machines, and you want to check if your app works properly in this complex environment. To function, it needs to be able to:

  • Regularly send requests to the other machines.

  • Retrieve database updates from a remote server which can be accessed via a URL.

Connect to the Internet in NAT Mode

Let's start by looking at an NAT network.

Step 1: Creating VMs

We’re going to create three VMs:

  • Ubuntu 

  • Windows 10 

  • Android 

There’s no need to create a new Ubuntu or Android VM – you can use the ones from the previous chapter.

You can find the Windows 10 VM disk here to create the VM we did in Chapter 3.

Step 2: Configure the Network

 NAT Mode

As previously mentioned, the default network mode is NAT. It allows VMs to access the internet (if their host is connected ), but not to communicate with each other.

The 3 different VMs communicate through a virtual gateway  Host: 192.168.42.135  virtual gateway: 10.0.2.2  10.0.2.15
Network Configuration Diagram

You can check this by looking at the IP address given to each VM.

It's important that our three VMs have the IP address: 10.0.2.15 and that they can access the internet. This also means that they are on three different networks as it is impossible to allocate the same IP address to three machines on the same network.

Internal Network Mode

The simplest way to establish communication between the VMs is to put them all on an internal network using the internal network mode. 

The 3 vms communicate directly with each other using an internal systemHost: 192.168.1.4242.135  192.168.100.2  192.168.100.1  192.168.100.3
Set up an internal network

To do this, switch off your VM, and go to the Network configuration section.

The network setting screen that allows to configure the  3 in one network
VM Network settings screen

In Network access mode, select Internal Network, and either leave the default name or choose another one. 

In the Advanced section, you’ll see that you can also change certain settings:

  • Type of card – The virtual network card model that your VM will see.

  • Promiscuous mode – Allows the card to see all packets in transit on the network, not only those intended for it. Only activate this option in very specific cases for network tests. 

  • MAC address – The MAC address of your virtual network card.

In our case, we don’t need to change these settings.

If you start your VMs now, you’ll see that they have not been allocated an IP address. Although they are on the same network, there is no DHCP server. Therefore, you will have to allocate an IP address manually.

Let’s go through the configuration for the Windows VM (192.168.100.1) and the Ubuntu VM (192.168.100.2) and check the result with a ping:

The 2 machines are communicating using an internal network there dialogue boxes display the communication.
Using a ping on a Windows and Ubuntu VM

In internal network mode, the VMs cannot access the internet and cannot be seen from other networks.

Take a Closer Look at Setting Up the Internal Network Mode

Follow along with the short video below to see how I configure multiple VMs to use the internal network mode:

Bridged Network Mode

Use bridge network mode if you want to allow your VMs to access the internet, communicate with each other, and be visible externally.

The vms communicate with each other and the Host: 192.168.1.5042.135 as well as the internet
Bridged network diagram

Go back into the network configuration of each VM when they are powered off and choose bridged adapter mode.

You’ll see that you are asked to choose one of the host machine’s network cards. Choose the one that allows your host machine to access the internet.

Then launch your VMs. Once you’ve done this, check that your machine’s operating systems are configured to receive an IP address via DHCP automatically.

Your VMs will automatically receive an IP address on the same network as your host machine.

You can see this here: all of my machines are on the network 192.168.1.0/24, including my host machine (top left).

This means that they can all communicate with each other and access the internet.

Take a Closer Look at Setting Up Bridged Networking

Bridged networking mode is useful in a number of scenarios. Follow along with my video to see how to configure your VMs to use this mode:

 This mode is perfect for our practical example, as it fills our two requirements:

  • The app undergoing beta testing must be able to issue requests to all the other machines regularly.

  • The app must update its database automatically using a remote server accessible via a URL.

We have now covered the main network modes. With this knowledge, you can configure the communication settings for your environment's needs.

Choose a Type 2 Hypervisor for Tests

As you've seen, you can do a lot with hypervisors such as VirtualBox, like installing several different operating systems, including Android and Linux. The connection options provide different ways to create simple networks, depending on your requirements.

So now, the next time you need to test operating systems, an app, or simple network architecture, you'll be able to use a type 2 hypervisor.

Let's Recap!

  • When creating a VM, a virtual network card is allocated by default.

  • You must mount the ISO onto the VM if using an ISO file. The installation will then begin when the VM is powered on

  • There are many different network modes you can configure your VM to use:

    • NAT - Allows VMs to access the internet (if their host is connected) but not to communicate with each other.

    • Internal network - VMs cannot access the internet or other networks but can communicate with each other.

    • Bridged network - VMs can access the internet, communicate with each other, and be visible externally.

  • You can use the VM settings menu in VirtualBox to edit each machine's network configuration. 

You should now have a better idea of what each of the main network modes offers and understand when to use them. 

Check your skills in the next quiz on type 2 hypervisors, and I will see you in part 3, where we'll look at type 1 hypervisors and transforming environments using virtualization.

Example of certificate of achievement
Example of certificate of achievement