Toward Synthesis of Network Updates

Updates to network configurations are notoriously difficult to implement correctly. Even if the old and new configurations are correct, the update process can introduce transient errors such as forwarding loops, dropped packets, and access control violations. The key factor that makes updates difficult to implement is that networks are distributed systems with hundreds or even thousands of nodes, but updates must be rolled out one node at a time. In networks today, the task of determining a correct sequence of updates is usually done manually -- a tedious and error-prone process for network operators. This paper presents a new tool for synthesizing network updates automatically. The tool generates efficient updates that are guaranteed to respect invariants specified by the operator. It works by navigating through the (restricted) space of possible solutions, learning from counterexamples to improve scalability and optimize performance. We have implemented our tool in OCaml, and conducted experiments showing that it scales to networks with a thousand switches and tens of switches updating.

[1]  Bruce M. Maggs,et al.  R-BGP: Staying Connected in a Connected World , 2007, NSDI.

[2]  Eran Yahav,et al.  Abstraction-guided synthesis of synchronization , 2010, POPL '10.

[3]  Olivier Bonaventure,et al.  Seamless network-wide IGP migrations , 2011, SIGCOMM.

[4]  Chen-Nee Chuah,et al.  Graceful Network State Migrations , 2011, IEEE/ACM Transactions on Networking.

[5]  Olivier Bonaventure,et al.  Avoiding disruptions during maintenance operations on BGP sessions , 2007, IEEE Transactions on Network and Service Management.

[6]  Olivier Bonaventure,et al.  Avoiding Transient Loops During the Convergence of Link-State Routing Protocols , 2007, IEEE/ACM Transactions on Networking.

[7]  Olivier Bonaventure,et al.  Disruption Free Topology Reconfiguration in OSPF Networks , 2007, IEEE INFOCOM 2007 - 26th IEEE International Conference on Computer Communications.

[8]  Marco Pistore,et al.  NuSMV 2: An OpenSource Tool for Symbolic Model Checking , 2002, CAV.

[9]  Swarat Chaudhuri,et al.  Model Checking on Trees with Path Equivalences , 2007, TACAS.

[10]  Arun Venkataramani,et al.  Consensus Routing: The Internet as a Distributed System. (Best Paper) , 2008, NSDI.

[11]  Sumit Gulwani,et al.  Inferring locks for atomic sections , 2008, PLDI '08.

[12]  Eran Yahav,et al.  Deriving linearizable fine-grained concurrent objects , 2008, PLDI '08.

[13]  David Walker,et al.  Abstractions for network update , 2012, SIGCOMM '12.

[14]  Armando Solar-Lezama,et al.  Sketching concurrent data structures , 2008, PLDI '08.