Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS...

90
Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura 1,2 , John Heidemann 3 , Wes Hardaker 3 , Ricardo de O. Schmidt 4 RIPE 79 Rotterdam, The Netherlands 2019-10-15 1 SIDN Labs, 2 TU Delft, 3 USC/ISI, 4 UPF

Transcript of Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS...

Page 1: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Cache Me If You Can:Effects of DNS Time-to-Live

Giovane C. M. Moura1,2, John Heidemann3,Wes Hardaker3, Ricardo de O. Schmidt4

RIPE 79Rotterdam, The Netherlands2019-10-15

1SIDN Labs, 2TU Delft, 3USC/ISI, 4UPF

Page 2: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Outline

Introduction

Parent vs Child

Zone configurations and Effective TTL

TTLs Use in the Wild

Operators Notification

Caching (Longer TTL) vs Anycast

Shorter vs Longer TTLs

Recommendation and Conclusions

Page 3: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Our research on DNS over the last years

Our rearch on DNS security/stability:

• Anycast and DDoS: IMC 2016 [2]

• Resolvers: IMC 2017 [5]

• Anycast Engineering: IMC 2017 [1]

• Caching and DDoS: IMC 2018 [4]

• Caching and TTL, and performance: IMC 2019 [3]• (this paper)• IMC will be next week in Amsterdam

1

Page 4: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Introduction

Page 5: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

The role of TTL

authoritativeserverresolveruser

1

Page 6: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

The role of TTL

Q: google.com?

authoritativeserverresolveruser

1

Page 7: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

The role of TTL

authoritativeserverresolveruser

Q: google.com? Q: google.com?

1

Page 8: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

The role of TTL

authoritativeserverresolveruser

Q: google.com? Q: google.com?

A: 10.10.10.10 A: 10.10.10.10

1

Page 9: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

The role of TTL

A: 10.10.10.10

authoritativeserverresolveruser

Q: google.com?Q: google.com?

A: 10.10.10.10

cache

1

Page 10: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

The role of TTL

A: 10.10.10.10

authoritativeserverresolveruser

Q: google.com?Q: google.com?

A: 10.10.10.10

cache

Q: goo

gle.

com

?

1

Page 11: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

The role of TTL

A: 10.10.10.10

authoritativeserverresolveruser

Q: google.com?Q: google.com?

A: 10.10.10.10

cache

Q: goo

gle.

com

?

A: 1

0.10

.10.

10

xcache hit!FASTER

1

Page 12: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

The role of TTL

ISP GOOGLE

BUT caching FORHOW LONG???

A: 10.10.10.10

authoritativeserverresolveruser

Q: google.com?Q: google.com?

A: 10.10.10.10

cache

Q: goo

gle.

com

?

A: 1

0.10

.10.

10

cache hit!FASTER

x1

Page 13: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

The role of TTL

TTL

ISP GOOGLE

BUT caching FORHOW LONG???

A: 10.10.10.10

authoritativeserverresolveruser

Q: google.com?Q: google.com?

A: 10.10.10.10

cache

Q: goo

gle.

com

?

A: 1

0.10

.10.

10

cache hit!FASTER

x1

Page 14: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

The role of TTL

TTL

ISP GOOGLE

BUT caching FORHOW LONG???

A: 10.10.10.10

authoritativeserverresolveruser

Q: google.com?Q: google.com?

A: 10.10.10.10

cache

Q: goo

gle.

com

?

A: 1

0.10

.10.

10

cache hit!FASTER

x• TTL controls caching

• auth servers SIGNAL to resolvers how long (TTL)• Caching is VERY important for performance

• improves user experience2

Page 15: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

And you must set TTLs

• Say you register cachetest.net

3

Page 16: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

What TTL values are good?

Today it is unclear what an operatorshould do

• DNS OPs folks on TTLs: “if it ain’tbroke don’t fix it”

We think we can help

Figure 1: DNS ops chagingTTLs. src: trainworld.be

4

Page 17: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Our contribution

Because of conflicting and under-explained TTL advice, we show:

1. the effective TTL comes from multiple places• Parent and Child authoritative servers• NS and A records (sometimes)

2. TTLs are unnecesssarily short• a. because sometimes multiple places→ one is shorter and

wins• or operators don’t realize the cost

3. We show that longer TTLs are MUCH faster

4. Our results were adopted by 3 ccTLD for ∼20ms medianlatency improvement; 171ms 75%ile

5

Page 18: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

The rest of this talk

1. Parent vs Child: who really sets the TTL?

2. NS and A records: are they limited? And bailiwick?

3. Real-world variation exists

4. Longer TTLs are MUCH better

5. Our recommendations

6

Page 19: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Parent vs Child

Page 20: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Duplicate info: which one is chosen?

• Parent and child TTLs may vary: dig NS cachetest.net

ROOT

.

.org

cachetest.net

.nl ... .net NS cachetest.net: * ns1.cachetest.net * TTL: 172800s

