skip to main content
research-article

VeriCon: towards verifying controller programs in software-defined networks

Published:09 June 2014Publication History
Skip Abstract Section

Abstract

Software-defined networking (SDN) is a new paradigm for operating and managing computer networks. SDN enables logically-centralized control over network devices through a "controller" software that operates independently from the network hardware, and can be viewed as the network operating system. Network operators can run both inhouse and third-party SDN programs (often called applications) on top of the controller, e.g., to specify routing and access control policies. SDN opens up the possibility of applying formal methods to prove the correctness of computer networks. Indeed, recently much effort has been invested in applying finite state model checking to check that SDN programs behave correctly. However, in general, scaling these methods to large networks is challenging and, moreover, they cannot guarantee the absence of errors.

We present VeriCon, the first system for verifying that an SDN program is correct on all admissible topologies and for all possible (infinite) sequences of network events. VeriCon either confirms the correctness of the controller program on all admissible network topologies or outputs a concrete counterexample. VeriCon uses first-order logic to specify admissible network topologies and desired network-wide invariants, and then implements classical Floyd-Hoare-Dijkstra deductive verification using Z3. Our preliminary experience indicates that VeriCon is able to rapidly verify correctness, or identify bugs, for a large repertoire of simple core SDN programs. VeriCon is compositional, in the sense that it verifies the correctness of execution of any single network event w.r.t. the specified invariant, and can thus scale to handle large programs. To relieve the burden of specifying inductive invariants from the programmer, VeriCon includes a separate procedure for inferring invariants, which is shown to be effective on simple controller programs. We view VeriCon as a first step en route to practical mechanisms for verifying network-wide invariants of SDN programs.

