Таъхири пасти DNS калиди таҷрибаи босуръати интернет аст. Барои кам кардани он, интихоби бодиққати серверҳои DNS ва Аммо аввал шумо бояд аз саволҳои бефоида халос шавед.
Аз ин рӯ, DNS дар аввал ҳамчун протоколи хеле кэшшаванда тарҳрезӣ шуда буд. Мудирони минтақаҳо барои сабтҳои алоҳида вақти зинда (TTL)-ро муқаррар мекунанд ва ҳалкунандаҳо ин маълумотро ҳангоми нигоҳдории сабтҳо дар хотира барои пешгирӣ аз трафики нолозим истифода мебаранд.
Оё кэшкунӣ самаранок аст? Якчанд сол пеш, як таҳқиқоти хурди ман нишон дод, ки он комил нест. Биёед ба вазъи кунунии корҳо назар андозем.
Барои ҷамъоварии маълумоте, ки ман часбондам Барои нигоҳ доштани арзиши TTL барои посух. Он ҳамчун ҳадди ақали TTL-и сабтҳои он барои ҳар як дархости воридотӣ муайян карда мешавад. Ин шарҳи хуби тақсимоти TTL-и трафики воқеиро фароҳам меорад ва инчунин маъруфияти дархостҳои инфиродиро ба назар мегирад. Нусхаи часбшудаи сервер якчанд соат кор кард.
Маҷмӯи додаҳои натиҷавӣ аз 1,583,579 сабт иборат аст (ном, навъи q, TTL, мӯҳри вақт). Дар ин ҷо тақсимоти умумии TTL оварда шудааст (меҳвари x TTL бо сонияҳо аст):

Ғайр аз як болоравии ночиз дар 86,400 (асосан барои сабтҳои SOA), хеле равшан аст, ки TTLҳо дар диапазони паст қарор доранд. Биёед бодиққаттар назар кунем:

Хуб, TTL-ҳои зиёда аз 1 соат аз ҷиҳати оморӣ аҳамияти калон надоранд. Пас, биёед ба диапазони 0-3600 диққат диҳем:

Аксари TTL-ҳо аз 0 то 15 дақиқа мебошанд:

Аксарияти куллӣ аз 0 то 5 дақиқа мебошанд:

Ин чандон хуб нест.
Тақсимоти ҷамъшаванда мушкилотро боз ҳам равшантар мекунад:

Нисфи посухҳои DNS TTL 1 дақиқа ё камтар ва сеяки онҳо TTL 5 дақиқа ё камтар доранд.
Аммо интизор шавед, дар асл он боз ҳам бадтар аст. Ин TTL аз серверҳои бонуфуз аст. Аммо, ҳалкунандаҳои муштарӣ (масалан, роутерҳо, кэшҳои маҳаллӣ) TTL-ро аз ҳалкунандаҳои болоӣ мегиранд ва он ҳар сония кам мешавад.
Ҳамин тариқ, муштарӣ метавонад пеш аз фиристодани дархости нав ҳар як сабтро ба ҳисоби миёна барои нисфи TTL-и аслӣ самаранок истифода барад.
Шояд ин TTL-ҳои хеле паст танҳо ба дархостҳои ғайриоддӣ дахл дошта бошанд, на ба вебсайтҳо ва API-ҳои маъмул? Биёед ба ин назар андозем:

Меҳвари X TTL аст, меҳвари Y маъруфияти дархостҳо мебошад.
Мутаассифона, маъмултарин дархостҳо инчунин бадтарин кэшшуда мебошанд.
Биёед наздиктар кунем:

Ҳукм: Ин хеле бад аст. Он аллакай бад буд ва бадтар шудааст. Кэшкунии DNS амалан бефоида шудааст. Бо истифода аз ҳалкунандаи DNS-и провайдери интернети худ (бо сабабҳои узӯрнок), афзоиши таъхир бештар ба назар мерасад.
Кэшкунии DNS танҳо барои мундариҷае муфид шудааст, ки касе онро боздид намекунад.
Лутфан, инчунин қайд кунед, ки нармафзор метавонад TTL-и пастро тафсир кунед.
Чаро ин тавр аст?
Чаро сабтҳои DNS ба TTL-и чунин хурд муқаррар карда шудаанд?
- Мувозинаткунакҳои боркунии кӯҳна бо танзимоти пешфарз боқӣ мемонанд.
- Афсонаҳо мавҷуданд, ки мувозинати боркунии DNS аз TTL вобаста аст (ин дуруст нест - аз рӯзҳои Netscape Navigator, муштариён аз маҷмӯи RR як суроғаи тасодуфии IP-ро интихоб мекунанд ва агар онҳо пайваст шуда натавонанд, суроғаи дигареро ба таври шаффоф месанҷанд).
- Мудирон мехоҳанд тағйиротро фавран татбиқ кунанд, зеро ин банақшагириро осонтар мекунад.
- Вазифаи мудири сервери DNS ё мувозинаткунандаи боркунӣ ҷойгиркунии самараноки конфигуратсияи дархосткардаи корбарон аст, на суръат бахшидан ба вебсайтҳо ва хидматҳо.
- TTL-и паст оромии хотир медиҳад.
- Одамон дар аввал TTL-ҳои пастро барои санҷиш муқаррар мекунанд ва сипас тағир додани онҳоро фаромӯш мекунанд.
Ман "фаъолкунанда"-ро ба рӯйхат дохил накардам, зеро он камтар аҳамият пайдо мекунад. Агар ба шумо лозим ояд, ки корбаронро танҳо барои намоиши саҳифаи хатогӣ ба шабакаи дигар равона кунед, вақте ки ҳама чиз комилан ноком шудааст, эҳтимолан таъхири беш аз 1 дақиқа қобили қабул аст.
Ғайр аз ин, TTL-и якдақиқаӣ маънои онро дорад, ки агар серверҳои DNS-и боэътимод беш аз як дақиқа масдуд шаванд, каси дигар наметавонад ба хидматҳои вобаста дастрасӣ пайдо кунад. Ва агар сабаб хатои конфигуратсия ё ҳакерӣ бошад, захиракунӣ кӯмак намекунад. Аз тарафи дигар, бо TTL-и мувофиқ, бисёре аз муштариён истифодаи конфигуратсияи қаблиро идома медиҳанд ва ҳеҷ гоҳ пай намебаранд.
CDN ва мувозинаткунандаҳои боркунӣ асосан барои TTL-ҳои паст гунаҳкоранд, хусусан вақте ки онҳо CNAME-ҳоро бо TTL-ҳои паст ва сабтҳоро бо 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
Ҳар дафъае, ки мӯҳлати CNAME ё ягон сабти A ба охир мерасад, дархости нав бояд фиристода шавад. Ҳарду TTL-и 30-сония доранд, аммо онҳо яксон нестанд. TTL-и миёнаи воқеӣ 15 сония хоҳад буд.
Аммо интизор шавед! Вазъ бадтар мешавад. Баъзе ҳалкунандаҳо дар ин ҳолат бо ду TTL-и пасти пайвастшуда хеле бад рафтор мекунанд:
$ drill 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
Эҳтимол, ҳалкунандаи сатҳи 3 дар BIND кор мекунад. Агар шумо ин дархостро пайваста фиристед, он ҳамеша TTL-и 1-ро бармегардонад. Асосан, raw.githubusercontent.com ҳеҷ гоҳ кэш карда нашудааст.
Ин як мисоли дигари ин вазъият бо домени хеле маъмул аст:
$ 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
Ҳадди ақал се сабти CNAME. Уф. Яке TTL-и хуб дорад, аммо он комилан бефоида аст. CNAME-ҳои дигар TTL-и ибтидоии 60 сония доранд, аммо барои доменҳо akamai.net Ҳадди аксар TTL 20 сония аст ва ҳеҷ яке аз онҳо дар фаза нестанд.
Дар бораи доменҳое, ки пайваста аз дастгоҳҳои Apple пурсиш мекунанд, чӣ гуфтан мумкин аст?
$ 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
Ҳамин мушкилоте, ки Firefox ва TTL ҳангоми истифодаи ҳалли Level3 аксар вақт дар 1 сония дармонда мешаванд.
Дропбокс?
$ drill 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 $ drill 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
Дар сабт safebrowsing.googleapis.com Қимати TTL 60 сония аст, мисли доменҳои Facebook. Ва боз ҳам, аз нуқтаи назари муштарӣ, ин арзишҳо ду баробар кам карда мешаванд.
Чӣ тавр дар бораи муқаррар кардани ҳадди ақали TTL?
Бо истифода аз номи дархост, намуди дархост, TTL ва мӯҳри вақт, ки дар аввал захира шуда буд, ман скрипте навиштам, то 1,5 миллион дархостро, ки аз ҳалкунандаи кэш мегузаранд, тақлид кунам, то миқдори дархостҳои иловагиро, ки аз сабаби вуруди кэши ба охир расида фиристода шудаанд, ҳисоб кунам.
47,4% дархостҳо пас аз ба охир расидани мӯҳлати сабти мавҷуда пешниҳод шудаанд. Ин бениҳоят баланд аст.
Агар ҳадди ақали TTL муқаррар карда шавад, ба кэшкунӣ чӣ таъсир хоҳад дошт?

