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 / Software | Source / Image / command / | Comments |
---|---|---|
Virtualization /Hypervisor | Oracle Virtualbox | To run VMs. |
Virtual Machine Image DUT-VM | http://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-VM | http://trex-tgn.cisco.com/trex/T_Rex_162_VM_Fedora_21.ova | T-Rex Traffic Generator VM. |
OPNFV/NFVBench Docker Image | docker pull opnfv/nfvbench | This should be done on DUT-VM |
Exchange of SSH-Keys between VMs | Step-3 below. (option-1) | To allow pwd-less access b/w VMs |
New Version of T-Rex | Step-5 below (option-1) | This should be done on TGen-VM |
VSPERF | Step-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-VM | Interfaces on TGen-VM | Comments |
---|---|---|---|---|
test1 | Internal | eth3 | eth3 | Interface used for data-traffic |
test2 | Internal | eth2, | eth2, | Interface used for data-traffic |
admin | Bridged | eth1 | eth1 | Interface used by VSPERF to manage TGen. |
Internet | NAT | eth0 | eth0 | Interface used for connect to Internet - for downloads, and updates. |
Step-1: Downloading VM-Images
Download following images for the two VMs:
- DUT-VM: Any Linux image. Ex: Ubuntu 16.04 (http://releases.ubuntu.com/16.04/ubuntu-16.04.5-desktop-amd64.iso)
- TGen-VM: http://trex-tgn.cisco.com/trex/T_Rex_162_VM_Fedora_21.ova.
Step-2: Installing VMs:
- 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) .
- Please ensure that number of interfaces are 4 and configured according to the figure above.
- 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.
- 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:
- 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.
- 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:
- mkdir -p /mnt/huge
- mount -t hugetlbfs nodev /mnt/huge
- 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.
- vsperf distribution: Downloaded from here
- OS: Linux (ex: centos, fedora, suse, ubuntu, RHEL)
- Hypervisor: Qemu (> 2.3)
- RAM: 8-16GB
- 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)
- 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:
- vsperf distribution: Downloaded from here
- OS: Linux (ex: centos, fedora, suse, ubuntu, RHEL)
- Hypervisor: Qemu (> 2.3)
- RAM: 8-16GB
- NICs: 2 for data-traffic
- 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
- Hardware Traffic Generator: Ixia, Spirent, Xena, Etc.
- T-Rex: Instructions to install can be found here
- Moongen: Instructions to install can be found here
- NICs: 2 for data-traffic.