Stop mat lÀcherlech niddereg TTL fir DNS ze benotzen

Niddereg DNS Latenz ass de Schlëssel fir séier Internet Surfen. Fir et ze minimiséieren, ass et wichteg d'DNS Server suergfÀlteg ze wielen an anonyme Relais. Awer den éischte Schrëtt ass fir nëtzlos Ufroen lass ze ginn.

Dëst ass firwat DNS ursprénglech als héich cacheable Protokoll entworf gouf. Zone Administrateuren setzen eng ZÀit fir ze liewen (TTL) fir eenzel Entréen, a Resolvere benotzen dës Informatioun wann Dir Entréen an der Erënnerung spÀichert fir onnéideg Traffic ze vermeiden.

Ass Cache effektiv? Virun e puer Joer huet meng kleng Fuerschung gewisen datt et net perfekt war. Loosst eis den aktuellen Zoustand kucken.

Fir Informatiounen ze sammelen hunn ech gepatched VerschlĂ«sselte DNS Server fir den TTL WĂ€ert fir d'Äntwert ze spĂ€icheren. Et ass definĂ©iert als de Minimum TTL vu senge Rekorder fir all erakommen Ufro. DĂ«st gĂ«tt e gudden IwwerblĂ©ck iwwer d'TTL Verdeelung vum realen Traffic, a berĂŒcksichtegt och d'PopularitĂ©it vun individuellen Ufroen. DĂ©i patched Versioun vum Server huet e puer Stonnen geschafft.

Déi resultéierend Dateset besteet aus 1 records (Numm, qtype, TTL, ZÀitstempel). Hei ass d'Gesamt TTL Verdeelung (X-Achs ass TTL a Sekonnen):

Stop mat lÀcherlech niddereg TTL fir DNS ze benotzen

Nieft engem klenge Bump bei 86 (meeschtens fir SOA-Records), ass et zimlech kloer datt d'TTLs am nidderegen BerÀich sinn. Loosst eis e bësse méi no kucken:

Stop mat lÀcherlech niddereg TTL fir DNS ze benotzen

Okay, TTLs méi wéi 1 Stonn sinn net statistesch bedeitend. Dann konzentréiere mir eis op de BerÀich 0-3600:

Stop mat lÀcherlech niddereg TTL fir DNS ze benotzen

Déi meescht TTLs si vun 0 bis 15 Minutten:

Stop mat lÀcherlech niddereg TTL fir DNS ze benotzen

Déi grouss Majoritéit si vun 0 bis 5 Minutten:

Stop mat lÀcherlech niddereg TTL fir DNS ze benotzen

Et ass net ganz gutt.

Kumulativ Verdeelung mécht de Problem nach méi kloer:

Stop mat lÀcherlech niddereg TTL fir DNS ze benotzen

D'Halschent vun den DNS Äntwerten hunn en TTL vun 1 Minutt oder manner, an DrĂ€i VĂ©ierel hunn en TTL vu 5 Minutten oder manner.

Awer waart, et ass tatsÀchlech méi schlëmm. No allem ass dëst TTL vun autoritÀre Serveren. Wéi och ëmmer, Client Resolveren (zB Router, lokal Cache) kréien en TTL vu Upstream Resolveren, an et fÀllt all Sekonn.

Also de Client kann tatsÀchlech all Entrée fir am Duerchschnëtt d'Halschent vun der ursprénglecher TTL benotzen ier hien eng nei Ufro schéckt.

VlÀicht gëllen dës ganz niddereg TTLs nëmme fir ongewéinlech Ufroen an net populÀr WebsÀiten an APIen? Loosst eis kucken:

Stop mat lÀcherlech niddereg TTL fir DNS ze benotzen

D'X Achs ass TTL, d'Y Achs ass Ufro Popularitéit.

Leider sinn déi populÀrste Ufroen och déi schlëmmst fir ze cache.

Loosst eis zoomen:

Stop mat lÀcherlech niddereg TTL fir DNS ze benotzen

Uerteel: et ass wierklech schlecht. Virdrun war et scho schlecht, awer et gouf nach méi schlëmm. DNS Caching ass quasi nëtzlos ginn. Well manner Leit hiren ISP sÀin DNS Resolver benotzen (aus gudde Grënn), gëtt d'Erhéijung vun der latency méi merkbar.

DNS Caching ass nëmme nëtzlech ginn fir Inhalter déi keen besicht.

Notéiert w.e.g. och datt d'Software kann anescht niddereg TTL interpretéieren.

Firwat ass et esou?

