NV: an Intermediate Language for Verification of Network Control Planes

NV: an Intermediate Language for Verification of Network Control Planes

NV: An Intermediate Language for Verification of Network Control Planes Nick Giannarakis Devon Loehr Princeton University Princeton University USA USA [email protected] [email protected] Ryan Beckett David Walker Microsoft Research Princeton University USA USA [email protected] [email protected] Abstract Control Planes. In Proceedings of the 41st ACM SIGPLAN Interna- Network misconfiguration has caused a raft of high-profile tional Conference on Programming Language Design and Implemen- outages over the past decade, spurring researchers to de- tation (PLDI ’20), June 15–20, 2020, London, UK. ACM, New York, NY, USA, 16 pages. https://doi.org/10.1145/3385412.3386019 velop a variety of network analysis and verification tools. Unfortunately, developing and maintaining such tools is an 1 Introduction enormous challenge due to the complexity of network con- figuration languages. Inspired by work on intermediate lan- Following the explosive rise in the number of internet users guages for verification such as Boogie and Why3, we develop and the emergence of cloud computing, networks have seen NV, an intermediate language for verification of network significant growth in their size and complexity. However, control planes. NV carefully walks the line between expres- network operators have a hard time keeping up with this siveness and tractability, making it possible to build models unprecedented growth: in the past few years, network mis- for a practical subset of real protocols and their configu- configuration incidents have caused outages whose effects rations, and also facilitate rapid development of tools that range from popular websites like Facebook being inaccessi- outperform state-of-the-art simulators (seconds vs minutes) ble [42] to cloud services going offline [35, 41, 46], to airlines and verifiers (often 10x faster). Furthermore, we show thatit grounding their flights [23, 34, 37]. is possible to develop novel analyses just by writing new NV To help improve network reliability, researchers have de- programs. In particular, we implement a new fault-tolerance veloped numerous verification and testing tools over the last analysis that scales to far larger networks than existing tools. decade. One wave of tools included Anteater [33], Header- Space Analysis (HSA) [26], Veriflow [27], NetKAT [4, 18, 44], CCS Concepts: • Networks ! Protocol testing and ver- NoD [31] and Bayonet [19]. These tools were designed to ification; • Theory of computation ! Automated rea- analyze the network data plane, the component of a network soning; Verification by model checking. responsible for forwarding (or blocking) user traffic from Keywords: Network Verification, Network Simulation, Con- point A to point B. The tools developed can check both de- trol Plane Analysis, Router Configuration Analysis, Interme- terministic and probabilistic properties of how packets flow diate Verification Language through the data plane, and scale to networks with thousands of devices and millions of packet-forwarding rules. ACM Reference Format: A second wave of tools has focused on analyzing the net- Nick Giannarakis, Devon Loehr, Ryan Beckett, and David Walker. work control plane. The control plane is the component of 2020. NV: An Intermediate Language for Verification of Network a network that gathers information about available routes Permission to make digital or hard copies of all or part of this work for (paths) to destinations and chooses which routes to use. Once personal or classroom use is granted without fee provided that copies the control plane has chosen its preferred routes, it passes are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights them off to the data plane, which implements them. From for components of this work owned by others than the author(s) must time to time, the control plane will receive new information be honored. Abstracting with credit is permitted. To copy otherwise, or about the available routes (e.g., when failures occur), and republish, to post on servers or to redistribute to lists, requires prior specific when it does, it may compute new routes to a destination. permission and/or a fee. Request permissions from [email protected]. Tools that analyze the control plane, such as C-BGP [40], PLDI ’20, June 15–20, 2020, London, UK rcc [15], Batfish [17], ARC [21], ERA [14], Bagpipe [49], © 2020 Copyright held by the owner/author(s). Publication rights licensed to ACM. MineSweeper [6], FastPlane [32], and ShapeShifter [8], will ACM ISBN 978-1-4503-7613-6/20/06...$15.00 analyze the router configurations that specify how routes are https://doi.org/10.1145/3385412.3386019 to be chosen and will compute the outcome of those choices PLDI ’20, June 15–20, 2020, London, UK Nick Giannarakis, Devon Loehr, Ryan Beckett, and David Walker (i.e., compute the routes that will be used by the data plane). and, in this case, networking. Fortunately, we can simplify These tools can then answer questions such as whether the the task by first parsing source languages into a surface-level control plane will compute a route from A to B (i.e., control IR (i.e. Batfish’s IR), and then encoding the semantics ofthis plane reachability), or whether it will compute route from A IR into a lower-level IR designed specifically for verification. to B regardless of which single link failure occurs (i.e., con- Such an architecture separates key concerns and simplifies trol plane fault tolerance). However, control plane tools are each aspect of the pipeline. Indeed, this methodology has usually less scalable than the data plane tools, particularly been used successfully for general-purpose programming when it comes to checking properties like control plane fault languages in systems such as Boogie [30], Why [16], and tolerance, which may involve computing different routes CIVL [43]. The key challenge comes in the design of the from A to B for every possible failure scenario. low-level intermediate language for verification: it should This paper focuses exclusively on control plane analysis be succint, expressive enough to encode the semantics of tools and the difficulty of building such tools.1 Much of this the source language, and tractable enough to admit efficient difficulty arises from the fact that router vendors suchas analysis of its features. Cisco and Juniper each have their own proprietary config- uration languages that consist of an enormous number of A functional language for modeling routing protocols. ad hoc commands that are specific to a particular protocol, Our first contribution is the design of NV, a functional lan- such as OSPF or BGP. To analyze a network control plane, guage for modeling routing protocols. NV uses conven- one must first parse these varied configuration languages tional, expressive and compositional constructs with ordinary, and interpret their semantics. broadly-understood semantics, such as integers, booleans, Fortunately, colleagues at Intentionet have built Batfish [17], functions, and records. Additionally, it allows users to ex- a tool that parses these configurations and creates an in- press unknowns, such as potential failures or actions of termediate representation (IR) on top of which researchers neighboring networks, in a general way, using symbolic val- can develop their own analyses. Indeed, researchers from a ues, and lets users specify network properties via assertions. number of different institutions have built verification and NV’s design provides building blocks for modeling both simulation tools using Batfish as a front end[6–8, 14, 20, 21]. standard routing protocols and variations thereon. The latter While Batfish is a remarkably useful front end for manag- is quite useful as large cloud providers have been known ing configurations, its IR does not fundamentally change the to tweak standard protocols for internal use; accommodat- abstractions present in the vendor languages it supports—it ing these tweaks is easier in NV. In addition, these building represents those surface-level abstractions directly. Doing so blocks can be used to implement transformations of NV pro- has the advantage of being expedient and straightforward, grams. Optimizations, such as partial evaluation, or transfor- but causes Batfish to inherit some of the less desirable proper- mations, such as message [8] or topology [7, 22] abstractions ties of the configuration languages themselves. In particular, can be implemented as NV-to-NV transformations, indepen- the Batfish IR is quite verbose: A recent examination oftheIR dent of one another and of the back-end analysis used. Prior showed it contained 24 statements and more than 100 types to this research, designing a network verification tool in- of expressions. It has 19 different ways just to modify fields volved simultaneously interpreting the low-level commands of a routing message. Implementing configuration analysis from various vendors (Cisco, Juniper, Arista, Force10, etc.), back-ends like MineSweeper [6] requires understanding the optimizing their representation, and converting them to the semantics of all these different kinds of statements and ex- appropriate structure (e.g., SMT constraints) all at once. pressions, which is challenging. Moreover, Batfish continues The most difficult design challenge in NV was oriented to evolve, adding new vendor features, and with them new around the definition of a dictionary (finite map) type. These components to its IR. This makes it a challenge to maintain dictionaries need to be expressive enough to encode the key- analysis tools. It is even harder to develop and maintain tools value stores and the sets processed by most routing protocols, like ShapeShifter [8] that need to transform conventional yet simple enough to admit efficient encodings both as SMT routing protocols, as the Batfish IR does not provide the formulae for use in symbolic verification techniques, and “building blocks” necessary to represent new, non-standard as multi-terminal binary decision diagrams (MTBDDs) for routing protocols. simulation-based analysis. Such efficient encodings are key to scaling NV to large networks.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    16 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us