DNS սերվերի ծրագրաշարի համեմատություն

Այս հոդվածը ներկայացնում է դոմենի անվան համակարգի (DNS) անվան սերվերի ծրագրաշարի բազմաթիվ անկախ իրականացումների առանձնահատկությունների, հարթակի աջակցության և փաթեթավորման համեմատություն։

## Սերվերների համեմատություն
Այս DNS սերվերներից յուրաքանչյուրը DNS արձանագրությունների անկախ իրականացում է, որը կարող է լուծել այլ համակարգիչների DNS անունները, հրապարակել համակարգիչների DNS անունները կամ երկուսն էլ: Բացառված են այստեղ թվարկված մեկ գործառույթ ունեցող DNS գործիքները (օրինակ՝ պրոքսիներ, ֆիլտրեր և սահմանումներ) և սերվերների վերաբաշխումները (օրինակ՝ շատ ապրանքներ վերափաթեթավորում են BIND-ը սեփական օգտագործողի ինտերֆեյսներով):

DNS սերվերները խմբավորված են մի քանի կատեգորիաների՝ ըստ դոմենային անվանումների համակարգի հարցումների սպասարկման մասնագիտացման: Երկու հիմնական դերերը, որոնք կարող են իրականացվել կամ եզակիորեն, կամ համակցված տվյալ ապրանքում, հետևյալն են.
* **Հեղինակավոր սերվեր.** հեղինակավոր անվան սերվերները հրապարակում են DNS քարտեզագրումներ իրենց հեղինակավոր վերահսկողության տակ գտնվող դոմենների համար: Սովորաբար, ընկերությունը (օրինակ՝ «Acme Example Widgets») կտրամադրի իր սեփական հեղինակության ծառայությունները հասցեների հարցումներին կամ www.example.int-ի համար այլ DNS տեղեկատվությանը պատասխանելու համար: Այս սերվերները նշված են որպես իրենց համապատասխան դոմենների հեղինակության շղթայի վերևում գտնվող և կարող են տրամադրել վերջնական պատասխան: Հեղինակավոր անվան սերվերները կարող են լինել առաջնային անվան սերվերներ, որոնք հայտնի են նաև որպես գլխավոր սերվերներ, այսինքն՝ դրանք պարունակում են տվյալների սկզբնական հավաքածու, կամ կարող են լինել երկրորդական կամ ստրուկ անվան սերվերներ, որոնք պարունակում են տվյալների պատճեններ, որոնք սովորաբար ստացվում են անմիջապես հիմնական սերվերի հետ համաժամեցումից՝ կա՛մ DNS մեխանիզմի միջոցով, կա՛մ տվյալների պահեստի համաժամեցման այլ մեխանիզմների միջոցով:
* **Ռեկուրսիվ սերվեր.** ռեկուրսիվ սերվերները (երբեմն կոչվում են «DNS քեշեր», «միայն քեշավորման անվան սերվերներ») ապահովում են DNS անվան լուծում ծրագրերի համար՝ հաճախորդի ծրագրի հարցումները փոխանցելով հեղինակավոր անվան սերվերների շղթային՝ ցանցի անունը լիովին լուծելու համար: Նրանք նաև (սովորաբար) քեշավորում են արդյունքը՝ որոշակի ժամկետի (գործողության ժամկետի) ընթացքում ապագա հնարավոր հարցումներին պատասխանելու համար: Ինտերնետ օգտատերերի մեծ մասը մուտք է գործում իրենց ինտերնետ ծառայություն մատուցողի կողմից տրամադրված ռեկուրսիվ սերվեր՝ ինտերնետ հոսթեր, որոնցից է  www.example.com-ը։

### BIG-IP DNS
F5 Networks BIG-IP արտադրանքի շարքը առաջարկում է DNS որպես հեղինակավոր կամ ռեկուրսիվ սերվեր և ավելացնում է լրացուցիչ անվտանգության միջոցներ: Հիմնական առավելությունն այն է, որ այն օգտագործում է նույն հավելվածի առաքման կառավարիչը՝ DNS-ը և հավելվածի արագացումը աջակցելու համար:

