Anuket Project

IEEE NFV-SDN 2018 : Tutorial

Target Audience: Those who are new to VSPERF and would like to try it out locally.

If you are attending a VSPERF-training session (ex: IEEE NFVSDN tutorial), kindly download and install following, before the training-sessions

(Note: Of the three options described below, we'll only use Option-1 for IEEE NFVSDN Tutorial).

System / SoftwareSource / Image / command /Comments
Virtualization /HypervisorOracle VirtualboxTo run VMs.
Virtual Machine Image DUT-VMhttp://releases.ubuntu.com/16.04/ubuntu-16.04.5-desktop-amd64.iso

Please install Docker on this system*

Reuse of thttp://nof2020.dnac.org/tutorials/his VM to try NFVBench

TGen-VMhttp://trex-tgn.cisco.com/trex/T_Rex_162_VM_Fedora_21.ovaT-Rex Traffic Generator VM.
OPNFV/NFVBench Docker Image
docker pull opnfv/nfvbench
This should be done on DUT-VM
Exchange of SSH-Keys between VMsStep-3 below. (option-1)To allow pwd-less access b/w VMs
New Version of T-RexStep-5 below (option-1)This should be done on TGen-VM
VSPERFStep-4 below (option-1)This should be done on DUT-VM

The Installation and configuration details are provided below.

Option-1: Experimenting VSPERF with Oracle Virtualbox:

You would need two VMs in this scenario. Figure below shows the setup.

Network

Network/Adapter Type

(Virtualbox)

Interfaces on DUT-VMInterfaces on TGen-VMComments
test1Internaleth3eth3Interface used for data-traffic
test2Internaleth2,eth2,Interface used for data-traffic
adminBridgedeth1eth1Interface used by VSPERF to manage TGen.
InternetNATeth0eth0Interface used for connect to Internet - for downloads, and updates.

Step-1: Downloading VM-Images

Download following images for the two VMs:

  1. DUT-VM: Any Linux image. Ex: Ubuntu 16.04 (http://releases.ubuntu.com/16.04/ubuntu-16.04.5-desktop-amd64.iso
  2. TGen-VM: http://trex-tgn.cisco.com/trex/T_Rex_162_VM_Fedora_21.ova


Step-2: Installing VMs:

  1. DUT-VM: This is just a standard VM-from-ISO installation procedure. You will find many step-by-step description (,  https://itsfoss.com/install-linux-in-virtualbox/) of this, including Videos (Ex: https://www.youtube.com/watch?v=QbmRXJJKsvs) . 
    1. Please ensure that number of interfaces are 4 and configured according to the figure above.
  2. TGen-VM: The details of installation of the OVA can be found here: https://trex-tgn.cisco.com/trex/doc/trex_vm_manual.html, under TRex inside Virtual Box.
    1. Please ensure that number of interfaces are 4 and configured according to the figure above.

The names of the interfaces maybe different - for example on Ubuntu it may be enp0s2/3/4...


Step-3: Copying SSH keys between VMs.

To ensure smoother access, ensure DUT-VM can ssh to TGen-VM without password-probe, copy the SSH public keys. The step to follow:

  1. If no identity is created yet (ex: if you don't find id_rsa.pub in ~/.ssh folder) Run ssh-keygen. It will generate the necessary identify.
  2. Use ssh-copy-id command. ssh-copy-id username_of_tgen_vm@ipaddress_of_tgen_vm

Step-4: Installing VSPERF on DUT-VM

Instructions to install and configure (including tuning) VSPERF can be found here 

You may have to configure hugepages before running the install script - by running following commands:

  1. mkdir -p /mnt/huge
  2. mount -t hugetlbfs nodev /mnt/huge
  3. echo "vm.nr_hugepages=64" >> /etc/sysctl.conf

Step-5: Updating T-Rex on TGen-VM

Download the latest T-Rex: wget --no-cache http://trex-tgn.cisco.com/trex/release/latest. to the home (/home/trex) folder.

Untar it.

Step-6: Docker Installation on DUT-VM

Install Docker on DUT-VM. You can follow the steps described here for Ubuntu. 

Step-7: Running Tests

Instructions to run tests can be found here.  This would be covered during the training session.



Option-2: Experimenting with Single Physical System 

In this scenario, both the DUT (vswitch with/without VNFs) and the Traffic-Generator run on same System.

  1. vsperf distribution: Downloaded from here
  2. OS: Linux (ex: centos, fedora, suse, ubuntu, RHEL)
  3. Hypervisor: Qemu (> 2.3)
  4. RAM:  8-16GB
  5. TGen-VM: TRex-VM (VSPERF includes this image as part of its artifacts - https://artifacts.opnfv.org/vswitchperf/vnf/vloop-vnf-ubuntu-16.04_trex_20180209.qcow2)
  6. VNF: vloop-VNF (VSPERF includes this image as part of its artifacts - http://artifacts.opnfv.org/vswitchperf/vnf/vloop-vnf-ubuntu-14.04_20160823.qcow2)

Option-3: Experimenting with Two Physical Systems

In this scenario, DUT runs on first system and the Traffic-generator runs on a different system. (Note: The second system could be a hardware traffic-generator - Spirent, Ixia, Xena, etc.)

System-1:

  1. vsperf distribution: Downloaded from here
  2. OS: Linux (ex: centos, fedora, suse, ubuntu, RHEL)
  3. Hypervisor: Qemu (> 2.3)
  4. RAM:  8-16GB
  5. NICs: 2 for data-traffic
  6. VNF: vloop-VNF (VSPERF includes this image as part of its artifacts - http://artifacts.opnfv.org/vswitchperf/vnf/vloop-vnf-ubuntu-14.04_20160823.qcow2)

System-2:

There are multiple options here - user can choose any one of the following

  1. Hardware Traffic Generator: Ixia, Spirent, Xena, Etc.
  2. T-Rex: Instructions to install can be found here
  3. Moongen: Instructions to install can be found here
  4. NICs: 2 for data-traffic.