Distributed Dragonflow

Dragonflow is a distributed SDN controller for OpenStack® Neutron™ supporting distributed Switching, Routing, DHCP and more.

Our project mission is to implement advanced networking services in a manner that is efficient, elegant and simple.

Dragonflow is designed to support large scale deployments with a focus on latency and performance, as well as providing advanced innovative services that run locally on each compute node, with container technology in mind.

Mission Statement

  • Implement Neutron APIs using SDN principles, while keeping both Plug-in and Implementation fully under OpenStack project and governance.
  • 100% open source, contributors are welcome to partner and share a mutual vision.
  • Lightweight and Simple in terms of code size and complexity, so new users / contributors have a simple and fast ramp-up.
  • Aim for performance-intensive environments, where latency is a big deal, while being small and intuitive enough to run on small ones as well.
  • Completely pluggable design, easy to extend and enhance.
  • We truly believe in a distributed control plane.

Key Design Guidelines

  • Pluggable database, determines scale, lookup performance and latency
  • Policy-level/Topology abstraction synchronization to the Compute Node
  • Local Dragonflow Controller uses Reactive model (where it makes sense)
  • Loadable Network Services Framework

High Level Architecture

Solution Overview

Overview

Dragonflow environment consist of a local controller running at each of the compute nodes in the setup.

These controllers all sync the network topology and policy using a pluggable DB solution. The controllers then map the policy into OpenFlow flows using the local Dragonflow applications that communicate with the local OpenVSwitch.

The DB is being populated by Dragonflow Neutron plugin that converts neutron API to our model.

The following sections each describe a specific topic/functionality in Dragonflow

Dragonflow Supported Features

  1. L2 core API, IPv4 , IPv6
    Supports GRE/VxLAN/Geneve tunneling protocols
  2. Distributed virtual Router L3
    Supports a hybrid of proactive and reactive flow installation
  3. Distributed DHCP
  4. Pluggable Distributed Data Base
    ETCD, RethinkDB, RAMCloud, OVSDB

Dragonflow Pipeline

Dragonflow Pipeline

Dragonflow Pluggable DB

Pluggable DB

Distributed DHCP Application

Distributed DHCP Application

Containers and Dragonflow

Dragonflow and Containers

Dragonflow Roadmap

The following topics are areas we are examining for future features and roadmap into Dragonflow project

  • Containers
  • Distributed SNAT/DNAT
  • Reactive DB
  • Topology Service Injection / Service Chaining
  • Smart NICs
  • Hierarchical Port Binding (SDN ToR)
  • Inter Cloud Connectivity (Boarder Gateway / L2GW)
  • Fault Detection

Dragonflow Talks