what happened to openflow? - os3 · p4: programming protocol-independent packet processors domain...

52
SNE GUEST LECTURE 12 MAY 2017 What Happened To OpenFlow? Ronald van der Pol <[email protected]>

Upload: others

Post on 22-May-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

SNE GUEST LECTURE 12 MAY 2017

What Happened To OpenFlow?

Ronald van der Pol <[email protected]>

Page 2: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Outline

SNE Guest Lecture, Amsterdam, 12 May 2017

Concepts behind OpenFlow• Early days at Stanford University

Software Defined Networking• SDN as a meaningless acronym• The hyperscales (Facebook, Google, Facebook)• Network Disaggregation

What are we working on at SURFnet• Smart Edge, containers and serverless applications (eBPF, P4)• Network Disaggregation (SnapRoute, SONiC, FRR)

P4 demo

Page 3: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Stanford University Papers 2007/2008

SNE Guest Lecture, Amsterdam, 12 May 2017

This paper presents Ethane, a new network architecture for the enterprise. Ethane allows managers to define a single network-wide fine-grain policy, and then enforces it directly. Ethane couples extremely simple flow-based Ethernet switches with a centralized controller that manages the admittance and routing of flows. While radical, this design is backwards-compatible with existing hosts and switches.

Page 4: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Vertically integratedClosed, proprietary

Slow innovationSmall industry

SpecializedOperatingSystem

SpecializedHardware

AppAppAppAppAppAppAppAppAppAppApp

SpecializedApplications

HorizontalOpen interfacesRapid innovation

Huge industry

Microprocessor

Open Interface

Linux MacOS

Windows(OS) or or

Open Interface

(slide by Nick McKeown, Stanford University)

Page 5: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Vertically integratedClosed, proprietary

Slow innovation

AppAppAppAppAppAppAppAppAppAppApp

HorizontalOpen interfacesRapid innovation

ControlPlane

ControlPlane

ControlPlane or or

Open Interface

SpecializedControlPlane

SpecializedHardware

SpecializedFeatures

MerchantSwitching Chips

Open Interface

(slide by Nick McKeown, Stanford University)

Page 6: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Computing vs Networking

Closed Systems

Open HardwareOpen Software

1970 1980 1990 2000 2010

Closed Systems

clos

edop

en

Closed hardwareOpenFlow API + ControllerOpen Source ApplicationsPortable applications

Open Hardware3rd party Software

Closed hardwareWorkstations + UNIXUNIX System Call APIStart of Open Source SoftwarePortable applications

Slide by R. van der Pol

Page 7: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Disaggregation

SNE Guest Lecture, Amsterdam, 12 May 2017

From

Closed vendor proprietary routers/switches• Vendor decides which features to support• Vendor decides when these feature become available• Dependent on innovation strength of vendor

To

Split between hardware and firmware (disaggregation)• Choose best vendor for hardware and best vendor for firmware• Use open source firmware (more control over features and innovation)

Page 8: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

“Protocol Soup”

SNE Guest Lecture, Amsterdam, 12 May 2017

Current way to handle new functionality in networking is to define a new protocol.

Exponential growth in network protocol standards.

Standards seem to become larger and more complex.

Vendors implement all standards, which increases costs and decreases stability.

Do you need all those standards?

Page 9: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Total Number of RFCs Published

SNE Guest Lecture, Amsterdam, 12 May 2017

0

1000

2000

3000

4000

5000

6000

1988 1991 1994 1997 2000 2003 2006 2009 2012

Tota

l num

ber o

f RFC

s

Year

Data by Jari Arkko

Page 10: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

IEEE 802.1Q

SNE Guest Lecture, Amsterdam, 12 May 2017

Simple VLAN standard?

Not really, original version amended by at least 14 additional standards.

802.1Q-1998 had 211 pages.

802.1Q-2011 has 1365 pages, and includes:802.1u, 802.1v, 802.1s (multiple spanning trees), 802.1ad (provider bridging), 802.1ak (MRP, MVRP, MMRP), 802.1ag (CFM), 802.1ah (PBB), 802.1ap (VLAN bridges MIB), 802.1Qaw, 802.1Qay (PBB-TE), 802.1aj, 802.1Qav, 802.1Qau (congestion management), 802.1Qat (SRP)