NS cachetest.net: * ns1.cachetest.net * TTL: 3600s

Which TTL will Rembrandt use? Parent ( 172800s) or child ( TTL: 3600s)

Resolver

7

Page 21: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are resolvers parent- or child-centric?

Parent vs Child experiment

• Test with experiment on .uy: (2019-02-14)• Parent : NS/A TTL: 172800s• Child: NS TTL: 300s ; A: 120s

• We query with 15k VPs (Ripe Atlas) mutliple times, every10min

• We analyze TTL values received at VPs

8

Page 22: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Most Atlas VPs resolvers are child-centric

Figure 2: Observed TTLs from Atlas VPs for .uy-NS and a.nic.uy-Aqueries.

0

0.2

0.4

0.6

0.8

1

5 10 50 120 300 1000

CD

F T

TL A

nsw

ers

Answers TTL(s)

NS queriesA queries

Spike at Child TTL A (120s) : most resolvers are child centric

Spike at Child TTL NS (300s): child centric

• Remember: TTL parents: 2 days9

Page 23: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Most Atlas VPs resolvers are child-centric

Figure 2: Observed TTLs from Atlas VPs for .uy-NS and a.nic.uy-Aqueries.

0

0.2

0.4

0.6

0.8

1

5 10 50 120 300 1000

CD

F T

TL A

nsw

ers

Answers TTL(s)

NS queriesA queries

Spike at Child TTL A (120s) : most resolvers are child centric

Spike at Child TTL NS (300s): child centric

• Remember: TTL parents: 2 days9

Page 24: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Most Atlas VPs resolvers are child-centric

Figure 2: Observed TTLs from Atlas VPs for .uy-NS and a.nic.uy-Aqueries.

0

0.2

0.4

0.6

0.8

1

5 10 50 120 300 1000

CD

F T

TL A

nsw

ers

Answers TTL(s)

NS queriesA queries

Spike at Child TTL A (120s) : most resolvers are child centric

Spike at Child TTL NS (300s): child centric

• Remember: TTL parents: 2 days9

Page 25: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Is centricity true for TLDs and SLDs?

• Test with .nl TLD A records (ns*.dns.nl)• TTLs are 3600s (child) vs. 17800s (parent)

Figure 3: Minimum interarrival time of A queries for TLD

0

0.2

0.4

0.6

0.8

1

1 2 5 10 20 50

CD

F

Interarrival time (h)

TT

L 3

600s

TT

L 1

73800s

Spike at Child TTL A (3600s): confirm child centric for TLD

We confirmed this with a second-level domain ( paper)

10

Page 26: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Is centricity true for TLDs and SLDs?

• Test with .nl TLD A records (ns*.dns.nl)• TTLs are 3600s (child) vs. 17800s (parent)

Figure 3: Minimum interarrival time of A queries for TLD

0

0.2

0.4

0.6

0.8

1

1 2 5 10 20 50

CD

F

Interarrival time (h)

TT

L 3

600s

TT

L 1

73800s

Spike at Child TTL A (3600s): confirm child centric for TLD

We confirmed this with a second-level domain ( paper)

10

Page 27: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Is centricity true for TLDs and SLDs?

• Test with .nl TLD A records (ns*.dns.nl)• TTLs are 3600s (child) vs. 17800s (parent)

Figure 3: Minimum interarrival time of A queries for TLD

0

0.2

0.4

0.6

0.8

1

1 2 5 10 20 50

CD

F

Interarrival time (h)

TT

L 3

600s

TT

L 1

73800s

Spike at Child TTL A (3600s): confirm child centric for TLD

We confirmed this with a second-level domain ( paper)

10

Page 28: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Most resolvers wil use child TTLs

• Rembrant (and users) mostly use child TTLs• Child TTL controls caching (most times)

ROOT

.

.org

cachetest.net

.nl ... .net NS cachetest.net: * ns1.cachetest.net * TTL: 172800s

NS cachetest.net: * ns1.cachetest.net * TTL: 3600s

Which TTL will Rembrandt use? Parent ( 172800s) or child ( TTL: 3600s)

Resolver

11

Page 29: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Outline

Introduction

Parent vs Child

Zone configurations and Effective TTL

TTLs Use in the Wild

Operators Notification

Caching (Longer TTL) vs Anycast

Shorter vs Longer TTLs

Recommendation and Conclusions

Page 30: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Zone configurations and EffectiveTTL

Page 31: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are there dependencies between A and NS TTLs?

sub.cachetest.net

In zone Out of zone

NS: ns1.sub.cachetest.net NS: ns1.zurrundeddu.com

A :10.10.10.10 A :10.10.10.107200

3600

7200

3600

To resolve *.sub.cachetest.net, you need both NS and AAre NS and A cached independently?

1. t=0: all Atlas VPs query (fills cache with NS and A)2. t=4800: what happens ? NS is expired; A is still in cache:do resolvers use the “cached A” or refresh it again?