### BIND
BIND-ը փաստացի ստանդարտ DNS սերվերն է։ Այն ազատ ծրագրային ապահովում է և տարածվում է Unix և Linux հարթակների մեծ մասում, որտեղ այն ամենից շատ հայտնի է որպես անվանված (name daemon): 2004 թվականին այն ամենատարածված DNS սերվերն էր։ Պատմականորեն, BIND-ը ենթարկվել է երեք հիմնական վերանայման, որոնցից յուրաքանչյուրն ուներ զգալիորեն տարբեր ճարտարապետություններ՝ BIND4, BIND8 և BIND9: BIND4-ը և BIND8-ը այժմ տեխնիկապես հնացած են և չեն քննարկվում այս հոդվածում: BIND9-ը BIND-ի հիմնարար վերաշարադրում է, որն առաջարկում է DNSSEC-ի ամբողջական աջակցություն՝ բացի այլ հնարավորություններից և բարելավումներից:

Ինտերնետային համակարգերի կոնսորցիումը սկսում է նոր տարբերակի՝ BIND 10-ի մշակումը: Դրա առաջին թողարկումը տեղի է ունենում 2010 թվականի ապրիլին, սակայն ISC-ի մասնակցությունն ավարտվում է BIND 10-ի 1.2 տարբերակի թողարկմամբ 2014 թվականի ապրիլին: ISC-ն նշում է BIND 10-ի մշակումը շարունակելու համար ռեսուրսների պակասը և վերահաստատում իր հավատարմությունը BIND9-ին:

BIND 10-ի կոդային բազան շարունակում է գործել որպես բաց կոդով նախագիծ: Այն այս պահին չի ներառվում այս համեմատության մեջ:

### Cisco ցանցային գրանցող
CNR-ը ներառում է Cisco Systems-ի առևտրային DNS սերվեր, որը սովորաբար օգտագործվում է CNR DHCP (Dynamic Host Configuration Protocol) սերվերի հետ համատեղ: Այն աջակցում է դինամիկ թարմացման բարձր արագություններ:

### CoreDNS
CoreDNS-ը Kubernetes-ի համար խորհուրդ տրվող DNS սերվերն է և CNCF-ի կողմից ավարտվել է 2019 թվականին։

### Dnsmasq

Dnsmasq-ը թեթև, հեշտ կարգավորվող DNS փոխանցիչ է, որը նախատեսված է փոքրածավալ ցանցերին DNS (և ըստ ցանկության՝ DHCP և TFTP) ծառայություններ մատուցելու համար: Այն կարող է սպասարկել տեղական մեքենաների անունները, որոնք գլոբալ DNS-ում չեն։

Dnsmasq-ը ընդունում է DNS հարցումներ և կամ պատասխանում դրանց փոքր, տեղական քեշից, կամ վերահասցեագրում է դրանք իրական, ռեկուրսիվ DNS սերվերի: Այն բեռնում է /etc/hosts ֆայլի պարունակությունը, որպեսզի տեղական հոսթ անունները, որոնք չեն հայտնվում գլոբալ DNS-ում, կարողանան լուծվել:

### djbdns
Djbdns-ը DNS ծրագրերի հավաքածու է, այդ թվում՝ tinydns-ը, որը 2004 թվականին երկրորդ ամենաշատ օգտագործվող ազատ ծրագրային DNS սերվերն էր։ Այն նախագծվել է qmail-ի հեղինակ Դանիել Ջ. Բերնշտեյնի կողմից՝ շեշտը դնելով անվտանգության նկատառումների վրա։ 2009 թվականի մարտին Բերնշտեյնը 1000 դոլար է վճարում djbdns-ում անվտանգության անցք հայտնաբերած առաջին անձին։ Ելակոդը կենտրոնացված կերպով չի պահպանվում և հանրային սեփականություն է դարձել 2007 թվականին։ Կան բազմաթիվ fork-ներ և տասնյակից ավելի patches՝ djbdns-ին լրացուցիչ հնարավորություններ ավելացնելու համար։

### gdnsd
gdnsd-ն DNS սերվեր է, որը նախատեսված է աշխարհագրական հավասարակշռության համար։ gdnsd-ն Վիքիպեդիայի կողմից իր սերվերների և ցանցային կապի համար օգտագործվող DNS սերվերն է։

