Jump to: navigation, search

Difference between revisions of "Neutron"

(Using Quantum)
(Plugins)
 
(89 intermediate revisions by 47 users not shown)
Line 1: Line 1:
 +
[[Category:Networking]]
 +
[[Category:Neutron]]
 +
= OpenStack Networking ("Neutron") =
  
= OpenStack Networking ("Quantum") =
+
{{Warning|header='''Caution'''|body=The content of this wiki may be obsolete and replaced by content available at: https://docs.openstack.org/neutron/latest/}}
  
 
{| border="1" cellpadding="2" cellspacing="0"
 
{| border="1" cellpadding="2" cellspacing="0"
Administrator Guide  
+
[http://docs.openstack.org/networking-guide/index.html OpenStack Networking Guide ]
 
|-
 
|-
API Developer Doc (v2)
+
[http://docs.openstack.org/admin-guide-cloud/content/ch_networking.html Administrator Guide ]
 
|-
 
|-
Source code 
+
[http://docs.openstack.org/user-guide/content/neutron_client_sample_commands.html Neutron CLI Guide ]
 
|-
 
|-
Bug tracker 
+
| [http://docs.openstack.org/api/openstack-network/2.0/content/ API Developer Doc (v2) ]
 
|-
 
|-
|  Blueprints  
+
| [https://github.com/openstack/neutron Source code ]
 +
|-
 +
| [https://bugs.launchpad.net/neutron Bug tracker  ]
 +
|-
 +
| [https://blueprints.launchpad.net/neutron Blueprints ]
 
|}
 
|}
  
== Related projects ==
+
== Neutron Mission Statement ==
* [https://launchpad.net/python-quantumclient Python Quantum client]
+
To implement services and associated libraries to provide on-demand, scalable, and technology-agnostic network abstraction. [https://git.openstack.org/cgit/openstack/governance/tree/reference/programs.yaml Source]
* Quantum Admin and API documentation in [https://launchpad.net/openstack-manuals  OpenStack Manuals]
 
  
== What is Quantum? ==
+
== What is Neutron? ==
 +
Neutron is an OpenStack project to provide "networking as a service" between interface devices (e.g., vNICs) managed by other Openstack services (e.g., nova). 
  
Quantum is an [https://wiki.openstack.org OpenStack] project to provide "networking as a service" between interface devices (e.g., vNICs) managed by other Openstack services (e.g., nova).   
+
Starting in the Folsom release, Neutron is a core and supported part of the OpenStack platform (for Essex, we were an "incubated" project, which means use is suggested only for those who really know what they're doing with Neutron).   
  
Starting in the Folsom release, Quantum is a core and supported part of the [https://wiki.openstack.org OpenStack] platform (for Essex, we were an "incubated" project, which means use is suggested only for those who really know what they're doing with Quantum). 
+
If you're a networking geek and like to hack on OpenStack, please join!
  
If you're a networking geek and like to hack on [https://wiki.openstack.org OpenStack], please join!
+
More Info:
 +
* [http://www.slideshare.net/danwent/openstack-quantum-intro-os-meetup-32612 Overview of Neutron] (slides) (3/12)
 +
* [https://www.youtube.com/watch?v=_I1SrO2QBpg Neutron Project Overview + Update from Grizzly Summit] (video) (10/12)
 +
* [http://www.infoq.com/presentations/Quantum-Virtual-Networks-for-OpenStack Video Neutron Overview] (3/12)
 +
* [http://sdrv.ms/YdnQYS Slides on Technical Architecture of Neutron] (2013-03-14)
 +
* [https://www.gitbook.com/read/book/yeasy/openstack_understand_neutron Understanding Neutron (in CN)] (2015-03-24)
  
More Info:
+
== Related projects ==
* [http://www.slideshare.net/danwent/openstack-quantum-intro-os-meetup-32612 Overview of Quantum ] (slides) (3/12)
+
* [https://launchpad.net/python-neutronclient Python Neutron client]
* [https://www.youtube.com/watch?v=_I1SrO2QBpg Quantum Project Overview + Update from Grizzly Summit ] (video) (10/12)
+
* Neutron Admin and API documentation in [https://launchpad.net/openstack-manuals  OpenStack Manuals]
* [http://www.infoq.com/presentations/Quantum-Virtual-Networks-for-OpenStack Video Quantum Overview ] (3/12)
+
* Tempest testing project [http://docs.openstack.org/developer/tempest/ Tempest Manuals]. For the Icehouse cycle, the community is undertaking a focused effort to strengthen the suite of Tempest tests for Neutron. If you are interested on contributing to this effort, please go to [https://etherpad.openstack.org/p/icehouse-summit-qa-neutron Icehouse Neutron Tempest push] to see what is being done and to [https://wiki.openstack.org/wiki/Neutron/TempestAPITests TempestAPITests] for HOWTO instructions. Helping to develop Tempest tests (particularly API tests) is an excellent way for new contributors to learn Neutron.
* [http://wiki.openstack.org/Quantum?action=AttachFile&do=get&target=quantum-technical-archicture.ppt Slides on Technical Architecture of Quantum] (9/12)
 
  
== Why Quantum? ==
+
== Why Neutron? ==
  
 
* Give cloud tenants an API to build rich networking topologies, and configure advanced network policies in the cloud.   
 
* Give cloud tenants an API to build rich networking topologies, and configure advanced network policies in the cloud.   
** Example: create multi-tier web application topology
+
** Example: create multi-tier web application topology
 
* Enable innovation plugins (open and closed source) that introduce advanced network capabilities
 
* Enable innovation plugins (open and closed source) that introduce advanced network capabilities
** Example:  use L2-in-L3 tunneling to avoid VLAN limits, provide end-to-end QoS guarantees, used monitoring protocols like [[NetFlow]].  
+
** Example:  use L2-in-L3 tunneling to avoid VLAN limits, provide end-to-end QoS guarantees, use monitoring protocols like [[NetFlow]].  
 
* Let anyone build advanced network services (open and closed source) that plug into Openstack tenant networks.   
 
* Let anyone build advanced network services (open and closed source) that plug into Openstack tenant networks.   
** Examples:  LB-aaS, VPN-aaS, firewall-aaS, IDS-aaS, data-center-interconnect-aaS.
+
** Examples:  LB-aaS, VPN-aaS, firewall-aaS, IDS-aaS (not implemented), data-center-interconnect-aaS.
 +
* Horizon GUI support for:
 +
** Neutron L2 and L3 network and subnet creation/deletion
 +
** Booting VMs on specific Neutron networks. 
 +
* API Extensibility Framework, including extensions for:
 +
** "provider network", which maps Neutron L2 networks to a specific VLAN in the physical data center
  
== Using Quantum ==
+
== Using Neutron ==
  
Following the instructions in the  [http://docs.openstack.org/incubation/openstack-network/admin/contentQuantum Administrator Guide] to use Quantum with OpenStack Nova.   
+
Follow the instructions in the  [http://docs.openstack.org/networking-guide/index.html Networking Guide], or use the installation documentation at http://docs.openstack.org to use Neutron with OpenStack Nova.   
  
Forget documentation, I just want to get the code!:  [https://launchpad.net/quantum/+download Quantum Downloads]
+
Forget documentation, I just want to get the code!:  [https://launchpad.net/neutron/+download Neutron Downloads]
  
Detailed information for programming against v2.0 of the Quantum web services API is available in the [http://docs.openstack.org/api/openstack-network/2.0/content/  Quantum API Guide]   
+
Detailed information for programming against v2.0 of the Neutron web services API is available in the [http://docs.openstack.org/api/openstack-network/2.0/content/  Neutron API Guide]   
  
If you are looking for information on using Quantum with devstack, please see: [[QuantumDevstack]] .  
+
If you are looking for information on using Neutron with devstack, please see: [[NeutronDevstack]] .  
  
Quantum lets you use a set of different backends called "plugins" that work with a growing variety of networking technologies.  These plugins may be distributed as part of the main Quantum release, or separately.
+
Neutron lets you use a set of different backends called "plugins" that work with a growing variety of networking technologies.  These plugins may be distributed as part of the main Neutron release, or separately.
  
The set of plugins included in the main Quantum distribution and supported by the Quantum community include:  
+
== Plugins ==
 +
The set of plugins originally included in the main Neutron distribution and supported by the Neutron community include:  
  
 
* [http://www.openvswitch.org Open vSwitch] Plugin
 
* [http://www.openvswitch.org Open vSwitch] Plugin
* [http://wiki.openstack.org/cisco-quantum Cisco UCS/Nexus] Plugin
+
* [http://networking-cisco.readthedocs.io/en/latest/  Cisco UCS/Nexus] Plugin
 +
* [http://networking-cisco.readthedocs.io/en/latest/  Cisco ASR1000] Plugin
 
* [http://wiki.openstack.org/Quantum-Linux-Bridge-Plugin  Linux Bridge] Plugin
 
* [http://wiki.openstack.org/Quantum-Linux-Bridge-Plugin  Linux Bridge] Plugin
 +
* [http://wiki.openstack.org/Neutron/ML2  Modular Layer 2] Plugin
 
* [http://www.nicira.com  Nicira Network Virtualization Platform (NVP)] Plugin
 
* [http://www.nicira.com  Nicira Network Virtualization Platform (NVP)] Plugin
 
* [http://www.osrg.net/ryu/using_with_openstack.html  Ryu OpenFlow Controller] Plugin
 
* [http://www.osrg.net/ryu/using_with_openstack.html  Ryu OpenFlow Controller] Plugin
* [[Quantum NEC OpenFlow Plugin|NEC OpenFlow]] Plugin  
+
* [[Neutron/NEC OpenFlow Plugin|NEC OpenFlow]] Plugin  
* [http://www.openflowhub.org/display/floodlightcontroller/Quantum+REST+Proxy+Plugin  Big Switch OpenFlow Controller Plugin]
+
* [http://docs.projectfloodlight.org/display/floodlightcontroller/Quantum+REST+Proxy+Plugin  Big Switch Controller Plugin]
 
* [http://www.cloudbase.it/quantum-hyper-v-plugin/  Cloudbase Hyper-V] Plugin
 
* [http://www.cloudbase.it/quantum-hyper-v-plugin/  Cloudbase Hyper-V] Plugin
 +
* [http://www.midonet.org  MidoNet] Plugin
 +
* [https://github.com/brocade/brocade  Brocade Neutron Plugin] Brocade Neutron Plugin
 +
* [https://wiki.openstack.org/wiki/PLUMgrid-Neutron PLUMgrid] Plugin
 +
* [https://wiki.openstack.org/wiki/Mellanox-Neutron Mellanox Neutron Plugin] Mellanox Neutron Plugin
 +
* [https://wiki.openstack.org/wiki/Neutron/EmbraneNeutronPlugin Embrane Neutron Plugin]
 +
* [https://wiki.openstack.org/wiki/IBM-Neutron IBM SDN-VE] Plugin
 +
* [http://www.cplanenetworks.com/ CPLANE NETWORKS ] CPLANE NETWORKS
 +
* [http://www.nuagenetworks.net/ Nuage Networks] Plugin
 +
* [http://www.opencontrail.org OpenContrail] OpenContrail Plugin
 +
* [[Neutron/ML2/LenovoML2Mechanism|Lenovo Networking]] Lenovo Networking Plugin
 +
* [https://wiki.openstack.org/wiki/Avaya-Neutron Avaya Neutron Plugin] Avaya Neutron Plugin
 +
 +
 +
  
 
Additional plugins are available from other sources:  
 
Additional plugins are available from other sources:  
 +
* [http://networking-cisco.readthedocs.io/en/latest/  Cisco Systems] Plugin
 +
* [http://www.extremenetworks.com  Extreme Networks] Plugin
 +
* [https://github.com/ruijie/rgos_quantum_plugin  Ruijie Networks] Plugin
 +
* [https://www.juniper.net/support/downloads/?p=qpluginopen#sw Juniper Networks] Neutron Plugin
 +
* [http://www.projectcalico.org/ Calico] [https://github.com/Metaswitch/calico Neutron Plugin] ([http://docs.projectcalico.org/en/latest/openstack.html docs])
 +
* [https://github.com/China863SDN/DCFabric  BNC] Plugin ([http://www.sdn863.org.cn/ docs])
 +
* [https://github.com/asterfusion/networking-afc Asterfusion Networks] Plugin
 +
If you have your own plugin, feel free to add it to this list.
  
* [http://floodlight.openflowhub.org/quantum-and-openstack/  Floodlight OpenFlow Controller] Plugin
+
== Havana Release and ML2 Plugin Update ==
* [https://github.com/midokura/midonet-openstack  MidoNet] Plugin
+
Starting with Havana release, openvswitch and linuxbridge plugins are deprecated. Modular Layer 2 (ML2) plugin replaces these plugins.  
* [http://www.extremenetworks.com  Extreme Networks] Plugin
+
L2 agents work with ML2 plugin and continue to work with the deprecated monolithic plugins.  
* (NEW) [https://github.com/ruijie/rgos_quantum_plugin  Ruijie Networks] Plugin
 
* [https://github.com/brocade/brocade  Brocade Quantum Plugin] Brocade Quantum Plugin
 
  
If you have your own plugin, feel free to add it to this list.
+
ML2 plugin architecture facilitates the type drivers to support multiple networking technologies, and mechanism drivers to facilitate the access to the networking configuration in a transactional model. The details of these drivers is described [https://wiki.openstack.org/wiki/Neutron/ML2#ML2_Drivers here]. Long term goal is to transition all vendor specific plugins to the type and mechanism drivers.  
  
== Current Project Status ==
+
Following [https://wiki.openstack.org/wiki/Neutron/ML2#Type_Drivers Type Drivers] are supported:
 +
* Flat
 +
* Local
 +
* VLAN
 +
* GRE
 +
* VxLan
  
The 2012.2 "Folsom" release includes:
 
  
* v2.0 of the Quantum API, including support for L2 networking and IP Address Management (IPAM)
+
Following Vendor specific [https://wiki.openstack.org/wiki/Neutron/ML2#Mechanism_Drivers Mechanism Drivers] are supported:
* Integration with Keystone for API authentication
+
* [https://wiki.openstack.org/wiki/Ml2-huawei-switch-mech-driver Huawei Switch Driver]
* API Extensibility Framework, including extensions for:
+
* [https://wiki.openstack.org/wiki/Arista-neutron-ml2-driver Arista Driver]
** "provider network", which maps Quantum L2 networks to a specific VLAN in the physical data center
+
* [https://wiki.openstack.org/wiki/Neutron/ML2/MechCiscoNexus Cisco Nexus Driver]
** "L3 routers", which supports a basic L3 router construct to route between L2 networks,  and provide a gateway to external networks with support for SNAT and floating IPs.
+
* [https://wiki.openstack.org/wiki/Neutron/ML2/Tail-f-NCS-neutron-ml2-driver Tail-f NCS Driver]
* Updated API Client Library and CLI, including support for filtering. 
 
* Horizon GUI support for:
 
** Quantum network and subnet creation/deletion
 
** Booting VMs on specific Quantum networks. 
 
* Several plugins:
 
** [http://www.openvswitch.org Open vSwitch ] Plugin
 
** [http://wiki.openstack.org/cisco-quantum  Cisco UCS/Nexus] Plugin
 
** [http://wiki.openstack.org/Quantum-Linux-Bridge-Plugin  Linux Bridge] Plugin
 
** [http://www.nicira.com  Nicira Network Virtualization Platform (NVP) ]  Plugin
 
** [http://www.osrg.net/ryu/using_with_openstack.html  Ryu OpenFlow Controller ] Plugin
 
** (NEW) [http://wiki.openstack.org/Quantum-NEC-OpenFlow-Plugin  NEC OpenFlow ] Plugin
 
  
 
== Participate ==
 
== Participate ==
  
To get code, ask questions, view blueprints, etc, see: [https://launchpad.net/quantum/ Quantum Launchpad Page]
+
To get code, ask questions, view blueprints, etc, see: [https://launchpad.net/neutron/ Neutron Launchpad Page]
  
See [[QuantumDevelopment]] for some (rough) guides on how to contribute code to Quantum, including how to add your own plugin.   
+
See [[NeutronDevelopment]] for some (rough) guides on how to contribute code to Neutron, including how to add your own plugin.   
  
 
If you would like to participate, please send mail to the main openstack-dev list:  http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
 
If you would like to participate, please send mail to the main openstack-dev list:  http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Line 105: Line 137:
 
You can also attend our regular IRC meetings, which start one hour after the main openstack meeting, on the same #openstack-meeting channel: http://wiki.openstack.org/Network/Meetings
 
You can also attend our regular IRC meetings, which start one hour after the main openstack meeting, on the same #openstack-meeting channel: http://wiki.openstack.org/Network/Meetings
  
Check out [[QuantumStarterBugs]] for ideas on easy bugs or starter projects you might tackle.  Or just start playing with [[QuantumDevstack]] and come up with your own ideas!
+
Check out [[NeutronStarterBugs]] for ideas on easy bugs or starter projects you might tackle.  Or just start playing with [[NeutronDevstack]] and come up with your own ideas!
 +
 
 +
== Related pages ==
 +
=== Neutron/* ===
 +
{{Special:PrefixIndex/Neutron}}
 +
 
 +
=== Network/* ===
 +
{{Special:PrefixIndex/Network}}

Latest revision as of 11:43, 28 December 2020

OpenStack Networking ("Neutron")

Warning icon.svg Caution

The content of this wiki may be obsolete and replaced by content available at: https://docs.openstack.org/neutron/latest/
OpenStack Networking Guide
Administrator Guide
Neutron CLI Guide
API Developer Doc (v2)
Source code
Bug tracker
Blueprints

Neutron Mission Statement

To implement services and associated libraries to provide on-demand, scalable, and technology-agnostic network abstraction. Source

What is Neutron?

Neutron is an OpenStack project to provide "networking as a service" between interface devices (e.g., vNICs) managed by other Openstack services (e.g., nova).

Starting in the Folsom release, Neutron is a core and supported part of the OpenStack platform (for Essex, we were an "incubated" project, which means use is suggested only for those who really know what they're doing with Neutron).

If you're a networking geek and like to hack on OpenStack, please join!

More Info:

Related projects

  • Python Neutron client
  • Neutron Admin and API documentation in OpenStack Manuals
  • Tempest testing project Tempest Manuals. For the Icehouse cycle, the community is undertaking a focused effort to strengthen the suite of Tempest tests for Neutron. If you are interested on contributing to this effort, please go to Icehouse Neutron Tempest push to see what is being done and to TempestAPITests for HOWTO instructions. Helping to develop Tempest tests (particularly API tests) is an excellent way for new contributors to learn Neutron.

Why Neutron?

  • Give cloud tenants an API to build rich networking topologies, and configure advanced network policies in the cloud.
    • Example: create multi-tier web application topology
  • Enable innovation plugins (open and closed source) that introduce advanced network capabilities
    • Example: use L2-in-L3 tunneling to avoid VLAN limits, provide end-to-end QoS guarantees, use monitoring protocols like NetFlow.
  • Let anyone build advanced network services (open and closed source) that plug into Openstack tenant networks.
    • Examples: LB-aaS, VPN-aaS, firewall-aaS, IDS-aaS (not implemented), data-center-interconnect-aaS.
  • Horizon GUI support for:
    • Neutron L2 and L3 network and subnet creation/deletion
    • Booting VMs on specific Neutron networks.
  • API Extensibility Framework, including extensions for:
    • "provider network", which maps Neutron L2 networks to a specific VLAN in the physical data center

Using Neutron

Follow the instructions in the Networking Guide, or use the installation documentation at http://docs.openstack.org to use Neutron with OpenStack Nova.

Forget documentation, I just want to get the code!: Neutron Downloads

Detailed information for programming against v2.0 of the Neutron web services API is available in the Neutron API Guide

If you are looking for information on using Neutron with devstack, please see: NeutronDevstack .

Neutron lets you use a set of different backends called "plugins" that work with a growing variety of networking technologies. These plugins may be distributed as part of the main Neutron release, or separately.

Plugins

The set of plugins originally included in the main Neutron distribution and supported by the Neutron community include:



Additional plugins are available from other sources:

If you have your own plugin, feel free to add it to this list.

Havana Release and ML2 Plugin Update

Starting with Havana release, openvswitch and linuxbridge plugins are deprecated. Modular Layer 2 (ML2) plugin replaces these plugins. L2 agents work with ML2 plugin and continue to work with the deprecated monolithic plugins.

ML2 plugin architecture facilitates the type drivers to support multiple networking technologies, and mechanism drivers to facilitate the access to the networking configuration in a transactional model. The details of these drivers is described here. Long term goal is to transition all vendor specific plugins to the type and mechanism drivers.

Following Type Drivers are supported:

  • Flat
  • Local
  • VLAN
  • GRE
  • VxLan


Following Vendor specific Mechanism Drivers are supported:

Participate

To get code, ask questions, view blueprints, etc, see: Neutron Launchpad Page

See NeutronDevelopment for some (rough) guides on how to contribute code to Neutron, including how to add your own plugin.

If you would like to participate, please send mail to the main openstack-dev list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

You can also attend our regular IRC meetings, which start one hour after the main openstack meeting, on the same #openstack-meeting channel: http://wiki.openstack.org/Network/Meetings

Check out NeutronStarterBugs for ideas on easy bugs or starter projects you might tackle. Or just start playing with NeutronDevstack and come up with your own ideas!

Related pages

Neutron/*

Network/*