DNS (англ. Domain Name System - система доменних імен) - комп'ютерна розподілена система для отримання інформації про домени. Найчастіше використовується для отримання IP-адреси по імені хоста (комп'ютера або пристрою), отримання інформації про маршрутизацію пошти та про обслуговуючі вузли для протоколів у домену.
Розподілена база даних DNS підтримується за допомогою ієрархії DNS-серверів, взаємодіючих за певним протоколом.
Основою DNS є уявлення про ієрархічну структуру доменного імені та зонах. Кожен сервер, що відповідає за ім'я, може делегувати відповідальність за подальшу частину домену іншому серверу (з адміністративної точки зору - іншої організації або людині), що дозволяє покласти відповідальність за актуальність інформації на сервери різних організацій (людей), що відповідають тільки за «свою» частину доменного імені.
DNS має такими характеристиками:
- Розподіленість адміністрування.
- Відповідальність за різні частини ієрархічної структури несуть різні люди або організації.
- Розподіленість зберігання інформації.
- Кожен вузол мережі в обов'язковому порядку повинен зберігати тільки ті дані, які входять в його зону відповідальності і (можливо) адреси кореневих DNS-серверів.
- Кешування інформації. Вузол може зберігати деяку кількість даних не зі своєї зони відповідальності для зменшення навантаження на мережу.
- Ієрархічна структура, в якій всі вузли об'єднані в дерево, і кожен вузол може або самостійно визначати роботу нижчестоящих вузлів, або делегувати (передавати) їх іншим вузлам.
- Резервування. За зберігання й обслуговування своїх вузлів (зон) відповідають (зазвичай) кілька серверів, розділені як фізично, так і логічно, що забезпечує збереження даних і продовження роботи навіть у разі збою одного з вузлів.
DNS важлива для роботи Інтернету, так як для з'єднання з вузлом необхідна інформація про його IP-адресу, а для людей простіше запам'ятовувати буквені (зазвичай осмислені) адреси, ніж послідовність цифр IP-адреси. У деяких випадках це дозволяє використовувати віртуальні сервери, наприклад, HTTP-сервери, розрізняючи їх по імені запиту. Спочатку перетворення між доменними і IP-адресами проводилося з використанням спеціального текстового файлу hosts, який складався централізовано й автоматично розсилався на кожну з машин у своїй локальній мережі. З ростом Мережі виникла необхідність в ефективному, автоматизованому механізмі, яким і стала DNS.
DNS використовується в першу чергу для перетворення символьних імен в IP-адреси, але він також може виконувати зворотний процес. Для цього використовуються вже наявні засоби DNS. Справа в тому, що із записом DNS можуть бути співставлені різні дані, в тому числі і яке-небудь символьне ім'я. Існує спеціальний домен in-addr.arpa, записи в якому використовуються для перетворення IP-адрес в символьні імена. Наприклад, для отримання DNS-імені для адреси 11.22.33.44 можна запросити у DNS-сервера запис 44.33.22.11.in-addr.arpa, і той поверне відповідне символьне ім'я. Зворотній порядок запису частин IP-адреси пояснюється тим, що в IP-адресах старші біти розташовані на початку, а в символьних DNS-іменах старші (що знаходяться ближче до кореня) частини розташовані в кінці.