+ All Categories
Home > Technology > OpenNaaS Overview Complete

OpenNaaS Overview Complete

Date post: 02-Jul-2015
Category:
Upload: joan-a-garcia-espin
View: 243 times
Download: 0 times
Share this document with a friend
57
www.opennaas.org http://www.opennaas.org/ Overview Pau Minoves, September 2012
Transcript
Page 1: OpenNaaS Overview Complete

www.opennaas.orghttp://www.opennaas.org/

Overview

Pau Minoves, September 2012

Page 2: OpenNaaS Overview Complete

Objective

• A software project, that feeds from research.– Enable long-term research to happen on top of it.

• And leverage past research and assets.

• Create a community that allows several stakeholders tocontribute and benefit from a common NaaS software stack.• Open Source, Open community.

– Solid base functionality that can be used on a productionenvironement.• Users increase life span.

• Faster research output adoption.

Page 3: OpenNaaS Overview Complete

THE COMMUNITY

3

Page 4: OpenNaaS Overview Complete

www.opennaas.org• All pointers to

relevant information and news at our homepage.

• You are welcome to the mailing list!

4

Page 5: OpenNaaS Overview Complete

Open forge• Code, both stable

and development branches available online.

• One-click fork.

Page 6: OpenNaaS Overview Complete

Open forge• All code

contributions (internal and external) are queued for public review and discussion.

6

Page 7: OpenNaaS Overview Complete

Developer tools• Continuous

build system is available online.

7

Page 8: OpenNaaS Overview Complete

get & compile & install

• Built it from scratch:

8

$ git clone git://github.com/dana-i2cat/opennaas.git$ cd opennaas$ git checkout develop # optional$ mvn install

$ cd opennaas$ mvn clean$ git pull git://github.com/dana-i2cat/opennaas.git$ mvn install

$ cp –r platform/target/opennaas-0.10 /srv$ cd /srv/opennaas-0.10$ ./bin/opennaas.sh

• Update from source:

• Run it:

Fetch code

Fetch unstableBuilt it

Clean past builtFetch updatesBuilt it

Enjoy!

Page 9: OpenNaaS Overview Complete

Distribution Overview

9

• OSGi

– List, start, stop

– --help

• Features.

• Configuration.

Page 10: OpenNaaS Overview Complete

THE APPROACH

10

Page 11: OpenNaaS Overview Complete

OpenNaaS Key Requirements

• On demand (commonly user-triggered) provisioning of network resources.

• Recursive delegation of access right over managed resources.

• Lightweight Abstracted operational model.– Decoupled from actual vendor-specific details.

– Flexible enough to accomodate diferent designs and orientations

– Fixed enough so common tools can be build and reused acrossplugins.• Security.

• Lifecycle.

• Monitoring.

• Deployment and upgrade.

• Service orchestration.

Page 12: OpenNaaS Overview Complete

OpenNaaS Stakeholders

• Network Operators with an interest on NaaS:– NREN.

– Cloud Datacenter.

– New services for ISP’s.

• ISV and integrators– middleware-network

orchestration.

• Developers and network researchers.

FUSE ServiceMix

Platform

Extensions

Third Party plugins

OTS

dis

trib

uti

on

Page 13: OpenNaaS Overview Complete

OpenNaaS Platform

• For developers and researchers:– Modern IDEs available– Maven based build system and

dependency management– Plugin howto documentation– Several available open source

plugins as reference– An open OpenNaaS community– Comercial support for underlying

technologies

• Leverage building blocks, both usingexisting resources or for creatingnew ones.– Resource Respository and Manager– Protocol Session Manager– Standard Capabilities– Protocol Endpoints for remoting

(SOAP, REST, etc).– Platform manager– *.apache.org deployment ready

libraries.• While plugins can chose to use

technologies like hibernate, spring orESB, they don’t have to.

Page 14: OpenNaaS Overview Complete

NETWORK INTELIGENCE

Page 15: OpenNaaS Overview Complete

See Mantychore FP7 use cases

Page 16: OpenNaaS Overview Complete

THE TOOL

Page 17: OpenNaaS Overview Complete

NaaS Lightweight Abstraction

Capability

Resource

RPC

Page 18: OpenNaaS Overview Complete

Platform

CLI

Per

sist

en

ce

Qu

eue

Res

ou

rce

Man

ager

. . .

Security

Protocol Session Manager

Resource Lifecycle

Resource Layer

Ro

ute

r R

eso

urc

e

Net

wo

rk R

eso

urc

e

Bo

DR

eso

urc

e

Op

tica

l Sw

itch

R

eso

urc

e

. . .

Remoting

Scri

pti

ng

GU

I

Op

enN

ebu

la

Op

enSt

ack

NS

NSA

(N

SI)

