Old but Gold: Prospecting TCP to Engineer DNS Anycast (extended)

Moura, Giovane C. M. and Heidemann, John and Hardaker, Wes and Bulten, Jeroen and Ceron, Joao and Hesselman, Christian
USC/Information Sciences Institute

citation

Giovane C. M. Moura, John Heidemann, Wes Hardaker, Jeroen Bulten, Joao Ceron and Christian Hesselman 2020. Old but Gold: Prospecting TCP to Engineer DNS Anycast (extended). Technical Report ISI-TR-740. USC/Information Sciences Institute. [PDF]

abstract

DNS latency is a concern for many service operators: CDNs exist to reduce service latency to end-users, but must rely on global DNS for reachability and load-balancing. We show that a recursive DNS resolver’s preference for low latency shifts traffic at TLDs and the DNS root. DNS latency today is monitored with distributed infrastructure such as RIPE Atlas, or with active probing using Verfploeter. While Atlas coverage is wide, it is incomplete, and Verfploeter coverage in IPv6 is limited. In this paper we show that \emphpassive observation of TCP handshakes provides a mechanism to measure DNS latency. Passive RTT estimation from TCP is an old idea, but it has never been used to examine DNS before. We show that there is sufficient TCP DNS traffic today to provide greater coverage than existing approaches, and is the best method to observe latency of DNS using IPv6. We show that estimates of DNS latency from TCP is consistent with UDP latency. Our approach finds real problems: We define \emphDNS polarization, a new problem where a hypergiant sends global traffic to one anycast site rather than taking advantage of the global anycast deployment—we found Google traffic polarized and cut its latency from 100ms to 10ms, and for Microsoft, the latency cut due to traffic being depolarized was from 90ms to 20ms. Our approach is in operational use for a European country’s top-level domain, and monitoring with our tool helped find and correct a routing detour sending European traffic to Australia.

reference

@techreport{Moura20a,
  author = {Moura, Giovane C. M. and Heidemann, John and Hardaker, Wes and Bulten, Jeroen and Ceron, Joao and Hesselman, Christian},
  title = {Old but Gold: Prospecting {TCP} to Engineer {DNS} Anycast (extended)},
  institution = {USC/Information Sciences Institute},
  year = {2020},
  month = jun,
  sortdate = {2018-06-30},
  project = {ant, lacanic, paaddos, ddidd},
  jsubject = {network_security},
  number = {ISI-TR-740},
  xnote = {Released June 2020},
  location = {johnh: pafile},
  keywords = {anycast, dns, tcp, latency, root, .nl-tld},
  url = {https://www.isi.edu/%7ejohnh/PAPERS/Moura20a.html},
  pdfurl = {https://www.isi.edu/%7ejohnh/PAPERS/Moura20a.pdf},
  otherurl = {ftp://ftp.isi.edu/isi-pubs/tr-740.pdf},
  dataurl = {https://ant.isi.edu/datasets/dns/#Moura20a_data},
  myorganization = {USC/Information Sciences Institute},
  copyrightholder = {authors}
}