Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?


Setting Up the Infrastructure (Contrail Networking Release 21.3 or Earlier)

SUMMARY Follow this topic to set up the infrastructure for a Contrail Networking deployment in a RHOSP 16.1 environment when you are using Contrail Networking Release 21.3 or earlier.

When to Use This Procedure

You should use this topic to set up the infrastructure for a Contrail Networking deployment in a RHOSP 16.1 environment when you are using Contrail Networking Release 21.3 or earlier.

This procedure shows you how to set up the infrastructure for the installation when the hosts are using Kernel-based Virtual Machine (KVM).

Starting in Contrail Networking Release 21.4, Contrail Networking was enhanced to operate with hosts using Red Hat Virtualization (RHV). You must use RHV-based hosts in place of KVM-based hosts in RHOSP 16.1 environments starting in Contrail Networking Release 21.4 and in all future Contrail Networking releases. See Setting Up the Infrastructure (Contrail Networking Release 21.4 or Later) .

Target Configuration (Example)

Undercloud and overcloud KVM hosts require virtual switches and virtual machine definitions to be configured. You can deploy any KVM host operating system version that supports KVM and OVS. The following example shows a RHEL/CentOS based system. If you are using RHEL, you must subscribe the system.

The following example illustrates all control plane functions as Virtual Machines hosted on KVM hosts.

There are different ways to create the infrastructure providing the control plane elements. To illustrate the installation procedure, we will use four host machines for the infrastructure, each running KVM. KVM1 contains a VM running the undercloud while KVM2 through KVM4 each contains a VM running an OpenStack controller and a Contrail controller (Table 1).

Table 1: Control Plane Infrastructure

KVM Host

Virtual Machines




OpenStack Controller 1, Contrail Contoller 1


OpenStack Controller 2, Contrail Contoller 2


OpenStack Controller 3, Contrail Contoller 3

Figure 1 shows the physical connectivity where each KVM host and each compute node has two interfaces that connect to an external switch. These interfaces attach to separate virtual bridges within the VM, allowing for two physically separate networks (external and provisioning networks).

Figure 1: Physical ViewPhysical View

Figure 2 shows the logical view of the connectivity where VLANs are used to provide further network separation for the different OpenStack network types.

Figure 2: Logical ViewLogical View

The following sections describe how to configure the infrastructure, the undercloud, and finally the overcloud.

Configure the External Physical Switch

Configure the ports and VLANs on the external physical switch according to the following table:

Table 2: External Physical Switch Port and VLAN Configuration


Trunked VLAN

Native VLAN





700, 720



700, 710, 720, 730, 740, 750






710, 730





Configure KVM Hosts

Use this example procedure to install the required packages and start KVM and Open vSwitch on each undercloud and overcloud KVM host.

  1. Log in to a KVM host.
  2. Install the required packages.
  3. Start KVM and Open vSwitch.
  4. Additionally, on the overcloud nodes only, create and start the virtual switches br0 and br1.
    Table 3: vSwitch Configuration


    Trunked VLAN

    Native VLAN


    710, 720, 730 740, 750





  5. Repeat step 1 through step 4 for each KVM host.

Create the Overcloud VM Definitions on the Overcloud KVM Hosts

Use this example procedure on each overcloud KVM host (KVM2 to KVM4) to do the following:

  • create the VM definitions for that overcloud KVM host

  • create and start a virtual baseboard management controller for that overcloud KVM host so that the VM can be managed using IPMI

  • create an ironic_list file to be used by the undercloud

This example procedure creates a VM definition consisting of 2 compute nodes, 1 Contrail controller node, and 1 OpenStack controller node on each overcloud KVM host.

  1. Log in to an overcloud KVM host.
  2. Specify the roles you want to create.
  3. Create the VM definitions.
  4. Repeat step 1 through step 3 on each overcloud KVM host.

This procedure creates one ironic_list file per overcloud KVM host. Combine the contents of each file into a single ironic_list file on the undercloud.

The following shows the resulting ironic_list file after you combine the contents from each separate file:

52:54:00:e7:ca:9a compute-1-5b3s31 compute 16230 52:54:00:30:6c:3f compute-2-5b3s31 compute 16231 52:54:00:9a:0c:d5 contrail-controller-1-5b3s31 contrail-controller 16232 52:54:00:cc:93:d4 control-1-5b3s31 control 16233 52:54:00:28:10:d4 compute-1-5b3s30 compute 16230 52:54:00:7f:36:e7 compute-2-5b3s30 compute 16231 52:54:00:32:e5:3e contrail-controller-1-5b3s30 contrail-controller 16232 52:54:00:d4:31:aa control-1-5b3s30 control 16233 52:54:00:d1:d2:ab compute-1-5b3s32 compute 16230 52:54:00:ad:a7:cc compute-2-5b3s32 compute 16231 52:54:00:55:56:50 contrail-controller-1-5b3s32 contrail-controller 16232 52:54:00:91:51:35 control-1-5b3s32 control 16233

Create the Undercloud VM Definition on the Undercloud KVM Host

Use this example procedure on the undercloud KVM host (KVM1) to create the undercloud VM definition and to start the undercloud VM.

  1. Create the images directory.
  2. Retrieve the image.


    Download rhel-server-8.2-update-1-x86_64-kvm.qcow2 from RedHat portal to ~/images.

  3. Customize the undercloud image.

    As part of the undercloud definition, a user called stack is created. This user will be used later to install the undercloud.

  4. Define the undercloud virsh template.
  5. Start the undercloud VM.
  6. Retrieve the undercloud IP address. It might take several seconds before the IP address is available.