48x36 Poster Template

1
Distributed Virtual Scenarios over Multi-host Linux Environments: Virtual Networks over LinuX (VNX) Introduction EDIV: VNUML Distributed Deployment VNX Architecure Validation and Tests Conclusions and Future Work Contact information David Fernández, Alejandro Cordero, Jorge Somavilla, Jorge Rodríguez Departamento de Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid Madrid, Spain [email protected] Aitor Corchero, Luis Tarrafeta S21Sec Pamplona, Spain [email protected] Fermín Galán Telefónica I+D Madrid, Spain [email protected] host1 vm1 vm2 vm3 host2 vm4 vm5 Site 8 RB2 Network Management Center RB3 RB4 RB1 Site 12 Site 11 Site 10 Site 9 Site 7 Site 6 Site 5 Site 3 Site 4 ISIS Area L1 F L1 C RRF1 RRF2 RRE2 RRD2 RRE1 L1 D RRD1 RRC1 RRC2 RRB2 RRB1 Core MPLS ISIS L2 SC1 SC2 SC4 SC3 .1 RRA1 Site 2 Site 1 RRA2 Route Reflector L1 B ISIS Area L1 A L1 E H2 H1 H3 H4 H5 H6 Management Network EDIV Controller EDIV Cluster VNX Standalone Server E1 E2 <vnuml> </vnuml> Red2 Red1 Red3 building releasing command sequence execution Scenario specification Virtual scenario Physical host VNUML parser operations VNUML user VNUML parser invocation Direct interaction (e.g., console, SSH, etc.) Networking laboratory for dynamic routing tests, resembling the topology of an ISP and involving 44 virtual devices as follows: 16 Cisco routers 6 Juniper routers 6 Linux/Quagga routers 12 end user computers 4 Servers (WinXP, FreeBSD, Ubuntu, Debian) Deployed over two testing platforms: Deployment scenarios Primitive Description defineVM Defines a new virtual machine undefineVM Undefines an existent virtual machine startVM Starts a virtual machine shutdownVM Shutdowns a virtual machine in an ordered way. destroyVM Kills (switches off) a virtual machine saveVM Hibernates a virtual machine (saves state to disk) restoreVM Restores a virtual machine previously hibernated suspendVM Suspends a virtual machine (saves state to memory) resumeVM Resumes a previously suspended virtual machine rebootVM Reboots a virtual machine (=shutdown+define+start) resetVM Resets a virtual machine (=destroy+define+start) executeCMD Executes a command inside the virtual machine host1 host2 Ethernet Switches Deployment Controler Net0 Net1 Net2 vm1 vm2 vm3 vm5 vm4 <vnuml> </vnuml> vm3 Net0 vm1 vm2 VNUML Net2 vm5 vm4 VNUML VLAN 802.1q (Net1) building, execution sequences, releasing VLAN 802.1q (host-controller interface) SSH command Interface Scenario specification VM Distribution brA brA Virtual bridges Segmentation Module Example Validation Scenario Distributed Deployment Architecture Distributed Cluster Architecture VNX Internal API VNUML made of two main components: 1. XML based scenario specification language 2. Language interpreter Three basic operations: Scenario building: virtual scenario specification is processed to create all the virtual machines and interconnect them by virtual networks following the scenario topology Command execution: users can directly interact with virtual machines or automatize the execution of commands with the help of VNUML Scenario releasing: virtual machines and networks are released VNUML development started in 2003 and it has been used in several research projects and university networking laboratories. More details in http://www.dit.upm.es/vnuml. Previous work : VNUML Virtual Networks User Mode Linux (VNUML) is a general purpose open-source scenario- based management tool designed to help building virtual network testbeds automatically. Virtualization based testbeds widely used for the creation of network environments needed to test protocols and applications. However, complexity of present networks and protocols arises the need of very complex network testbeds, made of tenths or hundreds of virtual machines. Need for tools to support the design, deployment and management of large virtual network scenarios over clusters of servers Apart from large scale initiatives, several tools are available for small group or individual use: VNUML (www.dit.upm.es/vnuml) Netkit (http://wiki.netkit.org) MLN (http://mln.sourceforge.net) Marionnet (http://mln.sourceforge.net/) CORE (http://cs.itd.nrl.navy.mil/work/core) However, none of them support neither distributed deployment (except VNUML) nor the diversity of virtual machines operating systems needed for complex testbeds. First VNX version succesfully used in university networking laboratories. Develop- ment continues, mainly focused on improving distributed version. Future work includes: Full OVF support Dynamic scenarios (adding or deleting machines and networks, machine migration Graphical user interface New virtual machine types (e.g. Android) Plug-in to control physical equipment Better network emulation capabilities Testbeds over the cloud: deploy virtual scenarios over cloud infrastructures David Fernández Dpto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid Avda. Complutense, 30 28040 MADRID - SPAIN E-mail: [email protected] www: http://www.dit.upm.es http://www.dit.upm.es/vnx In EDIV project, a partnership between Telefónica I+D and UPM, a wrapper application to VNUML was developed to allow the distributed deployment of virtual scenarios over clusters of servers. VNUML Operation Workflow EDIV segments virtual scenarios into sub- scenarios deployed to the different servers, interconnecting them by means of VLANs. EDIV includes basic segmentation algorithms (restrictions, round robin and weighted round robin) as well as an API to allow the user to develop new segmentation algorithms. VNX implementation VNUML/EDIV Limitations Limitations of VNUML and EDIV tools: Only Linux virtual machines (User Mode Linux limitation). Performance problems. Inability to manage virtual machines individually Autoconfiguration and command execution limited Distributed version (EDIV) limitations: manual network configuration for disperse clusters, lack of monitoring tools, etc All these limitations led us to create: First version of VNX available: libvirt support. Tested with Linux (Ubuntu, Fedora, CentOS), FreeBSD and Windows (XP and 7). Dynamips and Olive router emulation support Virtual machine individual management (start, stop, restart, reboot, suspend, etc) OVF-like autoconfiguration and command execution support Plug-in architecture to add extensions to VNX Distributed deployment support (EDIV) Library of root filesystems available: Ubuntu, Fedora, CentOS, FreeBSD, etc VNX is mostly written in Perl (around 25000 lines of code); Windows autoconf daemon writen in C++. Around 40% of VNUML code reused with minor modifications. VNX overall goal is the creation of a tool to allow the deployment of large virtual network scenarios over a federated cluster environment made of disperse nodes interconnected by means of layer 2/3 tunnels over Internet. Each node is composed of: Virtualization servers running different types of hypervisors Physical (non-virtual) equipment to allow the creation of hybrid virtual scenarios VNX (Virtual Networks over LinuX) is a major rewrite of VNUML. A modular architecture based on a virtual machine control API has been defined to accommodate new virtualization platforms: Plug-ins developed: libvirt, the Linux standard API for virtualization (libvirt.org), provides access to most of virtualization platforms supported in Linux (KVM, Xen, UML, etc) Dynamips, to support emulated CISCO routers UML, which includes old VNUML code The internal API is a simplified version of libvirt API, with the addition of a primitive to execute commands inside virtual machines. New autoconfiguration and command execution mechanism created. Based on the OVF approach: a dynamic cdrom offered to virtual machines with an XML file with autoconfiguration parameters and commands to execute. VNUML redesign: VNX switches ….. VMware vm3 vm4 vm6 VNX UML Plugin Libvirt Plugin Dynamips Plugin Physical Equipment Plugin vmAPI vm1 vm2 Xen UML Dynamip s libvirt KVM Physical equipment Virtual machines vm7 servers routers PE manage r Other Plugins vm5 Experimentation Scenario VNX Architecture This research was partially supported by S21Sec and the Centre for the Development of Industrial Technology (CDTI) as part of the SEGUR@ project (https://www.cenitsegura.es/), within the CENIT program, with reference CENIT-2007 2004, as well as by the Spanish Ministry of Science and Innovation (National Plan for Research, Development and Innovation) grant TEC2008- 06539, as part of ARCO Project. Acknowledgment VNX H1 Cluster Controller Virtualization Cluster H3 H2 Physical Equipment Switch NODE 1 NODE 2 NODE 3 NODE 4 Internet h1 h2 h3 VNX h1 h2 h3 VNX h1 h2 h3

