5. hands on - building local development environment with open mano

24
Building local development environment with OpenMANO_ Network Innovation & Virtualisation Global CTO Unit 10 Jun 2015 Alfonso Tierno Sepulveda Gerardo García De Blas Network Virtualisation GCTO Unit

Upload: movilforum

Post on 11-Aug-2015

593 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: 5. hands on - building local development environment with Open Mano

Building local development

environment with

OpenMANO_

Network Innovation & Virtualisation

Global CTO Unit

10 Jun 2015

Alfonso Tierno Sepulveda

Gerardo García De Blas

Network Virtualisation – GCTO Unit

Page 2: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

OpenFlow

Controller

(FloodLight)

WEB SERVER

(GUI)

openvim

openmano

openmano-

gui

OpenFlow switch

VM

Compute nodes

NETWORK

SCENARIOS

VNF

SDN

OpenMANO recap

Network scenario

Page 3: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

OpenMANO addresses successfully network creation,

becoming a sound foundation for further automation

VNF AND NS DESCRIPTORS MAKE NETWORK DESIGN SIMPLE

EPA SUPPORT (NFVO & VIM)

PROPER VARIETY OF L2 CONNECTIVITIES

VNF ON-BOARDING DOES NOT REQUIRE FORMAL INTEGRATION

• Abstract models that hide complexity to

network engineer: just nodes and links

interconnecting them

• Allows to deploy for high performance

• Passthrough, SR-IOV, Virtio

• E-Line & E-LAN

• Descriptor-based (openly available)

VNF VNF

VNF VNF

VNF VNF

E-Line E-LAN

Page 4: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

• Low-end laptops/PCs

• Functional tests

• Low cost

OpenMANO minimizes entry barriers for VNF developers

LOCAL DEVELOPMENT

&TESTING

• Real servers and switches

• Performance tests (EPA

can be enforced)

• Cost-effective shared pool

SHARED POOL FOR

DEVELOPERS

• Production/pre-production

environment

• Real network scenarios

• Final service configuration

SERVICE PROVIDER

VNFD

VM images

VNFD

VM images

SAME IMAGES AND DESCRIPTORS ACROSS ALL THE CHAIN!

Page 5: 5. hands on - building local development environment with Open Mano

Hands-on session

Page 6: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

Target

• Practice with openMANO

• Create and deploy a network scenario in a

local environment

Page 7: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

Environment

host: compute node

Virtual machine: openmano (openmano-centos)

openmano-centos

host

opemano

pktgen

pktgen

pktsink

pktsink

l3fwd

l3fwd

gateway

gateway

192.168.100.0/24

.2 .3 .4 .1

10.10.0.3 virbrInf10.10.0.1

virbrCon163.117.172.0/24

Page 8: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

(@host)

1. #kvm: list virtual machines defined at localhost

$ sudo virsh list

$ sudo virsh list --all

$ sudo virsh dumpxml openmano-centos

2.- #start openmano virtual machine

$ sudo virsh start openmano-centos

3.- #enter virtual machine

$ ssh [email protected] #password dpdk

Launching the controller node (openMANO)

Page 9: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

OPENVIM (I)

Configuration & start

(@VM openmano-centos)

1. #openvim configuration

$ less openmano/openvim/openvimd.cfg

2. #openvim start

$ service-openmano openflow start #not used in development mode

$ service-openmano openvim start

#see openvim logs:

$ cat openmano/logs/openvim.0

3. #CLI configuration environment variables

$ openvim config

$ openvim –h

Page 10: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

OPENVIM (II)

Add a compute host using a descriptor

(@VM openmano-centos)

4. #ensure that openvim has ssh access to the compute node without

any prompt (password, confirmation, ...)

#ssh key access are already inserted at host. Test it

ssh [email protected]

#if it fails, run “rm –f .ssh/known_hosts ”

ssh [email protected] #exit to go back to openmano-centos

5. #generate the compute node descriptor (not needed in this session)

# To generate the descriptor, a script is used:

$ ls openmano/scripts/host-add.sh

# The descriptor: numas, cores, interfaces, ...

$ less yamls/developer_host.yaml

6. #add the host to openvim

$ openvim host-add yamls/developer_host.yaml

$ openvim host-list

$ openvim host-list -vvv

Page 11: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

OPENVIM (III)

Create external networks

(@VM openmano-centos)

7. #create external networks, to be used later in network

scenarios

$ cat yamls/virbrCon.yaml # A bridge to access to the VMs

$ cat yamls/default.yaml # libvirt default network (NAT-based)

$ openvim net-create yamls/virbrCon.yaml

$ openvim net-create yamls/default.yaml