### Knot DNS
Knot DNS-ը CZ.NIC-ի կողմից ստեղծված անվճար ծրագրային ապահովման հեղինակավոր DNS սերվեր է: Knot DNS-ը նպատակ ունի լինել արագ, դիմացկուն DNS սերվեր, որը կարող է օգտագործվել ենթակառուցվածքների (root և TLD) և DNS հոսթինգի ծառայությունների համար: Knot DNS-ը աջակցում է DNSSEC ստորագրմանը և, ի թիվս այլոց, հյուրընկալում է root գոտի (B, K և L root name servers), մի քանի վերին մակարդակի դոմեններ:

### Knot Resolver
Knot Resolver-ը բաց կոդով ժամանակակից լուծիչի իրականացում է, որը նախագծված է մասշտաբայնության, դիմացկունության և ճկունության համար: Դրա հիմնական ճարտարապետությունը փոքր է և արդյունավետ, և հարուստ գործառույթների մեծ մասը ներդրված է որպես լրացուցիչ մոդուլներ, ինչը սահմանափակում է հարձակման մակերեսը և բարելավում է կատարողականը: Ուղղիչի շատ գործառույթներ հասանելի են անմիջապես որպես մոդուլներ՝ պահպանելով միջուկի փոքրությունն ու արդյունավետությունը: Մոդուլային ճարտարապետությունը ապահովում է վիճակային մեքենայի նման API ընդլայնումների համար, ինչպիսիք են C և Lua մոդուլները:

### MaraDNS
MaraDNS-ը Սեմ Թրենհոլմի կողմից ստեղծված ազատ DNS սերվեր է, որը պնդում է, որ ունի լավ անվտանգության պատմություն և օգտագործման հեշտություն։

DNS գրառումները փոխելու համար MaraDNS-ը պետք է վերագործարկվի։ Ինչպես djbdns dnscache-ը, MaraDNS 2.0 ինքնուրույն ռեկուրսիվ լուծիչը («Deadwood») չի օգտագործում թելեր։

### Microsoft DNS
Windows DNS Server Microsoft DNS-ի բաղադրիչ է: Նույն ծրագիրը կարող է կարգավորվել՝ աջակցելու հեղինակավոր, ռեկուրսիվ և հիբրիդ ռեժիմներին: Ծրագիրը ինտեգրված է Active Directory-ի հետ, ինչը այն դարձնում է Active Directory-ի վրա հիմնված բազմաթիվ ձեռնարկությունների ցանցերի համար լռելյայն DNS ծրագիր: Այն նաև թույլ է տալիս ստեղծել գոտիներ ստանդարտ DNS գոտու ֆայլի միջոցով: Ծրագիրը գալիս է որպես Windows Server-ի դերային փաթեթ: Սերվերի ծրագիրը մատակարարվում է dnscmd հրամանի տողի ծրագրով, DNS կառավարման GUI վարպետով և DNS PowerShell փաթեթով: Windows Server 2012-ում Windows DNS-ը ավելացրել է DNSSEC-ի աջակցությունը, լիարժեք առցանց ստորագրմամբ, դինամիկ DNS-ի և NSEC3 աջակցությամբ, ինչպես նաև RSASHA և ECDSA ստորագրման ալգորիթմներով: Այն ապահովում է ներկառուցված բանալիների պահեստավորման մատակարար և աջակցություն ցանկացած երրորդ կողմի CNG-համատեղելի բանալիների պահեստավորման մատակարարի համար: DNS-ի և DNSSEC-ի կառավարման համար օգտագործողի ինտերֆեյսը և PowerShell աջակցությունը նույնպես բարելավվել են: Windows Server 2016-ում DNS սերվերը աջակցում է DNS քաղաքականություններին, որոնց միջոցով ադմինիստրատորները կարող են ավելի մեծ վերահսկողություն ունենալ անվան լուծման գործընթացի նկատմամբ:

### NSD
NSD-ն NLNet Labs-ի կողմից տրամադրվող ազատ ծրագրային ապահովման հեղինակավոր սերվեր է: NSD-ն DNSSEC-ի փորձարկման սերվեր է. DNSSEC-ի նոր արձանագրության գործառույթները հաճախ նախատիպավորվում են NSD կոդային բազայի միջոցով: NSD-ն հյուրընկալում է մի քանի վերին մակարդակի դոմեններ և գործարկում է արմատային անվան սերվերներից երեքը:

### pdnsd
Pdnsd-ն քեշավորող DNS պրոքսի սերվեր է, որը պահպանում է քեշավորված DNS գրառումները սկավառակի վրա՝ երկարաժամկետ պահպանման համար: Pdnsd-ն նախագծված է բարձր հարմարվողականության համար այն իրավիճակներում, երբ ցանցային կապը դանդաղ է, անվստահելի, անհասանելի կամ խիստ դինամիկ՝ որպես հեղինակավոր անունների սերվեր գործելու սահմանափակ հնարավորությամբ: Այն լիցենզավորված է GPL լիցենզիայի ներքո։

### Posadis
Posadis-ը ազատ ծրագրային DNS սերվեր է, գրված C++ լեզվով, որն աջակցում է դինամիկ DNS թարմացումներին։

### PowerDNS
PowerDNS-ը ազատ ծրագրային DNS սերվեր է՝ տվյալների պահպանման և բեռի հավասարակշռման բազմազան գործառույթներով: Հեղինակավոր և ռեկուրսիվ սերվերի գործառույթները իրականացվում են որպես առանձին ծրագրեր, ինչպես նաև առանձին DNS քեշավորման պրոքսի (dnsdist), որը իրականացնում է այնպիսի գործառույթներ, ինչպիսիք են DNS-ը HTTPS-ի միջոցով:

### Secure64 DNS
DNS Authority-ն Secure64 ընկերության առևտրային հեղինակավոր անվան սերվերի ծրագիր է, որը մշակել է Genuinely Secure DNS հավելվածներ և օպերացիոն համակարգ, ինչպես նաև ամբողջությամբ ավտոմատացրել է DNSSEC-ի տեղակայումը։

DNS Cache-ը Secure64 ընկերության մասշտաբային, բարձր անվտանգության ռեկուրսիվ DNS ծրագիր է, որը ապահովում է ներկառուցված պաշտպանություն մեծ ծավալի ծառայությունից հրաժարվելու հարձակումներից, այդ թվում՝ կեղծ պատահական ենթադոմենի (PRSD) հարձակումներից։

### Simple DNS Plus
Simple DNS Plus-ը առևտրային DNS սերվերի արտադրանք է, որն աշխատում է Microsoft Windows-ի ներքո՝ շեշտը դնելով օգտագործման համար պարզ գրաֆիկական ինտերֆեյսի վրա: Վերջին տարիներին, կարծես, ծրագրի սպասարկումը նվազել է:

### Technitium DNS սերվեր
Technitium DNS Server-ը ազատ, բաց կոդով (GPLv3), խաչաձև հարթակային, հեղինակավոր, քեշավորող և ռեկուրսիվ DNS սերվերի ծրագիր է: Այն աջակցում է DNS-over-TLS, DNS-over-HTTPS և DNS-over-QUIC կոդավորված DNS արձանագրություններին:[5] Այն նաև աջակցում է DNSSEC ստորագրմանը և վավերացմանը RSA և ECDSA ալգորիթմների համար՝ NSEC և NSEC3-ով:

DNS սերվերը նաև հնարավորություն է տալիս արգելափակել դոմենային անունները՝ օգտագործելով բլոկ ցուցակներ, ինչպես նաև աջակցում է HTTP կամ SOCKS5-ի օգտագործումը՝ DNS հարցումները Tor ցանցի միջոցով փոխանցելու համար:

DNS սերվերը աջակցում է անկախ մշակված պլագինների գործարկմանը, որոնք կարող են օգտագործվել DNS հարցումները մշակելու և դրանց պատասխանելու համար: Այն նաև տրամադրում է HTTP API, որը կարող է օգտագործվել երրորդ կողմի ծրագրերի կողմից՝ DNS սերվերը կառավարելու համար:

### Unbound
Unbound-ը վավերացնող, ռեկուրսիվ և քեշավորման DNS սերվեր է, որը նախատեսված է բարձր արդյունավետության համար: Այն թողարկվել է 2008 թվականի մայիսի 20-ին (տարբերակ 1.0.0) որպես ազատ ծրագրակազմ՝ NLnet Labs-ի կողմից BSD լիցենզիայով լիցենզավորված: Այն տեղադրվում է որպես բազային համակարգի մաս FreeBSD-ում՝ սկսած 10.0 տարբերակից, և NetBSD-ում՝ 8.0 տարբերակից: Տարբերակը հասանելի է նաև OpenBSD 5.6 և ավելի բարձր տարբերակներում: (FreeBSD-ի նախորդ տարբերակները մատակարարվել են BIND-ով):

### YADIFA
YADIFA-ն BSD լիցենզավորված, հիշողության արդյունավետ օգտագործման DNS սերվեր է, որը գրված է C լեզվով: YADIFA հապավումը նշանակում է «Եվս մեկ DNS իրականացում բոլորի համար»: Այն ստեղծվել է EURid-ի կողմից, որը շահագործում է .eu վերին մակարդակի դոմենը։

## Հատկանիշներ
Որոշ DNS հնարավորություններ վերաբերում են միայն ռեկուրսիվ սերվերներին կամ հեղինակավոր սերվերներին: Արդյունքում, այս հոդվածում ներկայացված հնարավորությունների մատրիցը չի կարող ինքնին ներկայացնել տվյալ իրականացման արդյունավետությունը կամ հասունությունը։

Մեկ այլ կարևոր որակավորիչ է սերվերի ճարտարապետությունը: Որոշ DNS սերվերներ ապահովում են սերվերի երկու դերերի աջակցությունը մեկ «մոնոլիտ» ծրագրում: Մյուսները բաժանված են ավելի փոքր ծրագրերի, որոնցից յուրաքանչյուրն իրականացնում է սերվերի ենթահամակարգ: Ինչպես դասական համակարգչային գիտության միկրոմիջուկի բանավեճում, այս տարբերակման կարևորությունն ու օգտակարությունը բուռն քննարկվում են: Այս հոդվածի հնարավորությունների մատրիցը չի քննարկում, թե արդյոք DNS հնարավորությունները տրամադրվում են մեկ ծրագրում, թե մի քանիսում, քանի դեռ այդ հնարավորությունները տրամադրվում են հիմնական սերվերի փաթեթով, և ոչ թե երրորդ կողմի լրացուցիչ ծրագրով:

### Հատկանիշների բացատրություն
; Հեղինակավոր
: DNS սերվերի ֆունկցիոնալության հիմնական կատեգորիա, տե՛ս վերևում։

; Ռեկուրսիվ
: DNS սերվերի ֆունկցիոնալության հիմնական կատեգորիա, տե՛ս վերևում։

; Ռեկուրսիայի մուտքի վերահսկում
: Այս գործառույթով սերվերները հնարավորություն են տալիս վերահսկել, թե որ հոսթերին է թույլատրվում DNS ռեկուրսիվ որոնումներ կատարել: Սա օգտակար է բեռի հավասարակշռման և ծառայությունների պաշտպանության համար:

; Երկրորդային ռեժիմ (կամ ենթակա ռեժիմ)
: Հեղինակավոր սերվերները կարող են հրապարակել բովանդակություն, որը ծագում է առաջնային տվյալների պահեստից (օրինակ՝ գոտիային ֆայլեր կամ բիզնեսի կառավարման գործընթացներին կապված տվյալների բազաներ), որոնք երբեմն կոչվում են նաև «գլխավոր» սերվերներ, կամ կարող են լինել երկրորդական (կամ ենթակա) սերվերներ, որոնք վերահրապարակում են նման առաջնային սերվերներից վերցված և դրանց հետ համաժամեցված բովանդակությունը: «Երկրորդական ռեժիմ» գործառույթ ունեցող սերվերներն ունեն ներկառուցված հնարավորություն՝ այլ սերվերներից բովանդակություն ստանալու և վերահրապարակելու: Սա սովորաբար, թեև ոչ միշտ, տրամադրվում է AXFR DNS արձանագրության միջոցով:

; Քեշավորում
: Այս գործառույթով սերվերները ռեկուրսիվ ծառայություններ են մատուցում հավելվածների համար և քեշավորում են արդյունքները, որպեսզի նույն անվան ապագա հարցումներին կարողանան արագ պատասխանել՝ առանց DNS-ի լրիվ որոնման: Սա կարևոր կատարողականության գործառույթ է, քանի որ այն զգալիորեն նվազեցնում է DNS հարցումների լատենտությունը:

