2.5 DNS server BIND на Linux Named - це демон, що входить до складу пакету bind9 і є сервером доменних імен. Демон named може реалізовувати функції серверів будь-якого типу: master, slave, cache. Бінарний файл, який виконує основну роботу, розташований в / usr / sbin / named. Він бере налаштування з основного конфігураційного файлу, який називається named.conf і розташований в каталозі / etc / bind. В основному конфігураційному файлі описується робочий каталог сервера, найчастіше це каталог / var / cache / bind, в якому лежать файли опису зон та інші службові файли. Відповідність назви зони і файлу опису зони задає розділ zone з параметром file. Розділ zone так само задає тип відповідальності даного сервера за зону (master, slave і ін.), А так само визначає особливі параметри для поточної зони (наприклад, на якому інтерфейсі обробляти запити для поточної зони). У файлах опису зон містяться параметри зон і записи ресурсів (шляху, зазначені в цьому абзаці можуть відрізнятися, це залежить від дистрибутива Linux або параметрів збірки сервера з початкових кодів).
Формат файлу конфігурації для 4-ої версії програми відрізняється від того, який застосовується в восьмою і дев'ятою версіях BIND.
Вихідні дані
Для коректної роботи DNS ньому необхідно мати налаштовану мережу. DNS налаштований на дистрибутиві Debian, особливості інших дистрибутивів теж будуть відзначені. Конфігураційний файл мережі стенду наступний:
dns: # cat / etc / network / interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.0.0.152 netmask 255.255.255.0 gateway 10.0.0.254 auto eth1 iface eth1 inet static address 192.168.1.1 netmask 255.255.255.0
де 10.0.0.152/24 - зовнішній інтерфейс (підмережа, виділена провайдером), 192.168.1.1/24 - внутрішній (Локальна мережа). Налаштовувана зона матиме ім'я example.com. У прикладі зі slave сервером, вторинний сервер буде розташований на IP 10.0.0.191.
Установка BIND9
Для роботи DNS сервера необхідно встановити пакет bind9 (в деяких дистрибутивах - bind). Як зазначено - основним конфігураційним файлом BIND є файл named.conf (даний файл може бути розміщений в каталозі / etc, іноді в / etc / bind).
Параметри (синтаксис) named.conf
Синтаксис файлу named.conf дотримується наступних правил:
IP-адреси - список IP повинен бути розділений символом ";" , Можливо вказувати підмережа в форматі 192.168.1.1/24 або 192.168.1.1/255.255.255.0, (для виключення IP перед ним потрібно поставити знак!), Може свідчити імена "any", "none", "localhost" в подвійних лапках.
Коментарі - рядки починаються на #, // і укладені в / * і * / вважаються коментарями.
У файлах опису зон - символ @ є "змінної" зберігає ім'я зони, зазначеної в файлі конфігурації named.conf або в директиві @ $ ORIGIN поточного опису зони.
Кожна завершена рядок параметрів повинна завершуватися символом;
розділ Acl
Acl (access control list) - дозволяє задати іменований список мереж. Формат розділу: acl "імя_сеті" {ip; ip; ip; };
розділ Options
Розділ Options задає глобальні параметри конфігураційного файлу, керівники всіма зонами. Даний розділ має формат: options {оператори розділу_Options}; Options може бути "вкладений" в розділ Zone, при цьому він перевизначає глобальні параметри. Часто використовувані оператори options:
allow-query {список_ip} - Дозволяє відповіді на запити тільки з список_ip. При відсутності - сервер відповідає на всі запити.allow-recursion {список_ip} - На запити з списку ip будуть виконуватися рекурсивні запити. Для інших - ітеративні. Якщо не заданий параметр, то сервер виконує рекурсивні запити для всіх мереж.allow-transfer {список_ip} - Вказує список серверів, яким дозволено брати зону з сервера (в основному тут вказують slave сервера)directory / path / to / work / dir - вказує абсолютний шлях до робочого каталогу сервера. Цей оператор допустимо тільки в розділі options.forwarders {ip порт, ip порт ...} - вказує адреси хостів і якщо потрібно порти, куди переадресовувати запити (зазвичай тут вказуються DNS провайдерів ISP).forward ONLY або forward FIRST - параметр first вказує, DNS-сервера намагатися вирішувати імена за допомогою DNS-серверів, зазначених в параметрі forwarders, і лише в разі, якщо дозволити ім'я за допомогою даних серверів не вдалося, то буде здійснювати спроби дозволу імені самостійно.notify YES | NO - YES - повідомляти slave сервера про зміни в зоні, NO - не повідомляють.recursion YES | NO - YES - виконувати рекурсивні запити, якщо просить клієнт, NO - не виконувати (тільки ітеративні запити). Якщо відповідь знайдена в кеші, то повертається з кешу. (Може використовуватися тільки в розділі Options)
розділ Zone
Визначає опис зон (и). Формат розділу: zone {оператори_розділу_zone}; Оператори, які найбільш часто використовуються:
allow-update {список_ip} - вказує системи, яким дозволено динамічно оновлювати дану зону.file "назва_файла" - вказує шлях до файлу параметрів зони (повинен бути розташований в каталозі, визначеному в розділі options оператором directory)masters {список_ip} -зазначає список майстер-серверів. (Припустимо тільки в підлеглих зонах)type "тип_зони" - вказує тип зони, описуваної в поточному розділі, тип_зони може набувати таких значень:
forward - вказує зону переадресації, яка переадресовує запити, які прийшли в цю зону.hint - вказує допоміжну зону (даний тип містить інформацію про кореневих серверах, до яких сервер буде звертатися в разі неможливості знайти відповідь в кеші)master - вказує працювати в якості майстер сервера для поточної зони.slave - вказує працювати в якості підлеглого сервера для поточної зони.
Розширені можливості пошуку конфігурації
Значення часу в файлах зон за замовчуванням вказується в секундах, якщо за ними не стоїть одна з наступних букв: S - секунди, M - хвилини, H- годинник, D - дні, W - тижні. Відповідно, запис 2h20m5s матиме значення 2 години 20 хвилин 5 секунд і відповідати 8405 секунд.
Будь-яке ім'я хоста / записи, які не закінчуються точкою вважається не FQDN ім'ям і буде доповнено ім'ям поточної зони. Наприклад, запис domen в файлі зони examle.com буде розгорнуто в FQDN-имя domen.examle.com.
У конфігураційних файлах BIND можуть застосовуватися такі директиви:
$ TTL - визначає TTL за замовчуванням для всіх записів в поточній зоні.$ ORIGIN - змінює ім'я зони з зазначеного в файлі named.conf. При цьому, область дії даної директиви не поширюється "вище" (тобто якщо файл включений директивою $ INCLUDE, то область дії $ ORIGN не поширюється на батьківський)$ INCLUDE - включає вказаний файл як частина файлу зони.
Для того щоб локальний Резолвер сервера теж використовував локальний DNS, необхідно привести файл resolv.conf до наступного вигляду:
dns: # cat /etc/resolv.conf nameserver 127.0.0.1
Якщо в імені ресурсної записи зустрічається символ "*", то він означає що замість нього можна мати на увазі будь-яку дозволену послідовність символів. Такий запис називають "wildcard запис". Однак, символ "*" не може бути використаний будь-де. Це може бути тільки перший символ в поле Name поточного домену, відокремлений від решти символом "."
Налаштування кешуючого DNS сервера
Після установки bind, він повністю готовий працювати як кешуючий DNS сервер без додаткового налаштування. Єдиний недолік - він обробляє запити на всіх інтерфейсах.
|