References

  1. OpenFlow Switch Specification, Oct. 2013. Version 1.4.0.Google ScholarGoogle Scholar
  2. Anderson, C. J., Foster, N., Guha, A., Jeannin, J.-B., Kozen, D., Schlesinger, C., and Walker, D. NetKAT: Semantic foundations for networks. In POPL (2014), S. Jagannathan and P. Sewell, Eds., ACM, pp. 113--126. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Canini, M., Venzano, D., Peres, P., Kostic, D., and Rexford, J. A NICE Way to Test OpenFlow Applications. In NSDI (2012). Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. de Moura, L. M., and Bjørner, N. Z3: An Efficient SMT Solver. In TACAS (2008), C. R. Ramakrishnan and J. Rehof, Eds., vol. 4963 of Lecture Notes in Computer Science, Springer, pp. 337--340. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Dijkstra, E. W. Guarded commands, nondeterminacy and formal derivation of programs. Commun. ACM 18, 8 (1975), 453--457. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Foster, N., Guha, A., Reitblatt, M., Story, A., Freedman, M. J., Katta, N. P., Monsanto, C., Reich, J., Rexford, J., Schlesinger, C., Walker, D., and Harrison, R. Languages for software-defined networks. IEEE Communications Magazine 51, 2 (2013), 128--134.Google ScholarGoogle ScholarCross RefCross Ref
  7. Frade, M., and Pinto, J. Verification conditions for source-level imperative programs. Computer Science Review 5, 3 (2011), 252--277. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Gember, A., Krishnamurthy, A., John, S. S., Grandl, R., Gao, X., Anand, A., Benson, T., Akella, A., and Sekar, V. Stratos: A Network-Aware Orchestration Layer for Middleboxes in the Cloud. Tech. Rep. arXiv:1305.0209, 2013.Google ScholarGoogle Scholar
  9. Godefroid, P., Klarlund, N., and Sen, K. DART: directed automated random testing. In PLDI (2005), pp. 213--223. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Guha, A., Reitblatt, M., and Foster, N. Machine-verified network controllers. In PLDI (2013), pp. 483--494. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Jain, S., Kumar, A., Mandal, S., Ong, J., Poutievski, L., Singh, A., Venkata, S., Wanderer, J., Zhou, J., Zhu, M., Zolla, J., Hölzle, U., Stuart, S., and Vahdat, A. B4: Experience with a Globally-deployed Software Defined WAN. In ACM SIGCOMM (2013), pp. 3--14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Katta, N. P., Rexford, J., and Walker, D. Logic programming for software-defined networks. In ACM SIGPLAN Workshop on Cross-model Language Design and Implementation (Sept. 2012).Google ScholarGoogle Scholar
  13. Kazemian, P., Chang, M., Zeng, H., Varghese, G., McKeown, N., and Whyte, S. Real Time Network Policy Checking using Header Space Analysis. In 10th USENIX Symposium on Networked Systems Design and Implementation (NSDI '13) (2013). Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Kazemian, P., Varghese, G., and McKeown, N. Header Space Analysis: Static Checking For Networks. In 9th USENIX Symposium on Networked Systems Design and Implementation (NSDI '12) (2012). Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Khurshid, A., Zhou, W., Caesar, M., and Godfrey, B. Veriflow: verifying network-wide invariants in real time. Computer Communication Review 42, 4 (2012), 467--472. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Koponen, T., Amidon, K., Balland, P., Casado, M., Chanda, A., Fulton, B., Ganichev, I., Gross, J., Gude, N., Ingram, P., Jackson, E., Lambeth, A., Lenglet, R., Li, S.-H., Padmanabhan, A., Pettit, J., Pfaff, B., Ramanathan, R., Shenker, S., Shieh, A., Stribling, J., Thakkar, P., Wendlandt, D., Yip, A., and Zhang, R. Network virtualization in multi-tenant datacenters. In 11th USENIX Symposium on Networked Systems Design and Implementation (NSDI '14) (2014). Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Kuzniar, M., Peresini, P., Canini, M., Venzano, D., and Kostic, D. A SOFT Way for OpenFlow Switch Interoperability Testing. In CoNEXT (2012), pp. 265--276. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. McCarthy, J. Towards a mathematical science of computation. In IFIP Congress (1962), pp. 21--28.Google ScholarGoogle Scholar
  19. Nayak, A. K., Reimers, A., Feamster, N., and Clark, R. Resonance: Dynamic Access Control for Enterprise Networks. In Proceedings of the 1st ACM Workshop on Research on Enterprise Networking (WREN '09) (2009), pp. 11--18. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Nelson, T., Ferguson, A. D., Scheer, M. J. G., and Krishnamurthi, S. A balance of power: Expressive, analyzable controller programming. In 11th USENIX Symposium on Networked Systems Design and Implementation (NSDI '14) (2014).Google ScholarGoogle Scholar
  21. Qazi, Z. A., Tu, C.-C., Miao, R., Sekar, V., and Yu, M. SIMPLE-fying Middlebox Policy Enforcement Using SDN. In ACM SIGCOMM (2013), pp. 27--38. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Reitblatt, M., Foster, N., Rexford, J., Schlesinger, C., and Walker, D. Abstractions for network update. In ACM SIGCOMM (2012), pp. 323--334. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Sethi, D., Narayana, S., and Malik, S. Abstractions for model checking sdn controllers. In FMCAD (2013).Google ScholarGoogle Scholar
  24. Skowyra, R., Lapets, A., Bestavros, A., and Kfoury, A. A verification platform for sdn-enabled applications. In HiCoNS (2013).Google ScholarGoogle Scholar
  25. Voellmy, A., Wang, J., Yang, Y. R., Ford, B., and Hudak, P. Maple: simplifying SDN programming using algorithmic policies. In ACM SIGCOMM (2013), pp. 87--98. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. VeriCon: towards verifying controller programs in software-defined networks

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              • Published in

                cover image ACM SIGPLAN Notices
                ACM SIGPLAN Notices  Volume 49, Issue 6
                PLDI '14
                June 2014
                598 pages
                ISSN:0362-1340
                EISSN:1558-1160
                DOI:10.1145/2666356
                • Editor:
                • Andy Gill
                Issue’s Table of Contents
                • cover image ACM Conferences
                  PLDI '14: Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation
                  June 2014
                  619 pages
                  ISBN:9781450327848
                  DOI:10.1145/2594291

                Copyright © 2014 ACM

                Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies 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 for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 9 June 2014

                Check for updates

                Qualifiers

                • research-article

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader