LDplayer: DNS Experimentation at Scale

Zhu, Liang and Heidemann, John
USC/Information Sciences Institute


Liang Zhu and John Heidemann 2017. LDplayer: DNS Experimentation at Scale. Technical Report 722. USC/Information Sciences Institute. [PDF] [Code]


DNS has evolved over the last 20 years, improving in security and privacy and broadening the kinds of applications it supports. However, this evolution has been slowed by the large installed base with a wide range of implementations that are slow to change. Changes need to be carefully planned, and their impact is difficult to model due to DNS optimizations, caching, and distributed operation. We suggest that experimentation at scale is needed to evaluate changes and speed DNS evolution. This paper presents LDplayer, a configurable, general-purpose DNS testbed that enables DNS experiments to scale in several dimensions: many zones, multiple levels of DNS hierarchy, high query rates, and diverse query sources. LDplayer provides high fidelity experiments while meeting these requirements through its distributed DNS query replay system, methods to rebuild the relevant DNS hierarchy from traces, and efficient emulation of this hierarchy of limited hardware. We show that a single DNS server can correctly emulate multiple independent levels of the DNS hierarchy while providing correct responses as if they were independent. We validate that our system can replay a DNS root traffic with tiny error (\pm 8 ms quartiles in query timing and \pm 0.1% difference in query rate). We show that our system can replay queries at 87k queries/s, more than twice of a normal DNS Root traffic rate, maxing out one CPU core used by our customized DNS traffic generator. LDplayer’s trace replay has the unique ability to evaluate important design questions with confidence that we capture the interplay of caching, timeouts, and resource constraints. As an example, we can demonstrate the memory requirements of a DNS root server with all traffic running over TCP, and we identified performance discontinuities in latency as a function of client RTT.


  author = {Zhu, Liang and Heidemann, John},
  title = {LDplayer: {DNS} Experimentation at Scale},
  institution = {USC/Information Sciences Institute},
  year = {2017},
  number = {722},
  address = {Marina del Rey, CA, USA},
  month = nov,
  keywords = {Domain Name System (DNS), experiments, performance, trace replay},
  sortdate = {2017-11-11},
  project = {ant, retrofuturebridge, lacrend, nipet, researchroot},
  jsubject = {dns},
  jlocation = {johnh: pafile},
  url = {https://ant.isi.edu/%7ejohnh/PAPERS/Zhu17d.html},
  pdfurl = {https://ant.isi.edu/%7ejohnh/PAPERS/Zhu17d.pdf},
  blogurl = {https://ant.isi.edu/blog/?p=1131},
  codeurl = {https://ant.isi.edu/software/ldplayer/index.html},
  myorganization = {USC/Information Sciences Institute},
  copyrightholder = {authors}