NetEgg: Scenario-based Programming for SDN Policies Yifei Yuan, Dong Lin, Rajeev Alur, Boon Thau Loo University of Pennsylvania 1.

Slides:



Advertisements
Similar presentations
Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker.
Advertisements

SDN Applications Jennifer Rexford Princeton University.
Frenetic: A High-Level Language for OpenFlow Networks Nate Foster, Rob Harrison, Matthew L. Meola, Michael J. Freedman, Jennifer Rexford, David Walker.
CloudWatcher: Network Security Monitoring Using OpenFlow in Dynamic Cloud Networks or: How to Provide Security Monitoring as a Service in Clouds? Seungwon.
Composing Software Defined Networks
Composing Software-Defined Networks Princeton*Cornell^ Chris Monsanto*, Joshua Reich* Nate Foster^, Jen Rexford*, David Walker*
Nanxi Kang Princeton University
Jennifer Rexford Princeton University
Diagnosing Missing Events in Distributed Systems with Negative Provenance Yang Wu* Mingchen Zhao* Andreas Haeberlen* Wenchao Zhou + Boon Thau Loo* * University.
Slick: A control plane for middleboxes Bilal Anwer, Theophilus Benson, Dave Levin, Nick Feamster, Jennifer Rexford Supported by DARPA through the U.S.
An Overview of Software-Defined Network Presenter: Xitao Wen.
OpenFlow Costin Raiciu Using slides from Brandon Heller and Nick McKeown.
Software-Defined Networking, OpenFlow, and how SPARC applies it to the telecommunications domain Pontus Sköldström - Wolfgang John – Elisa Bellagamba November.
Programming Abstractions for Software-Defined Networks Jennifer Rexford Princeton University.
Diagnosing Missing Events in Distributed Systems with Negative Provenance Yang Wu* Mingchen Zhao* Andreas Haeberlen* Wenchao Zhou + Boon Thau Loo* * University.
Software-Defined Networking
An Overview of Software-Defined Network
Copyright © 2012, QoS-aware Network Operating System for Software Defined Networking with Generalized OpenFlows Kwangtae Jeong, Jinwook Kim.
Languages for Software-Defined Networks Nate Foster, Arjun Guha, Mark Reitblatt, and Alec Story, Cornell University Michael J. Freedman, Naga Praveen Katta,
Understanding Networks Charles Zangla. Network Models Before I can explain how connections are made from across the country, I would like to provide you.
An Overview of Software-Defined Network Presenter: Xitao Wen.
Enabling Innovation Inside the Network Jennifer Rexford Princeton University
Composing Software Defined Networks Jennifer Rexford Princeton University With Joshua Reich, Chris Monsanto, Nate Foster, and.
Enabling Innovation Inside the Network Jennifer Rexford Princeton University
Frenetic: A Programming Language for Software Defined Networks Jennifer Rexford Princeton University Joint work with Nate.
Software-Defined Networks Jennifer Rexford Princeton University.
VeriFlow: Verifying Network-Wide Invariants in Real Time
Professor Yashar Ganjali Department of Computer Science University of Toronto Some slides courtesy.
Copyright 2013 Open Networking User Group. All Rights Reserved Confidential Not For Distribution Programming Abstractions for Software-Defined Networks.
Automated Bandwidth Allocation Problems in Data Centers Yifei Yuan, Anduo Wang, Rajeev Alur, Boon Thau Loo University of Pennsylvania.
Programming Languages for Software Defined Networks Jennifer Rexford and David Walker Princeton University Joint work with the.
Aaron Gember, Theophilus Benson, Aditya Akella University of Wisconsin-Madison.
Introduction to Mininet, Open vSwitch, and POX
Jennifer Rexford Princeton University MW 11:00am-12:20pm Data-Plane Verification COS 597E: Software Defined Networking.
3.6 Software-Defined Networks and OpenFlow
Header Space Analysis: Static Checking for Networks Broadband Network Technology Integrated M.S. and Ph.D. Eun-Do Kim Network Standards Research Section.
Fabric: A Retrospective on Evolving SDN Presented by: Tarek Elgamal.
Software Defined Networking and OpenFlow Geddings Barrineau Ryan Izard.
SDN and Beyond Ghufran Baig Mubashir Adnan Qureshi.
Programming Assignment 2 Zilong Ye. Traditional router Control plane and data plane embed in a blackbox designed by the vendor high-seed switching fabric.
NetEgg: Programming Network Policies by Examples 표경수
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Programming SDN 1 Problems with programming with POX.
Konstantin agouros Omkar deshpande
SDN and Security Security as a service in the cloud
SDN challenges Deployment challenges
CSC458 Programming Assignment II: NAT
Multi-layer software defined networking in GÉANT
Intrusion Detection Systems
What I Learned From Mininet
Software defined networking: Experimental research on QoS
The DPIaaS Controller Prototype
Martin Casado, Nate Foster, and Arjun Guha CACM, October 2014
Programming Assignment
ETHANE: TAKING CONTROL OF THE ENTERPRISE
NOX: Towards an Operating System for Networks
April 28, 2017 SUMIT MAHESHWARI INES UGALDE
Overview of SDN Controller Design
SDN Overview for UCAR IT meeting 19-March-2014
SDN basics and OpenFlow
Software Defined Networking
Programming the Networks of the Future
CS 31006: Computer Networks – The Routers
Software Defined Networking (SDN)
Software Defined Networking
Enabling Innovation Inside the Network
Languages for Software-Defined Networks
Programmable Networks
An Introduction to Software Defined Networking and OpenFlow
Chapter 4: outline 4.1 Overview of Network layer data plane
Presentation transcript:

NetEgg: Scenario-based Programming for SDN Policies Yifei Yuan, Dong Lin, Rajeev Alur, Boon Thau Loo University of Pennsylvania 1

Software-Defined Networking (SDN) 2 Controller App DstNextHop A2 …… MatchAction Src=Adrop …… Openflow e.g. POX, NOX, Floodlight, etc. APIs distributed protocols Control plane Data plane Programmability

Programming Abstractions Declarative Networking [CACM’09] Frenetic [ICFP’11] NetCore [POPL’12] Pyretic [NSDI’13] NetKAT [POPL’14] … 3 C/C++ (NOX) Python (POX) Java (Floodlight) … General-purpose Programming Languages Domain Specific Languages Target: Engineers with good programing skills

How about network operators? Do network operators need to program the network? How well can they master programming skills? 4

Industry Interviews Interviewed 74 network operators/architects/ engineers in telcos, banks, service providers, campus IT, and router vendors Need for programming skills among network operators (Lack of) programming expertise 5

Programming Need 6

Lack of Programming Expertise Hard to hire people who know have good knowledge in both programming and network operations Retraining operation teams on programming Hiring software developers who know networking 7

8

9

10 Goal of NetEgg: intuitive & concise programming abstractions targeting non-programmers

Controller 11 Policy Work hard! Programming Policies Today Examples behaviors

Test examples Controller 12 Test/verify/debug Policy Bad behaviors Work HARDER! Counter examples Programming Policies Today Examples behaviors

Test examples Controller 13 Test/verify/debug Policy Bad behaviors Work HARDER! Counter examples Programming Policies Today Examples behaviors

Test examples Controller 14 Test/verify/debug Policy Bad behaviors Work HARDER, HARDER.. ! Counter examples Programming Policies Today Examples behaviors

Test examples Controller 15 Test/verify/debug Policy Bad behaviors Work HARDER, HARDER.. ! Counter examples Programming Policies Today Examples behaviors

NetEgg Overview Example behaviors Controller 16 Action Instructions / Rule installation Network events Synthesizer Interpreter Policy Bad behaviors conflicts

Example 17 Learning switch: 1.Learn the mapping between hosts and ports 2.Forward packets according to the learnt mapping 3 A 2 1 B 17 flood fwd( p 1 ) fwd( p 2 ) C

A Stateful Policy Model Intuition: states + cases Learning switch: – States: Mapping between hosts and ports – Case 1. Flood packets if the destination is unknown; store the port for the source – Case 2. Forward packets otherwise; store port for source in packets 18

19 MatchTestActionUpdate *ST(dst).state=0floodST(src):=(1,port) *ST(dst).state=1fwd(ST(dst).value)ST(src):=(1,port) MACStateValue A11 MACStateValue A11 C13 Controller 3 A 2 1 C B State Table (ST): Policy Table:

Synthesizer MatchTestActionUpdate *ST(dst).state=0 floodST(src):= (1,port) *ST(dst).state=1 fwd(ST(dst).value) ST(src):= (1,port) 20

Synthesis Algorithm Goal: – Consistent with all scenarios – Minimize the number of rules Approach: 1.Greedy search over policy templates 2.Backtrack with pruning 21

Synthesis Algorithm Illustration 22 MatchTestActionUpdate *ST(dst).state =0 *ST(dst).state =1 … Increasing # rules Backtrack & pruning Backtrack & pruning MatchTestActionUpdate *ST(dst).state=0 floodST(src):= (1,port) *ST(dst).state=1 fwd(ST(dst).value) ST(src):= (1,port) Details in the paper

Rule Installation Idea: Keep rules not updating state tables on the switch 23 MACStateValue A12 B13 MatchTestActionUpdate *ST(dstmac).state=0 floodST(srcmac): =(1,port) *ST(dstmac).state=1 fwd(ST(dstmac). value) ST(srcmac): =(1,port) MatchAction inport=3, srcmac=B, dstmac=Afwd(2) ……

Evaluation Is scenario-based programming feasible? – Expressiveness – Programming time – Efficiency Is the performance of synthesized implementations comparable to hand-crafted implementation? – Controller response latency – End-to-end performance 24

Expressiveness & Efficiency 25

Programming Time 12 graduate students (good in programming) 3 programming assignments: – Mac learner – Stateful firewall – TCP firewall Programming using: – POX – NetEgg 26

User Study: Programming Time 50 % less 72 % less 6 % more 27 State Firewall Mac Learner TCP Firewall

Pox Code: Stateful firewall 28

NetEgg Scenarios: Stateful firewall 29

Synthesized Policy Table: Stateful firewall 30

Response Time 31

End-to-end performance Topology: fattree, 20 switches, 16 hosts Policy: learning switch Setup: – 1 host as HTTP server – other hosts send HTTP requests to the server – benchmark connection time (i.e. time between a request is issued and it is finished.) 32

End-to-end performance 33

Conclusion Scenario-based programming for SDN policies: – Expressive to program a range of policies – Concise in code size – Comparable performance to hand-crafted implementations Future work: – Expanded user study – Objective-oriented policies: TE, Shorted-path routing – Combine with network monitoring 34

Questions? 35