3.1. Configuring Private Networking Across Multiple Nodes

Symptoms: When Virtuozzo DevOps is deployed to multiple servers, application components are not able to communicate to each other when located on different physical servers (nodes). An example of such problem can be an application server unable to connect to its database.

Cause: By default, Virtuozzo DevOps suggests an unused private IP subnetwork. Application components (containers) using IP addresses from this subnetwork will be able to communicate with each other as long as they are located on the same node. However, outgoing traffic will go to the default gateway which may not have information about proper routing of this traffic.

How to fix: Configure the routing rules for the private subnetwork.

The configuration is explained on the following example:

  • the deployment consists of two nodes;
  • both servers have network interfaces eth0 for external traffic and eth1 for internal traffic;
  • the interface eth1 is configured on both servers with the IP address 192.168.1.x and the network mask 255.255.255.0;
  • the private subnetwork assigned during the installation is 10.1.0.0/20.

You will need to create routing rules to send traffic for the private subnetwork to the interface eth1. To do that, run the following command on both nodes:

# ip r add 10.1.0.0/20 dev eth1

Doing so will make routing work properly until next reboot. To make the changes permanent, run the following command on both nodes:

# echo "10.1.0.0/20 dev eth1" >> /etc/sysconfig/network-scripts/route-eth1