Кіріспе

Бұл мақалада Домендік атаулар жүйесі (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 платформаларымен бірге таратылады, онда ол көбінесе named (атау демоны) деп аталады. Бұл ең көп қолданылатын DNS сервері. Тарихи тұрғыдан алғанда, BIND үш маңызды жаңартутан өтті, олардың әрқайсысы едәуір өзгеше архитектураға ие болды: BIND4, BIND8 және BIND9. BIND4 және BIND8 қазіргі таңда техникалық тұрғыдан қолданыстан шығып, осы мақалада қарастырылмайды. BIND9 – BIND-тің толыққанды қайта жазылған нұсқасы, ол басқа мүмкіндіктер мен жақсартулармен қатар толық DNSSEC қолдауын ұсынады. Интернет жүйелері консорциумы BIND 10 жаңа нұсқасын әзірлеуді бастады. Оның бірінші шығарылымы 2010 жылдың сәуірінде болды, бірақ ISC-нің қатысуы 2014 жылдың сәуірінде BIND 10 нұсқасы 1.2 шығуымен аяқталды. ISC BIND 10-ды дамытуды жалғастыру үшін жеткілікті ресурстардың болмауын көрсетті және BIND9-ға деген өзінің міндеттемесін қайта растады. BIND 10 код базасы ашық кодты жоба ретінде өз дамуын жалғастыруда. Ол қазіргі уақытта осы салыстыруға қосылмайды.

Cisco желілік тіркеушісі

CNR Cisco Systems-тің коммерциялық DNS серверін қамтиды, ол көбінесе CNR DHCP (Dynamic Host Configuration Protocol) серверімен бірге пайдаланылады. Ол динамикалық жаңартулардың жоғары деңгейін қолдайды.

CoreDNS-тің негізгі

CoreDNS – Kubernetes үшін ұсынылатын DNS сервері және 2019 жылы CNCF қатарынан тәмамдалды.

Dnsmasq (жауаптылық)

Dnsmasq - жеңіл, оңай конфигурацияланатын DNS прокси-сервері, шағын желіге DNS (және, қажет болса, DHCP және TFTP) қызметтерін ұсыну үшін жасалған. Ол жаһандық DNS-те тіркелмеген жергілікті машиналардың аттарын қамтамасыз ете алады. Dnsmasq DNS сұрауларын қабылдайды және оларға кішкентай жергілікті кэштен жауап береді немесе оларды толыққанды рекурсивті DNS серверіне жібереді. Ол /etc/hosts файлының мазмұнын жүктейді, соның арқасында жаһандық DNS-те кездеспейтін жергілікті хост аттарын анықтауға болады.

djbdns

Djbdns – DNS қосымшаларының жиынтығы, оның ішінде tinydns, 2004 жылы ең көп қолданылған екінші ашық кодты DNS сервері болған. Бастапқы код орталықтандырылған түрде күтілмейді және 2007 жылы жалпыға қолжетімділікке берілді. Djbdns-ке қосымша мүмкіндіктерді қосу үшін бірнеше түйіндемелер мен оннан астам түзетулер бар.

gdnsd

gdnsd — географиялық теңгерімдеуге арналған DNS сервері. gdnsd — Уикипедия өз серверлері мен желісі үшін қолданатын DNS сервері.

DNS түйіндері

Knot DNS — CZ.NIC ұйымының ақысыз бағдарламалық қамтамасы болып табылатын авторитетті DNS сервері. Knot DNS инфрақұрылымдық (root және TLD) және DNS хостинг қызметтері үшін пайдаланылатын жылдам, сенімді DNS сервері болуға бағытталған. Knot DNS DNSSEC қолтаңбасын қолдайды және басқалармен қатар түбір аймағын (B, K және L түбірлік атау серверлері), сондай-ақ бірнеше жоғарғы деңгейдегі домендерді хостингтейді.

Торапты шешуші

Knot Resolver – масштабталуға, сенімділікке және икемділікке бағытталған ашық бастапқы кодты заманауи шешкіш. Оның негізгі архитектурасы кішкентай және тиімді, ал көптеген кең мүмкіндіктер қосымша модульдер ретінде жүзеге асырылады, бұл шабуылға ұшырау мүмкіндігін азайтады және өнімділікті арттырады. Көптеген шешкіш мүмкіндіктері модульдер түрінде дереу қолжетімді, сонымен бірге негізгі бөлігін кішкентай және тиімді сақтайды. Модульдік архитектура C және Lua модульдері сияқты кеңейтімдер үшін күй машинасына ұқсас API ұсынады.

MaraDNS

MaraDNS – Сэм Тренхолм жасаған ақысыз бағдарламалық DNS сервері, ол жақсы қауіпсіздік тарихымен және пайдаланудың қарапайымдығымен ерекшеленеді. Кез келген DNS жазбаларын өзгерту үшін MaraDNS-ты қайта іске қосу қажет. djbdns және dnscache сияқты, MaraDNS 2.0 дербес рекурсивті шешушісі ("Deadwood") жіптерді (threads) қолданбайды.

Microsoft DNS-і

Microsoft DNS-тің Windows DNS серверлік компоненті. Осы бағдарламалық жасақтаманы авторитетті, рекурсивті және гибридті режимдерді қолдау үшін конфигурациялауға болады. Бағдарламалық Active Directory-мен интеграцияланған, бұл оны көптеген кәсіпорын желілері үшін Active Directory-ге негізделген стандартты DNS бағдарламалық жасақтамасына айналдырады. Ол сонымен қатар стандартты DNS аймақ файлы арқылы аймақтар құруға мүмкіндік береді. Бағдарламалық қамтамасыз ету Windows Server-дегі рөл ретінде жеткізіледі. Серверлік бағдарламалық қамтамасыз ету командалық жол қолданбасы dnscmd, DNS басқару GUI шебері және DNS PowerShell жинағымен бірге келеді. Windows Server 2012 жүйесінде Windows DNS DNSSEC-ті толыққанды онлайн қолтаңбалау, Dynamic DNS және NSEC3 қолдауымен, сондай-ақ RSASHA және ECDSA қолтаңбалау алгоритмдерімен бірге қолдайды. Ол кілт сақтаудың кіріктірілген провайдерін және CNG стандартына сәйкес келетін кез келген үшінші тараптың кілт сақтау провайдерін ұсынады. DNS және DNSSEC басқару үшін пайдаланушы интерфейсі мен PowerShell қолдауы да жақсартылды. Windows Server 2016 жүйесінде DNS сервері DNS саясатын қолдайды, оның көмегімен әкімшілер атауларды шешу процесін толық бақылай алады.

ҰҚЖ

NSD – NLNet Labs ұсынған ашық кодты авторитеттік сервер. NSD – DNSSEC-ті сынау үшін арналған сервер; жаңа DNSSEC протоколының мүмкіндіктері көбінесе NSD код базасында прототиптеледі. NSD бірнеше жоғарғы деңгейдегі домендерге хостинг қызметін көрсетеді және үш түбірлік атау серверін басқарады.

pdnsd

Pdnsd – дискіде ұзақ мерзімге сақтау үшін кэштеу DNS жазбаларын сақтайтын кэштеу DNS прокси-сервері. Pdnsd желілік байланыс баяу, тұрақсыз, қолжетімсіз немесе өте өзгермелі жағдайларға бейімделу үшін жасалған, сонымен қатар авторитеттік атау сервері ретінде жұмыс істеу мүмкіндігі шектеулі. Ол GPL лицензиясымен таратылады.

Позади

Posadis – C++ тілінде жазылған, Dynamic DNS жаңартуларын қолдайтын ақысыз DNS сервері.

PowerDNS- тің атауы

PowerDNS — әртүрлі дерек сақтау жүйелері мен жүктемені бөлу мүмкіндіктері бар ақысыз бағдарламалық DNS сервері. Авторитарлық және рекурсивті сервер функциялары жеке-жеке қолданбалар түрінде, ал DNS-ті HTTPS арқылы жүзеге асыру сияқты мүмкіндіктерді ұсынатын жеке DNS кэштік прокси (dnsdist) ретінде іске асырылған.

Secure64 DNS- тің атауы

DNS Authority – Secure64 компаниясының коммерциялық авторитеттік домен атау сервері бағдарламалық құралы, бұл компания Genuinely Secure DNS қолданбалары мен операциялық жүйесін жасады және DNSSEC-тің толық автоматтандырылған орнатуын жүзеге асырды. DNS Cache – Secure64 компаниясының кеңейтілген, жоғары қауіпсіздікпен қамтамасыз етілген рекурсивті DNS бағдарламалық құралы, ол үлкен көлемді қызметтен бас тарту шабуылдарына, соның ішінде Pseudo Random Sub Domain (PRSD) шабуылдарына қарсы кіріктірілген қорғаныс ұсынады.

Simple DNS Plus (Жай DNS)

Simple DNS Plus – Microsoft Windows жүйесінде жұмыс істейтін, пайдалануға оңай GUI интерфейсіне баса назар аударатын коммерциялық DNS серверлік өнім. Соңғы жылдары бағдарламалық қамтамасының күтілуі нашарлаған сияқты.

Technitium DNS сервері

Technitium DNS Server - тегін, ашық кодты (GPLv3), кросс-платформалық, авторитетті, кэштеу және рекурсивті DNS серверлік бағдарламалық қамтамасы. Ол DNS over TLS, DNS over HTTPS және DNS over QUIC шифрланған DNS протоколдарын қолдайды. Сонымен қатар, ол RSA және ECDSA алгоритмдері үшін NSEC және NSEC3 екі алгоритмімен DNSSEC қол қою және тексеруді қолдайды. DNS сервері блок тізімдерін пайдаланып домендік атауларды блоктау мүмкіндігіне ие, сондай-ақ Tor желісі арқылы DNS сұраныстарын жіберу үшін HTTP немесе SOCKS5 қолдануды қолдайды. DNS сервері DNS сұраныстарын өңдеу және жауап беру үшін пайдаланылатын тәуелсіз әзірленген плагиндерді іске қосуға мүмкіндік береді. Ол сондай-ақ үшінші тарап бағдарламалық жасақтамасы DNS серверін басқару үшін пайдалана алатын HTTP API-ді ұсынады.

Байланыссыз

Unbound - жоғары өнімділікке арналған, деректілігін тексеруші, рекурсивті және кэштеу DNS сервері. Ол 2008 жылдың 20 мамырында NLnet Labs компаниясы тарапынан BSD лицензиясы бойынша ақысыз бағдарламалық қамтамасы ретінде жарық көрді (1.0.0 нұсқасы). Ол FreeBSD-нің 10.0 нұсқасынан бастап және NetBSD-нің 8.0 нұсқасынан бастап негізгі жүйенің құрамына орнатылған. OpenBSD-нің 5.6 және одан кейінгі нұсқаларында да қолжетімді. (FreeBSD-нің алдыңғы нұсқалары BIND жүйесімен бірге келді.)

ЯДИФА

YADIFA – BSD лицензиясымен таратылатын, жадыны тиімді пайдаланатын, C тілінде жазылған DNS сервері. YADIFA аббревиатурасы "Yet Another DNS Implementation For All" дегенді білдіреді. Оны .eu домендік аймағын басқаратын EURid ұйымы жасаған.

Ерекшеліктері

Кейбір DNS мүмкіндіктері тек рекурсивті немесе авторитетті серверлерге ғана қатысты. Сондықтан, осы мақаладағы сипаттама матрицасы ғана берілген іске асырудың тиімділігі мен дайындығын толық көрсетпейді. Енді бір маңызды фактор – сервердің архитектурасы. Кейбір DNS серверлері екі серверлік рөлді де бір "монолитті" бағдарламада қолдайды. Ал басқалары сервердің әр кіші жүйесін іске асыратын шағын бағдарламаларға бөлінген. Компьютер ғылымындағы дәстүрлі микроядролық пікірталас сияқты, осы айырмашылықтың маңыздылығы мен пайдалылығы қалысқан күйде. Осы мақаладағы сипаттама матрицасы DNS мүмкіндіктері бір бағдарламада ма, әлде бірнеше бағдарламада ма, есебінде болмайды, егер олар үшінші тараптың қосымша бағдарламалық жасақтамасы емес, негізгі серверлік жиынтықпен бірге ұсынылса.

Өзіндік матрицасы

Серверлік аутендикативті рекурсивті рекурсия ACL Екінші режим Кэштеу DNSSEC TSIG IPv6 Жоқер нүктесі Ақысыз бағдарламалық интерфейсі split horizon DNS over HTTPS DNS over QUIC BIG IP DNS API, команда жолы BIND ✔ ✔ (9.x нұсқасынан бастап) (4.x нұсқасынан бастап) Веб, команда жолы ✔ PowerDNS ✔ ✔ ✔ ✔ ✔ ✔ (3.0 нұсқасынан бастап) ✔ (3.0 нұсқасынан бастап) ✔ ✔ ✔ REST, Веб, команда жолы ✔ (dnsdist ішінде) CoreDNS ✔ проксилік арқылы ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ API ✔ ✔ djbdns жалпы жазбалар арқылы. Команда жолы және веб (VegaDNS & NicTool) dbndns команда жолы және веб pdnsd команда жолы, pdnsd ctl бағдарламасы MaraDNS ✔ ✔ ✔ команда жолы Posadis ✔ команда жолы, API Unbound команда жолы, API ✔ Dnsmasq (2.69 нұсқасынан бастап) команда жолы NSD ✔ команда жолы Knot DNS ✔ команда жолы ✔ ✔ Knot Resolver ✔ ✔ ✔ ✔ ✔ ✔ cli / сокет ✔ YADIFA ✔ ✔ ✔ ✔ ✔ ✔ ✔ команда жолы Microsoft DNS ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ GUI, команда жолы, API, WMI, RPC ✔ Simple DNS Plus GUI, Веб, команда жолы ✔ Secure64 DNS Authority Команда жолы немесе Веб GUI Secure64 DNS Cache Команда жолы немесе Веб GUI Technitium DNS Server Веб GUI немесе HTTP API Серверлік аутендикативті рекурсивті рекурсия ACL Екінші режим Кэштеу DNSSEC TSIG IPv6 Жоқер нүктесі Ақысыз бағдарламалық интерфейсі split horizon DNS over HTTPS DNS over QUIC

Қаптама

Серверді жасаушы құны (АҚШ доллары) Ашық бастапқы код Бағдарламалық қамтамасыздылу лицензиясы BIND Internet Systems Consortium Тегін ✔ BSD, MPL 2.0 (9.11 нұсқасынан бастап) Microsoft DNS Microsoft Windows Server-мен бірге Clickwrap лицензиясы djbdns Daniel J. Bernstein Тегін ✔ Қоғамдық домен Dnsmasq Simon Kelley Тегін ✔ GPL Simple DNS Plus JH Software $79 – $379 Clickwrap лицензиясы NSD NLnet Labs Тегін ✔ BSD нұсқасы Knot DNS CZ. NIC Тегін ✔ GPL Knot Resolver CZ. NIC Тегін ✔ GPL PowerDNS PowerDNS. COM BV / Bert Hubert Тегін ✔ GPL MaraDNS Sam Trenholme Тегін ✔ BSD нұсқасы pdnsd Thomas Moestl және Paul Rombouts Тегін ✔ GPL Posadis Meilof Veeningen Тегін ✔ GPL Unbound NLnet Labs Тегін ✔ BSD YADIFA EURid Тегін ✔ BSD Secure64 DNS Authority Secure64 Жарияланбаған бағасы Clickwrap лицензиясы Secure64 DNS Cache Secure64 Жарияланбаған бағасы Clickwrap лицензиясы Technitium DNS Server Technitium Тегін GPL