$ openvim net-list

$ openvim net-list –vvv

Page 12: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

OPENVIM (IV)

Create VIM tenant

(@VM openmano-centos)

8. #create VIM tenant

$ openvim tenant-create --name my_vim_tenant --description

"description"

$ openvim tenant-list

9. #configure openvim CLI to use the created tenant

$ openvim config

$ export OPENVIM_TENANT=<uuid>

$ echo "export OPENVIM_TENANT=<uuid>" >> .bashrc

$ openvim config

Page 13: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

OPENMANO (I)

Configuration & start

(@VM openmano-centos)

1. #openmano configuration

$ less openmano/openmano/openmanod.cfg

2. #openmano start

$ service-openmano openmano start

# see openmano logs:

$ cat openmano/logs/openmano.0

3. #CLI configuration environment variables

$ openmano config

$ openmano –h

Page 14: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

OPENMANO (II)

Create NFVO tenant

(@VM openmano-centos)

4. #create NFVO tenant

$ openmano tenant-create mytenant --description="description"

$ openmano tenant-list # write down the uuid

5. #configure openmano CLI to use this tenant

$ openvim config

$ export OPENMANO_TENANT=<uuid>

# add openmano environment variables to ~/.bashrc

$ echo "export OPENMANO_TENANT=<uuid>" >> .bashrc

$ openmano config

Page 15: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

OPENMANO (III)

Add openvim datacenter

(@VM openmano-centos)

6. #creating datacenter 'mydc' in openmano

$ openmano datacenter-create mydc http://localhost:9080/openvim

$ openmano datacenter-list

$ openmano datacenter-list --all

7. #attach datacenter (openvim) and VIM tenant to the NFVO tenant

$ openmano datacenter-attach mydc --vim-tenant-id <vim_tenant_uuid>

$ openmano datacenter-list

$ export OPENMANO_DATACENTER=<datacenter_uuid>

#add openmano environment variables to ~/.bashrc

$ echo "export OPENMANO_DATACENTER=<datacenter_uuid>" >> ~/.bashrc

8. #update datacenter (openvim) external nets

$ openmano datacenter-net-update -f mydc

$ openmano datacenter-net-list mydc

Page 16: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

OPENMANO (IV)

Add some VNFs

(@VM openmano-centos)

9. #insert 4 VNFs

$ openmano vnf-list

# see descriptors

$ less yamls/gateway.yaml

$ less yamls/l3forward.yaml

# add VNFs to openmano

$ openmano vnf-create yamls/gateway.yaml

$ openmano vnf-create yamls/l3forward.yaml

$ openmano vnf-create yamls/pktgen_1p.yaml

$ openmano vnf-create yamls/pktsink_1p.yaml

$ openmano vnf-list

$ openmano vnf-list -vvv

Page 17: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

OPENMANO (V)

Add an NS definition and deploy it

(@VM openmano-centos)

10. #insert network scenarios

$ less yamls/scenario.yaml

$ openmano scenario-create yamls/scenario.yaml

$ openmano scenario-list

11. #launch the network scenario (it creates an instance)

$ openmano instance-scenario-list

$ openmano scenario-deploy dpdk_training dpdk_training

$ openmano instance-scenario-list

$ openmano instance-scenario-list dpdk_training

$ openvim vm-list

Page 18: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

OPENMANO-GUI (I)

Configuration

(@VM openmano-centos)

1. #edit openmano-gui configuration

$ openmano tenant-list # write down the uuid

$ vi openmano/openmano-gui/config.php

# set 'mano_tenant' variable with the proper tenant

Page 19: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

OPENMANO-GUI (II)

Usage

(@host)

2. #open firefox web browser

(http://10.10.0.3/openmano)

#scenarios

#VNF catalogue

#physical

#create new scenario

Page 20: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

Check access to deployed virtual machines (I)

(@host)

1. #virtual machine list

$ sudo virsh list

$ sudo virt-manager

# enter gateway VM console

(@VM gateway)

2. #Getting gateway public IP address

$ ifconfig #Write down the gateway public IP address

# close console VM gateway

Page 21: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

Check access to deployed virtual machines (II)

(@host)

3. Enter scenario VMs through the gateway

$ ssh dpdk@<gateway-public-ip> #password: dpdk

(@VM gateway) $ ssh 192.168.100.2 #pktgen #exit

(@VM gateway) $ ssh 192.168.100.3 #l3fwd #exit

(@VM gateway) $ ssh 192.168.100.4 #pktsink #exit

Page 22: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

Page 24: 5. hands on - building local development environment with Open Mano

DISCOVER, DISRUPT, DELIVER

Backup