Transcript of 48x36 Poster Template

Page 1: 48x36 Poster Template

Distributed Virtual Scenarios over

Multi-host Linux Environments:

Virtual Networks over LinuX (VNX)

Introduction EDIV: VNUML Distributed Deployment

VNX Architecure

Validation and Tests

Conclusions and Future Work

Contact information

David Fernández, Alejandro Cordero,

Jorge Somavilla, Jorge Rodríguez Departamento de Ingeniería de Sistemas Telemáticos

Universidad Politécnica de Madrid

Madrid, Spain

[email protected]

Aitor Corchero, Luis Tarrafeta S21Sec

Pamplona, Spain

[email protected]

Fermín Galán Telefónica I+D

Madrid, Spain

[email protected]

host1 vm1

vm2

vm3

host2 vm4

vm5

Site 8

RB2

Network Management

Center

RB3

RB4

RB1

Site 12

Site 11

Site 10 Site 9

Site 7

Site 6

Site 5

Site 3

Site 4

ISIS Area

L1 F

L1 C

RRF1

RRF2 RRE2

RRD2 RRE1

L1 D RRD1

RRC1

RRC2

RRB2

RRB1

Core MPLS

ISIS L2

SC1 SC2

SC4 SC3

.1

RRA1

Site 2

Site 1