trick: at t=540, we renumber A to 10.10.10.2 (diff answer)

Will Marcus Aurelius receive cached or new answer? 12

Page 32: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are there dependencies between A and NS TTLs?

sub.cachetest.net

In zone Out of zone

NS: ns1.sub.cachetest.net NS: ns1.zurrundeddu.com

A :10.10.10.10 A :10.10.10.107200

3600

7200

3600

To resolve *.sub.cachetest.net, you need both NS and AAre NS and A cached independently?

1. t=0: all Atlas VPs query (fills cache with NS and A)2. t=4800: what happens ? NS is expired; A is still in cache:do resolvers use the “cached A” or refresh it again?

trick: at t=540, we renumber A to 10.10.10.2 (diff answer)

Will Marcus Aurelius receive cached or new answer? 12

Page 33: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are there dependencies between A and NS TTLs?

sub.cachetest.net

In zone Out of zone

NS: ns1.sub.cachetest.net NS: ns1.zurrundeddu.com

A :10.10.10.10 A :10.10.10.107200

3600

7200

3600

To resolve *.sub.cachetest.net, you need both NS and AAre NS and A cached independently?

1. t=0: all Atlas VPs query (fills cache with NS and A)2. t=4800: what happens ? NS is expired; A is still in cache:do resolvers use the “cached A” or refresh it again?

trick: at t=540, we renumber A to 10.10.10.2 (diff answer)

Will Marcus Aurelius receive cached or new answer? 12

Page 34: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are there dependencies between A and NS TTLs?

sub.cachetest.net

In zone Out of zone

NS: ns1.sub.cachetest.net NS: ns1.zurrundeddu.com

A :10.10.10.10 A :10.10.10.107200

3600

7200

3600

To resolve *.sub.cachetest.net, you need both NS and AAre NS and A cached independently?

1. t=0: all Atlas VPs query (fills cache with NS and A)2. t=4800: what happens ? NS is expired; A is still in cache:do resolvers use the “cached A” or refresh it again?

trick: at t=540, we renumber A to 10.10.10.2 (diff answer)

Will Marcus Aurelius receive cached or new answer? 12

Page 35: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are there dependencies between A and NS TTLs?

sub.cachetest.net

In zone Out of zone

NS: ns1.sub.cachetest.net NS: ns1.zurrundeddu.com

A :10.10.10.10 A :10.10.10.107200

3600

7200

3600

To resolve *.sub.cachetest.net, you need both NS and AAre NS and A cached independently?

1. t=0: all Atlas VPs query (fills cache with NS and A)2. t=4800: what happens ? NS is expired; A is still in cache:do resolvers use the “cached A” or refresh it again?

trick: at t=540, we renumber A to 10.10.10.2 (diff answer)

Will Marcus Aurelius receive cached or new answer? 12

Page 36: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are there dependencies between A and NS TTLs?

sub.cachetest.net

In zone Out of zone

NS: ns1.sub.cachetest.net NS: ns1.zurrundeddu.com

A :10.10.10.10 A :10.10.10.107200

3600

7200

3600

To resolve *.sub.cachetest.net, you need both NS and AAre NS and A cached independently?

1. t=0: all Atlas VPs query (fills cache with NS and A)2. t=4800: what happens ? NS is expired; A is still in cache:do resolvers use the “cached A” or refresh it again?

trick: at t=540, we renumber A to 10.10.10.2 (diff answer)

Will Marcus Aurelius receive cached or new answer? 12

Page 37: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are there dependencies between A and NS TTLs?

sub.cachetest.net

In zone Out of zone

NS: ns1.sub.cachetest.net NS: ns1.zurrundeddu.com

A :10.10.10.10 A :10.10.10.107200

3600

7200

3600

To resolve *.sub.cachetest.net, you need both NS and AAre NS and A cached independently?

1. t=0: all Atlas VPs query (fills cache with NS and A)2. t=4800: what happens ? NS is expired; A is still in cache:do resolvers use the “cached A” or refresh it again?

trick: at t=540, we renumber A to 10.10.10.2 (diff answer)

Will Marcus Aurelius receive cached or new answer? 12

Page 38: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are there dependencies between A and NS TTLs?

sub.cachetest.net

In zone Out of zone

NS: ns1.sub.cachetest.net NS: ns1.zurrundeddu.com

A :10.10.10.10 A :10.10.10.107200

3600

7200

3600

To resolve *.sub.cachetest.net, you need both NS and AAre NS and A cached independently?

1. t=0: all Atlas VPs query (fills cache with NS and A)2. t=4800: what happens ? NS is expired; A is still in cache:do resolvers use the “cached A” or refresh it again?

trick: at t=540, we renumber A to 10.10.10.2 (diff answer)

Will Marcus Aurelius receive cached or new answer? 12

Page 39: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are there dependencies between A and NS TTLs?

sub.cachetest.net

In zone Out of zone

NS: ns1.sub.cachetest.net NS: ns1.zurrundeddu.com

