Доменна система імен

Доменна система імен (Domain Name System, DNS) – це розподілена база даних, яка містить інформацію про комп’ютери (хости), підключені до мережі Інтернет.

Найчастіше інформація включає ім’я машини, ІР-адресу та дані для маршрутизації пошти.

Для звернення до хостів в мережі Інтернет використовуються 32-розрядні ІР-адреси, що однозначно ідентифікують будь-який комп’ютер в цій мережі. Однак для користувачів застосування ІР-адрес при звертанні до хостів є незручним. Тому було створено систему перетворення імен, яка дозволяла б комп’ютеру у випадку відсутності у нього інформації про відповідність імен та ІР-адрес отримати необхідні відомості від DNS-сервера, ІР-адреса якого зберігається в налаштуваннях підключення до Інтернет.

Таким чином, основне завдання DNS – перетворення імен комп’ютерів в ІР-адреси і навпаки.

Для реалізації системи DNS було створено спеціальний мережений протокол DNS. В мережі також є спеціальні виділені інфомаційно-пошукові сервери – DNS-сервери.

DNS-сервери (сервери імен DNS) – це комп’ютери, на яких зберігаються ті частини бази даних простору імен DNS, за які дані сервери відповідають, і, на яких функціонує програмне забезпечення, що обробляє запити DNS-клієнтів і видає на них відповіді.

DNS-клієнт – це будь-який мережений вузол, який звернувся до DNS-сервера для перетворення імені вузла в ІР-адресу чи, навпаки, ІР-адреси в ім’я вузла.

Основою DNS є уявлення про ієрархічну структуру доменного імені. Кожен сервер, відповідальний за ім’я, може передавати відповідальність за наступну частину домена іншому серверу (з адміністративної точки зору – іншій організації чи людині). Це дозволяє скласти відповідальність за актуальність інформації на сервери різних організацій (людей), що відповідають тільки за «свою» частину доменного імені.

Характеристики DNS

Розподіленість адміністрування (відповідальність за різні частини ієрархічної структури несуть різні люди чи організації)

Розподіленість зберігання інформації (кожен вузол мережі в обов’язковому порядку повинен зберігати тільки ті дані, як івходять в зону його відповідальності і (можливо) адреси кореневих DNS-серверів)

Кешування інформації (вузол може зберігати деяку кількість даних не із своєї зони відповідальності для зменшення навантаження на мережу)

Ієрархічна структура (усі вузли об’єднані в дерево, і кожен вузол може або самостійно визначати роботу розміщених нижче вузлів, або передавати їх іншим вузлам)

Резервування (за зберігання і обслуговування своїх вузлів (зон) відповідають (зазвичай) кілька серверів, розмежованих як фізично, так і логічно, що забезпечує збережуваність даних та продовження роботи навіть у випадку збою одного з вузлів).

Як працює DNS

Для перетворення імен машин в ІР-адреси програми прикладного рівня, такі як Netscape Navigator і т. п., викликають підпрограму gethostbyname. Якщо конфігурація машини передбачає використання DNS, gethostbyname запитує адресу в сервера імен, ІР-адреса якого вказана в налаштуваннях підключення до Інтернет.

Сервери імен бувають рекурсивними та нерекурсивними. Нерекурсивний сервер діє наступним чином: якщо у нього є адреса, кешована з попереднього запиту, або якщо вона авторитетна для домена, до якого відноситься ім’я, то він дає відповідну відповідь. В протилежному випадку замість правильної відповіді він відсилає до авторитетних серверів іншого домена, які повинні знати відповідь.

Рекурсивний сервер повертає тільки реальні відповіді та повідомлення про помилки. Базова процедура обробки запиту по суті така ж; єдина відмінність полягає в тому що цей сервер імен сам займається обробкою відсилок (відсилань), не передаючи їх клієнту.

Проте у відслідковуванні сервером відсилань є один побічний ефект: у його кеш надходить інформація про проміжні домени. Серверу домена високого рівня (такого як com чи ua) не рекомендується зберігати інформацію, що запитується машиною, розміщеною на кілька рівнів нижче. Його кеш швидко наповниться, і через додаткові затрати часу на обробку рекурсивних запитів пропускна здатність сервера знизиться.

У зв’язку з цим сервери імен нижчих рівнів зазвичай є рекурсивними, а сервери вищих рівнів (верхнього чи частково другого) – нерекурсивними.

