NetQuery: A General-Purpose Channel for Reasoning about Network
Although the configuration of modern networks has a significant impact on the performance, robustness, and security of applications, networks lack support for reporting these differences. This paper presents the design and implementation of NetQuery, a novel, general-purpose channel for disseminating the properties of networks and their participants. Net- Query implements a distributed, decentralized, tuple-based attribute store that records information about network entities. Operators can add new tuples into this store and can also annotate existing tuples with new, custom attributes, thus allowing the system to support network entities and properties not anticipated at the time of deployment. Net- Query clients can query this attribute store for the current network state and install event triggers to detect future state transitions, thus establishing long-running guarantees over the behavior of the network. We have implemented Net- Query and deployed networks with NetQuery-enabled devices that leverage commodity trusted hardware to provide strong assurance over the accuracy of reported properties. We describe the NetQuery system, outline the types of new applications enabled by NetQuery, and report on the performance of the system from deployments of real devices and from simulations of ISP networks.