Config2Spec: Mining Network Specifications from Network Configurations

Authors: 

Rüdiger Birkner, ETH Zürich; Dana Drachsler-Cohen, Technion; Laurent Vanbever and Martin Vechev, ETH Zürich

Abstract: 

Network verification and configuration synthesis are promising approaches to make networks more reliable and secure by enforcing a set of policies. However, these approaches require a formal and precise description of the intended network behavior, imposing a major barrier to their adoption: network operators are not only reluctant to write formal specifications, but often do not even know what these specifications are.

We present Config2Spec, a system that automatically synthesizes a formal specification (a set of policies) of a network given its configuration and a failure model (e.g., up to two link failures). A key technical challenge is to design a synthesis algorithm which can efficiently explore the large space of possible policies. To address this challenge, Config2Spec relies on a careful combination of two well-known methods: data plane analysis and control plane verification.

Experimental results show that Config2Spec scales to mining specifications of large networks (>150 routers).

NSDI '20 Open Access Sponsored by NetApp

Open Access Media

USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.

BibTeX
@inproceedings {246488,
author = {Rudiger Birkner and Dana Drachsler-Cohen and Laurent Vanbever and Martin Vechev},
title = {{Config2Spec}: Mining Network Specifications from Network Configurations },
booktitle = {17th USENIX Symposium on Networked Systems Design and Implementation (NSDI 20)},
year = {2020},
isbn = {978-1-939133-13-7},
address = {Santa Clara, CA},
pages = {969--984},
url = {https://www.usenix.org/conference/nsdi20/presentation/birkner},
publisher = {USENIX Association},
month = feb
}

Presentation Video