Page 11: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Specs of a Modern Ethernet Switch(random example, but they are all the same)

SNE Guest Lecture, Amsterdam, 12 May 2017

Page 12: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

OpenDaylight Architecture

SNE Guest Lecture, Amsterdam, 12 May 2017

Page 13: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

ONOS Architecture

SNE Guest Lecture, Amsterdam, 12 May 2017

Page 14: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Largest Open Networking Dev Community

OpenDaylightContributors by Release

Open Networking / SDNCumulative Contributions

Total Code CommitsTotal: 97,706

OpenDaylight61,022

ONOS 8,118

Contrail 10,300

Open vSwitch 12,623

RYU 2841Floodlight 2802

Total ContributorsTotal: 1,756

OpenDaylight872

Open vSwitch328

ONOS 204

RYU 99Floodlight 90

Contrail 163

SNE Guest Lecture, Amsterdam, 12 May 2017

Page 15: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

SDN Approaches

SNE Guest Lecture, Amsterdam, 12 May 2017

Underlay/Overlay networking

Logically centralised control of distributed control plane protocols

Logically centralised control of programmable dataplanes

Page 16: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Underlay/Overlay Networking

SNE Guest Lecture, Amsterdam, 12 May 2017

IP Fabric

Page 17: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Underlay/Overlay Networking

SNE Guest Lecture, Amsterdam, 12 May 2017

Used in data centres, but also in WAN

VXLAN often used as tunneling protocol

Open vSwitch and hypervisors at the edges of the tunnels

Virtualisation and multi-tenancy support

Controller often uses vendor proprietary protocols and APIs

Many vendors offer solutions in this space

Page 18: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Combination of Centralised Control and Distributed Routing/Switching Protocols

SNE Guest Lecture, Amsterdam, 12 May 2017

PCEP / BGP-LS

MPLS / Segment Routing

Page 19: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

OpenFlow Model

SNE Guest Lecture, Amsterdam, 12 May 2017

OpenFlow

OpenFlow Switches

Page 20: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

The hyperscales and SDN

SNE Guest Lecture, Amsterdam, 12 May 2017

• Common Elements:• Estimated total amount of servers: ~ 1 million• Servers per data centre (estimated): 50,000 – 100,000• Combination of central control (Traffic Engineering) and distributed routing protocols• Disaggregated custom built switches• Homebuilt software, some of it open sourced

Page 21: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Facebook Old Design

SNE Guest Lecture, Amsterdam, 12 May 2017

Problems with previous (cluster + TOR) design• Many servers in a cluster connected to TOR switch• Needed high-end switches• Only a few vendors could deliver them• Required extensive platform-specific hardware and software

knowledge to operate and troubleshoot• Failures could have significant impact• Limited bandwidth between clusters

Page 22: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Facebook Traffic Growth

SNE Guest Lecture, Amsterdam, 12 May 2017

Page 23: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Facebook New Design (fabric and pods)

SNE Guest Lecture, Amsterdam, 12 May 2017

- Small identical units: pods- TOR: 4x 40G, 10G to servers- (guess) 16x48=768 servers/pod- Fabric switch: 6-pack

Page 24: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Facebook 6-Pack: 128 (8 x 16) x 40G Ports

SNE Guest Lecture, Amsterdam, 12 May 2017

Page 25: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

6-pack Architecture

SNE Guest Lecture, Amsterdam, 12 May 2017

Page 26: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Facebook Datacenter Architecture

SNE Guest Lecture, Amsterdam, 12 May 2017

Page 27: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Facebook Fabric

SNE Guest Lecture, Amsterdam, 12 May 2017

• Dual-stack L3 from TOR to edge• BGP4 using minimal amount of protocol features• ECMP• Routing design minimises use of RIB and FIB resources• Split control (server on the switch connected to central controller)• “Distributed control, centralized override”

Page 28: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Facebook Express Backbone (EBB)

SNE Guest Lecture, Amsterdam, 12 May 2017

• MPLS Segment Routing• Facebook Open/R as IGP, integrated with central controller• Physical network topology split into four ”planes”• Centralised ensemble of BGP-based route injectors• Traffic Engineering (TE) controller computes optimal paths• sFlow collector feeds active demands into TE controller• LSP agents on the network devices interface with forwarding tables

on behalf of the TE controller

Page 29: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Facebook EBB Architecture

SNE Guest Lecture, Amsterdam, 12 May 2017

Page 30: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Facebook EBB TE Controller

SNE Guest Lecture, Amsterdam, 12 May 2017

Page 31: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Microsoft SAI & SONiC

SNE Guest Lecture, Amsterdam, 12 May 2017

Page 32: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Google Network

SNE Guest Lecture, Amsterdam, 12 May 2017

Google Global Cache edge nodes

FASTER (US, JP, TW) 2016

Unity (US, JP) 2010SJC (JP, HK, SG) 2013

Points of presence >100

Network fiber

Google NetworkMore than a collection of data centers

Following slides are by Amin Vahdat, keynote at ONS 2017

Page 33: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Google Cloud Regions

SNE Guest Lecture, Amsterdam, 12 May 2017

#

#

Future regions and number of zones

Current regions and number of zones

3

3

2

3

3 3

3

3

24

3

3

2

Frankfurt

Singapore

S CarolinaN Virginia

Belgium

London

TaiwanMumbai

Sydney

OregonIowa

São Paulo

Finland

Tokyo

Montreal

California

Netherlands

3

3

33

Google Cloud RegionsAdding 11 new regions

Page 34: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Google Pillars of SDN

SNE Guest Lecture, Amsterdam, 12 May 2017

B4WAN

Interconnect

Andromeda NFV and network

virtualization

JupiterDatacenter Networking

The Pillars of SDN @ Google

Espresso SDN for public

Internet

Page 35: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Google SDN

SNE Guest Lecture, Amsterdam, 12 May 2017

• Internal traffic (machine to machine) grows faster than user traffic (similar to Facebook internal/external growth)

• Google carries 25% of internet traffic

Page 36: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Google Networking

SNE Guest Lecture, Amsterdam, 12 May 2017

Espresso in Context

B4Espresso

B2

Internet

Peering Metro

User

Jupiter Data CenterGoogle

Google

Page 37: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Google B4 Network

SNE Guest Lecture, Amsterdam, 12 May 2017

*RRJOH�&RQILGHQWLDO�DQG�3URSULHWDU\

0L[HG�6'1�'HSOR\PHQW

Ɣ 5HDG\�WR�LQWURGXFH�QHZ�IXQFWLRQDOLW\��H�J���7(

&OXVWHU�%RUGHU�5RXWHU

'DWD�&HQWHU�1HWZRUN

(%*3

,%*3�,6,6�WR�UHPRWH�VLWHV

4XDJJD 2)&

5&63D[RV

3D[RV3D[RV

2)$

2)$

2)$

2)$

2)$

2)$2)$

2)$

7(�6HUYHU

Page 38: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Almost 100% Link Utilization

SNE Guest Lecture, Amsterdam, 12 May 2017*RRJOH�&RQILGHQWLDO�DQG�3URSULHWDU\

6DPSOH�8WLOL]DWLRQ

Page 39: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Google Espresso Atchitecture

SNE Guest Lecture, Amsterdam, 12 May 2017

Espresso Architecture Overview

Label-switched Fabric

HostHostHostHostHost

Host

Packet Processor

LocalControl

Global Controller

BGP speaker

External PeereBGP Peering

Espresso Metro

Application Signals

Labeled packets specify egress

HostHostHostHostHost

Peering Fabric

Page 40: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Network Research Topics at SURFnet

SNE Guest Lecture, Amsterdam, 12 May 2017

• Networking for containers and serverless applications• SMART NICs (policy enforcement and performance - P4 & eBPF)• Programmable Switches (P4)• SnapRoute (L2/L3) & Open Source Network Operating Systems

Page 41: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

P4 Language

SNE Guest Lecture, Amsterdam, 12 May 2017

P4: Programming Protocol-Independent Packet Processors

Domain Specific Language for network protocols

Takes the OpenFlow match/action concepts much further

P4 program defines headers, parser and lookup tables

P4 program à P4 compiler à target code à P4 switch/NIC

Target code is loaded on P4 hardware/software switch/NIC

Page 42: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

P4 Switch

SNE Guest Lecture, Amsterdam, 12 May 2017

INPUT

MatchAction

MatchAction

OUTPUT

ParseGraph

ControlProgram

Match+ActionTable Config

Ingress Egress

Switch Configuration

P4 Switch

PARSER

Queuesand/orBuffers

Source: The P4 Language SpecificationVersion 1.0.2

Page 43: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

P4 Elements

P4 consists of three elements:

- header definitions (packet headers and metadata)

- lookup tables & actions (match/action)

- packet parser state machine & checksum field lists

SNE Guest Lecture, Amsterdam, 12 May 2017

Page 44: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

P4 Header Definition Examples

header_type ethernet_t {fields {

dstAddr : 48;srcAddr : 48;etherType : 16;

}}

header ethernet_t ethernet;

header_type ipv4_t {fields {

version : 4;ihl : 4;diffserv : 8;totalLen : 16;identification : 16;flags : 3;fragOffset : 13;ttl : 8;protocol : 8;hdrChecksum : 16;srcAddr : 32;dstAddr: 32;

}}

SNE Guest Lecture, Amsterdam, 12 May 2017

Page 45: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

P4 Metadata Example

header_type ingress_metadata_t {fields {

ingress_port: 9;packet_length: 16;ingress_global_tstamp: 48;egress_spec: 16;queue_id: 9;

}}

header ingress_metadata ingress_metadata;

SNE Guest Lecture, Amsterdam, 12 May 2017

Page 46: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

P4 Parser

parser start {return parse_ethernet;

}

parser parse_ethernet {extract(ethernet);return select(latest.etherType) {

ETHERTYPE_IPV4 : parse_ipv4;default: ingress;

}}

parser parse_ipv4 {return select(lastest.<some IPv4 field>) {

<some field value>: do_something;default ingress;

}

SNE Guest Lecture, Amsterdam, 12 May 2017

Page 47: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

P4 L2 Switch Table Example

table dmac {reads {

ethernet.dstAddr: exact;}actions {

forward;broadcast;

}size : 512;

}

SNE Guest Lecture, Amsterdam, 12 May 2017

Page 48: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

P4 IPv4 FIB Table Actions

action forward(port) {modify_field(standard_metadata.egress_port, port);

}

SNE Guest Lecture, Amsterdam, 12 May 2017

Page 49: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

What Happened To OpenFlow?

• Created a whole new market of white label switches• Many vendors offer “SDN” solutions• All hyperscales have networks based on the original OpenFlow concepts

Amin Vahdat(Fellow & Technical Lead for Networking, Google)

Keynote speech at ONS 2017:

“To me the question of whether software defined networking is a good idea or not is closed. Software defined networking is how we do

networking.”

SNE Guest Lecture, Amsterdam, 12 May 2017

Page 50: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Demo Setup

Netronomevf0_0vf0_1vf0_2vf0_3

p0

p1

internet

Ethernetswitch

NitrogenLinuxserver

agent

SNE Guest Lecture, Amsterdam, 12 May 2017

Page 51: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Workshop

Dataplane Accelaration Developer DayDXDD Europe 2017

Workshop with hands-on LabsWed 7 June 2017SURFnet, Utrecht

http://www.open-nfp.org/dxdd-europe-2017

SNE Guest Lecture, Amsterdam, 12 May 2017

Page 52: What Happened To OpenFlow? - OS3 · P4: Programming Protocol-Independent Packet Processors Domain Specific Language for network protocols Takes the OpenFlowmatch/action concepts much

Ronal van der [email protected]