Меҳвари X арзишҳои ҳадди ақали TTL-ро ифода мекунад. Сабтҳое, ки арзишҳои ибтидоии TTL аз ин арзиш болотаранд, таъсир намерасонанд.
Меҳвари Y фоизи дархостҳо аз муштарие мебошад, ки аллакай вуруди кэшшуда дорад, аммо мӯҳлати он гузаштааст ва дархости нав медиҳад.
Ҳиссаи дархостҳои "нолозим" танҳо бо муқаррар кардани ҳадди ақали TTL 5 дақиқа аз 47% то 36% кам карда мешавад. Муқаррар кардани ҳадди ақали TTL 15 дақиқа шумораи ин дархостҳоро то 29% кам мекунад. Ҳадди ақали TTL 1 соат инро то 17% кам мекунад. Тафовути назаррас!
Чӣ мешавад, ки дар тарафи сервер чизеро тағир надиҳем, балки ба ҷои он TTL-ҳои ҳадди ақалро дар кэшҳои DNS-и муштарӣ (роутерҳо, ҳалкунандаҳои маҳаллӣ) муқаррар кунем?

Шумораи дархостҳои зарурӣ аз 47% то 34% бо ҳадди ақали TTL 5 дақиқа, то 25% бо ҳадди ақали 15 дақиқа ва то 13% бо ҳадди ақали 1 соат коҳиш меёбад. Шояд арзиши оптималӣ 40 дақиқа бошад.
Таъсири ин тағйироти ночиз хеле бузург аст.
Оқибатҳо чӣ гунаанд?
Албатта, хидматро метавон ба провайдери нави абрӣ, сервери нав ё шабакаи нав интиқол дод, ки аз муштариён талаб мекунад, ки сабтҳои охирини DNS-ро истифода баранд. TTL-и кофӣ кӯтоҳ барои таъмини гузариши ҳамвор ва бефосила мусоидат мекунад. Аммо, ҳангоми интиқол ба инфрасохтори нав, ҳеҷ кас аз муштариён интизор нест, ки дар давоми 1 дақиқа, 5 дақиқа ё 15 дақиқа ба сабтҳои нави DNS гузаранд. Муқаррар кардани ҳадди ақали TTL ба 40 дақиқа ба ҷои 5 дақиқа, ба корбарон имкон намедиҳад, ки ба хидмат дастрасӣ пайдо кунанд.
Аммо, ин таъхирро ба таври назаррас коҳиш медиҳад ва тавассути пешгирӣ аз дархостҳои нолозим махфият ва эътимоднокиро беҳтар мекунад.
Албатта, RFC-ҳо мегӯянд, ки TTL-ҳо бояд қатъиян риоя карда шаванд. Аммо воқеият ин аст, ки системаи DNS аз ҳад зиёд бесамар шудааст.
Агар шумо серверҳои DNS-и боэътимодро истифода баред, лутфан TTL-ҳои худро санҷед. Оё ба шумо воқеан чунин арзишҳои хеле паст лозиманд?
Албатта, сабабҳои қобили қабул барои муқаррар кардани TTL-ҳои хурд барои сабтҳои DNS вуҷуд доранд. Аммо на барои 75% трафики DNS, ки қариб бетағйир боқӣ мемонад.
Ва агар бо ягон сабаб ба шумо воқеан лозим ояд, ки аз TTL-ҳои DNS-и паст истифода баред, инчунин боварӣ ҳосил кунед, ки кэшкунӣ дар сайти шумо фаъол нест. Барои ҳамин сабабҳо.
Агар шумо кэши маҳаллии DNS дошта бошед, масалан Агар шумо хусусияте дошта бошед, ки ба шумо имкон медиҳад, ки ҳадди ақали TTL-ро муқаррар кунед, онро истифода баред. Ин як чизи муқаррарӣ аст. Ҳеҷ чизи бад рӯй нахоҳад дод. Ҳадди ақали TTL-ро тақрибан ба 40 дақиқа (2400 сония) ва 1 соат муқаррар кунед. Ин як диапазони комилан оқилона аст.
Манбаъ: will.com
