Jump to: navigation, search

Difference between revisions of "NetworkService"

Line 18: Line 18:
 
== Glossary ==
 
== Glossary ==
  
'''openstack-NaaS''': The customer-facing service proposed by this blueprint.  This distinguishes it from the existing nova-network.
+
'''NaaS''': Network as a Service
  
'''Core NaaS''': Core services that should be provided by openstack-NaaS in order to ensure basic connectivity.  
+
'''Openstack-NaaS''': The customer-facing service proposed by this blueprint.  This distinguishes it from the existing nova-network.
  
'''Higher Layer NaaS services''': L3/L7 network services which might be provided by NaaS, i.e.: that are not strictly necessary to ensure basic connectivity.
+
'''Higher Layer services''': L4/L7 network services which might be enabled for networks created by NaaS.
  
 
'''The OpenStack NaaS API''': The customer-facing API exposed by openstack-NaaS.
 
'''The OpenStack NaaS API''': The customer-facing API exposed by openstack-NaaS.
Line 31: Line 31:
 
The goal of this blueprint is to add a first-class, customer-facing service for the management of network infrastructure within an OpenStack cloud.  This will allow service providers to offer "Networking as a Service" (NaaS) to their customers.  
 
The goal of this blueprint is to add a first-class, customer-facing service for the management of network infrastructure within an OpenStack cloud.  This will allow service providers to offer "Networking as a Service" (NaaS) to their customers.  
  
This blueprint is divided in two parts:
+
This blueprint discusses goals, use cases, requirements and design ideas for features and capabilities to enable in openstack-NaaS in order to be able to create and manage networks intended as ''collection of ports with shared connectivity'', which provide VM instances with Layer-2 and possibly Layer-3 connectivity.
* '''[http://wiki.openstack.org/NaaS-Core Core NaaS]''': discusses goals, use cases, requirements and design ideas for features and capabilities to enable in openstack-NaaS in order to be able to create and manage networks intended as ''collection of ports with shared connectivity''
+
 
