VeriFlow: Verifying Network-Wide Invariants in Real Time

VeriFlow: Verifying Network-Wide Invariants in Real Time

August 13, 2012, Helsinki, Finland | Ahmed Khurshid, Wenzhan Zhou, Matthew Caesar, P. Brighten Godfrey
VeriFlow is a real-time network invariant verification system designed to detect and prevent network-wide bugs as they occur. It operates as a layer between a software-defined networking (SDN) controller and network devices, dynamically checking for violations of network invariants whenever forwarding rules are inserted. The system aims to achieve extremely low latency during verification to avoid affecting network performance. VeriFlow uses an incremental algorithm to efficiently check key network invariants such as path availability, routing loops, and access control policies. It slices the network into equivalence classes of packets, allowing it to focus only on the affected packets during verification. By building individual forwarding graphs for each equivalence class, VeriFlow can quickly determine the status of network invariants. VeriFlow's design includes a trie data structure to efficiently store and lookup network rules, and a graph-cache to speed up the verification process by reusing forwarding graphs for common equivalence classes. The system was implemented using a Mininet OpenFlow network and Route Views trace data, demonstrating that it can verify network invariants within hundreds of microseconds per rule insertion. VeriFlow's verification phase has minimal impact on network performance, increasing TCP connection setup latency by only about 7%. The paper evaluates VeriFlow's performance using simulations and experiments, showing that it can handle a high volume of rule insertions with low latency. It also assesses the impact of VeriFlow on TCP connection setup latency, finding that the overhead is minimal compared to the proxy operations. VeriFlow is the first tool that can verify network-wide invariants in real time, providing a solution to the challenge of detecting and preventing network bugs as they occur.VeriFlow is a real-time network invariant verification system designed to detect and prevent network-wide bugs as they occur. It operates as a layer between a software-defined networking (SDN) controller and network devices, dynamically checking for violations of network invariants whenever forwarding rules are inserted. The system aims to achieve extremely low latency during verification to avoid affecting network performance. VeriFlow uses an incremental algorithm to efficiently check key network invariants such as path availability, routing loops, and access control policies. It slices the network into equivalence classes of packets, allowing it to focus only on the affected packets during verification. By building individual forwarding graphs for each equivalence class, VeriFlow can quickly determine the status of network invariants. VeriFlow's design includes a trie data structure to efficiently store and lookup network rules, and a graph-cache to speed up the verification process by reusing forwarding graphs for common equivalence classes. The system was implemented using a Mininet OpenFlow network and Route Views trace data, demonstrating that it can verify network invariants within hundreds of microseconds per rule insertion. VeriFlow's verification phase has minimal impact on network performance, increasing TCP connection setup latency by only about 7%. The paper evaluates VeriFlow's performance using simulations and experiments, showing that it can handle a high volume of rule insertions with low latency. It also assesses the impact of VeriFlow on TCP connection setup latency, finding that the overhead is minimal compared to the proxy operations. VeriFlow is the first tool that can verify network-wide invariants in real time, providing a solution to the challenge of detecting and preventing network bugs as they occur.
Reach us at info@study.space