Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in...

35
Dragonflow Dragonflow SDN + Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei

Transcript of Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in...

Page 1: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Dragonflow SDN+

Other cool networking stuffin OpenStack

October 17, 2017 Pino de Candia @ Huawei

Page 2: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Background

Dragonflow gives OpenStack the first network solution that:

● Is truly open source● Scales● Just works, without babysitting● Is small and easy to extend● Gives you choices:

○ to optimize for your use-case○ and use tools you already know

Page 3: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Open Source

● Dragonflow was developed in OpenStack from day 1● Led by Huawei, but intended for the community, not a

commercial product○ Not the case for OpenContrail, MidoNet, Calico and others.

● Full control with OpenStack.org○ Not the case with OVN, OpenContrail and others.

Page 4: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Scale

Requires distributing everything.

So the only centralized component is the Database cluster used as the source of truth for intent.

Push policy all the way to the edge.

Page 5: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Tested scale to thousands of nodes

Deliver consistent network performance up to 4000 compute nodes (tests indicate significant room for improvement ).

Page 6: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Choose your own DB and PubSub

● Reduce the skill burden by using DB and PubSub technologies you already know or use elsewhere.

● Reduce the operational burden by reusing already deployed DB and PubSub clusters.

Page 7: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Choose vlan, overlay, or flat networking

● There are good use-cases for each connectivity model.● Dragonflow lets you choose per network (not per deployment).● A workload can benefit from multiple networks, each optimized for different

outcomes (performance vs. security or L2 isolation).● This also allows flexibility in designing and evolving your physical network.

Page 8: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

No babysitting

Other solutions have too many centralized components that easily become bottlenecks or become overwhelmed.

- Dragonflow has all intelligence at the edge, except for the Database.

Other solutions have centralized datapath components, middleboxes.

- Dragonflow pushes more functionality to the datapath pipeline at the edge. Less code, more stability.

Page 9: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Neutron without Network Nodes

DHCP

MetaData API proxy

FloatingIP

SNAT

Spine Spine Spine Spine

ToR ToR

Compute

Compute

Routing

Bridging

Sub

net1

Sub

net2Compute

Compute

Compute

Compute

Compute

Compute

Page 10: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Recap: what are Network nodes?

Network Node

L3 Agent

DHCP Agent

L2 Agent

Oslo notifications (amqp, rabbit, zmq…)

Dnsmasq

Network1

Dnsmasq

Network2

Dnsmasq

Network3

Pro

vide

r Net

wor

k

External Router

MD Proxy

MD Proxy

MD Proxy

Page 11: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

DHCP and MD Proxy without Network Nodes

Compute Node

VM

OVS Datapath (in Kernel)

tap-vm

ovs-vswitchd

Dragonflow

Netlink

OpenFlow

DHCP

MD Proxy

169.254.169.254tap-metadata

Listen on 169.254.169.254:80

Nova API

MetaData

Page 12: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Floating IP without Network Nodes (on L2)

L2 Network

ToR

Compute

ARP request broadcast:Who has FloatingIP-1?

ARP reply:Compute-1 (MAC) has FloatingIP-1

Page 13: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Floating IP without Network Nodes (on L3)

Spine Spine Spine Spine

ToR ToR

Compute

Compute

Routing

BridgingS

ubne

t1

Sub

net2Compute

Compute

Compute

Compute

Compute

Compute

BGP BGP

BGP Advertisements:- FloatingIP-1 is at Compute-1 (IP)- FloatingIP-2 is at Compute-2 (IP)...etc

Page 14: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

SNAT without Network Nodes

VM

OVS Datapath (in Kernel)

ToR

DC Network

192.168.0.10

10.0.0.5

10.0.0.5 -> PublicIP

192.168.0.10 -> PublicIP

ORFloatingIP (per compute) -> PublicIP

1

2

Page 15: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Easy to add minor features without forking

● Don’t wait for upstream for minor changes.● Dragonflow modules let you experiment with new functionality.● Many useful features can be added with tens of lines of code.● Take back control of your network.

Page 16: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Lightweight

● ~10K LoC in Python● Is easy to understand and

troubleshoot● Design centered on

modules that configure tables in the packet pipeline.

Page 17: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Page 18: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Dragonflow recently added features

http://www.dragonflow.net/2017/10/pike-release-what-have-we-done-of-late.html