* '''[http://wiki.openstack.org/NaaS-HigherLayer Higher-Layer NaaS]''': discusses goals, uses cases, requirements, and design ideas for features to enable in openstack-NaaS in order to be able to provide customers with L3/L7 networks services such as Firewalls, VPN access and Load Balancing.
+
Higher-layer services, such as Firewall, NAT, VPN, and Load Balancing, will instead be provided by distinct services communicating with NaaS through exposed APIs. L4/L7 services are discussed at this [http://wiki.openstack.org/NaaS-HigherLayer wiki page]'.  
  
 
== Pre-requisites ==
 
== Pre-requisites ==
  
'''Multiple VIFs per VM'''.  Not in OpenStack in Cactus, but expected to be added to Nova through [[NovaSpec]]:multi-nic and [[NovaSpec]]:multinic-libvirt for  Diablo.  This is required for all supported virtualization technologies (KVM/libvirt, XenAPI, Hyper-V, ESX).
+
'''Multiple VIFs per VM'''.  Not in OpenStack in Cactus, but expected to be added to Nova through [[NovaSpec]]:multi-nic and [[NovaSpec]]:multinic-libvirt for  Diablo.  This is required for all supported virtualization technologies (currently KVM/libvirt, XenAPI, Hyper-V, ESX).
  
 
== Development Resources ==
 
== Development Resources ==
Line 47: Line 47:
 
== Work in Progress ==
 
== Work in Progress ==
  
[https://launchpad.net/~erik-carlin Erik Carlin] is working on a draft spec for the OpenStack Networking API.
+
The following blueprints concerning Network Services for Openstack have been registered:  
  
Some POC code is being worked on at lp:~ntt-pf-lab/nova/network-service, wiki page available at http://wiki.openstack.org/NetworkServicePOC
+
* [http://wiki.openstack.org/NetworkServicePOC Network Service POC], registered by [https://launchpad.net/~ishii-hisaharu Hisaharu Ishii] from [[https://launchpad.net/~ntt-pf-lab|NTT-PF Lab].
 +
  There is also some POC code being worked on at lp:~ntt-pf-lab/nova/network-service
 +
* [[https://blueprints.launchpad.net/nova/+spec/netcontainers || netcontainers], registered by [https://launchpad.net/~dramesh Ram Durairaj] from [https://launchpad.net/~cisco-openstack Cisco]
  
Cisco has also proposed a blueprint around Openstack-NaaS: https://blueprints.launchpad.net/nova/+spec/netcontainers
+
Also:
 +
* [https://launchpad.net/~erik-carlin Erik Carlin] is working on a draft spec for the OpenStack Networking API.
 +
* As already mentioned, work on supporting multiple virtual network cards per instance is already in progress. (https://blueprints.launchpad.net/nova/+spec/nova-multi-nic)
 +
* [[https://launchpad.net/~ilyaalekseyev|Ilya Alekseyev] has registered the [[https://blueprints.launchpad.net/nova/+spec/distros-net-injection|distros-net-injection] blueprint in order to support file-system-based IP configuration in injection for a number of linux distros (nova now supports debian-based distros only). [https://launchpad.net/~berendt Christian Berendt] also registered a similar blueprint, [[https://blueprints.launchpad.net/nova/+spec/injection|Injection]
 +
* [https://launchpad.net/~danwent Dan Wendlandt] has registered a [[https://blueprints.launchpad.net/nova/+spec/openvswitch-network-plugin|blueprint] for a NaaS plugin based on [http://www.openvswitch.org Open vSwitch]
  
 
== Discussion ==
 
== Discussion ==

Revision as of 10:23, 12 April 2011


This blueprint is being redrafted. Ewan Mellor will be happy to hear from you if you wish to contribute. Nothing here is committed.

There is a Discussion section at the end of this blueprint. Please feel free to put comments there.


<<TableOfContents()>>

Glossary

NaaS: Network as a Service

Openstack-NaaS: The customer-facing service proposed by this blueprint. This distinguishes it from the existing nova-network.

Higher Layer services: L4/L7 network services which might be enabled for networks created by NaaS.

The OpenStack NaaS API: The customer-facing API exposed by openstack-NaaS.

VIF: Virtual InterFace. A VM's network interface. Also known as a vNIC.

Summary

The goal of this blueprint is to add a first-class, customer-facing service for the management of network infrastructure within an OpenStack cloud. This will allow service providers to offer "Networking as a Service" (NaaS) to their customers.

This blueprint discusses goals, use cases, requirements and design ideas for features and capabilities to enable in openstack-NaaS in order to be able to create and manage networks intended as collection of ports with shared connectivity, which provide VM instances with Layer-2 and possibly Layer-3 connectivity.

Higher-layer services, such as Firewall, NAT, VPN, and Load Balancing, will instead be provided by distinct services communicating with NaaS through exposed APIs. L4/L7 services are discussed at this wiki page'.

Pre-requisites

Multiple VIFs per VM. Not in OpenStack in Cactus, but expected to be added to Nova through NovaSpec:multi-nic and NovaSpec:multinic-libvirt for Diablo. This is required for all supported virtualization technologies (currently KVM/libvirt, XenAPI, Hyper-V, ESX).

Development Resources

No commitments have been made yet, but development resources have been offered by Citrix, Grid Dynamics, NTT, Midokura, and Rackspace.

We will sort out how to share the development burden when this specification is nearer completion.

Work in Progress

The following blueprints concerning Network Services for Openstack have been registered:

  There is also some POC code being worked on at lp:~ntt-pf-lab/nova/network-service

Also:

Discussion

Etherpad from discussion session at Bexar design summit: http://etherpad.openstack.org/i5aSxrDeUU

Etherpad from alternative discussion session at Bexar design summit: http://etherpad.openstack.org/6tvrm3aEBt

Slide deck from discussion session at Bexar design summit: http://www.slideshare.net/danwent/bexar-network-blueprint