Domain name system - сайт і блог програміста
становлення DNS
Згодом, супроводжувати такі списки імен ставало все важче і важче. Такі файли потрібно часто синхронізувати, не кажучи вже про їх значних розмірах.
У підсумку, в 1983 році Джоном Постелом (Jon Postel) і Полом Мокапетрісом (Paul Mockapetris) була розроблена система доменних імен (Domain Name System). Актуальну на даний момент специфікацію DNS можна знайти в документах RFC 1034 і RFC 1035, які датуються +1987 роком.
термінологічний мінімум
Домен (Domain - область) - іменована область простору ієрархічних імен.
Розрізняють домени першого, другого, третього і далі рівнів, однак кореневих доменом всієї ієрархії є точка «.», Яка ставиться в кінці DNS імені. Після кореневого домена слід домен першого рівня, який може бути організований географічно, по типу організації або за своїм призначенням. Потім слід домен другого рівня, третього і т.д.
Домен нульового рівня знаходиться в основі DNS-ієрархії і часто називається кореневим доменом.
Слід пам'ятати, що рівні домену вважаються справа наліво.
Піддомен (Subdomain) - дочірній домен, який є частиною батьківського домену.
Допускається розподілення піддоменів на 127 рівнів, при цьому кожна DNS мітка не повинна перевищувати 63 символи. Такий поділ на піддомени можливо до тих пір, поки повне ім'я домену не буде перевищувати довжину в 255 символів.
Resolver - це набір програмного забезпечення, що використовується для розв'язання доменних імен.
функціонування DNS
Як приклад розглянемо домен www.volokh.info.
Відзначимо, що в кінці символьного імені ставиться крапка, яку часто опускають, але іноді вона потрібна в описах DNS.
Рекурсивний і ітеративний запит
DNS-запит може бути рекурсивним і ітеративним.
1. DNS-сервер, не знайшовши записів в локальному кеші, звертається до кореневого домену «.»;
Для наочності, на рис. 1 наведені обидва методи запитів:

Ітеративний метод запиту справедливий тому випадку, коли:
1. Resolver, для вирішення символьного імені «www.volokh.info.», Надсилає запит на свій DNS-сервер;
У разі рекурсивного запиту, DNS-сервер може не опитувати інші DNS-сервера за умови, якщо у нього в кеші є інформація про необхідний домені.
Зарезервовані доменні імена
Специфікація DNS передбачає список зарезервованих доменів першого рівня, які можна використовувати в якості прикладів в документації або для тестування локальних DNS-серверів.
Список зарезервованих доменів верхнього рівня (top-level domain) складається з чотирьох імен: «.test», «.example», «.invalid» і «.localhost».
Крім перерахованих вище доменів верхнього рівня, зарезервовані доменні імена другого рівня: «example.com», «example.net» і «example.org».
Використання зарезервованих доменних імен дозволить уникнути конфліктів з існуючими доменними іменами.
Технічні деталі DNS
Існує кілька основних реалізацій DNS-серверів: BIND, Microsoft DNS Server. PowerDNS і NSD.
BIND (Berkeley Internet Name Domain) - є найпоширенішою реалізацією DNS-сервера і використовується практично всіма кореневими DNS-серверами.
Інші реалізації серверів менш розповсюджені і в основному використовуються всередині великих підприємств.
Для відповідей на запити, протокол DNS використовує 53 порт протоколу UDP (User Datagram Protocol). TCP (Transmission Control Protocol) використовується в тому випадку, коли розмір одержуваних даних від DNS-сервера перевищує 512 байт. При цьому, дані також передаються через 53 порт протоколу TCP.
DNS (Domain Name System) - є визнаним механізмом розпізнавання імен. Ключовим фактором у роботі DNS є можливість розбиття дозволу імен по доменах, що дозволяє забезпечити загальнодоступність кожного сервера окремо. У разі збою одного з DNS-серверів, функціонування всієї ієрархії системи імен не переривається, так як в роботу включається резервний сервер. Це дозволяє забезпечувати збереження даних і продовження роботи системи доменних імен в разі виходу з ладу одного з вузлів системи.
Вся структура Domain Name System є ієрархічною. Існують домени першого, другого, третього і т.д. рівнів.
Для підвищення ефективності роботи DNS, DNS-сервери кешують отримані DNS-відповіді.
Таким чином, DNS виконує ключову роль у функціонуванні мережі Інтернет.