Formal Specification and Programming for SDN



Similar documents
Formal Verification for Software-Defined Networking

Frenetic: A Programming Language for OpenFlow Networks

SDN Security Design Challenges

Abstractions for Network Update

A collaborative model for routing in multi-domains OpenFlow networks

SDN Architecture and Standards for Operational, at Scale Networks. 신명기 ETRI KRNET June 2012

Implementation of Address Learning/Packet Forwarding, Firewall and Load Balancing in Floodlight Controller for SDN Network Management

Transactional Support for SDN Control Planes "

Time-based Updates in OpenFlow: A Proposed Extension to the OpenFlow Protocol

SDN. What's Software Defined Networking? Angelo Capossele

Software Defined Networking What is it, how does it work, and what is it good for?

Software Defined Networking

A Study on Software Defined Networking

Abstractions For Software-Defined Networks

OperationCheckpoint: SDN Application Control

Poisoning Network Visibility in Software-Defined Networks: New Attacks and Countermeasures Sungmin Hong, Lei Xu, Haopei Wang, Guofei Gu

A Testbed for research and development of SDN applications using OpenFlow

SDN/Virtualization and Cloud Computing

Limitations of Current Networking Architecture OpenFlow Architecture

SDN and Streamlining the Plumbing. Nick McKeown Stanford University

SDN AND SECURITY: Why Take Over the Hosts When You Can Take Over the Network

The Future of Networking, and the Past of Protocols

Automated Formal Analysis of Internet Routing Systems

OpenFlow and Onix. OpenFlow: Enabling Innovation in Campus Networks. The Problem. We also want. How to run experiments in campus networks?

Current Trends of Topology Discovery in OpenFlow-based Software Defined Networks

An Assertion Language for Debugging SDN Applications

Outline. Institute of Computer and Communication Network Engineering. Institute of Computer and Communication Network Engineering

Comparisons of SDN OpenFlow Controllers over EstiNet: Ryu vs. NOX

The Past, Present, and Future of Software Defined Networking

From Electronic Design Automation to NDA: Treating Networks like Chips or Programs

Towards Correct Network Virtualization. Soudeh Ghorbani Brighten Godfrey UIUC

The Many Faces of SDN: An Industry Perspective

Improving Network Management with Software Defined Networking

Survey: Software Defined Networks with Emphasis on Network Monitoring

Applying SDN to Network Management Problems. Nick Feamster University of Maryland

SIMPLE NETWORKING QUESTIONS?

Software Defined Networking and the design of OpenFlow switches

Software Defined Networks

Project 3 and Software-Defined Networking (SDN)

Security improvement in IoT based on Software Defined Networking (SDN)

OpenFlow: Concept and Practice. Dukhyun Chang

The OSI Model and the TCP/IP Protocol Suite PROTOCOL LAYERS. Hierarchy. Services THE OSI MODEL

CloudWatcher: Network Security Monitoring Using OpenFlow in Dynamic Cloud Networks

A Method for Load Balancing based on Software- Defined Network

The Internet: A Remarkable Story. Inside the Net: A Different Story. Networks are Hard to Manage. Software Defined Networking Concepts

Modular SDN Programming with Pyretic

OpenFlow Overview. Daniel Turull

Auto-Configuration of SDN Switches in SDN/Non-SDN Hybrid Network

Software Defined Networking Architecture

Cloud Computing Security: What Changes with Software-Defined Networking?

An Intelligent Framework for Vehicular Ad-hoc Networks using SDN Architecture

Software Defined Networking and OpenFlow: a Concise Review

Facilitating Network Management with Software Defined Networking

Future of DDoS Attacks Mitigation in Software Defined Networks

SDN and OpenFlow. Naresh Thukkani (ONF T&I Contributor) Technical Leader, Criterion Networks

Reactive Logic in Software-Defined Networking: Measuring Flow-Table Requirements

Software Defined Networking for Telecom Operators: Architecture and Applications

Distributed Software-Defined Networking: The ACM PODC 2014 Workshop DSDN

Software Defined Networks

Software-Defined Networking for the Data Center. Dr. Peer Hasselmeyer NEC Laboratories Europe

How To Understand The Power Of The Internet

Fabric: A Retrospective on Evolving SDN

A Software-Defined Approach for End-to-end IoT Networking

Software Defined Networking & Openflow

Software-Defined Network Management

SDN Interfaces and Performance Analysis of SDN components

Keywords SDN; Framework; Models; Opportunities; Application; Trends; Architecture; Challenges; Use Cases.

Mobility Management Framework in Software Defined Networks

OF-RHM: Transparent Moving Target Defense using Software Defined Networking