A :10.10.10.10 A :10.10.10.107200

3600

7200

3600

To resolve *.sub.cachetest.net, you need both NS and AAre NS and A cached independently?

1. t=0: all Atlas VPs query (fills cache with NS and A)2. t=4800: what happens ? NS is expired; A is still in cache:do resolvers use the “cached A” or refresh it again?

trick: at t=540, we renumber A to 10.10.10.2 (diff answer)

Will Marcus Aurelius receive cached or new answer? 12

Page 40: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are there dependencies between A and NS TTLs?

sub.cachetest.net

In zone Out of zone

NS: ns1.sub.cachetest.net NS: ns1.zurrundeddu.com

A :10.10.10.10 A :10.10.10.107200

3600

7200

3600

To resolve *.sub.cachetest.net, you need both NS and AAre NS and A cached independently?

1. t=0: all Atlas VPs query (fills cache with NS and A)2. t=4800: what happens ? NS is expired; A is still in cache:do resolvers use the “cached A” or refresh it again?

trick: at t=540, we renumber A to 10.10.10.2 (diff answer)

Will Marcus Aurelius receive cached or new answer? 12

Page 41: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are there dependencies between A and NS TTLs?

sub.cachetest.net

In zone Out of zone

NS: ns1.sub.cachetest.net NS: ns1.zurrundeddu.com

A :10.10.10.10 A :10.10.10.107200

3600

7200

3600

To resolve *.sub.cachetest.net, you need both NS and AAre NS and A cached independently?

1. t=0: all Atlas VPs query (fills cache with NS and A)2. t=4800: what happens ? NS is expired; A is still in cache:do resolvers use the “cached A” or refresh it again?

trick: at t=540, we renumber A to 10.10.10.2 (diff answer)

Will Marcus Aurelius receive cached or new answer? 12

Page 42: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are there dependencies between A and NS TTLs?

sub.cachetest.net

In zone Out of zone

NS: ns1.sub.cachetest.net NS: ns1.zurrundeddu.com

A :10.10.10.10 A :10.10.10.107200

3600

7200

3600

To resolve *.sub.cachetest.net, you need both NS and AAre NS and A cached independently?

1. t=0: all Atlas VPs query (fills cache with NS and A)2. t=4800: what happens ? NS is expired; A is still in cache:do resolvers use the “cached A” or refresh it again?

trick: at t=540, we renumber A to 10.10.10.2 (diff answer)

Will Marcus Aurelius receive cached or new answer? 12

Page 43: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are there dependencies between A and NS TTLs?

sub.cachetest.net

In zone Out of zone

NS: ns1.sub.cachetest.net NS: ns1.zurrundeddu.com

A :10.10.10.10 A :10.10.10.107200

3600

7200

3600

To resolve *.sub.cachetest.net, you need both NS and AAre NS and A cached independently?

1. t=0: all Atlas VPs query (fills cache with NS and A)2. t=4800: what happens ? NS is expired; A is still in cache:do resolvers use the “cached A” or refresh it again?

trick: at t=540, we renumber A to 10.10.10.2 (diff answer)

Will Marcus Aurelius receive cached or new answer? 12

Page 44: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are there dependencies between A and NS TTLs?

sub.cachetest.net

In zone Out of zone

NS: ns1.sub.cachetest.net NS: ns1.zurrundeddu.com

A :10.10.10.10 A :10.10.10.107200

3600

7200

3600

To resolve *.sub.cachetest.net, you need both NS and AAre NS and A cached independently?

1. t=0: all Atlas VPs query (fills cache with NS and A)2. t=4800: what happens ? NS is expired; A is still in cache:do resolvers use the “cached A” or refresh it again?

trick: at t=540, we renumber A to 10.10.10.2 (diff answer)

Will Marcus Aurelius receive cached or new answer? 12

Page 45: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are there dependencies between A and NS TTLs?

sub.cachetest.net

In zone Out of zone

NS: ns1.sub.cachetest.net NS: ns1.zurrundeddu.com

A :10.10.10.10 A :10.10.10.107200

3600

7200

3600

To resolve *.sub.cachetest.net, you need both NS and AAre NS and A cached independently?

1. t=0: all Atlas VPs query (fills cache with NS and A)2. t=4800: what happens ? NS is expired; A is still in cache:do resolvers use the “cached A” or refresh it again?

trick: at t=540, we renumber A to 10.10.10.2 (diff answer)

Will Marcus Aurelius receive cached or new answer? 12

Page 46: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are they dependent? Yes, for in zone

0

5000

10000

15000

20000

0

10

20

30

40

50

60

70

80

90

100

110

120

130

140

150

160

170

180

190

200

210

220

230

Original NS expires. Both Original NS and A Original expired. Original A still valid

DNS redirect: new A.Orig. NS and A valid

answ

ers

minutes after start

original new

0

5000

10000

15000

20000

0

10

20

30

40

50

60

70

80

90

100

110

120

130

140

150

160

170

