openstack dragonflow shenzhen and hangzhou meetups

24
Dragonflow Shenzhen OpenStack meet-up Ayal Baron Eran Gampel

Upload: eran-gampel

Post on 16-Jan-2017

298 views

Category:

Engineering


5 download

TRANSCRIPT

Page 1: OpenStack Dragonflow shenzhen and Hangzhou  meetups

Dragonflow Shenzhen OpenStack meet-upAyal Baron Eran Gampel

Page 2: OpenStack Dragonflow shenzhen and Hangzhou  meetups

Dragonflow

Page 2

• Integral part of OpenStack

• Fully Open Source

• Scale, Performance and Latency

• Lightweight and Simple

• Easily Extendable• Distributed SDN Control Plane

• Sync Policy Level abstraction to the CN

Page 3: OpenStack Dragonflow shenzhen and Hangzhou  meetups

Dragonflow - Distributed SDN

Neutron-Server

Dragonflow Plugin

DB

OVSDragonflow

DBDriver

Compute Node

OVSDragonflow

DBDriver

Compute Node

OVSDragonflowDB

Driver

Compute Node

OVSDragonflowDB

Driver

Compute Node

DB

VM VM..VM VM..

VM VM.. VM VM..

Page 4: OpenStack Dragonflow shenzhen and Hangzhou  meetups

Compute Node Compute Node Compute Node Dragonflow

Network DB

OVS

NeutronServer

OVSDB

OVSDB-Server

ETCD RethinkDBRAMCloud

Kernel Datapath Module

NIC

User Space

Kernel Space

Dragonflow DB DriversOVSDB ETCD RethinkDBRMC

Future

Dragonflow PluginRoute Core

API SG

vswitchd

Container

VM Dragonflow ControllerAbstraction Layer

L2 App L3 AppDHCP App

FaultDetection

SG

LBaaS …FWaaS

Pluggable DB Layer

NB D

B Dr

iver

s

SB DB Drivers

smartNIC OVSDB

OVSDB

ETCD

RMC

RethinkDB

OpenFlow

Dragonflow – Under The Hood

Page 5: OpenStack Dragonflow shenzhen and Hangzhou  meetups

Current Release Features (Liberty)L2 core API, IPv4, IPv6

GRE/VxLAN/Geneve tunneling protocols

Distributed L3 Virtual RouterHybrid proactive + reactive flow installationNorth-South traffic is still centralized

Distributed DHCP (with just 500 lines of code!)

Pluggable Distributed DatabaseETCD, RethinkDB, RAMCloud, OVSDB

Page 6: OpenStack Dragonflow shenzhen and Hangzhou  meetups

Dragonflow Distributed DHCP

Page 6

Page 7: OpenStack Dragonflow shenzhen and Hangzhou  meetups

Network Node

DHCP namespace

DHCP namespace

DHCP namespace

DHCP namespace

Neutron DHCP Implementation

DHCP namespace

dnsmasq

DHCPAgent

Neutron Server

Message QueueExample• 100 Tenants• 3 vNet / tenant= 300 DHCP Servers

Page 8: OpenStack Dragonflow shenzhen and Hangzhou  meetups

1 VM Send DHCP_DISCOVER

2 Classify Flow as DHCP, Forward to Controller

3 DHCP App sends DHCP_OFFER back to VM

4 VM Send DHCP_REQUEST

5 Classify Flow as DHCP, Forward to Controller

6 DHCP App populates DHCP_OPTIONS from DB/CFG and send DHCP_ACK

Dragonflow Distributed DHCP

DHCP DISCOVER

VM DHCP SERVER

DHCP OFFER DHCPREQUEST

DHCPACK

13

46

7

Compute Node

Dragonflow

VM

OVS

VM

1 2

br-intqvoXXX qvoXXX

OpenFlow

14

25

7

Dragonflow ControllerAbstraction Layer

L2App

L3App

DHCPApp SG

36

Pluggable DB Layer

DB

Page 9: OpenStack Dragonflow shenzhen and Hangzhou  meetups

Dragonflow Distributed DHCP

Match: Broadcast +UDP +S_Port=68 +D_Port=67

Action:Send to DHCP table

Service Table

DHCP TableMatch: in_port => Action:

Set metadata with port unique keySEND TO CONTROLLER

(for every local port that its network has DHCP enabled)

Default:goto “L2 Lookup Table”

Compute Node

VM

OVS

br-intqvoXXX

VM

qvoXXX

