How to: Add Interfaces and Networks to VIRL PE

    NOTE - This document only applies to users running VIRL v 1.3.x

    Applicable VIRL version(s): 1.3.x or later

     

     

    Adding (v)NICs to VIRL PE

    STOP!

    This guide only applies to VIRL PE 1.3.x and later

    With the option of deploying VIRL PE with a single interface, users may find the need to add additional interfaces or networks after initial deployment. This guides will show you how to add or assign physical or virtual network interfaces and create new networks in Openstack for your simulations and external connectivity. The IP addresses and interface names listed (with exception of Default Bridge Assignments) may differ in your deployment. Make sure to substitute interface and network information to match your environment.

    Prerequisites

    At the moment adding (v)NICs is a manual process. This guide assumes you have added or have a physical NIC on your system named eth1. This interface must be visible when running the command lspci -v. Your VIRL PE host, must contain the additional network and port-group definitions as outlined by the installation instructions. Make sure to follow the proper guide based on your VIRL PE deployment.

    Installation Guides

    Getting Started

    The following steps will show how to configure the newly added (v)NIC named eth1 to your FLAT network. It is recommended to use nano, vi or similar editor when editing configuration files.

    Editor Cheat Sheets

     

    Add Network Adapter (OVA Deployment Only)

    Skip this step if you are running VIRL PE Bare-Metal

    With you VIRL PE virtual machine in a shutdown state, edit settings as shown

     

    For VMWare Workstation

    • Right click on VIRL PE virtual machine and select Settings

    EditSettings_VMwareWorkstation.png

    • (1) Click Add; (2) Select Network Adapter; (3) Click Next;

    AddvNIC_WorkstationSettings.png

    • Set Network connection to Custom; select appropriate VMnet adapter; Click Finish

    vNIC_AddHardware.png

     

     

    For VMWare Fusion

    • Right click on VIRL PE virtual machine and select Settings

    Fusion_OpenSettings.png

    • Click on Add Device

    Fusion_Settings_Add.png

    • Select Network Adapter; Click Add

    Fusion_Add_vNIC.png

    • Set Network connection to Custom; select appropriate VMnet adapter; Click Finish

    Fusion_SetVMnet.png

    Verify Interface Name

    Use VIRL Server Network Interface Locator script to verify system identified interfaces. The script will also display the MAC address of all interfaces for easy identification.

     

    IMPORTANT:

    Device names returned by the script may not be eth0, eth1 ...  Be sure to use the interface name in the output instead of eth1 as stated in this guide.

     

    Example:

      eth0 [00:0c:29:8c:7e:b8]:      e1000 (up)

      eth1 [00:0c:29:8c:7e:c2]:      e1000 (down)

     

    Assign New Interface to Networks (UWM)

    Connect to your VIRL PE User Workspace Management page and log in.

    Username: uwmadmin

    Password: password

     

    • Click VIRL Server
    • Click System Configuration
    • Click Networks tab
    • Change Flat Network port definition from 'dummy1' to  eth1
    • Click Apply Changes
    • Click Enable Maintenance mode; and confirm
    • Click Apply; this process will start a rehost operation which can take 20-30min depending on your platform.
    • Confirm Reboot
    • Click on Update Maintenance mode; and confirm
    • Click OK to complete changes

     

    Adding (v)NICs to VIRL PE -- Manual Process

    There is no reason to have to make changes to your VIRL manually. All settings should be made via UWM and in general CLI should be left as last resort. In some cases, editing configuration files will be required or needed. In this example, you may use the steps below if you need to create more than 2 Flat networks for external connectivity. It is NOT recommended that you add Flat, or Flat1 using these steps. Those networks should be configured using UWM and the steps outlined at the beginning of this guide.

     

    Warning:

    Making manual changes to the Openstack networks in VIRL can break your system. Take a snapshot or back-up before proceeding.

    Assign (v)NIC to Bridge Interface

    Make sure that you have already created the VM Networks as outlined in pre-requisites and have completed these steps:

    To extend the FLAT network, add eth1 to the bridge member ports.

    Default Bridge Assigments

    Ext. NetBridge
    FLATbr1
    FLAT1br2
    SNATbr3
    • Edit the network configuration file:
      sudo vi /etc/network/interfaces
    • Find the bridge definition of br1; labled iface br1 inet static
    • Append eth1 to bridge_ports line as shown: (Do Not remove dummy interface!)

        Example:

    iface br1 inet static

      address 172.16.1.254/24

      netmask 255.255.255.0

      bridge_maxwait 0

      bridge_ports dummy1 eth1

      bridge_stp off

      post-up ip link set br1 promisc on

    • Save the file
    • Restart the bridge interface
      sudo ifdown br1
      sudo ifup br1
    • Validate the result; You should now see eth1 listed under interfaces column
      brctl show br1

    bridge name    bridge id          STP enabled      interfaces
    br1            8000.000c2968722f  no              dummy1

                                                        eth1

     

    • Check operational state of br1
      cat /sys/class/net/br1/operstatecommand should return up

    Example:

    cat /sys/class/net/br1/operstate

    up

    • Done

    Create Additional Openstack Network(s)

    For VIRL PE 1.2.x and earlier, the flatter.sh script which is available on VIRL Open is used to create additional external networks. With recent OpenStack network changes, the current flatter.sh script will not work on VIRL 1.3 and later. But the changes to Openstack have made the manual creation of networks easier. Adding this capability to UWM is being considered for future VIRL releases.

    Getting Started

    The following steps will create a new network and configure the physical interface eth2 for external connectivity. The IP information is based on the chart below and should only be used as a guide. New Network IP Information

    FieldIP InfoNotes
    NICeth2
    Logical Int.br99use a any number greater than 30 to avoid conflict
    Neutron VLANflat99name is arbitrary; you can choose any name
    Netowrk ID172.16.99.0
    Netmask255.255.255.0
    IP Address172.16.99.254
    CIDR/24
    Gateway172.16.99.2
    DHCP Start172.16.99.50
    DHCP End172.16.99.250
    DNS 1 1 28.8.8.8Required
    DNS 2 1 28.8.4.4Required

    1: Primary and Secondary DNS must be unique.
    2: Primary and Secondary DNS entries are mandatory and must not be left blank (undefined)

    Create New Bridge Interface

    • Edit the network configuration file:
      sudo vi /etc/network/interfaces
    • Define new bridge interface
    • Append bridge definition with new network information to end of file
      Example:
    auto br99
        iface br99 inet static
        address 172.16.99.254/24
        netmask 255.255.255.0
        bridge_maxwait 0
        bridge_ports eth2
        bridge_stp off
        post-up ip link set br99 promisc on

     

    • Edit Neutron configuration file
      sudo vi /etc/neutron/neutron.conf
    • Append Neutron VLAN to network_vlan_ranges and Nuetron VLAN : Logical Interface to bridge_mappings as shown:
    [vlans]
    tenant_network_type=vlan
    network_vlan_ranges=flat,flat1,ext-net,flat99

    [linux_bridge]
    #physical_interface_mappings=flat:dummy1,flat1:dummy2,ext-net:dummy3
    bridge_mappings=flat:br1,flat1:br2,ext-net:br3,flat99:br99
    • Edit the ML2 plugin configuration file
      sudo vi /etc/neutron/plugins/ml2/ml2_conf.ini
    • Append Neutron VLAN name to flat_networks under header section ml2_type_flat as shown:
    [ml2_type_flat]
    # (ListOpt) List of physical_network names with which flat networks
    # can be created. Use * to allow flat networks with arbitrary
    # physical_network names.
    #
    # flat_networks =
    # Example:flat_networks = physnet1,physnet2
    # Example:flat_networks = *
    flat_networks = flat,flat1,ext-net,flat99
    • Restart Neutron service
      sudo systemctl restart neutron-server
    • Create the external network in Neutron service
      neutron net-create --shared --provider:physical_network=flat99 --provider:network_type=flat flat99
    • Associate and define new external network (one command)

    neutron subnet-create flat99 172.16.99.0/24 --name flat99 --allocation-pool start=172.16.99.50,end=172.16.99.250 --gateway=172.16.99.2 --dns-nameservers list=true 8.8.8.8 8.8.8.4

    • Edit the STD/UWM configuration file
      sudo vi /etc/virl/virl-core.ini
    • Append new Logical Interface to linuxbridge section as shown:
    [linuxbridge]
    # Mapping from OpenStack flat network name to Linux bridge name bridge_flat1 = br2
    # Mapping from OpenStack flat network name to Linux bridge name bridge_flat = br1
    # Mapping from OpenStack flat network name to Linux bridge name
    bridge_ext-net = br3
    bridge_flat99 = br99
    • Done
    • Verify new network is listed in Neutron
      neutron net-list
      neutron subnet-list
      neutron subnet-show flat99