SDN Network Updates Minimum updates within a single switch

Slides:



Advertisements
Similar presentations
Tintu David Joy. Agenda Motivation Better Verification Through Symmetry-basic idea Structural Symmetry and Multiprocessor Systems Mur ϕ verification system.
Advertisements

Micro-loop Prevention Methods draft-bryant-shand-lf-conv-frmwk-00.txt draft-zinin-microloop-analysis-00.txt.
Dynamic Scheduling of Network Updates Xin Jin Hongqiang Harry Liu, Rohan Gandhi, Srikanth Kandula, Ratul Mahajan, Ming Zhang, Jennifer Rexford, Roger Wattenhofer.
SIMPLE-fying Middlebox Policy Enforcement Using SDN
SDN Applications Jennifer Rexford Princeton University.
Dynamic Scheduling of Network Updates Based on the slides by Xin Jin Hongqiang Harry Liu, Rohan Gandhi, Srikanth Kandula, Ratul Mahajan, Ming Zhang, Jennifer.
CloudWatcher: Network Security Monitoring Using OpenFlow in Dynamic Cloud Networks or: How to Provide Security Monitoring as a Service in Clouds? Seungwon.
Nanxi Kang Princeton University
Software Defined Networking COMS , Fall 2013 Instructor: Li Erran Li SDNFall2013/
Incremental Consistent Updates Naga Praveen Katta Jennifer Rexford, David Walker Princeton University.
VeriCon: Towards Verifying Controller Programs in SDNs (PLDI 2014) Thomas Ball, Nikolaj Bjorner, Aaron Gember, Shachar Itzhaky, Aleksandr Karbyshev, Mooly.
Towards a Logic for Wide-Area Internet Routing Nick Feamster and Hari Balakrishnan M.I.T. Computer Science and Artificial Intelligence Laboratory Kunal.
Chapter 11: Limitations of Algorithmic Power
Chapter 11 Limitations of Algorithm Power Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
NFVRG Dallas Verification of NFV Services : Problem Statement and Challenges draft-shin-nfvrg-service-verification-01 M-K. Shin, ETRI.
Software-Defined Networking
Data Plane Verification. Background: What are network policies Alice can talk to Bob Skype traffic must go through a VoIP transcoder All traffic must.
Programming Fundamentals (750113) Ch1. Problem Solving
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 8: February 13, 2008 Retiming.
Languages for Software-Defined Networks Nate Foster, Arjun Guha, Mark Reitblatt, and Alec Story, Cornell University Michael J. Freedman, Naga Praveen Katta,
Building Compilers for Reconfigurable Switches Lavanya Jose, Lisa Yan, Nick McKeown, and George Varghese 1 Research funded by AT&T, Intel, Open Networking.
Detection and Resolution of Anomalies in Firewall Policy Rules
SIMPLE-fying Middlebox Policy Enforcement Using SDN Zafar Ayyub Qazi Cheng-Chun Tu Luis Chiang Vyas Sekar Rui Miao Minlan Yu.
Formal checkings in networks James Hongyi Zeng with Peyman Kazemian, George Varghese, Nick McKeown.
Towards a Logic for Wide- Area Internet Routing Nick Feamster Hari Balakrishnan.
Cross-Domain Privacy-Preserving Cooperative Firewall Optimization.
Software-Defined Networks Jennifer Rexford Princeton University.
Formal Modeling of an Openflow Switch using Alloy Natali Ruchansky and Davide Proserpio.
VeriFlow: Verifying Network-Wide Invariants in Real Time
Reasoning about Software Defined Networks Mooly Sagiv Tel Aviv University Thursday (Physics 105) Monday Schrieber.
1 Lower Bounds Lower bound: an estimate on a minimum amount of work needed to solve a given problem Examples: b number of comparisons needed to find the.
A Mechanized Model for CAN Protocols Context and objectives Our mechanized model Results Conclusions and Future Works Francesco Bongiovanni and Ludovic.
UPPAAL-based Software-Defined Network Verification Uliana Popesko Lomonosov Moscow State University 2014.
Programming Languages for Software Defined Networks Jennifer Rexford and David Walker Princeton University Joint work with the.
1 Computer Communication & Networks Lecture 21 Network Layer: Delivery, Forwarding, Routing Waleed.
Lecture 5 1 CSP tools for verification of Sec Prot Overview of the lecture The Casper interface Refinement checking and FDR Model checking Theorem proving.
SIMPLE-fying Middlebox Policy Enforcement Using SDN
Jennifer Rexford Princeton University MW 11:00am-12:20pm Data-Plane Verification COS 597E: Software Defined Networking.
Coping with Link Failures in Centralized Control Plane Architecture Maulik Desai, Thyagarajan Nandagopal.
Header Space Analysis: Static Checking for Networks Broadband Network Technology Integrated M.S. and Ph.D. Eun-Do Kim Network Standards Research Section.
Authors: Mark Reitblatt, Nate Foster, Jennifer Rexford, Cole Schlesinger, David Walker Presenter: Byungkwon Choi Abstractions for Network Update INA.
Programming Assignment 2 Zilong Ye. Traditional router Control plane and data plane embed in a blackbox designed by the vendor high-seed switching fabric.
A Classification for Access Control List To Speed Up Packet-Filtering Firewall CHEN FAN, LONG TAN, RAWAD FELIMBAN and ABDELSHAKOUR ABUZNEID Department.
RuleTris: Minimizing Rule Update Latency for TCAM-based SDN Switches Xitao Wen*, Bo Yang #, Yan Chen*, Li Erran Li $, Kai Bu #, Peng Zheng &, Yang Yang*,
Xin Li, Chen Qian University of Kentucky
SDN challenges Deployment challenges
Programming SDN Newer proposals Frenetic (ICFP’11) Maple (SIGCOMM’13)
The DPIaaS Controller Prototype
Martin Casado, Nate Foster, and Arjun Guha CACM, October 2014
Praveen Tammana† Rachit Agarwal‡ Myungjin Lee†
Matching Logic An Alternative to Hoare/Floyd Logic
NOX: Towards an Operating System for Networks
of Dynamic NFV-Policies
COS 561: Advanced Computer Networks
CCNA 2 v3.1 Module 6 Routing and Routing Protocols
Intra-Domain Routing Jacob Strauss September 14, 2006.
Programmable Networks
Abstractions for Model Checking SDN Controllers
Software Defined Networking (SDN)
COS 561: Advanced Computer Networks
Programming Fundamentals (750113) Ch1. Problem Solving
ClosedFlow: OpenFlow-like Control over Proprietary Devices
Languages for Software-Defined Networks
COS 561: Advanced Computer Networks
COS 561: Advanced Computer Networks
Chapter 11 Limitations of Algorithm Power
EE 122: Lecture 7 Ion Stoica September 18, 2001.
Programmable Networks
Lecture 10, Computer Networks (198:552)
Control-Data Plane Separation
Presentation transcript:

SDN Network Updates Minimum updates within a single switch Network-wide Consistent updates

Updates within a single switch Current State-of-the-art OpenFlow Switches can process tens to a few hundreds of flow-mod’s per second Rewriting the whole flow-table will take a while Minimum update Given a configuration change (e.g. add and remove flows), how to issue the smallest number of flow-mod to achieve the objective Should do incremental update, but the current high-level language compiler mostly re-write the whole flow-table

The minimum update problem An example of Flow table (rules) before and after Pattern Priority Action A [1, 2, *] 5 Port 1 B [*, 2, 3] 4 Port 2 G [*, 2, 4] 3 Port 7 C [1, *, 4] 2 Port 3 D [1, *, 3] Port 4 E [*, *, 4] 1 Port 5 F [*, *, 3] Port 6 Pattern Priority Action A [1, 2, *] 5 Port 1 B [*, 2, 3] 4 Port 2 C [1, *, 4] Port 3 D [1, *, 3] 3 Port 4 E [*, *, 4] Port 5 F [*, *, 3] 2 Port 6 Inserting rule G [*, 2, 4] in the table with high priority, above all but rule A

The minimum update problem Inserting rule G [*, 2, 4] in the table with high priority, above all but rule A. Insert the rule with the right priority Adjust the priority of other rules if necessary How to set the priority? Pattern Priority Action A [1, 2, *] 5 Port 1 B [*, 2, 3] 4 Port 2 C [1, *, 4] Port 3 D [1, *, 3] 3 Port 4 E [*, *, 4] Port 5 F [*, *, 3] 2 Port 6

The minimum update problem Rule G: Pattern [*, 2, 4] above all but Rule A. Rules with overlapping patterns have interdependence Changing priority would change the dependence [*, 2, 4] overlaps with Rule A, C, and E. Pattern Priority Action A [1, 2, *] 5 Port 1 B [*, 2, 3] 4 Port 2 C [1, *, 4] Port 3 D [1, *, 3] 3 Port 4 E [*, *, 4] Port 5 F [*, *, 3] 2 Port 6

Capturing the dependence in the flow table – build the dependence graph Finding the exact dependence can be tricky: Two rules may be independent even if their patterns overlap. Two rules are directly independent iff the patterns are disjoint or if the the joint of the pattern is shadowed by other rules they both depend on.

The minimum update problem Represent the minimum dependency in a flow table with a DAG Pattern Priority Action A [1, 2, *] 5 Port 1 B [*, 2, 3] 4 Port 2 C [1, *, 4] Port 3 D [1, *, 3] 3 Port 4 E [*, *, 4] Port 5 F [*, *, 3] 2 Port 6 A B C D E F

The minimum update problem Insert G into the DAG A A Pattern Priority Action A [1, 2, *] 5 Port 1 B [*, 2, 3] 4 Port 2 C [1, *, 4] 2 Port 3 D [1, *, 3] 3 Port 4 E [*, *, 4] 1 Port 5 F [*, *, 3] Port 6 G [*, 2, 4] Port 7 B C B D E D G F F C E

The system Building DAG from prioritized flowtable entries Incurs complicated header space computation

The system Building DAG along with policy compilation Rule dependency can be recursively inferred from policy composition process Incurs little additional overhead over compilation

Priority Value Distribution Discrete priority values Integers ranging [0-65535] for OpenFlow If new rule is inserted between adjacent priority values, we have to shift existing rules to make room for them How to assign priority values for priority levels Minimize the estimation of priority shifts Online strategy Unknown future policy update sequence

Some things unclear How to compute exact dependence DAG? How to allocate priority value for each rules so as to minimize the priority changes? Is there a way to rewrite the priority values to minimize future changes?

Whole network consistent updates “Abstractions for Network Updates”, SIGCOMM 2012.

Background Network updates happen when the network configuration changes Maintenance Failures ACL updates Etc With traditional distributed protocol – the system will converge to a new stable, consistent state; but the transient state is hard to reason and guarantee Black-holes Loops Security violations With SDN and a consistent network update abstraction, even the transient state can be managed.

Network Updates challenges Global network updates may affect many routers, must define and solve a distributed computing problem.

An example

An example

An example

Naïve Update: F1->F2->F3->I, security policy failed!

An abstraction: Per-packet consistent update Per-packet consistent update: each packet processed with old or new configuration, but not a mixture of the two.

Universal Property Preservation Theorem: Per-packet consistent update preserves all trace properties. Trace property of a single packet’s path through the network Example of trace Properties: Loop freedom, access control, etc

Formal Verification Corollary: to check an invariant, verify the old and new configurations.

Mechanism: 2-phase update Runtime instruments configurations Edge rules stamp packets with version Forwarding rules match on version Algorithm: Install new rules on internal switches, leave old configuration in place Install edge rules that stamp with the new version number

2-phase update example

2-phase update example

2-phase update example

2-phase update example

2-phase update example

2-phase update example

Optimizations Add a path: install rules internally and then at the edge, no version. Remove a path: update the edge, wait for all to drain, update the internal Modify a path: subset optimization to affect the smallest number of paths.

Correctness Build an operational semantics, formalize the mechanism and prove them correct.

Conclusion Update abstractions Mechanisms Formal model Per-packet consistency Per-flow consistency Mechanisms 2-phase update Optimizations Formal model Network operational semantics Universal property preservation