Jump to: navigation, search

Neutron/VirtualResourceForServiceChaining

< Neutron
Revision as of 07:50, 18 April 2014 by Iwamoto (talk | contribs) (Created page with "== The Problem == Neutron has several advanced services. But there is some difficulty using multiple advanced services at once. == Current Approach == There are two propos...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

The Problem

Neutron has several advanced services. But there is some difficulty using multiple advanced services at once.

Current Approach

There are two proposals.

  • Neutron Services' Insertion & Chaining
  • Service Function Chaining

Analysis of Existing Plans

We need to be able to

  1. specify a graph of advanced services in use
  2. supply enough configuration information to each advanced service

The above proposals introduce new DB objects to solve #1, but it is not clear how #2 will be solved.

The Proposed Solution

The main idea of this proposal is to introduce the notion of virtual network resources.

For example, assume there is a router with a firewall configuration.


  ========= network1
      |
  +-------+   +-----+
  |router1|...|FWaaS|
  +-------+   +-----+
      |
  ========= network2

Give the combination of router1 and FWaaS a new router UUID and let it have the name vrouter1. It is trivial to define another advanced service using vrouter1 as a router_id.

  ========= network1
      |
+-----------------------+
|     |    vrouter1     |
| +-------+   +-----+   |   +------------------+
| |router1|...|FWaaS|   |...|other adv. service|
| +-------+   +-----+   |   +------------------+
+-----|-----------------+
      |
  ========= network2


For L2VPN, a configured L2VPN service can have a virtual bridge UUID. Then another advanced service can be defined using the virtual bridge_id.


Limitations

A chain of advanced services will not be able to be created in a single API call. Users need to construct a chain step-by-step.