======================= 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 ----------------------- .. image:: https://raw.githubusercontent.com/openstack/dragonflow/master/doc/images/ dragonflow_distributed_architecture.png :alt: Solution Overview :width: 600 :height: 455 :align: center ^^^^^^^^ 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 How to Install -------------- - `Installation Guide `_ - `DevStack Single Node Configuration `_ - `DevStack Multi Node Configuration `_ Dragonflow Talks ----------------- - `Dragonflow - Neutron done the SDN Way - OpenStack Austin Summit `_ - `Dragonflow Introduction Video - OpenStack Tokyo Summit `_ More Useful Reading ------------------- - `Distributed DHCP Service in Dragonflow `_ - `Centralized vs. Distributed SDN Controller in Dragonflow `_ - `Dragonflow in OpenStack Liberty `_ - `Dragonflow Distributed Database `_ - `Topology Service Injection `_ - `Dragonflow Security Groups Design at Scale `_ - `Neutron DB Consistency `_