Relational Network Verification

Xieyang Xu,Yifei Yuan,Zachary Kincaid,Arvind Krishnamurthy,Ratul Mahajan,David Walker,Ennan Zhai
2024-03-26
Abstract:Relational network verification is a new approach to validating network changes. In contrast to traditional network verification, which analyzes specifications for a single network snapshot, relational network verification analyzes specifications concerning two network snapshots (e.g., pre- and post-change snapshots) and captures their similarities and differences. Relational change specifications are compact and precise because they specify the flows or paths that change between snapshots and then simply mandate that other behaviors of the network "stay the same", without enumerating them. To achieve similar guarantees, single-snapshot specifications need to enumerate all flow and path behaviors that are not expected to change, so we can check that nothing has accidentally changed. Thus, precise single-snapshot specifications are proportional to network size, which makes them impractical to generate for many real-world networks.
Networking and Internet Architecture
What problem does this paper attempt to address?
The paper primarily explores the issue of network change verification and proposes a new method—Relational Network Verification (RNV)—to improve the reliability and efficiency of the network change process. Traditional network verification techniques usually focus on whether a single snapshot meets given specifications, but this approach has limitations in the actual network update process. For example, when making network configuration changes, engineers need to ensure that the path of specific traffic is correctly transferred after the change, without affecting the normal operation of other traffic. However, using traditional single snapshot verification methods to create detailed specifications to guarantee these details is extremely difficult, especially for large networks. The relational network verification mentioned in the paper verifies changes by analyzing the similarities and differences between two network snapshots. This method allows engineers to concisely describe the intent of the change, specifying which traffic or paths need to change while clearly indicating that other behaviors should remain unchanged. This specification method is not only more compact but also easier to understand, as its scale is related to the complexity of the change itself rather than the entire network. To achieve relational network verification, the paper developed a tool called Rela, which includes a high-level relational specification language and a decision procedure for verifying changes. Rela converts user input specifications and network snapshot representations into finite state transducers and uses automata equivalence checking methods to verify whether the specifications are met. Experimental results show that for a global backbone network containing more than 1000 routers, Rela can efficiently verify most changes (80% of changes are verified within 20 minutes) with fewer terms (93% of changes require fewer than 10 terms). In summary, the paper aims to address the challenges faced by existing network change verification methods in handling actual network changes, particularly how to efficiently and accurately verify the impact of changes on the network, thereby improving the safety and reliability of network changes. By introducing the concept of relational network verification and its implementation tool Rela, the paper demonstrates the effectiveness and practicality of this method.