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¶
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¶
- L2 core API, IPv4 , IPv6
Supports GRE/VxLAN/Geneve tunneling protocols
- Distributed virtual Router L3
Supports a hybrid of proactive and reactive flow installation
Distributed DHCP
- Pluggable Distributed Data Base
ETCD, RethinkDB, RAMCloud, OVSDB
Dragonflow Pipeline¶
Dragonflow Pluggable DB¶
Distributed DHCP Application¶
Containers and Dragonflow¶
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