RRA2

Route Reflector L1 B

ISIS Area

L1 A

L1 E

H2 H1 H3 H4 H5 H6

Management

Network

EDIV

Controller

EDIV Cluster

VNX

Standalone

Server

E1

E2

<vnuml>

</vnuml> Red2 Red1 Red3

building

releasing

command

sequence

execution

Scenario

specification

Virtual

scenario Physical

host

VNUML parser

operations

VNUML user

VNUML parser

invocation

Direct

interaction

(e.g., console,

SSH, etc.)

Networking laboratory for dynamic routing

tests, resembling the topology of an ISP and

involving 44 virtual devices as follows:

• 16 Cisco routers

• 6 Juniper routers

• 6 Linux/Quagga routers

• 12 end user computers

• 4 Servers (WinXP, FreeBSD, Ubuntu,

Debian)

Deployed over two testing platforms:

Deployment scenarios

Primitive Description

defineVM Defines a new virtual machine

undefineVM Undefines an existent virtual machine

startVM Starts a virtual machine

shutdownVM Shutdowns a virtual machine in an ordered way.

destroyVM Kills (switches off) a virtual machine

saveVM Hibernates a virtual machine (saves state to disk)

restoreVM Restores a virtual machine previously hibernated

suspendVM Suspends a virtual machine (saves state to memory)

resumeVM Resumes a previously suspended virtual machine

rebootVM Reboots a virtual machine (=shutdown+define+start)

resetVM Resets a virtual machine (=destroy+define+start)

executeCMD Executes a command inside the virtual machine

host1 host2

Ethernet Switches

Deployment

Controler

Net0 Net1 Net2

vm1 vm2

vm3

vm5

vm4

<vnuml>

</vnuml>

vm3

Net0

vm1

vm2

VNUML Net2

vm5

vm4 VNUML

VLAN 802.1q (Net1)

building,

execution

sequences,

releasing

VLAN 802.1q (host-controller interface)

SSH command Interface

Scenario specification

VM Distribution

brA brA

Virtual bridges

Segmentation

Module

Example Validation Scenario

Distributed Deployment Architecture

Distributed Cluster Architecture

VNX Internal API

VNUML made of two main components:

1. XML based scenario specification

language

2. Language interpreter

Three basic operations:

• Scenario building: virtual scenario

specification is processed to create all

the virtual machines and interconnect

them by virtual networks following the

scenario topology

• Command execution: users can directly

interact with virtual machines or

automatize the execution of commands

with the help of VNUML

• Scenario releasing: virtual machines

and networks are released

VNUML development started in 2003 and it

has been used in several research projects

and university networking laboratories. More

details in http://www.dit.upm.es/vnuml.

Previous work : VNUML

Virtual Networks User Mode Linux (VNUML)

is a general purpose open-source scenario-

based management tool designed to help

building virtual network testbeds

automatically.

Virtualization based testbeds widely used for

the creation of network environments

needed to test protocols and applications.

However, complexity of present networks

and protocols arises the need of very

complex network testbeds, made of tenths

or hundreds of virtual machines.

Need for tools to support the design,

deployment and management of large

virtual network scenarios over

clusters of servers

Apart from large scale initiatives, several

tools are available for small group or

individual use:

• VNUML (www.dit.upm.es/vnuml)