180

190

200

210

220

230

Original NS expires Both Original NS and A expired. Original A still valid

DNS redirect: new A.Orig. NS and A valid

answ

ers

minutes after start

original new

Cache warms NS Expires, A Valid (3600< t <7200)

in zone: A refreshed (new server): dependent caching?out-of- zone: cached A (old server): independent caching?

Why? Glues cause cache refresh

13

Page 47: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are they dependent? Yes, for in zone

0

5000

10000

15000

20000

0

10

20

30

40

50

60

70

80

90

100

110

120

130

140

150

160

170

180

190

200

210

220

230

Original NS expires. Both Original NS and A Original expired. Original A still valid

DNS redirect: new A.Orig. NS and A valid

answ

ers

minutes after start

original new

0

5000

10000

15000

20000

0

10

20

30

40

50

60

70

80

90

100

110

120

130

140

150

160

170

180

190

200

210

220

230

Original NS expires Both Original NS and A expired. Original A still valid

DNS redirect: new A.Orig. NS and A valid

answ

ers

minutes after start

original new

Cache warms NS Expires, A Valid (3600< t <7200)

in zone: A refreshed (new server): dependent caching?out-of- zone: cached A (old server): independent caching?

Why? Glues cause cache refresh

13

Page 48: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are they dependent? Yes, for in zone

0

5000

10000

15000

20000

0

10

20

30

40

50

60

70

80

90

100

110

120

130

140

150

160

170

180

190

200

210

220

230

Original NS expires. Both Original NS and A Original expired. Original A still valid

DNS redirect: new A.Orig. NS and A valid

answ

ers

minutes after start

original new

0

5000

10000

15000

20000

0

10

20

30

40

50

60

70

80

90

100

110

120

130

140

150

160

170

180

190

200

210

220

230

Original NS expires Both Original NS and A expired. Original A still valid

DNS redirect: new A.Orig. NS and A valid

answ

ers

minutes after start

original new

Cache warms NS Expires, A Valid (3600< t <7200)

in zone: A refreshed (new server): dependent caching?out-of- zone: cached A (old server): independent caching?

Why? Glues cause cache refresh

13

Page 49: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are they dependent? Yes, for in zone

0

5000

10000

15000

20000

0

10

20

30

40

50

60

70

80

90

100

110

120

130

140

150

160

170

180

190

200

210

220

230

Original NS expires. Both Original NS and A Original expired. Original A still valid

DNS redirect: new A.Orig. NS and A valid

answ

ers

minutes after start

original new

0

5000

10000

15000

20000

0

10

20

30

40

50

60

70

80

90

100

110

120

130

140

150

160

170

180

190

200

210

220

230

Original NS expires Both Original NS and A expired. Original A still valid

DNS redirect: new A.Orig. NS and A valid

answ

ers

minutes after start

original new

Cache warms NS Expires, A Valid (3600< t <7200)

in zone: A refreshed (new server): dependent caching?out-of- zone: cached A (old server): independent caching?

Why? Glues cause cache refresh

13

Page 50: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are they dependent? Yes, for in zone

0

5000

10000

15000

20000

0

10

20

30

40

50

60

70

80

90

100

110

120

130

140

150

160

170

180

190

200

210

220

230

Original NS expires. Both Original NS and A Original expired. Original A still valid

DNS redirect: new A.Orig. NS and A valid

answ

ers

minutes after start

original new

0

5000

10000

15000

20000

0

10

20

30

40

50

60

70

80

90

100

110

120

130

140

150

160

170

180

190

200

210

220

230

Original NS expires Both Original NS and A expired. Original A still valid

DNS redirect: new A.Orig. NS and A valid

answ

ers

minutes after start

original new

Cache warms NS Expires, A Valid (3600< t <7200)

in zone: A refreshed (new server): dependent caching?out-of- zone: cached A (old server): independent caching?

Why? Glues cause cache refresh

13

Page 51: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are they dependent? Yes, for in zone

0

5000

10000

15000

20000

0

10

20

30

40

50

60

70

80

90

100

110

120

130

140

150

160

170

180

190

200

210

220

230

Original NS expires. Both Original NS and A Original expired. Original A still valid

DNS redirect: new A.Orig. NS and A valid

answ

ers

minutes after start

original new

0

5000

10000

15000

20000

0

10

20

30

40

50

60

70

80

90

100

110

120

130

140

150

160

170

180

190

200

210

220

230

Original NS expires Both Original NS and A expired. Original A still valid

DNS redirect: new A.Orig. NS and A valid

answ

ers

minutes after start

original new

Cache warms NS Expires, A Valid (3600< t <7200)

in zone: A refreshed (new server): dependent caching?out-of- zone: cached A (old server): independent caching?

Why? Glues cause cache refresh

13

Page 52: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are they dependent? Yes, for in zone

0

5000

10000

15000

20000

0

10

20

30

40

50

60

70

80

90

100

110

120

130

140

150

160

170

180

190