1 2

DragonflowDragonflow Local Controller

Abstraction Layer L2

AppL3

AppDHCP App SG

DB

OpenFlow

Ingress Port SecurityIngress ClassificationDispatch to Ports

Page 10: OpenStack Dragonflow shenzhen and Hangzhou  meetups

Dragonflow Pluggable DB

Page 10

Page 11: OpenStack Dragonflow shenzhen and Hangzhou  meetups

Database FrameworkRequirements• HA + Scalability• Different Environments have different requirements

• Performance, Latency, Scalability, etc.

Why Pluggable?• Long time to productize• Mature Open Source alternatives• Allow us to focus on the networking services only

Page 12: OpenStack Dragonflow shenzhen and Hangzhou  meetups

DB Driver APIImplementations

RAMCloud

ETCD

RethinkDB

Zookeeper

Dragonflow Pluggable Database

Compute Node Compute Node Compute Node

DragonflowLocal

Controller

PluggableDB Layer

Applicative DB LayerAdapter

DBDriver

API

Expose DB Features

Neutron ServerDragonflow

Neutron Plugin

DB Operations

DatabaseServer

DB Adapter

DB Adapter

DB Adapter

Page 13: OpenStack Dragonflow shenzhen and Hangzhou  meetups

DistributedDatabase

DB Data 3DB Data 2DB Data 1

Full Distribution

Compute Node 1

DragonflowLocal Cache

OVS

DB Data 1

Compute Node NDragonflow

OVS

Local Cache

DB Data 3DB Data 2

Dragonflow DB DriversOVSDB ETCD RethinkDBRMC

Page 14: OpenStack Dragonflow shenzhen and Hangzhou  meetups

Selective Proactive Distribution

Compute Node 1

DragonflowLocal Cache

OVS

Net1 – VM1, VM2

Compute Node 2Dragonflow

OVS

Local CacheNet2 – VM3, VM4

VM1 VM2 VM3 VM4

RethinkDB

Net2 – VM3, VM4Net1 – VM1, VM2

Page 15: OpenStack Dragonflow shenzhen and Hangzhou  meetups

DragonFlow Roadmap

Page 15

Page 16: OpenStack Dragonflow shenzhen and Hangzhou  meetups

Roadmap Distributed DNAT Security Group Selective Proactive DB Containers (Kuryr plugin and nested VM support) Hierarchical Port Binding (SDN ToR) move to ML2 Pluggable Pub/Sub Mechanism Additional DBs Drivers ZooKeeper, Redis … Topology Service Injection / Service Chaining Inter Cloud Connectivity (Boarder Gateway / L2GW) …

Page 17: OpenStack Dragonflow shenzhen and Hangzhou  meetups

DragonFlow Pipeline

Page 17

Page 18: OpenStack Dragonflow shenzhen and Hangzhou  meetups

DragonFlow PipelineInstalled in every OVS

Service TrafficClassification

Ingress Processing

(NAT, BUM)

ARP DHCP

L2Lookup

L3LookupDVR

EgressDispatching outgoing traffic to external nodes or local ports

Ingress Port Security(ARP spoofing , SG, …)

EgressPortSecurity

EgressProcessing

(NAT)

Fully Proactive

Has Reactive Flows to Controller

Security Groups

Outgoing from local port Classification and tagging

Dispatching Incoming traffic from external nodes to local ports

Page 19: OpenStack Dragonflow shenzhen and Hangzhou  meetups

Dragonflow for Containers Architecture Blueprint

Page 20: OpenStack Dragonflow shenzhen and Hangzhou  meetups

Project Kuryr and Dragonflow

DragonflowPlugin

Page 21: OpenStack Dragonflow shenzhen and Hangzhou  meetups

Compute Node

Mixed OpenStack Environments

VM

DragonflowController OVS(Controller: Dragonflow)

VM

OVS

Neutron network 1Neutron network 2Neutron network 3

Page 22: OpenStack Dragonflow shenzhen and Hangzhou  meetups

Dragonflow Community

Page 23: OpenStack Dragonflow shenzhen and Hangzhou  meetups

Join the project Dragonflow

• Documentation https://wiki.openstack.org/wiki/Dragonflow• Bugs & blueprints https://launchpad.net/dragonflow• DF IRC channel #openstack-dragonflow

Weekly on Monday at 0900 UTC in #openstack-meeting-4 (IRC)

Page 24: OpenStack Dragonflow shenzhen and Hangzhou  meetups