• Netkit (http://wiki.netkit.org)

• MLN (http://mln.sourceforge.net)

• Marionnet (http://mln.sourceforge.net/)

• CORE (http://cs.itd.nrl.navy.mil/work/core)

However, none of them support neither

distributed deployment (except VNUML) nor

the diversity of virtual machines operating

systems needed for complex testbeds.

First VNX version succesfully used in

university networking laboratories. Develop-

ment continues, mainly focused on

improving distributed version.

Future work includes:

• Full OVF support

• Dynamic scenarios (adding or deleting

machines and networks, machine

migration

• Graphical user interface

• New virtual machine types (e.g. Android)

• Plug-in to control physical equipment

• Better network emulation capabilities

• Testbeds over the cloud: deploy virtual

scenarios over cloud infrastructures

David Fernández

Dpto. Ingeniería de Sistemas Telemáticos

Universidad Politécnica de Madrid

Avda. Complutense, 30

28040 MADRID - SPAIN

E-mail: [email protected]

www: http://www.dit.upm.es

http://www.dit.upm.es/vnx

In EDIV project, a partnership between

Telefónica I+D and UPM, a wrapper

application to VNUML was developed to

allow the distributed deployment of virtual

scenarios over clusters of servers.

VNUML Operation Workflow

EDIV segments virtual scenarios into sub-

scenarios deployed to the different servers,

interconnecting them by means of VLANs.

EDIV includes basic segmentation

algorithms (restrictions, round robin and

weighted round robin) as well as an API to

allow the user to develop new segmentation

algorithms.

VNX implementation

VNUML/EDIV Limitations

Limitations of VNUML and EDIV tools:

• Only Linux virtual machines (User Mode

Linux limitation). Performance problems.

• Inability to manage virtual machines

individually

• Autoconfiguration and command

execution limited

• Distributed version (EDIV) limitations:

manual network configuration for

disperse clusters, lack of monitoring

tools, etc

All these limitations led us to create:

First version of VNX available:

• libvirt support. Tested with Linux

(Ubuntu, Fedora, CentOS), FreeBSD and

Windows (XP and 7).

• Dynamips and Olive router emulation

support

• Virtual machine individual management

(start, stop, restart, reboot, suspend, etc)

• OVF-like autoconfiguration and

command execution support

• Plug-in architecture to add extensions to

VNX

• Distributed deployment support (EDIV)

• Library of root filesystems available:

Ubuntu, Fedora, CentOS, FreeBSD, etc

VNX is mostly written in Perl (around 25000

lines of code); Windows autoconf daemon

writen in C++. Around 40% of VNUML code

reused with minor modifications.

VNX overall goal is the creation of a tool to

allow the deployment of large virtual network

scenarios over a federated cluster

environment made of disperse nodes

interconnected by means of layer 2/3

tunnels over Internet.

Each node is composed of:

• Virtualization servers running different

types of hypervisors

• Physical (non-virtual) equipment to allow

the creation of hybrid virtual scenarios

VNX (Virtual Networks over LinuX) is a

major rewrite of VNUML. A modular

architecture based on a virtual machine

control API has been defined to

accommodate new virtualization platforms:

Plug-ins developed:

• libvirt, the Linux standard API for

virtualization (libvirt.org), provides access

to most of virtualization platforms

supported in Linux (KVM, Xen, UML, etc)

• Dynamips, to support emulated CISCO

routers

• UML, which includes old VNUML code

The internal API is a simplified version of

libvirt API, with the addition of a primitive to

execute commands inside virtual machines.

New autoconfiguration and command

execution mechanism created. Based on the

OVF approach: a dynamic cdrom offered to

virtual machines with an XML file with

autoconfiguration parameters and

commands to execute.

VNUML redesign: VNX

switches

….. VMware

vm3 vm4 vm6

VNX

UML Plugin

Libvirt Plugin Dynamips

Plugin

Physical Equipment

Plugin

vmAPI

vm1 vm2

Xen UML Dynamips

libvirt

KVM

Physical equipment Virtual machines

vm7 servers routers

PE manage

r

Other Plugins

vm5

Experimentation Scenario

VNX Architecture

This research was partially supported by S21Sec and the

Centre for the Development of Industrial Technology (CDTI)

as part of the SEGUR@ project

(https://www.cenitsegura.es/), within the CENIT program,

with reference CENIT-2007 2004, as well as by the Spanish

Ministry of Science and Innovation (National Plan for

Research, Development and Innovation) grant TEC2008-

06539, as part of ARCO Project.

Acknowledgment

VNX

H1

Cluster Controller

Virtualization Cluster

H3

H2

Physical Equipment

Switch

NODE 1

NODE 2

NODE 3

NODE 4

Internet

h1 h2 h3

VNX

h1 h2 h3

VNX

h1 h2 h3