200

210

220

230

Original NS expires. Both Original NS and A Original expired. Original A still valid

DNS redirect: new A.Orig. NS and A valid

answ

ers

minutes after start

original new

0

5000

10000

15000

20000

0

10

20

30

40

50

60

70

80

90

100

110

120

130

140

150

160

170

180

190

200

210

220

230

Original NS expires Both Original NS and A expired. Original A still valid

DNS redirect: new A.Orig. NS and A valid

answ

ers

minutes after start

original new

Cache warms NS Expires, A Valid (3600< t <7200)

in zone: A refreshed (new server): dependent caching?out-of- zone: cached A (old server): independent caching?

Why? Glues cause cache refresh

13

Page 53: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Are there dependencies between A and NS TTLs?

src:https://en.wikipedia.org/wiki/Marcus_Aurelius

CC BY-SA 3.0

• Marcus Aurelius willnotice“early” refreshed A forin-zone (in bailiwick)

• The way you configure yourzone impacts caching , notonly TTLs

14

Page 54: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Outline

Introduction

Parent vs Child

Zone configurations and Effective TTL

TTLs Use in the Wild

Operators Notification

Caching (Longer TTL) vs Anycast

Shorter vs Longer TTLs

Recommendation and Conclusions

Page 55: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

TTLs Use in the Wild

Page 56: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

How are TTLs used in the wild?

• There is no consensus how to choose TTLs

• But folks have to choose them anyway

• We use 5 lists:• Alexa• Majestic• Umbrella• .nl• Root (TLDs)

• We probe several records types

• We analyze child TTL values

• And discuss results with some operators

15

Page 57: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Most domains are out-of-bailiwick

Alexa Majestic Umbre. .nl Rootresponsive 988654 928299 783343 5454833 1535

CNAME 50981 7017 452711 9436 0SOA 12741 8352 59083 12268 0responsive NS 924932 912930 271549 5433129 1535

Out only 878402 873447 244656 5417599 748ratio out only 95.0% 95.7% 90.1 99.7% 48.7%

In only 37552 28577 20070 12586 654Mixed 8978 10906 6823 2941 133

• Out of bailiwick (out-of-zone): records are cachedindependently (no glues)

• Your chosen TTLs values for different records will berespected

16

Page 58: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

NS records have longer TTLs (>24h)

0

0.2

0.4

0.6

0.8

1

0.01 0.1 1 24 48 256 2048

CD

F

answers TTL (h)

Alexa

Majestic

Umbrella

.nl

root

Spike at 24h

• > 60% NS records are long ( Good for caching andperformance)• But 40% are one hour or less (not so good)

17

Page 59: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

NS records have longer TTLs (>24h)

0

0.2

0.4

0.6

0.8

1

0.01 0.1 1 24 48 256 2048

CD

F

answers TTL (h)

Alexa

Majestic

Umbrella

.nl

root

Spike at 24h

• > 60% NS records are long ( Good for caching andperformance)• But 40% are one hour or less (not so good)

17

Page 60: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

A records TTLs far shorter than NS

0

0.2

0.4

0.6

0.8

1

0.01 0.1 1 24 48 256 2048

CD

F

answers TTL (h)

Alexa

Majestic

Umbrella

.nl

root

0

0.2

0.4

0.6

0.8

1

0.01 0.1 1 24 48 256 2048

CD

F

answers TTL (h)

Alexa

Majestic

Umbrella

.nl

root

Shorter A records TTLs leads to poor caching

18

Page 61: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

A records TTLs far shorter than NS

0

0.2

0.4

0.6

0.8

1

0.01 0.1 1 24 48 256 2048

CD

F

answers TTL (h)

Alexa

Majestic

Umbrella

.nl

root

0

0.2

0.4

0.6

0.8

1

0.01 0.1 1 24 48 256 2048

CD

F

answers TTL (h)

Alexa

Majestic

Umbrella

.nl

root

Shorter A records TTLs leads to poor caching

18

Page 62: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

A records TTLs far shorter than NS

0

0.2

0.4

0.6

0.8

1

0.01 0.1 1 24 48 256 2048

CD

F

answers TTL (h)

Alexa

Majestic

Umbrella

.nl

root

0

0.2

0.4

0.6

0.8

1

0.01 0.1 1 24 48 256 2048

CD

F

answers TTL (h)

Alexa

Majestic

Umbrella

.nl

root

Shorter A records TTLs leads to poor caching

18

Page 63: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Operators Notification: 3 changed their TTLs

• We found 34 TLDs with short TTL for NSes (<=30min)

• We notified 8 ccTLDs

• 3 TLDs increased their TTL to 1 day after our notification• .uy, and• another in Africa• and another in the Middle-East

19

Page 64: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

.uy latency reduced a lot!

• .uy NS TTL from 300s to 86400s

0

0.2

0.4

0.6

0.8

1

1 5 10 50 500 5000

CD

F

RTT (ms)

TTL 300s

TTL 86400s