● Hierarchical port binding● IPv6 support● Trunk ports● Service function chaining● Service health reports (Guru meditation reports)● BGP Dynamic Routing● Distributed SNAT (SNAT without network nodes)

Page 19: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Dragonflow upcoming features

● Flat networking that supports overlapping IPs (using NAT)○ Research code written but not yet upstream

● BGP MPLS eVPN and L3VPN○ Research code written but not yet upstream

● Kubernetes support (with Kuryr and Kolla)● Native LBaaSv2 API (without Octavia)● TAPaaS● FWaaS● Native Ironic (Bare-metal) support

Page 20: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Port Mirroring (TAP-as-a-Service)

Port-levelFirewall

VM or Container

Network 1

TapFlow:- Port ID- Before/After Port’s FW- In/Out (to/from VM)- Destination TapService

VM or Container

Network 2

TapService:- Port ID

Page 21: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Neutron trunk ports (a.k.a. vlan-aware VMs)

VM

ovs kernel

eth0

eth0.10

eth0.20

eth0.30

eth0.40

Network 5

Network 4

Network 3

Network 2

Network 1port 1

port 2

port 3

port 4

port 5

Example: port 1 is the trunk port; ports 2-5 are sub-ports of port 1.

Page 22: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

DragonflowAddress Scope 2

Address Scope 1

Subnet Pools and Address Scopes

Subnet Pool 1Prefix 203.0.113.0/21 default-prefixlen 26

Subnet Pool 2Prefix 204.0.100.0/21 default-prefixlen 26

Subnet Pool 3Prefix 10.0.0.0/16

default-prefixlen 24

Net 1: Scope 1

External Net: Scope 1

Enable prefix delegation and no-NAT networking

Net 2: Scope 2

Net 3: Scope 2

No NAT NAT-ed

Page 23: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

DPDK

● Out-of-kernel (user-space) packet processing● Using dedicated CPUs, huge pages, ring buffers● No interrupts

Very low level, all about moving data on/off an interface. NOT a switch, doesn’t understand network protocols.

Open vSwitch has a mode where the datapath runs in the same process as vswitchd and uses DPDK.

Page 24: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

FD.io and VPP

● Vector Packet Processing● Donated by Cisco● Uses DPDK and AF_PACKET

Page 25: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

eBPF

● Allow Linux user-space programs (in assembly-like language)● To run safely in the kernel (JIT compiled and safety checked)● Multiple hook points (notably TC - traffic control)

Innovate faster outside the kernel.

Unlock better network performance in-kernel.

Multiple offshoots: IOVisor, XDP, Cilium

Page 26: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Review: Open vSwitch Architecture

Page 27: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

eBPF - enhance OVS actions or replace datapath?

Page 28: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Service function chaining (SFC)

http://www.dragonflow.net/2017/08/policy-based-routing-with-sfc-in.html

Page 29: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Open Security Controller

● Started by Intel, now part of Linux Foundation● Enabled by SFC (Service Function Chaining) API● Supports multiple security vendors, OpenStack, Kubernetes, VMWare

ComputeNode

VMGlanceAPI

Security Function 1Nova API

Neutron SFC API

Security Function 2

Uploads Service Function Images

Launches SF instances

Inserts functions in workload traffic

Page 30: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Tacker - OpenStack NFV Orchestration

Page 31: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

TriCircle(Federation)

Page 32: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Gluon (when Neutron doesn’t fit)

Page 33: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Dragonflow - Additional Resources

● Blogs: http://www.dragonflow.net/● User documentation: https://docs.openstack.org/dragonflow/latest/● Code: https://github.com/openstack/dragonflow● Specs and Bugs on https://launchpad.net/dragonflow● IRC channel #openstack-dragonflow (chat.freenode.net)● Developers: https://wiki.openstack.org/wiki/Dragonflow

Page 34: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Thanks!

Time for Q&A

pino.decandia at huawei dot comgiuseppe.decandia at gmail dot com@pino_deca on Twitter

Page 35: Dragonflow SDN Other cool networking stuff in OpenStack€¦ · Other cool networking stuff in OpenStack October 17, 2017 Pino de Candia @ Huawei. Dragonflow ... Network1 Dnsmasq

Dragonflow

Topics I didn’t have time for...

● Get-me-a-network● FWaaS v2● Common classification framework● QoS and bandwidth limiting● DNS (Neutron internal and Designate)● Octavia and LBaaS v2● (IPSec) VPNaaS● Routed Provider Networks● Hierarchical port binding