необхідно). Після цього він почне очікувати DNS запитів через 53 порт
7.2.1 Файл named.boot
Файл named.boot є досить маленьким і описує тільки файли в яких зберігається інформація про зони та вказівники на інші сервери назв. Коментарії у файлі починаються з крапки з комою ';' і завершуються символом нової стрічки. Перш ніж більш детально розглянути формат named.boot глянемо на простий файл з машини vlager поданий на ілюстрації 7.2.1 (2)
Команди cache та primary показані у цьому прикладі завантажують інформацію в named з базових файлів які описані в другому аргументі. Ці файли містять текстове представлення DNS записів яке ми розглянемо нижче.
;
; /etc/named.boot file for vlager.vbrew.com
;
directory /var/named
;
; domain file
;---------------------------------------------------
cache . named.ca
primary vbrew.com named.hosts
primary 0.0.127.in-addr.arpa named.local
primary 72.191.in-addr.arpa named.rev
Ілюстрація 9. Файл named.boot для vlager.
В цьому прикладі ми конфігуруємо named як primary сервер для трьох доменів використовуючи вираз primary. Перший з них встановлює named як primary сервер для vbrew.com з файлом данних зони named.hosts. Ключове слово directory вказує, що всі файли з описом зон знаходяться в /var/named.
Входження cache є досить специфічне і повинно бути присутнім на всіх машинах які використовують сервер назв. Ця функція дає named дві інструкції - ввімкнути кеш, та завантажити з описаного файлу (named.ca в нашому прикладі) хінти кореневих серверів назв. Ми повернемось до опису хінтів сервера назв нижче.
Нижче подано список найбільш важливих операторів які ви можете використовувати в named.boot.
directory Описує каталог в якому знаходяться файли опису зон. Імена
файлів можуть даватись відносно цього каталогу. Може бути
описано кілька каталогів використовуючи повторно directory.
Відповідно до стандарту файлової системи Linux це повинен
бути /var/named.
primary Його аргументами повинні бути домен та ім'я файлу
відповідно, оголошує місцевий сервер як авторизований для
данного домену. named, як primary сервер, завантажує
інформацію про зону з описаного файлу.
В будь-якому випадку завжди буде існувати принаймі одне
входження primary в boot файлі : зворотня карта для
локальної мережі (127.0.0.0).
secondary Ця опція отримує домен, список адресів та ім'я файлу як
аргументи. Встановлює місцевий сервер як secondary для
вказаного домену.
secondary сервер також тримає авторизовані данні
відносно домену, але він не бере ці данні з файлів, а пробує
їх завантажити з primary сервера. Для цього повинна бути
вказана принаймі одна IP адреса в списку адрес. Локальний
сервер спробує встановити з'єднання з доступними серверами в
порядку їх подання і запише інформацію в резервний файл,
назва якого є третім аргументом. У випадку якщо сервер не
зможе зв'язатись з жодним поданим сервером данні буде
завантажено з цього резервного файлу.
named буде пробувати через однакові проміжки часу
обновити данні про зону (буде пояснено нижче при описі
типу запису SOA).
cache Ця опція потребує домен та назву файлу як аргументи. Файл
містить хінти для кореневого (root) сервера і які є списком
вказівників на кореневі сервери імен. Розпізнаються тільки
записи типів NS та A. Аргумент домену повинен бути кореневим
доменом ``.''.
Ця інформація є вельми важливою для named : якщо в
завнатажувальному файлі відсутній оператор cache то named не
використовуватиме локальний кеш взагалі. Це може призвести
до зниження швидкодії та завантаження мережі якщо наступний
сервер знаходиться за межами лоальної мережі. Крім того
named не зможе звертатись до жодного кореневого сервера
назв, і таким чином не зможе вирішувати ніякі адреси крім
авторизованих для нього. Виключенням з цього правила є
використання forwarding серверів (опис опції forwarders
див. нижче).
forwarders Цей оператор потребує список адрес як аргумент. IP адреси в
цьому списку описують список серверів назв до яких буде
звертатись named якщо він не зможе знайти данні в локальному
кеші. Звернення до серверів відбувається в порядку їх
розташування.
slave Ця опція встановлює сервер назв в режим ``раба''. Тобто
сервер ніколи не буде виконувати рекурсивні запити
самостійно, а буде переадресовувати їх на сервери вказані в
списку forwards.
Існує два оператори - sortlist та domain - які ми не будем описувати. Додатково також існують дві директиви які можуть викорисовуватись в файлах баз данних зон ($INCLUDE та $ORIGIN). Вони так рідко дійсно необхідні що ми також опустимо їх опис.
7.2.2 Файли баз данних DNS
Файли які включає named (наприклад named.hosts) завжди пов'язані з певним доменом який називється ориджин (origin). Це домени вказані в командах cache та primary. В межах такого файлу ви можете вказувати домен чи ім'я хоста відносно цього домену. Назва данна в файлі конфігурації розглядається як абсолютна якщо вона закінчується одною крапкою (`.'), в іному випадку назва вважається відносною до ориджина. Назва ориджину згадується за допомогою символа `@'.
Всі данні що знаходяться у файлах розділені на записи ресурсів (resource record - далі RR). Вони є найменшою одиницею інформації доступної через DNS. Кожен RR має тип. Наприклад запис типу A є картою відношень назви хоста до IP адреси, а запис типу CNAME описує псевдонім для хоста. Для прикладу дивись ілюстрацію 7.2.3 ! на сторінці (???), яка демонструє файл named.hosts для brewery.
Записи в файлах мають однаковий формат :
[domain] [ttl] [class] type rdata
Поля розділяються пробілами або табуляціями. Входження може займати кілька рядків - якщо відкрито фігурну дужку ({) перед символом завершення стрічки до закриття (}). Коментарії розпочинаються символом крапки з комою і закінчуються символом завершення стрічки.
domain Домен для стрічки. Якщо не вказано жодного імені то
використовується домен попереднього запису.
ttl Щоб заставити resolvers відмовитись (забути) від запису
через певний час для кожного запису встановлюється ttl
(``time to live'' - час життя). Поле ttl описує час в
секундах поки інформація вважається істинною