Information- Centric Networks. Section # 13.2: Alternatives Instructor: George Xylomenos Department: Informatics

Network Programming Languages. Robert Soulé University of Lugano

SOFTWARE-DEFINED NETWORKING AND OPENFLOW

/15/$ IEEE

Open Source Network: Software-Defined Networking (SDN) and OpenFlow

Chap 1. Introduction to Software Architecture

Languages for Software-Defined Networks

Virtualization and SDN Applications

Can Software Defined Networks (SDN) manage the dependability of the service provided to selected customers?

FlowGuard: Building Robust Firewalls for Software-Defined Networks. Hongxin Hu, Wonkyu Han, Gail-Joon Ahn and Ziming Zhao

DEMYSTIFYING ROUTING SERVICES IN SOFTWAREDEFINED NETWORKING

Enabling Software Defined Networking using OpenFlow

FLOWGUARD: Building Robust Firewalls for Software-Defined Networks

Software-Defined Networking (SDN) enables innovation in network

Software-Defined Networking for Wi-Fi White Paper

OFTEN Testing OpenFlow Networks

OpenFlow-Based Dynamic Server Cluster Load Balancing with Measurement Support

Autonomicity Design in OpenFlow Based Software Defined Networking

White Paper on NETWORK VIRTUALIZATION

Transcription:

Formal Specification and Programming for SDN relevant ID: draft-shin-sdn-formal-specification-01 Myung-Ki Shin, Ki-Hyuk Nam ETRI Miyoung Kang, Jin-Young Choi Korea Univ. Proposed SDN RG Meeting@IETF 84 - Vancouver, BC, Canada 1

What s Formal Specification? Some definitions from academia A formal specification is a specification expressed in a language whose semantics are formally defined, as well as vocabulary and syntax. The need for a formal semantic definition means that the specification language must be based on logic, mathematics, etc., not natural languages. Formal verification The act of proving or disproving the correctness of designs or implementations with respect to requirements and properties with which they must satisfy, using the formal methods or techniques 2

Why it is Necessary in SDN? SDN network operators and application/service providers can introduce a new capability by writing a simple software program. Incomplete or malicious programmable entity could cause break-down of underlying networks shared by heterogeneous devices and stake-holders. Any misunderstanding or diverse interpretations should be avoided. Formal specification can be applied to verification methods such as theorem proving, model checking, static analysis, etc. 3

SDN Programming Relevant Works (1/3) Frenetic and NetCore A high-level programming language that can be used to write OpenFlow applications running on top of NOX. Neither NOX or Frenetic perform correctness checking of updates, limiting their ability to help in detecting bugs in the application code or other issues that may occur while the network is in operation. Nate Foster, Rob Harrison, Michael J. Freedman, Christopher Monsanto, Jennifer Rexford, Alec Story, and David Walker, "Frenetic: A network programming language," in Proc. ACM International Conference on Functional Programming, September 2011 4

SDN Programming Relevant Works (2/3) NICE (No bugs In Controller Execution) NICE performs symbolic execution of OpenFlow applications and applies model checking to explore the state space of an entire OpenFlow network. NICE is a proactive approach that tries to figure out invalid system states by using a simplified OpenFlow switch model. It is not designed to check network properties in real time Marco Canini, Daniele Venzano, Peter Peresini, Dejan Kostic, and Jennifer Rexford, "A NICE way to test OpenFlow applications," in Proc. Networked Systems Design and Implementation, April 2012 5

SDN Programming Relevant Works (3/3) Nettle Functional reactive programming for OpenFlow networks using HASKELL language http://haskell.cs.yale.edu/ ONRC http://onrc.stanford.edu/ HotSDN Workshop (SIGCOMM2012) Mark Reitblatt, Nate Foster, Jennifer Rexford, Cole Schesinger, David Walker, Abstractions for Network Update, HotSDN, 2012. 6

Formal Specification Languages SDL (Z.100) Standard specification language suitable for real-time and reactive systems, from requirements to implementation Too big for SDN? Z Language Z could be focused on each switch and controller for emphasis on their functionality It is difficult to specify various states of large networks ACSR (Algebra of Communicating Shard Resources) ACSR can express processes running concurrently and communicating the switches and controller Forwarding packets can be modeled as prioritized synchronization of events in ACSR It is hard to categorize classification of data packets 7

Our Approach - Common Framework We discuss the formally verifiable networking framework for SDN, which consists of the three components Formal specification and programming, Verification methods, and Implementation (SDN control software and applications) 1. Formal Specification & Programing 2. Verification Methods 3. Implementation (SDN Control Software) SDN Data plane (heterogeneous devices, switches, etc.) 0. Design network model (e.g., virtual network topology, access control, etc.) Model Checking Theorem Proving Invariant Checker.. 8

