Existing DNS configuration verification tools face significant issues (e.g., inefficient and lacking support for incremental verification). Inspired by the advancements in recent work of distributed data plane verification and the resemblance be- tween the data plane and DNS configuration, we tackle the challenge of DNS misconfiguration by introducing Janus, a DNS verification tool. Our key insight is that the process of a nameserver handling queries can be transformed into a matching process on a match-action table. With this insight, Janus consists of (1) an efficient data structure for partition query space based on the behaviors, (2) a symbolic execution algorithm that specifies how a single nameserver can efficiently cover all possible queries and ensure the accuracy of verification, (3) a mechanism to support incremental verification with less computational effort. Extensive experiments on real-world datasets (with over 6 million resource records) show that Janus achieves significant speedups, with peak improvements of up to 255.7x and a maximum 6046x reduction in the number of LECs.
翻译:现有的DNS配置验证工具面临显著问题(例如效率低下且缺乏对增量验证的支持)。受分布式数据平面验证最新进展以及数据平面与DNS配置之间相似性的启发,我们通过引入Janus这一DNS验证工具来解决DNS配置错误的挑战。我们的核心见解在于,名称服务器处理查询的过程可以转化为匹配动作表上的匹配过程。基于这一见解,Janus包含:(1)一种基于行为划分查询空间的高效数据结构;(2)一种符号执行算法,用于规定单个名称服务器如何高效覆盖所有可能的查询并确保验证的准确性;(3)一种以更少计算量支持增量验证的机制。在真实数据集(包含超过600万条资源记录)上的大量实验表明,Janus实现了显著的加速效果,峰值提升可达255.7倍,且LEC数量最大减少6046倍。