Динамічний DNS – технологія, що дозволяє інформації на DNS-сервері оновлюватися в реальному часі, і (за бажанням) в автоматичному режимі. Вона застосовується для присвоєння постійного доменного імені пристрою (комп’ютеру, мереженому накопичувачу) з динамічною ІР-адресою. Це може бути ІР-адреса, отримана по DHCP чи по IPCP в РРР-з’єднаннях (наприклад, при віддаленому доступі через модем). Інші машини в Інтернеті можуть встановлювати з’єднання з цією машиною по доменному імені і навіть не знати, що ІР-адреса змінилася.

Динамічна DNS також часто застосовується в локальних мережах, де клієнти отримують ІР-адресу по DHCP, а потім реєструють свої імена в локальному DNS-сервері.

Приклади управління службою DNS:

  • установка служби DNS;
  • створення основної та додаткової зони прямого перегляду;
  • створення зони оберненого перегляду;
  • виконання динамічної реєстрації вузлів в зоні.

Зона прямого перегляду (forward lookup zone) – зони, які служать для перетворення імен вузлів в ІР-адреси. Найчастіше для цього використовуються записи типу A, CNAME, SRV.

Зона оберненого перегляду (reverse lookup zone) – зони, які служать для визначення імені вузла за його ІР-адресою. Основний тип запису PTR.

Порядок встановлення DNS серверу

Ввожу команду для встановлення:

sudo apt-get install bind9

Судячи по документації та порадах багатьох системних адміністраторів, bind настійно рекомендують запускати в chroot середовищі. Для цього спочатку треба зупинити bind:

/etc/init.d/bind9 stop

Щоб вказати серверу, що він повинен запускатися в chroot середовищі потрібно відредагувати такий файл /etc/default/bind9 командою:

nano /etc/default/bind9

Змінивши в ньому стрічку OPTIONS=”-u bind” на OPTIONS=”-u bind –t /var/lib/named”.

Тепер потрібно створити всі необхідні для роботи bind в chroot середовищі директорії:

mknod /var/lib/named/dev/null c 1 3

mknod /var/lib/named/dev/random c 1 8

chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random

chown -R bind:bind /var/lib/named/var/*

chown -R bind:bind /var/lib/named/etc/bin

Тепер потрібно видалити налаштування bind з apparmor, так як apparmor стає непотрібним, при запуску bind в chroot середовищі:

rm /etc/apparmor.d/usr.sbin.named

Перезапускаю apparmor:

/etc/init.d/apparmor restart

Запускаємо bind9 :

/etc/init.d/bind9 start

Якщо все зроблено правильно, то помилок бути не повинно. Якщо bind раптом не запустився, то варто перевірити /var/log/syslog на наявність помилок:

tail/var/log/syslog

Якщо все працює правильно, то потрібно приступити до налаштування зони для мого домену domain.com

Створюю файл конфігурації зон:

nano /var/lib/named/etc/bind/zones.conf

З наступним змістом :

zone ” domain.com ” {

type master ;

file ” /etc/bind/domain.com ” ;

} ;

Встановлюю його власника:

chown bind:bind/var/lib/named/etc/bind/zones.conf

Редагую файл конфігурації bind, щоб він чіпляв конфігурацію зон:

nano/var/lib/named/etc/bind/named.conf

Додаю в нього рядок include ” zones.conf ” ;

Залишилося лише створити файл зони domain.com:

nano/var/lib/named/etc/bind/domain.com

З наступним змістом :

$ TTL 86400

@ IN SOA ns1.domain.com . root.domain.com . (

2010081301 ; Serial

3600 ; Refresh

900 ; Retry

604800 ; Expire

86400 ; Minimum

) ;

@ IN NS ns1.domain.com .

@ IN A 192.168.1.1

ns1 IN A 192.168.1.1

ns2 IN A 192.168.1.1

www IN CNAME @

domain.com – відповідно ім’я вашого домену. Поміняйте значення перед параметром ; Serial на поточну дату. Останні цифри в рядку з датою ( 01 ) позначають скільки разів раз зона редагувалася за поточну добу. Так само не забудьте поміняти IP адреса, з яким ви пов’язуєте свій домен (192.168.1.1).

Після збереження файлу виставляємо його власника :

chown bind:bind/var/lib/named/etc/bind/domain.com

Все готово.

Тепер залишилося оновити конфігурацію bind командою

rndc reload

І перевірити роботу сервера:

nslookup domain.com 127.0.0.1

Якщо все працює вірно, то відповідь сервера буде виглядати:

Server : 127.0.0.1

Address: 127.0.0.1 # 53

Non- authoritative answer :

Name: domain.com

Address: 192.168.1.1

На цьому налаштування DNS серверу завершена. Корисною може бути нструкція із встановлення OpenSSH і Samba.