Figure 4: RTT from RIPE Atlas VPs for NS .uy queries (NS)

20

Page 65: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

.uy latency reduced a lot!

• .uy NS TTL from 300s to 86400s

0

0.2

0.4

0.6

0.8

1

1 5 10 50 500 5000

CD

F

RTT (ms)

TTL 300s

TTL 86400s

Figure 4: RTT from RIPE Atlas VPs for NS .uy queries (NS)

20

Page 66: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

.uy latency reduced a lot!

• .uy NS TTL from 300s to 86400s: lower latency for clients

0

0.2

0.4

0.6

0.8

1

1 5 10 50 500 5000

Median RTT: from 28 to 8ms

75%ile: from 173 to 21ms

CD

F

RTT (ms)

TTL 300s

TTL 86400s

Figure 5: RTT from RIPE Atlas VPs for NS .uy queries (NS)

Median RTT improves by 20ms; 75%ile by 152ms 21

Page 67: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

.uy latency reduced for all regions

Check for Atlas location bias

0

50

100

150

200

250

300

350

400

450

AF(327)

AS(846)

EU(9691)

NA(2307)

OC(267)

SA(293)

ALL(13731)

RT

T (

ms)

continent code (# of VPs)

TTL 300s

TTL 86400s

Figure 6: Median RTT as seen by RIPE Atlas VPs per region

Longer TTL→ longer caching→ faster answers

22

Page 68: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

.uy latency reduced for all regions

Check for Atlas location bias

0

50

100

150

200

250

300

350

400

450

AF(327)

AS(846)

EU(9691)

NA(2307)

OC(267)

SA(293)

ALL(13731)

RT

T (

ms)

continent code (# of VPs)

TTL 300s

TTL 86400s

Figure 7: Median RTT as seen by RIPE Atlas VPs per region

Longer TTL→ longer caching→ faster answers

Up to 150ms median latency reduction (AF) 23

Page 69: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

We are no Luiz Suárez... but

• We still helped Uruguayan .uy users

• And two other countries:• One in East Africa• Another one in the Middle East

• Experiment proving how TTLs areimportant for performance

src: https://commons.wikimedia.org/wiki/File:Luis_Su%C3%A1rez_2018.jpg CC BY-SA 3.0

24

Page 70: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Longer TTLs are like the old Turbo button

• Some DNS OPs spend1000s too reduce latency

• Longer TTLs improvelatency at zero cost

src: wikipedia.org

25

Page 71: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Outline

Introduction

Parent vs Child

Zone configurations and Effective TTL

TTLs Use in the Wild

Operators Notification

Caching (Longer TTL) vs Anycast

Shorter vs Longer TTLs

Recommendation and Conclusions

Page 72: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Caching (Longer TTL) vs Anycast

Page 73: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Caching vs Anycast

• People and CDNs spend lots on huge anycast deployments

• OPs could say: “I’ll have short TTL since I use anycast”,because anycast can make it up for it.

• Does anycast really beats caching?

26

Page 74: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Caching vs Anycast: experiment

Probes + Resolver

FRA

Unicast (EC2)TTL86400 (good caching)

Anycast (Route53)TTL60s (no caching)

Which one is faster?

27

Page 75: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Caching vs Anycast: experiment

Probes + Resolver

FRA

Unicast (EC2)TTL86400 (good caching)

Anycast (Route53)TTL60s (no caching)

Which one is faster?

27

Page 76: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Caching vs Anycast: experiment

Probes + Resolver

FRA

Unicast (EC2)TTL86400 (good caching)

Anycast (Route53)TTL60s (no caching)

Which one is faster?

27

Page 77: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Caching vs Anycast: experiment

Probes + Resolver

FRA

Unicast (EC2)TTL86400 (good caching)

Anycast (Route53)TTL60s (no caching)

Which one is faster?

27

Page 78: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Caching vs Anycast: experiment

Probes + Resolver

FRA

Unicast (EC2)TTL86400 (good caching)

Anycast (Route53)TTL60s (no caching)

Which one is faster?

27

Page 79: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Caching vs Anycast: experiment

Probes + Resolver

FRA

Unicast (EC2)TTL86400 (good caching)

Anycast (Route53)TTL60s (no caching)

Which one is faster?

27

Page 80: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

TTLs (caching) matter more than anycast

0

0.2

0.4

0.6

0.8

1

1 5 10 50 500 5000

EC

DF

RTT (ms)

TTL 60s

TTL

60s

anyc

ast

22ms diff unicast+cache wrt anycast-cache

• Caching near client beats even great server infrastructure!• Anycast TTL60 (no cache): 29.96ms (median)• Unicast TTL86400 (cache): 7.38ms (median):• 22ms median latency reduction

• Query load: 77% down with caching• so TTLs matter more for performance

• (anycast is great to many things too, DDoS for example [2])• We strongly recommend anycast [5] 28

Page 81: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

TTLs (caching) matter more than anycast

0

0.2

0.4

0.6

0.8

1

1 5 10 50 500 5000

EC

DF

RTT (ms)

TTL 60s

TTL

60s

anyc

ast

22ms diff unicast+cache wrt anycast-cache

• Caching near client beats even great server infrastructure!• Anycast TTL60 (no cache): 29.96ms (median)• Unicast TTL86400 (cache): 7.38ms (median):• 22ms median latency reduction

• Query load: 77% down with caching• so TTLs matter more for performance

• (anycast is great to many things too, DDoS for example [2])• We strongly recommend anycast [5] 28

Page 82: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

TTLs (caching) matter more than anycast

0

0.2

0.4

0.6

0.8

1

1 5 10 50 500 5000

EC

DF

RTT (ms)

TTL 60s

TTL

60s

anyc

ast

22ms diff unicast+cache wrt anycast-cache

• Caching near client beats even great server infrastructure!• Anycast TTL60 (no cache): 29.96ms (median)• Unicast TTL86400 (cache): 7.38ms (median):• 22ms median latency reduction

• Query load: 77% down with caching• so TTLs matter more for performance

• (anycast is great to many things too, DDoS for example [2])• We strongly recommend anycast [5] 28

Page 83: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

TTLs (caching) matter more than anycast

0

0.2

0.4

0.6

0.8

1

1 5 10 50 500 5000

EC

DF

RTT (ms)

TTL 60s

TTL

60s

anyc

ast

22ms diff unicast+cache wrt anycast-cache

• Caching near client beats even great server infrastructure!• Anycast TTL60 (no cache): 29.96ms (median)• Unicast TTL86400 (cache): 7.38ms (median):• 22ms median latency reduction

• Query load: 77% down with caching• so TTLs matter more for performance

• (anycast is great to many things too, DDoS for example [2])• We strongly recommend anycast [5] 28

Page 84: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Outline

Introduction

Parent vs Child

Zone configurations and Effective TTL

TTLs Use in the Wild

Operators Notification

Caching (Longer TTL) vs Anycast

Shorter vs Longer TTLs

Recommendation and Conclusions

Page 85: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Reasons for Longer or shorter TTLs

• Longer caching:• faster responses• lower DNS traffic• more robust to DDoS attack [4]

• Shorter caching:• faster operational changes• useful for DNS redirect based DDoS• DNS-load balance

Organizations must weight these trade-offs to find a good balance

29

Page 86: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Recommendation and Conclusions

Page 87: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

Conclusions

• Recommendation: longer TTLs (1 day) if you can• unless using CDN load-balancing or DNS-redir DDoS

• Why? Because it can save you more than 50ms or more• But keep on using anycast too [2, 5]

• People have designed caches; use them wisely

• Should you reconsider your TTLs as well?

• Paper: https://www.isi.edu/~johnh/PAPERS/Moura19b.html

• IETF draft:draft-moura-dnsop-authoritative-recommendations

30

Page 88: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

References i

[1] DE VRIES, W. B., DE O. SCHMIDT, R., HARAKER, W.,HEIDEMANN, J., DE BOER, P.-T., AND PRAS, A.

Verfploeter: Broad and load-aware anycast mapping.

In Proceedings of the ACM Internet Measurement Conference(London, UK, 2017).

[2] MOURA, G. C. M., DE O. SCHMIDT, R., HEIDEMANN, J., DE

VRIES, W. B., MÜLLER, M., WEI, L., AND HESSELMAN, C.

Anycast vs. DDoS: Evaluating the November 2015 rootDNS event.

31

Page 89: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

References ii

In Proceedings of the ACM Internet Measurement Conference(Santa Monica, California, USA, Nov. 2016), ACM,pp. 255–270.

[3] MOURA, G. C. M., HEIDEMANN, J., DE O. SCHMIDT, R., AND

HARDAKER, W.

Cache me if you can: Effects of DNS Time-to-Live(extended).

In Proceedings of the ACM Internet Measurement Conference(Amsterdam, the Netherlands, Oct. 2019), ACM, p. to appear.

32

Page 90: Cache Me If You Can: Effects of DNS Time-to-Live · Cache Me If You Can: Effects of DNS Time-to-Live Giovane C. M. Moura1;2, John Heidemann3, Wes Hardaker3, Ricardo de O. Schmidt4

References iii

[4] MOURA, G. C. M., HEIDEMANN, J., MÜLLER, M.,DE O. SCHMIDT, R., AND DAVIDS, M.

When the dike breaks: Dissecting DNS defenses duringDDoS.

In Proceedings of the ACM Internet Measurement Conference(Boston, MA, USA, Oct. 2018), pp. 8–21.

[5] MÜLLER, M., MOURA, G. C. M., DE O. SCHMIDT, R., AND

HEIDEMANN, J.

Recursives in the wild: Engineering authoritative DNSservers.

In Proceedings of the ACM Internet Measurement Conference(London, UK, 2017), ACM, pp. 489–495.

33