{"title":"A (not) NICE way to verify the openflow switch specification: formal modelling of the openflow switch using alloy","authors":"Natali Ruchansky, Davide Proserpio","doi":"10.1145/2486001.2491711","DOIUrl":null,"url":null,"abstract":"The introduction of Software Defined Networks (SDNs) is completely changing the way in which networks are built and managed. SDNs decouple data from control plane access, which makes introduction of new network functionalities significantly simpler. The philosophy of OpenFlow is a move towards centralization, where a single controller program manages the logic of switches. While centralized systems are often easier to coordinate, the likelihood of bugs is still high. Despite the existence of an OpenFlow Specification [3], it may still be possible observe unexpected behavior while adhering to this Specification. This can be due to various reasons, such as underspecification of some aspect of the protocol or a contrived sequence of events. One of the emerging techniques to verify (prove that a system satisfies its specification) standards and protocols is formal modeling. Created at some chosen level of abstraction, the purpose of a formal model is to enable precise understanding, specification, and analysis of the system. The modeling language Alloy has been noted as a tool that lends itself to modeling complex networks. In fact, it has been used in many applications [1], including the analysis of Chord [6, 7] which led to a counterexample proving the incorrectness of the protocol. The main contribution of this paper is to apply the principles of formal modeling to OpenFlow. Concretely we use model enumeration (Alloy and Alloy Analyzer [5]) to model an OpenFlow-capable switch. The aim of this project is twofold: (1) to provide a proof of correctness (or not) of the OpenFlow Switch Specification Version 1.1.0 and (2) provide researchers with a complete OpenFlow Switch module that can be used as a foundation to verify various applications or types of networks (more detail in Section 4 and our site [2]). The remainder of the paper is organized as follows. In Sec-","PeriodicalId":159374,"journal":{"name":"Proceedings of the ACM SIGCOMM 2013 conference on SIGCOMM","volume":"26 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2013-08-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"26","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the ACM SIGCOMM 2013 conference on SIGCOMM","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2486001.2491711","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 26
Abstract
The introduction of Software Defined Networks (SDNs) is completely changing the way in which networks are built and managed. SDNs decouple data from control plane access, which makes introduction of new network functionalities significantly simpler. The philosophy of OpenFlow is a move towards centralization, where a single controller program manages the logic of switches. While centralized systems are often easier to coordinate, the likelihood of bugs is still high. Despite the existence of an OpenFlow Specification [3], it may still be possible observe unexpected behavior while adhering to this Specification. This can be due to various reasons, such as underspecification of some aspect of the protocol or a contrived sequence of events. One of the emerging techniques to verify (prove that a system satisfies its specification) standards and protocols is formal modeling. Created at some chosen level of abstraction, the purpose of a formal model is to enable precise understanding, specification, and analysis of the system. The modeling language Alloy has been noted as a tool that lends itself to modeling complex networks. In fact, it has been used in many applications [1], including the analysis of Chord [6, 7] which led to a counterexample proving the incorrectness of the protocol. The main contribution of this paper is to apply the principles of formal modeling to OpenFlow. Concretely we use model enumeration (Alloy and Alloy Analyzer [5]) to model an OpenFlow-capable switch. The aim of this project is twofold: (1) to provide a proof of correctness (or not) of the OpenFlow Switch Specification Version 1.1.0 and (2) provide researchers with a complete OpenFlow Switch module that can be used as a foundation to verify various applications or types of networks (more detail in Section 4 and our site [2]). The remainder of the paper is organized as follows. In Sec-
软件定义网络(sdn)的引入正在彻底改变网络的构建和管理方式。sdn将数据从控制平面访问中分离出来,这使得引入新的网络功能变得非常简单。OpenFlow的理念是朝着集中化的方向发展,即单个控制器程序管理交换机的逻辑。虽然集中式系统通常更容易协调,但出现bug的可能性仍然很高。尽管存在OpenFlow规范[3],但在遵守该规范的同时,仍然可能观察到意外行为。这可能是由于各种原因造成的,例如协议的某些方面没有规范,或者人为的事件序列。用于验证(证明系统满足其规范)标准和协议的新兴技术之一是形式化建模。在某个选定的抽象级别上创建,正式模型的目的是实现对系统的精确理解、规范和分析。建模语言Alloy被认为是一种适合对复杂网络进行建模的工具。事实上,它已经在许多应用程序中使用[1],包括对Chord的分析[6,7],它导致了一个反例,证明了协议的不正确性。本文的主要贡献是将形式化建模的原则应用于OpenFlow。具体地说,我们使用模型枚举(Alloy and Alloy Analyzer[5])来建模一个支持openflow的开关。该项目的目的有两个:(1)提供OpenFlow Switch Specification Version 1.1.0正确性(或不正确性)的证明;(2)为研究人员提供一个完整的OpenFlow Switch模块,可作为验证各种应用或网络类型的基础(详见第4节和我们的网站[2])。本文的其余部分组织如下。在证券交易委员会-