Firwat sinn DNS-Records op sou niddereg TTL gesat?

  • Legacy Lastbalancer goufe mat Standardastellunge verlooss.
  • Et gi Mythen datt DNS BelaaschtungsbalancĂ©ierung vun TTL hĂ€nkt (dĂ«st ass net wouer - zĂ«nter den Deeg vum Netscape Navigator hunn d'Clienten eng zoufĂ€lleg IP Adress aus enger Rei vu RRs gewielt an transparent probĂ©iert eng aner wa se net kĂ«nne verbannen)
  • D'Administrateure wĂ«llen d'Ännerungen direkt applizĂ©ieren, sou datt et mĂ©i einfach ass ze plangen.
  • Den Administrateur vun engem DNS-Server oder Lastbalancer gesĂ€it seng Aufgab als effizient d'Konfiguratioun z'installĂ©ieren dĂ©i d'Benotzer ufroen, an net d'Siten a Servicer ze beschleunegen.
  • Niddereg TTLs ginn Iech Fridden vum Geescht.
  • D'Leit setzen am Ufank niddereg TTLs fir Testen a vergiessen se dann z'Ă€nneren.

Ech hunn "Failover" net an der Lëscht gesat, well et ëmmer manner relevant gëtt. Wann Dir d'Benotzer an en anert Netzwierk muss viruleeden just fir eng FehlersÀit ze weisen wann absolut alles anescht gebrach ass, ass eng Verzögerung vu méi wéi 1 Minutt wahrscheinlech akzeptabel.

ZousÀtzlech heescht eng TTL vun enger Minutt datt wann autoritÀr DNS-Server fir méi wéi 1 Minutt blockéiert sinn, keen aneren fÀeg ass op ofhÀngeg Servicer ze kommen. An Redundanz hëlleft net wann d'Ursaach e Konfiguratiounsfehler oder en Hack ass. Op der anerer SÀit, mat raisonnabel TTLs, wÀerte vill Cliente weider déi viregt Konfiguratioun benotzen an ni eppes bemierken.

CDN Servicer a Lastbalancer si gréisstendeels Schold fir niddereg TTLs, besonnesch wa se CNAMEs mat nidderegen TTLs a Rekorder mat glÀich nidderegen (awer onofhÀngegen) TTLs kombinéieren:

$ drill raw.githubusercontent.com
raw.githubusercontent.com.	9	IN	CNAME	github.map.fastly.net.
github.map.fastly.net.	20	IN	A	151.101.128.133
github.map.fastly.net.	20	IN	A	151.101.192.133
github.map.fastly.net.	20	IN	A	151.101.0.133
github.map.fastly.net.	20	IN	A	151.101.64.133

Wann ëmmer de CNAME oder eng vun den A-Records oflafen, muss eng nei Ufro geschéckt ginn. Béid hunn eng 30 Sekonnen TTL, awer et ass net d'selwecht. Déi aktuell duerchschnëttlech TTL wÀert 15 Sekonnen sinn.

Mee waart! Et ass nach méi schlëmm. E puer Resolvere behuelen sech ganz schlecht an dëser Situatioun mat zwee assoziéierten nidderegen TTLs:

$ drill raw.githubusercontent.com @4.2.2.2 raw.githubusercontent.com. 1 AN CNAME github.map.fastly.net. github.map.fastly.net. 1 AN A 151.101.16.133

Den Level3 Resolver leeft wahrscheinlech op BIND. Wann Dir weider dës Ufro schéckt, gëtt e TTL vun 1 wesentlech zréckginn. raw.githubusercontent.com ass ni cache.

Hei ass en anert Beispill vun esou enger Situatioun mat engem ganz populÀre Domain:

$ drill detectportal.firefox.com @1.1.1.1
detectportal.firefox.com.	25	IN	CNAME	detectportal.prod.mozaws.net.
detectportal.prod.mozaws.net.	26	IN	CNAME	detectportal.firefox.com-v2.edgesuite.net.
detectportal.firefox.com-v2.edgesuite.net.	10668	IN	CNAME	a1089.dscd.akamai.net.
a1089.dscd.akamai.net.	10	IN	A	104.123.50.106
a1089.dscd.akamai.net.	10	IN	A	104.123.50.88

Op d'mannst drÀi CNAME records. Aj. Een huet eng uerdentlech TTL, mee et ass komplett nëtzlos. Aner CNAMEs hunn eng initial TTL pa 60 Sekonnen, mee fir Domainen akamai.net déi maximal TTL ass 20 Sekonnen a keng vun hinnen ass an der Phas.

Wat iwwer Domainen déi dauernd Apple Apparater pollen?

$ drill 1-courier.push.apple.com @4.2.2.2
1-courier.push.apple.com.	1253	IN	CNAME	1.courier-push-apple.com.akadns.net.
1.courier-push-apple.com.akadns.net.	1	IN	CNAME	gb-courier-4.push-apple.com.akadns.net.
gb-courier-4.push-apple.com.akadns.net.	1	IN	A	17.57.146.84
gb-courier-4.push-apple.com.akadns.net.	1	IN	A	17.57.146.85

Selwechte Problem wéi Firefox an TTL wÀerte bei 1 Sekonn meeschtens hÀnke bleiwen wann Dir Level3 Resolver benotzt.

Dropbox?

$ drill client.dropbox.com @8.8.8.8 client.dropbox.com. 7 AN CNAME client.dropbox-dns.com. client.dropbox-dns.com. 59 AN A 162.125.67.3 $ drill client.dropbox.com @4.2.2.2 client.dropbox.com. 1 AN CNAME client.dropbox-dns.com. client.dropbox-dns.com. 1 AN A 162.125.64.3

Op der Opnahm safebrowsing.googleapis.com TTL WÀert ass 60 Sekonnen, wéi Facebook Domainen. An, erëm, aus der Siicht vum Client, sinn dës WÀerter halbéiert.

Wéi wier et mat engem Minimum TTL ze setzen?

Mam Numm, Ufrotyp, TTL, an ursprénglech gespÀichert ZÀitstempel, hunn ech e Skript geschriwwen fir 1,5 Milliounen Ufroen ze simuléieren, déi duerch e Caching-Resolver passéieren, fir de Volume vun onnéideg Ufroe ze schÀtzen, déi wéinst engem ofgelaften Cache-Entrée geschéckt ginn.

47,4% vun Ufroe goufen no engem existente Rekord ofgelaf. Dëst ass onraisonnabel héich.

Wat wÀert den Impakt op Caching sinn wann de Minimum TTL gesat gëtt?

Stop mat lÀcherlech niddereg TTL fir DNS ze benotzen

D'X Achs ass de Minimum TTL WÀerter. Records mat Quell TTLs iwwer dëse WÀert sinn net betraff.

D'Y-Achs ass de Prozentsaz vun Ufroe vun engem Client, dee schonn e Cache-Entrée huet, awer et ass ofgelaf a mécht eng nei Ufro.

Den Undeel vun "extra" Ufroe gĂ«tt vu 47% op 36% reduzĂ©iert andeems se einfach de Minimum TTL op 5 Minutten setzen. Andeems Dir de Minimum TTL op 15 Minutten setzt, fĂ€llt d'Zuel vun dĂ«sen Ufroen op 29%. E Minimum TTL vun 1 Stonn reduzĂ©iert se op 17%. Bedeitend Ënnerscheed!

Wéi wier et mat nÀischt op der Server SÀit z'Ànneren, mee amplaz de Minimum TTL an Client DNS Cache (Router, lokal Resolver) ze setzen?

Stop mat lÀcherlech niddereg TTL fir DNS ze benotzen

D'Zuel vun den néideg Ufroe fÀllt vu 47% op 34% mat engem Minimum TTL vu 5 Minutten, op 25% mat engem Minimum vu 15 Minutten, an op 13% mat engem Minimum vun 1 Stonn. VlÀicht ass 40 Minutten optimal.

Den Impakt vun dĂ«ser klenger Ännerung ass enorm.

Wat sinn d'Konsequenzen?

Natierlech kann de Service op en neie Cloud-Provider, neie Server, neien Netzwierk geplënnert ginn, wat Clienten erfuerdert déi lescht DNS-Records ze benotzen. An e relativ klengen TTL hëlleft esou en Iwwergang glat an onmerkbar ze maachen. Awer mam Iwwergank op eng nei Infrastruktur erwaart keen datt Cliente bannent 1 Minute, 5 Minuten oder 15 Minuten op nei DNS records migréieren. De Minimum TTL op 40 Minutten amplaz vu 5 Minutten ze setzen verhënnert d'Benotzer net op de Service ze kommen.

Wéi och ëmmer, dëst wÀert d'Latenz wesentlech reduzéieren an d'PrivatsphÀr an d'ZouverlÀssegkeet verbesseren andeems onnéideg Ufroe vermeit.

Natierlech soen d'RFCen datt TTL strikt gefollegt muss ginn. Awer d'Realitéit ass datt den DNS System ze ineffizient ginn ass.

Wann Dir mat autoritĂ€ren DNS Server schafft, kontrollĂ©iert w.e.g. Är TTLs. Braucht Dir wierklech esou lĂ€cherlech niddereg WĂ€erter?

Natierlech ginn et gutt Grënn fir kleng TTLs fir DNS records ze setzen. Awer net fir déi 75% vum DNS Traffic dee praktesch onverÀnnert bleift.

A wann Dir aus iergendengem Grond wierklech niddereg TTLs fir DNS benotze musst, gitt glĂ€ichzĂ€iteg sĂ©cher datt Äre Site net Cache aktivĂ©iert huet. Fir dĂ©i selwecht GrĂ«nn.

Wann Dir e lokalen DNS-Cache leeft, wéi z dnscrypt-Proxydéi erlaabt Iech Minimum TTLs ze setzen, benotzen dës Funktioun. Dëst ass gutt. NÀischt Schlecht wÀert geschéien. Setzt de Minimum TTL op ongeféier 40 Minutten (2400 Sekonnen) an 1 Stonn. Ganz raisonnabel Gamme.

Source: will.com

Kaaft zouverlĂ€sseg Hosting fir Site mat DDoS Schutz, VPS VDS Server đŸ”„ Kaaft zouverlĂ©issegt WebsĂ€ithosting mat DDoS-Schutz, VPS VDS Server | ProHoster