. . .

3P Extensions

3P Middleware

OpenNaaS ArchitectureNetwork Intelligence• Integration with Northbound

Middleware• IaaS/Cloud managers• Other NMS.

• The user

NaaS Layer• Network HAL abstraction to

infrastructure.• Resources manageable by the user.

• Access controlled by the Sec. Manager.

Platform• Reusable building blocks, common to

all extensions.• Controls access to the infrastructure.

• Integrity, Policy, etc..

Managed infrastructure

BoD

Page 19: OpenNaaS Overview Complete

OpenNaaS Platform Base Components

• ResourceManager.– Manages the persistence and lifecycle of Resources.– There is a ResourceManager repository implementation for

each ResourceType.• Which acts as a Factory for that type.

– Implements also Profiles, we’ll see that later.– Which brings us to the NaaS abstraction reusable concepts;

• Resource• Resource Type• Capability• Action• ActionSet• Profile

Page 20: OpenNaaS Overview Complete

OpenNaaS Platform Base Components

• Reusable concepts:– A Resource represents a manageable unit inside the NaaS

concept.• A Resource can be a switch, a router, a link, a logical router, a

network, etc…– Instantiations of a Resource Type.

• Resources share a simple lifecycle:– Initialized, loaded in memory.– Active, accepts calls.

CapabilityResourceRPC

Router

Page 21: OpenNaaS Overview Complete

OpenNaaS Platform Base Components

• Reusable concepts:– A Resource represents a

manageable unit inside the NaaS concept.• A Resource is decomposed in:

– A model– An array of Capabilities.

• The ResourceType defines:– The model.– Which Capabilities are allowed.

• Which Capabilities are actually callable will depend on that actual Resource instance.

» The Resource can be interrogated.

CapabilityResourceRPC

Router

Chassis

GRE

OSPF

Page 22: OpenNaaS Overview Complete

OpenNaaS Platform Base Components

• Reusable concepts:– A Capability is an interface to a given

Resource functionality.• I.e. for a router:

– OSPF, IPv6, Create/manage logical routers, etc.

• Callable by the user.

– This interface is, as the Model, abstracted and vendor neutral.

– Internally the Capability, is implemented for each kind of device.• Hence, some capabilities might not be

available for some vendors.

– The Capability is the HAL limit for OpenNaaS.

CapabilityResourceRPC

Router

Chassis

GRE

OSPF

Page 23: OpenNaaS Overview Complete

OpenNaaS Platform Base Components

• Internally, Capabilities need a way to abstract implementation details of the devices.– They use Actions.

• An Action is a vendor (and protocol) specific implementation of a configuration modification.– It can be Queue’d.– It can be undone (rollback).

• Actions are grouped into an ActionSet.• On Action.execute(), the action usually

asks to the ProtocolSessionManagerfor an appropriate ProtocolSession to communicate with the device.

CapabilityResourceRPC

Page 24: OpenNaaS Overview Complete

OpenNaaS Platform Base Components

• An Action can be implemented from scratch:– Just fill the execute() method with

some code.

• Or reused from some adaptors we have.– Most importantly, netconf actions

are very XML-intensive.

– They use a digester rule set for XML processing

– And Velocity for XML creation.CapabilityResourceRPC

Page 25: OpenNaaS Overview Complete

OpenNaaS Platform Base Components

• A Profile is an alternative set of ActionSets.

• They can be deployed at runtime to the container.

• On creation time, a Profile can be specified for a given Resource.

• When looking for an Action to execute (or queue), Capabilities will first check the Profile for an alternative Action.– If found, it will be executed instead of

the default one.

• This is a mechanism for OpenNaaS administrators to modify behaviour of default capabilities.

CapabilityResourceRPC

Page 26: OpenNaaS Overview Complete

OpenNaaS Platform Base Components

• The QueueManager is used to stack all Actions to be executed.– All modifications can be done over

the network at once.– Allows rollback of Actions.– Objective: the network-wide

rollback of actions.– It is both a Capability and a OSGI

Service.• The user can check and manipulate

the Queue as a Capability.• The rest of Capabilities can work

with it via the OSGi registry.– Saves a lot of serialization.

CapabilityResourceRPC

Page 27: OpenNaaS Overview Complete

PLATFORM

Page 28: OpenNaaS Overview Complete

Fuse ServiceMix• Standards based

• Open Source

• State of the art technologies– OSGi, Java 6, Apache SF, Scala, etc

– Roll your own

• Componetized compilation of Apache library.

• Documented

• Comercial support.

• Portable– Linux, Windows, Mac.

• Not always the latest library versions…

Page 29: OpenNaaS Overview Complete

Platform• Based on a component container:

– OSGi R4 (Apache Felix’s implementation)

• Mainly, this allows:– The application is split components, and they are:

• Started and stopped at runtime.– Which can be explored and manipulated via the CLI– Which can be handled programmatically (via events, RPC, etc).

• Installed and updated from a (remote) repository.

– Components are isolated from each other.• Classes from a bundle cannot import from other bundles.• Unless explicitly allowed to.• There is a service publication/consumption registry.

• On OSGi, these components are called bundles.– A bundle is a jar + some special lines on the MANIFEST.– Features.xml allow to specify a version of the platform + an initial set

bundles.

Page 30: OpenNaaS Overview Complete

Component Architecture

Operating System

Java 6 VM

OSGi Container

OSGi

FUSE

NaaS

NaaS

Plug-in

FUSE

NaaS

NaaS

Plug-in

Plug-in

FUSE

NaaS

Plug-in

Plug-in

Plug-in

Bu

nd

les

OSG

iDis

trib

.

Exported functionality

Deploy, Upgrade, Monitor, etc

Modern IDE, Remote debug, etc

Unix, Linux, MacOS, Windows, etc

Page 31: OpenNaaS Overview Complete

Bundle lifecycle

Page 32: OpenNaaS Overview Complete

OpenNaaS Platform

• Embeddable and interoperable.– Component of a bigger middleware

• i.e. a cloud management infrastructure.

– L-GPLv3 for the platform.

• Foundation of the NaaS layer.

• Reusable concepts across plugins– Resource, Capability, Action, Lifecycle.

– A command toolset and remoting layer is built around thisconcepts.

– Etc

• Shared but defined roadmap.

Page 33: OpenNaaS Overview Complete

OpenNaaS Platform Base Components

• Leverage building blocks:– Resource Respository and Manager

• Handles lifecycle and persistence.

– Protocol Session Manager• Mantains protocol session lifecycle, with an eye on session reusability.

• Additional protocols can be added

– Standard Capabilities• Queue (for configuration deployment).

– Protocol Endpoints for remoting (SOAP, REST, etc).

– Platform manager

– *.apache.org deployment ready libraries.• While plugins can chose to use technologies like hibernate, spring or ESB,

they don’t have to.

Page 34: OpenNaaS Overview Complete

OpenNaaS Platform Base Components

• Protocol Session Manager– Implements the ProtocolSession abstraction

• Currently we have these implementations:– Netconf (IRTF).– Onesys (EMS Module).– CLI (Telnet, SSH).– TL1 (TCP, SSL).

– Manages ProtocolSession lifecycle.• Performs pooling, if possible.• Reuses sessions (keeps them alive for some minutes).• ProtocolSession events.

– Isolates ProtocolSession usage from credentials.• Loads and pairs ProtocolSessionContexts with appropiate device.• transport://user:password@ip:port/subsystem

Page 35: OpenNaaS Overview Complete

Transactional Queue

35

Network

Queue

Router

Queue

Router

Queue

Router

Queue

Client begin

Write candidateConfiguration and validate

Write candidateConfigurationand validate

Write candidateConfigurationand validate

Page 36: OpenNaaS Overview Complete

Transactional Queue

36

Network

Queue

Router

Queue

Router

Queue

Router

Queue

Client begin

Activate newconfiguration

Activate newconfiguration

Activate newconfiguration

Ok

commit

Ok

Page 37: OpenNaaS Overview Complete

Transactional Queue

37

Network

Queue

Router

Queue

Router

Queue

Router

Queue

Client begin

Discard changes,load previous confif necessary

Discard changes,load previous confif necessary

Discard changes,load previous confif necessary

Fail!

Page 38: OpenNaaS Overview Complete

SAMPLE WORKFLOW

Page 39: OpenNaaS Overview Complete

workflow

Client

Router

Queue

OSPFospf.activate(…)

Queue.addAction( OSPFAction.ACTIVATE, …)

> resource:list> ospf:activate router:A …

GET http://opennaas/resourceManager/list

resources {router [ “A”, “B” ]}

GET http://opennaas/router/A/ospf

activated = false

POST http://opennaas/router/A/ospf/activateospfservice {

running.mospf = true.area { … }

}

200 OK

Page 40: OpenNaaS Overview Complete

workflow

Client

Router

Queue

OSPFqueue.list()

> queue:list router:A…

GET http://opennaas/router/A/queue

queue [ OSPFAction.ACTIVATE ]

Actions[]

Page 41: OpenNaaS Overview Complete

workflow

Client

Router

Queue

OSPFqueue.execute()

> queue:execute router:APOST http://opennaas/router/A/queue/executetimeout = 0

200 OK

Page 42: OpenNaaS Overview Complete

workflow

Client

Router

Queue

OSPFqueue.execute()

> queue:execute router:APOST http://opennaas/router/A/queue/executetimeout = 0

200 OK

getConnection( router:A, “netconf”);

Page 43: OpenNaaS Overview Complete

workflow

Client

Router

Queue

OSPFqueue.execute() Execute Action

UserParams

<configuration>#set($logicalRouter = "false")#if(!$elementName.equals(""))

#set($logicalRouter = "true")#end#if($logicalRouter.equals("true"))

<logical-systems><name>$elementName</name>

#end

<protocols><ospf>

#foreach($ospfAreaConfig in $param.getOSPFAreaConfiguration())#set($ospfArea = $ospfAreaConfig.getOSPFArea())<area>

<name>$ipUtilsHelper.ipv4LongToString($ospfArea.getAreaID())</name>#foreach($ospfPep in $ospfArea.getEndpointsInArea())##replace the content on interface with given name<interface operation="replace">

<name>$ospfPep.getName()</name>##ENABLED/DISABLED#if($ospfPep.getEnabledState().toString().equals($disabledState))<disable/>#end

</interface>#end

</area>#end

</ospf></protocols>#if($logicalRouter.equals("true"))

</logical-systems>#end

</configuration>

Page 44: OpenNaaS Overview Complete

workflow

Client

Router

Queue

OSPFospf.getConfiguration() Parse new configuration into the model

> queue:execute router:AOK>

POST http://opennaas/router/A/queue/executetimeout = 0

200 OK

GET http://opennaas/router/A/ospf/info

ospfservice {running.mospf = true.area { … }

}

Page 45: OpenNaaS Overview Complete

EXTENSIONS

Page 46: OpenNaaS Overview Complete

NaaS Lightweight Abstraction

Capability

Resource

RPC

Page 47: OpenNaaS Overview Complete

Router

47

OSPF• activate• deactivate• configure• getConfiguration• configureArea• addInterfaces• ....

IPV4• setipv4• setInterfaceDescrip

Chassis• upPhysicInterface• downPhysicInterface• createSubInterface• setEncapsulation• createLogicalRouter• addInterfacesToLR• ....

GRE Tunnel• createGRETunnel• deleteGRETunnel• showGRETunnelConf

Static Route• createStaticRoute

• removeStaticRoute

Page 48: OpenNaaS Overview Complete

BoD

48

L2BOD

• requestConnection

• shutDownConnection

Page 49: OpenNaaS Overview Complete

Network

49

Basic Network

• addResource

• removeResource

• L2attach

• l2detach

Net OSPF

• activateOSPF

• deactivateOSPF

Page 50: OpenNaaS Overview Complete

ROADM

50

Connections

• makeConnection

• removeConnection

Monitoring

• clearAlarms

• getAlarms

Page 51: OpenNaaS Overview Complete

MACBridge

51

VLAN Aware Bridge

• createVLANConfiguration

• deleteVLANConfiguration

• addStaticVLANRegistration

• deleteStaticVLANRegistration

Page 52: OpenNaaS Overview Complete

ROADMAP

Page 53: OpenNaaS Overview Complete

Roadmap

• Extensions and platform upgrades are performed according to:

– Research projects

– Internal initiatives from i2CAT

– Initiatives from third party extensions

– Privately funded projects from industry

• The roadmap is open to discussion on the usual project forums (i.e. mailing lists).

Page 54: OpenNaaS Overview Complete

Extensions RoadmapDone Current Short-term (<6m) Mid-Term (>6m)

L1 ROADM

L2 BoD Domain client• AutoBAHN

BoD Domain Server• Porting Harmony IDB

BoD Domain Server• NSI interface.

L2 / L3 Router

L3 Network

Manager GUI

Security Manager• SAML Idp

Cloud Manager connectors• OpenStack NetworkS

ervice drop-in replacement

• OpenNebula 3.0

• Energy consumption metrics.

• Infrastructure Marketplace.

OpenFlow Controller

Page 55: OpenNaaS Overview Complete

Extensions Roadmap by Project

2012 2013 2014 2015 2016

Mantychore UC1 UC2

NOVI SFA Adapter

GEYSERS MAC Bridge

CONTENT

OFERTIE

SODALES

GN3+

Wifi/TDM Resources

OpenFlow SLA Manager

Wifi/TDM Orchestrator

ARN Resource

GN3

Page 56: OpenNaaS Overview Complete

Third Party Extensions

• Mantychore extensions are ASLv2, so they can be used as foundation for additional extensions– Additional extensions can have any license.

• New extensions can have any license.

• Possibility to be hosted on private repositories.– And both be installed with a platform well-known

command• feature:install http://net.biz/3rd.party.feature

• Can leverage both platform functionality and default extensions.

Page 57: OpenNaaS Overview Complete

BACKUP

57


Recommended