Відповідність між доменними іменами і IP - адресами може встановлюватися як засобами локального хоста, так і засобами централізованої служби. На ранньому етапі розвитку Інтернету на кожному хості уручну створювався текстовий файл з відомим ім'ям hosts.txt. Цей файл складався з деякої кількості рядків, кожна з яких містила одну пару «IP-адрес — доменне ім'я», наприклад 102.54.94.97 — rhino.acme.com.
У міру зростання Інтернету файли hosts також росли, і створення рішення, що масштабується, для дозволу імен вийшло на перший план.
Таким рішенням стала спеціальна служба — система доменних імен (Domain Name System, DNS). DNS — це централізована служба, заснована на розподіленій базі відображень «доменне ім'я — IP-адрес». Служба DNS використовує в своїй роботі протокол типу «клієнт - сервер». У ньому визначені DNS - сервери і DNS - клиенти. DNS - сервери підтримують розподілену базу відображень, а DNS - клиенти звертаються до серверів з, запитами, про дозвіл доменного імені в IP - адресу.
Служба DNS використовує текстові файли майже такого формату, як і файл hosts, і ці файли адміністратор також готує уручну. Проте служба DNS спирається на ієрархію доменів, і кожен сервер служби DNS зберігає тільки частину імен мережі, а не всі імена, як це відбувається при використовуванні файлів hosts. При зростанні кількості вузлів в мережі проблема масштабування розв'язується створенням нових доменів і піддоменів імен і додаванням в службу DNS нових серверів.
Для кожного домена імен створюється свій DNS - сервер. Є дві системи розподілу імен на серверах. У першому випадку сервер може зберігати відображення «доменне ім'я — IP - адреса» для всього домена, включаючи всі його піддомени. Проте таке рішення виявляється тим, що погано масштабується, оскільки при додаванні нових піддоменів навантаження на цей сервер може перевищити його можливості. Частіше використовується інший підхід, коли сервер домена зберігає тільки імена, які закінчуються на наступному нижче рівні ієрархії в порівнянні з ім'ям домена. (Аналогічно каталогу файлової системи, який містить записи про файли і підкаталоги, безпосередньо в нього що «входять».) Саме при такій організації служби DNS навантаження по дозволу імен розподіляється більш - менш рівномірно між всіма DNS - серверами мережі.
Кожен DNS - сервер окрім таблиці відображень імен містить посилання на DNS - сервери своїх піддоменів. Ці посилання зв'язують окремі DNS - сервери в єдину службу DNS. Посилання є IP - адреса відповідних серверів. Для обслуговування кореневого домена виділено декілька дублюючих один одного DNS - серверів, IP - адреса яких є широко відомими (їх можна взнати, наприклад, в InterNIC).
Процедура дозволу DNS - імені багато в чому аналогічна процедурі пошуку файловою системою адреси файлу по його символьному імені. Дійсно, в обох випадках складове ім'я відображає ієрархічну структуру організації відповідних довідників — каталогів файлів або таблиць DNS. Тут домен і доменний DNS - сервер є аналогом каталога файлової системи. Для доменних імен, так само як і для символьних імен файлів, характерна незалежність іменування від фізичного місцеположення.
Процедура пошуку адреси файлу по символьному імені полягає в послідовному перегляді каталогів, починаючи з кореневого. При цьому заздалегідь перевіряється кеш і поточний каталог. Для визначення IP-адреса по доменному імені також необхідно проглянути всі DNS-сервери, обслуговуючі ланцюжок піддоменів, що входять в ім'я хоста, починаючи з кореневого домена. Істотною ж відмінністю є те, що файлова система розташована на одному комп'ютері, а служба DNS за своєю природою є розподіленою.
Існує дві основні схеми дозволу DNS - імен. У першому варіанті роботу по пошуку IP - адреса координує DNS - клієнт.
1. DNS - клієнт звертається до кореневого DNS - серверу з вказівкою повного доменного імені.
2. DNS - сервер відповідає, указуючи адресу наступного DNS-сервера, обслуговуючого домен верхнього рівня, заданий в старшій частині запитаного імені.
3. DNS - клієнт робить запит наступного DNS - сервера, який посилає його до DNS -сервера потрібного піддомена і т. д„ поки не буде знайдений DNS - сервер, в якому зберігається відповідність запитаного імені IP - адресу. Цей сервер дає остаточну відповідь клієнту.
Така схема взаємодії називається нерекурсивною, або ітеративною, коли клієнт сам ітеративно виконує послідовність запитів до різних серверів імен. Оскільки ця схема завантажує клієнта достатньо складною роботою, то вона застосовується рідко.
У другому варіанті реалізується рекурсивна процедура.
1. DNS - клієнт запрошує локальний DNS - сервер, тобто той сервер, обслуговуючий піддомен, до якого належить ім'я клієнта.
2. Якщо локальний DNS - сервер знає відповідь, то він зразу ж повертає його клієнту; це може відповідати випадку, коли запитане ім'я входить в той же піддомен, що і ім'я клієнта, а також випадку, коли сервер вже взнавав дану відповідність для іншого клієнта і зберіг його в своєму кеші.
3. Якщо локальний сервер не знає відповідь, то він виконує ітеративні запити до кореневого серверу і т.д. точно так, як і це робить клієнт в першому варіанті. Одержавши відповідь, він передає його клієнту, який весь цей час просто чекає його від свого локального DNS - сервера.
У цій схемі клієнт передоручає роботу своєму серверу, тому схема називається непрямою, або рекурсивною. Практично всі DNS - клієнти використовують рекурсивну процедуру.
Для прискорення пошуку IP - адрес DNS - сервери широко застосовують процедуру кешування проходячих через них відповідей. Щоб служба DNS могла оперативно відпрацьовувати зміни, що відбуваються в мережі, відповіді кешуються на певний час — звичайно від декількох годин до декількох днів.
Отже,
- Встановлення відповідності між IP-адресом і апаратною адресою здійснюється протоколом дозволу адрес.
- Існує два принципово відмінних підходу до дозволу адрес: у мережах, що підтримують широкомовлення, і в мережах, його не підтримуючих.
- Протокол ARP, що працює в мережах Ethernet, Token Ring, FDDI, для трансляції IP-адреса в МАС-адрес виконує широкомовний ARP-запрос. Для прискорення процедури перетворення адрес протокол ARP кешує одержані відповіді в ARP-таблицах.
- В мережах, в яких не підтримуються широкомовні повідомлення, ARP - таблиці зберігаються централізовано на виділеному ARP-сервере. Таблиці складаються або уручну адміністратором, або автоматично — при включенні кожен вузол реєструє в них свої адреси. При необхідності встановлення відповідності Між IP-адресом і локальною адресою вузол звертається до ARP-серверу із запитом і автоматично одержує відповідь без участі адміністратора.
- В стеку TCP/IP застосовується доменна система символьних імен, яка має ієрархічну деревовидну структуру, що допускає використовування в імені довільної кількості складових частин. Сукупність імен, у які декілька старших складових частин співпадають, утворюють домен імен. Доменні імена назначаются централізовано, якщо мережа є частиною Інтернету, інакше — локально.
- Відповідність між доменними іменами і IP-адресами може встановлюватися як засобами локального хоста з використанням файлу hosts, так і за допомогою централізованої служби DNS, заснованої на розподіленій базі відображень «доменне ім'я — IP-адрес».