Zems DNS latentums ir Ätras interneta pÄrlÅ«koÅ”anas atslÄga. Lai to samazinÄtu, ir svarÄ«gi rÅ«pÄ«gi atlasÄ«t DNS serverus un
TÄpÄc DNS sÄkotnÄji tika izstrÄdÄts kÄ protokols ar augstu keÅ”atmiÅu. Zonu administratori atseviŔķiem ierakstiem nosaka dzÄ«ves laiku (TTL), un atrisinÄtÄji izmanto Å”o informÄciju, saglabÄjot ierakstus atmiÅÄ, lai izvairÄ«tos no nevajadzÄ«gas trafika.
Vai keÅ”atmiÅa ir efektÄ«va? Pirms pÄris gadiem mans nelielais pÄtÄ«jums parÄdÄ«ja, ka tas nav ideÄls. ApskatÄ«sim paÅ”reizÄjo lietu stÄvokli.
Lai savÄktu informÄciju, es laboju
IegÅ«tÄ datu kopa sastÄv no 1 583 579 ierakstiem (nosaukums, qtype, TTL, laikspiedols). Å eit ir kopÄjais TTL sadalÄ«jums (X ass ir TTL sekundÄs):
Ja neskaita nelielu satricinÄjumu pie 86 (galvenokÄrt SOA ierakstiem), ir diezgan skaidrs, ka TTL ir zemÄ diapazonÄ. ApskatÄ«sim tuvÄk:
Labi, TTL, kas pÄrsniedz 1 stundu, nav statistiski nozÄ«mÄ«gi. PÄc tam pievÄrsÄ«simies diapazonam 0ā3600:
LielÄkÄ daļa TTL ir no 0 lÄ«dz 15 minÅ«tÄm:
LielÄkÄ daļa ir no 0 lÄ«dz 5 minÅ«tÄm:
Tas nav ļoti labi.
KumulatÄ«vais sadalÄ«jums padara problÄmu vÄl acÄ«mredzamÄku:
Pusei DNS atbilžu TTL ir 1 minÅ«te vai mazÄk, un trÄ«s ceturtdaļÄm TTL ir 5 minÅ«tes vai mazÄk.
Bet pagaidiet, patiesÄ«bÄ ir sliktÄk. Galu galÄ tas ir TTL no autoritatÄ«viem serveriem. TomÄr klientu atrisinÄtÄji (piemÄram, marÅ”rutÄtÄji, lokÄlÄs keÅ”atmiÅas) saÅem TTL no augÅ”puses atrisinÄtÄjiem, un tas samazinÄs katru sekundi.
TÄdÄjÄdi klients pirms jauna pieprasÄ«juma nosÅ«tÄ«Å”anas var izmantot katru ierakstu vidÄji par pusi no sÄkotnÄjÄ TTL.
VarbÅ«t Å”ie ļoti zemie TTL attiecas tikai uz neparastiem pieprasÄ«jumiem, nevis populÄrÄm vietnÄm un API? ApskatÄ«sim:
X ass ir TTL, Y ass ir vaicÄjuma popularitÄte.
DiemžÄl populÄrÄkie vaicÄjumi ir arÄ« vissliktÄk saglabÄjami keÅ”atmiÅÄ.
PietuvinÄsim:
Spriedums: tas ir patieÅ”Äm slikti. Jau iepriekÅ” bija slikti, bet kļuva vÄl sliktÄk. DNS keÅ”atmiÅa ir kļuvusi praktiski bezjÄdzÄ«ga. TÄ kÄ mazÄk cilvÄku izmanto sava ISP DNS atrisinÄtÄju (labu iemeslu dÄļ), latentuma palielinÄÅ”anÄs kļūst pamanÄmÄka.
DNS keÅ”atmiÅa ir kļuvusi noderÄ«ga tikai saturam, kuru neviens neapmeklÄ.
LÅ«dzu, Åemiet vÄrÄ arÄ« to, ka programmatÅ«ra var
KÄpÄc tÄ?
KÄpÄc DNS ierakstiem ir iestatÄ«ts tik zems TTL?
- Mantotie slodzes balansÄtÄji tika atstÄti ar noklusÄjuma iestatÄ«jumiem.
- PastÄv mÄ«ti, ka DNS slodzes lÄ«dzsvaroÅ”ana ir atkarÄ«ga no TTL (tas nav taisnÄ«ba - kopÅ” Netscape Navigator laikiem klienti ir izvÄlÄjuÅ”ies nejauÅ”u IP adresi no RR kopas un, ja nevar izveidot savienojumu, pÄrskatÄmi izmÄÄ£inÄjuÅ”i citu)
- Administratori vÄlas nekavÄjoties piemÄrot izmaiÅas, tÄpÄc to ir vieglÄk plÄnot.
- DNS servera vai slodzes balansÄtÄja administrators savu uzdevumu uzskata par lietotÄju pieprasÄ«tÄs konfigurÄcijas efektÄ«vu izvietoÅ”anu, nevis vietÅu un pakalpojumu paÄtrinÄÅ”anu.
- Zems TTL nodroŔina jums sirdsmieru.
- CilvÄki sÄkotnÄji testÄÅ”anai nosaka zemus TTL un pÄc tam aizmirst tos mainÄ«t.
Es neiekļÄvu "failover" sarakstÄ, jo tas kļūst arvien mazÄk aktuÄls. Ja jums ir nepiecieÅ”ams novirzÄ«t lietotÄjus uz citu tÄ«klu, lai parÄdÄ«tu kļūdas lapu, kad pilnÄ«gi viss pÄrÄjais ir bojÄts, iespÄjams, ir pieļaujama aizkavÄÅ”anÄs, kas pÄrsniedz 1 minÅ«ti.
TurklÄt vienas minÅ«tes TTL nozÄ«mÄ, ka, ja autoritatÄ«vie DNS serveri tiek bloÄ·Äti ilgÄk par 1 minÅ«ti, neviens cits nevarÄs piekļūt atkarÄ«gajiem pakalpojumiem. Un atlaiÅ”ana nepalÄ«dzÄs, ja iemesls ir konfigurÄcijas kļūda vai uzlauÅ”ana. No otras puses, izmantojot saprÄtÄ«gus TTL, daudzi klienti turpinÄs izmantot iepriekÅ”Äjo konfigurÄciju un nekad neko nepamanÄ«s.
CDN pakalpojumi un slodzes balansÄtÄji lielÄ mÄrÄ ir vainojami zemos TTL, it Ä«paÅ”i, ja tie apvieno CNAME ar zemiem TTL un ierakstiem ar tikpat zemiem (bet neatkarÄ«giem) TTL:
$ 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
Ikreiz, kad beidzas CNAME vai kÄda A ieraksta derÄ«guma termiÅÅ”, ir jÄnosÅ«ta jauns pieprasÄ«jums. Abiem ir 30 sekunžu TTL, taÄu tas nav vienÄds. Faktiskais vidÄjais TTL bÅ«s 15 sekundes.
Bet pagaidi! Tas ir vÄl sliktÄk. Daži atrisinÄtÄji Å”ajÄ situÄcijÄ rÄ«kojas ļoti slikti ar diviem saistÄ«tiem zemiem TTL:
$ urbis raw.githubusercontent.com @4.2.2.2 raw.githubusercontent.com. 1 IN CNAME github.map.fastly.net. github.map.fastly.net. 1 IN A 151.101.16.133
Level3 atrisinÄtÄjs, iespÄjams, darbojas BIND. Ja turpinÄsit sÅ«tÄ«t Å”o pieprasÄ«jumu, vienmÄr tiks atgriezts TTL 1. BÅ«tÄ«bÄ raw.githubusercontent.com
nekad netiek saglabÄts keÅ”atmiÅÄ.
Å eit ir vÄl viens Å”Ädas situÄcijas piemÄrs ar ļoti populÄru domÄnu:
$ 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
Vismaz trÄ«s CNAME ieraksti. JÄ. Vienam ir pienÄcÄ«gs TTL, taÄu tas ir pilnÄ«gi bezjÄdzÄ«gs. Citu CNAME sÄkotnÄjais TTL ir 60 sekundes, bet domÄniem akamai.net
maksimÄlais TTL ir 20 sekundes, un neviena no tÄm nav fÄzÄ.
KÄ ir ar domÄniem, kas pastÄvÄ«gi aptaujÄ Apple ierÄ«ces?
$ 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
TÄ pati problÄma kÄ Firefox un TTL lielÄkoties tiks iestrÄgusi 1 sekundÄ, izmantojot Level3 atrisinÄtÄju.
Dropbox?
$ urbt client.dropbox.com @8.8.8.8 client.dropbox.com. 7 IN CNAME client.dropbox-dns.com. client.dropbox-dns.com. 59 IN A 162.125.67.3 $ urbis client.dropbox.com @4.2.2.2 client.dropbox.com. 1 IN CNAME client.dropbox-dns.com. client.dropbox-dns.com. 1 IN A 162.125.64.3
Pie ieraksta safebrowsing.googleapis.com
TTL vÄrtÄ«ba ir 60 sekundes, piemÄram, Facebook domÄnos. Un atkal no klienta viedokļa Ŕīs vÄrtÄ«bas ir uz pusi samazinÄtas.
KÄ bÅ«tu ar minimÄlÄ TTL iestatÄ«Å”anu?
Izmantojot nosaukumu, pieprasÄ«juma veidu, TTL un sÄkotnÄji saglabÄto laikspiedolu, es uzrakstÄ«ju skriptu, lai modelÄtu 1,5 miljonus pieprasÄ«jumu, kas tiek nosÅ«tÄ«ti caur keÅ”atmiÅas atrisinÄtÄju, lai novÄrtÄtu nevajadzÄ«go pieprasÄ«jumu apjomu, kas nosÅ«tÄ«ts sakarÄ ar keÅ”atmiÅas ieraksta derÄ«guma termiÅu.
47,4% pieprasÄ«jumu tika veikti pÄc esoÅ”Ä ieraksta derÄ«guma termiÅa beigÄm. Tas ir nepamatoti augsts.
KÄda bÅ«s ietekme uz keÅ”atmiÅu, ja ir iestatÄ«ts minimÄlais TTL?
X ass ir minimÄlÄs TTL vÄrtÄ«bas. Ieraksti, kuru avota TTL pÄrsniedz Å”o vÄrtÄ«bu, netiek ietekmÄti.
Y ass ir to pieprasÄ«jumu procentuÄlÄ daļa no klienta, kuram jau ir keÅ”atmiÅÄ saglabÄts ieraksts, taÄu tam ir beidzies derÄ«guma termiÅÅ” un tiek veikts jauns pieprasÄ«jums.
āPapilduā pieprasÄ«jumu daļa tiek samazinÄta no 47% lÄ«dz 36%, vienkÄrÅ”i iestatot minimÄlo TTL uz 5 minÅ«tÄm. Iestatot minimÄlo TTL uz 15 minÅ«tÄm, Å”o pieprasÄ«jumu skaits samazinÄs lÄ«dz 29%. MinimÄlais TTL 1 stunda samazina tos lÄ«dz 17%. BÅ«tiska atŔķirÄ«ba!
KÄ bÅ«tu, ja neko nemainÄ«tu servera pusÄ, bet gan iestatÄ«tu minimÄlo TTL klienta DNS keÅ”atmiÅÄs (marÅ”rutÄtÄji, lokÄlie atrisinÄtÄji)?
NepiecieÅ”amo pieprasÄ«jumu skaits samazinÄs no 47% uz 34% ar minimÄlo TTL 5 minÅ«tÄm, lÄ«dz 25% ar vismaz 15 minÅ«tÄm un lÄ«dz 13% ar vismaz 1 stundu. VarbÅ«t 40 minÅ«tes ir optimÄla.
Å o mazo izmaiÅu ietekme ir milzÄ«ga.
KÄdas ir sekas?
Protams, pakalpojumu var pÄrvietot uz jaunu mÄkoÅpakalpojumu sniedzÄju, jaunu serveri, jaunu tÄ«klu, pieprasot klientiem izmantot jaunÄkos DNS ierakstus. Un diezgan mazs TTL palÄ«dz Å”Ädu pÄreju veikt vienmÄrÄ«gi un nemanÄmi. TaÄu, pÄrejot uz jaunu infrastruktÅ«ru, neviens negaida, ka klienti pÄriet uz jauniem DNS ierakstiem 1 minÅ«tes, 5 minÅ«Å”u vai 15 minÅ«Å”u laikÄ. MinimÄlÄ TTL iestatÄ«Å”ana uz 40 minÅ«tÄm 5 minÅ«Å”u vietÄ netraucÄs lietotÄjiem piekļūt pakalpojumam.
TomÄr tas ievÄrojami samazinÄs latentumu un uzlabos privÄtumu un uzticamÄ«bu, izvairoties no nevajadzÄ«giem pieprasÄ«jumiem.
Protams, RFC saka, ka TTL ir stingri jÄievÄro. TaÄu realitÄte ir tÄda, ka DNS sistÄma ir kļuvusi pÄrÄk neefektÄ«va.
Ja strÄdÄjat ar autoritatÄ«viem DNS serveriem, lÅ«dzu, pÄrbaudiet savus TTL. Vai tieÅ”Äm vajag tik smieklÄ«gi zemas vÄrtÄ«bas?
Protams, ir labs iemesls DNS ierakstiem iestatīt mazus TTL. Bet ne tiem 75% DNS trafika, kas paliek praktiski nemainīgs.
Un, ja kÄda iemesla dÄļ jums patieÅ”Äm ir jÄizmanto zemi TTL DNS, tajÄ paÅ”Ä laikÄ pÄrliecinieties, vai jÅ«su vietnÄ nav iespÄjota keÅ”atmiÅa. To paÅ”u iemeslu dÄļ.
Ja darbojas vietÄjÄ DNS keÅ”atmiÅa, piemÄram,
Avots: www.habr.com