; DNSSEC
: Այս գործառույթն ունեցող սերվերները իրականացնում են DNSSEC արձանագրությունների որոշ տարբերակներ։ Նրանք կարող են հրապարակել անուններ ռեսուրսների գրառման ստորագրություններով (ապահովելով «անվտանգ հեղինակության ծառայություն») և կարող են ստուգել այդ ստորագրությունները ռեկուրսիվ որոնումների ընթացքում (ապահովելով «անվտանգ լուծիչ»)։ DNSSEC-ը ավելի լայն տարածում է գտնում, քանի որ DNSSEC արմատային բանալու տեղակայումը կատարվել է ICANN-ի կողմից։ Առանձին կայքերում տեղակայումը աճում է, քանի որ վերին մակարդակի դոմենները նույնպես սկսում են տեղակայել DNSSEC-ը։ DNSSEC գործառույթների առկայությունը DNS սերվերի նշանակալի բնութագիր է։

; TSIG
: Այս գործառույթն ունեցող սերվերները սովորաբար մատուցում են DNSSEC ծառայություններ: Բացի այդ, դրանք աջակցում են TSIG (Transaction SIGnature) արձանագրությունը, որը թույլ է տալիս DNS հաճախորդներին անվտանգ սեսիա հաստատել սերվերի հետ՝ դինամիկ DNS գրառումներ հրապարակելու կամ անվտանգ DNS որոնումներ պահանջելու համար՝ առանց DNSSEC-ի լիարժեք աջակցության ծախսերի և բարդության:

; IPv6
: Այս գործառույթն ունեցող սերվերները կարող են հրապարակել կամ մշակել IPv6 հասցեներին վերաբերող DNS գրառումներ: Բացի IPv6-ի լիարժեք համատեղելիությունից, նրանք պետք է ներդնեն IPv6 տրանսպորտային արձանագրություն հարցումների և գոտիների փոխանցման համար երկրորդական/առաջնային հարաբերություններում և փոխանցման գործառույթներում:

; Wildcard
: Այս գործառույթով սերվերները կարող են հրապարակել wildcard գրառումների մասին տեղեկատվություն, որոնք տրամադրում են տվյալներ DNS գոտիներում գտնվող DNS անունների մասին, որոնք հատուկ նշված չեն գոտում:

; Բաշխված հորիզոն
: Բաշխված հորիզոն DNS գործառույթով սերվերները կարող են տարբեր պատասխաններ տալ՝ կախված հարցման աղբյուրի IP հասցեից։

### Հատկանիշների մատրից

## Հարթակներ
Քննարկված DNS սերվերի օպերացիոն համակարգի աջակցության այս ակնարկում հետևյալ տերմինները ցույց են տալիս աջակցության մակարդակը.

* «Ոչ» նշանակում է, որ այն գոյություն չունի կամ երբեք չի թողարկվել։
* «Մասնակի» նշանակում է, որ չնայած այն աշխատում է, սերվերը չունի կարևոր ֆունկցիոնալություն՝ համեմատած այլ օպերացիոն համակարգերի տարբերակների հետ։ Այնուամենայնիվ, այն դեռևս մշակման փուլում է։
* «Բետա» նշանակում է, որ չնայած տարբերակը լիովին գործունակ է և թողարկվել է, այն դեռևս մշակման փուլում է (օրինակ՝ կայունության համար)։
* «Այո» նշանակում է, որ այն պաշտոնապես թողարկվել է լիովին գործունակ, կայուն տարբերակով։
* «Ներառված» նշանակում է, որ սերվերը նախապես փաթեթավորված է օպերացիոն համակարգի հետ կամ ինտեգրված է դրան։

Այս ժողովածուն սպառիչ չէ, այլ արտացոլում է այսօր ամենատարածված հարթակները։

## Փաթեթավորում

## Ծանոթագրություններ

## Արտաքին հղումներ
* Don Moore's May 2004 DNS Internet survey
* The Measurement Factory DNS Survey Summary: April & June 2005
* Beehive/CoDoNS DNS Survey: July 2004
* ITU ccTLD DNS Survey