We Assume that SDN has Three-Tier Architecture, including Tier-1 : Forwarding entities and any software/hardware components comprising of them Tier-2 : Control and management entities for the Tier-1 Tier-3 : Applications and services that take advantage of the infrastructures based on Tier-1 and Tier-2. 9

Initial thoughts on Requirements of SDN Programming (1/2) Guarantee that the design and implementation of SDN devices conforms to the standards, correctness and safety properties. Check consistency and safety of their network configurations and virtual and physical topologies against any properties to be satisfied with such as: No loops and/or blackholes in the network Logically different networks cannot interfere with each other (e.g., traffic isolation) New or update configurations conforms to properties of the network and do not break consistency of existing networks (e.g., network updates) 10

Initial thoughts on Requirements of SDN Programming (2/2) Support formal semantics in high-level languages, APIs and underlying protocols for SDN Properties that need to be satisfied with by the SDN should be described in notations with formal semantics Support conceptual models to reason about networks defined, configured, implemented by software and hardware for SDN more precisely. Timing models that capture essential properties and behaviors of packet flows and data traffic in Formalisms that reflect networks and systems behaviors. Diverse languages and tools based on the conceptual model 11

Case Study : SDN Modeling using ACSR SDN modeling using ACSR specification Example-1 : OpenFlow 1.0 spec. verification Example-2 : Invariant Property Checker of SDN topology (access control example) 12

Adding SDN-ACSR/Tools between SDN Controller and Apps 13

Example-1: ACSR Specification of OF1.0 based Example Topology.. An example topology.. 14

Subtle Ambiguities in OF1.0 Spec. 1 An entry that specifies an exact match(i.e., it has no wildcards) is always the highest priority. All wildcard entries have a priority ones. If multiple entries have the same priority, the switch is free to choose any ordering. [OF1.0] Same packets may have different rules? Resolved in OF 1.1+ as setting CHECK_OVERLAP bit 2 For all packet that do not have a matching flow entry, a packet-in event may be sent to the controller [OF1.0] (send OFPT_FLOW_MOD to a switch) But, no specification regarding delays between controllers and multi-switches Not resolved yet? 15

Example-2: ACSR Specification of Access Control Property 1 No loops M noloop = {}:M noloop + (packetin?,1).p(0) P(t) = (t < TLIMIT) à (drop?,1).m noloop + (t < TLIMIT) à (world?,1).m noloop + (t < TLIMIT) à {}:P(t+1) 2 Blocklist (the packets cannot traverse) M blocklist = {}:M blocklist + (packet1in?,1).r(0) R(t) = (t < TLIMIT) à (s24?,1).nil + (t < TLIMIT) à {}:R(t+1) + (t = TLIMIT) à M blocklist 3 Route (the packets reach a switch) M route = {}:M route + (packet1in?,1).r(0) R(t) = (t < TLIMIT) à (s4?,1).m route + (t < TLIMIT) à {}:R(t+1) 16

Checking Property Invariance SDN_ACSR verifier and tools could check the invariant properties related to access controls ( Sys M noloop M blocklist M route ) {} 17

Discussion and Next Step Is proposed SDNRG interested in this topic? Investigate relevant works and challenging issues Develop or standardize new language? Or, define simple/minimum semantics for SDN? Develop a common framework document for formally verifiable networking of SDN Should be integrated with SDN architecture or framework works? 18

References Nate Foster, Rob Harrison, Michael J. Freedman, Christopher Monsanto, Jennifer Rexford, Alec Story, and David Walker, "Frenetic: A network programming language," in Proc. ACM International Conference on Functional Programming, September 2011 Mark Reitblatt, Nate Foster, Jennifer Rexford, Cole Schesinger, David Walker, Abstractions for Network Update, HotSDN, 2012. Marco Canini, Daniele Venzano, Peter Peresini, Dejan Kostic, and Jennifer Rexford, "A NICE way to test OpenFlow applications," in Proc. Networked Systems Design and Implementation, April 2012 A. Wang, L. Jia, C. Liu, B. Loo, O. Sokolsky, and P. Basu, Formally Verifiable Networking,2011. J. Choi, I. Lee, and H. Xie, The Specification and Schedulability Analysis of Real-Time Systems Using ACSR,16th IEEE Real-Time Systems Symp.(RTSS'95), Dec. 1995. Nick McKeown, Making SDNs Work, ONS2012 K-H. Nam, et al., Draft Document of Y.FNsdn-fm "Requirements of formal specification and verification methods for software-defined networking, ITU-T (work-in-progress), 2012. M. Kang et al., Formal Specification for Software-Defined Networks (SDN), CFI'12 (accepted), 2012. 19