BIND (Berkeley Internet Domain Name System) — открытая реализация системы DNS, в системе FreeBSD установлен по умолчанию. BIND — это не отдельная программа, а набор взаимодействующих компонентов:
- named — сервер — отвечает на запросы;
- resolver — клиент — опрашивает другие dns-сервера; resolver library;
- dig, host, nslookup — набор утилит для диагностики работы DNS;
BIND — универсален. Его можно использовать и как авторитетный (master/slave) dns-сервер, и как кеширующий, и как перенаправляющий.
У меня появилась задача поднять DNS-сервер, выполняющий функции авторитетного и кеширующего одновременно. Вообще при больших нагрузках рекомендуют разделять обязанности между несколькими серверами, но у меня нагрузка небольшая, так что один сервер вполне со всем справится.
Коротко о том, что должно получиться:
- кеширующий сервер, обрабатывающий запросы определенных ip-адресов;
- авторитетный master сервер, содержащий 1 прямую зону и несколько обратных;
- slave попросим повесить у провайдера, а можно и воспользоваться бесплатным сервисом — secondary.net.ua;
Файлы конфигурации можно найти в /etc/namedb, что является символической ссылкой на /var/named/etc/namedb:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[14:56]root@noc# ls -al /etc/namedb lrwxr-xr-x 1 root wheel 23 Apr 5 09:05 /etc/namedb -> ../var/named/etc/namedb [14:57]root@noc# ls -al /etc/namedb/ total 33 drwxr-xr-x 6 root wheel 8 Apr 5 09:05 . drwxr-xr-x 3 root wheel 3 Apr 5 09:03 .. drwxr-xr-x 2 bind wheel 2 Apr 5 09:03 dynamic drwxr-xr-x 2 root wheel 5 Apr 5 09:05 master -rw-r--r-- 1 root wheel 19573 Apr 5 09:05 named.conf -rw-r--r-- 1 root wheel 3134 Apr 5 09:05 named.root drwxr-xr-x 2 bind wheel 2 Apr 5 09:03 slave drwxr-xr-x 2 bind wheel 2 Apr 5 09:03 working |
Настройка кеширующего dns-сервера:
Кеширующий сервер слушает udp и tcp порт 53, на который принимает рекурсивные (в подавляющем большинстве) запросы клиентов на разрешения каких-либо доменных имен. Приняв запрос от клиента, named сначала ищет ответ в своем кеше, и если не находит, начинает опрашивать другие dns-сервера, начиная с корневых, с помощью нерекурсивных запросов. Получив окончательный ответ (т.е. искомый ip-адрес нужного домена), сохраняет его в кеш и отправляет клиенту.
Для настройка кеширующего сервера эти файлы являются обязательными:
- named.conf — главный conf-файл демона named;
- named.root — файл, содержащий перечень корневых серверов — оставляем без изменений;
Файл конфигурации состоит из набора инструкций, каждая из которых заканчивается точкой с запятой. Все, что помечено «//», «/* текст */» и «#» — комментарии.
Редактируем named.conf
Настройка опций (инструкция options):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
options { // # Все файлы и пути относительны chroot директории, // # в другом случае должны быть определены полностью: directory "/etc/namedb/working"; pid-file "/var/run/named/pid"; dump-file "/var/dump/named_dump.db"; statistics-file "/var/stats/named.stats"; // # Разрешить рекурсивные запросы из следующего списка ip-адресов: allow-recursion { 10.10.10.0/24; 192.168.1.0/24 }; // # Если сервер не знает ответа на запрос, он запрашивает другие сервера, и делает это с указаного здесь адреса: query-source address 10.10.10.10; // # Обманываем любопытных кулхацкеров, которые интересуются версией нашего bind'a: version "Microsoft DNS Server ver. 0.99alpha"; // # Указываем, на каких интерфейсах слушать запросы: listen-on { 127.0.0.1; 10.10.10.10; }; |
Далее оставляем все, как есть:
1 2 3 4 5 6 7 |
// # Как я понимаю, у нас есть пустые зоны для IPv6, которым мы не пользуемся, поэтому дисейблим: // These zones are already covered by the empty zones listed below. // If you remove the related empty zones below, comment these lines out. disable-empty-zone "255.255.255.255.IN-ADDR.ARPA"; disable-empty-zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA"; disable-empty-zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA"; }; |
Подключение файла подсказок named.root, как уже было сказано, в нем указывается перечень корневых серверов:
1 2 |
// The traditional root hints mechanism. Use this, OR the slave zones below. zone "." { type hint; file "/etc/namedb/named.root"; }; |
Указание следующих зон локально предотвращают запросы для этих зон вне нашей сети и ненужные запросы к корневым серверам:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 |
// RFCs 1912, 5735 and 6303 (and BCP 32 for localhost) zone "localhost" { type master; file "/etc/namedb/master/localhost-forward.db"; }; zone "127.in-addr.arpa" { type master; file "/etc/namedb/master/localhost-reverse.db"; }; zone "255.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // RFC 1912-style zone for IPv6 localhost address (RFC 6303) zone "0.ip6.arpa" { type master; file "/etc/namedb/master/localhost-reverse.db"; }; // "This" Network (RFCs 1912, 5735 and 6303) zone "0.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // Private Use Networks (RFCs 1918, 5735 and 6303) zone "10.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "16.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "17.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "18.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "19.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "20.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "21.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "22.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "23.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "24.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "25.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "26.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "27.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "28.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "29.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "30.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "31.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "168.192.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // Shared Address Space (RFC 6598) zone "64.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "65.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "66.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "67.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "68.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "69.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "70.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "71.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "72.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "73.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "74.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "75.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "76.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "77.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "78.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "79.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "80.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "81.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "82.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "83.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "84.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "85.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "86.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "87.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "88.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "89.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "90.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "91.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "92.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "93.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "94.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "95.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "96.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "97.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "98.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "99.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "100.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "101.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "102.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "103.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "104.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "105.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "106.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "107.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "108.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "109.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "110.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "111.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "112.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "113.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "114.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "115.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "116.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "117.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "118.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "119.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "120.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "121.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "122.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "123.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "124.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "125.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "126.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "127.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // Link-local/APIPA (RFCs 3927, 5735 and 6303) zone "254.169.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // IETF protocol assignments (RFCs 5735 and 5736) zone "0.0.192.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // TEST-NET-[1-3] for Documentation (RFCs 5735, 5737 and 6303) zone "2.0.192.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "100.51.198.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "113.0.203.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // IPv6 Example Range for Documentation (RFCs 3849 and 6303) zone "8.b.d.0.1.0.0.2.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // Domain Names for Documentation and Testing (BCP 32) zone "test" { type master; file "/etc/namedb/master/empty.db"; }; zone "example" { type master; file "/etc/namedb/master/empty.db"; }; zone "invalid" { type master; file "/etc/namedb/master/empty.db"; }; zone "example.com" { type master; file "/etc/namedb/master/empty.db"; }; zone "example.net" { type master; file "/etc/namedb/master/empty.db"; }; zone "example.org" { type master; file "/etc/namedb/master/empty.db"; }; // Router Benchmark Testing (RFCs 2544 and 5735) zone "18.198.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "19.198.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // IANA Reserved - Old Class E Space (RFC 5735) zone "240.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "241.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "242.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "243.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "244.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "245.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "246.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "247.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "248.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "249.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "250.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "251.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "252.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "253.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "254.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // IPv6 Unassigned Addresses (RFC 4291) zone "1.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "3.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "4.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "5.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "6.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "7.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "8.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "9.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "a.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "b.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "c.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "d.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "e.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "0.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "1.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "2.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "3.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "4.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "5.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "6.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "7.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "8.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "9.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "a.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "b.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "0.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "1.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "2.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "3.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "4.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "5.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "6.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "7.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // IPv6 ULA (RFCs 4193 and 6303) zone "c.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "d.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // IPv6 Link Local (RFCs 4291 and 6303) zone "8.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "9.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "a.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "b.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // IPv6 Deprecated Site-Local Addresses (RFCs 3879 and 6303) zone "c.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "d.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "e.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "f.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // IP6.INT is Deprecated (RFC 4159) zone "ip6.int" { type master; file "/etc/namedb/master/empty.db"; }; |
Настройка авторитетного dns-сервера (master):
Авторитетный dns-сервер содержит одну или несколько (или целую тучу :-)) зон и отвечает на запросы клиентов и других dns-серверов для разрешения имен именно с этих зон.
Для настройки авторитетного сервера следующие файлы являются обязательными:
- named.conf – главный conf-файл демона named;
- pro-voip.com.ua – файл зоны;
Файлы зоны подключаются к серверу с помощью инструкции zone в файле named.conf:
1 2 3 4 5 |
zone "pro-voip.com.ua" { type master; file "/etc/namedb/master/pro-voip.com.ua"; allow-transfer { 10.10.10.11; }; }; |
— здесь указывам имя зоны в кавычках «pro-voip.com.ua», тип зоны — master, с помощью директивы file задаем путь к файлу зоны. Сам файл зоны может храниться где угодно, у меня все master-файлы зоны находятся в директории /etc/namedb/master.
Директива allow-transfer задает список slave-серверов, на которые будет скопирована зона.
Для удобства администрирования я выношу все инструкции zone в отдельный файл master.conf, который подключается к главному конфигурационному файлу named.conf с помощью директивы include вот так:
1 2 3 |
// ### INCLUDE include "/etc/namedb/master.conf"; |
Если необходимо выкосить какую либо из зон с dns-сервера, комментируем соответствующую инструкцию zone, не трогая сам файл зоны. Если нужно убрать с dns-сервера все зоны, просто комментируем инструкцию include, которая подключает соответствующий файл с зонами. Удобно.
Поднастроим еще опции в named.conf.
1 2 3 4 5 6 7 8 9 10 11 |
options { // # Разрешаем запросы с любых адресов: allow-query { any; }; // # Механизм, позволяющий masterу оповещать своих slave об изменениях в файлах зон: notify yes; // # Определям локальный source-адресс для отправки notify-сообщений slave'ам: notify-source 10.10.10.10; // # Переливать файл зоны на slave со следующим адресом источника: transfer-source 10.10.10.10; } |
Настройка авторитетного dns-сервера (slave):
Настройка авторитетного slave-сервера отличается от master’а описанием подключения зоны. Создаем отдельный файл slave.conf, где и будем подключать эти самые зоны; подключаем slave.conf в named.conf:
1 |
include "/etc/namedb/slave.conf"; |
Подключение зон выглядит следующим образом:
1 2 3 4 5 |
zone "pro-voip.com.ua" { type slave; file "/etc/namedb/slave/pro-voip.com.ua"; masters { 10.10.10.10; }; }; |
— опять-таки указываем название зоны в кавычках, тип slave; путь к файлу зоны задаем с помощью директивы file; masters — задает список master-серверов, откуда будет скачана зона.
Хочу заметить, что при настройке slave-сервера файл зоны создавать не нужно — нужно лишь указать, в какой файл эта зона на slave будет сохранена.
Настройка логирования
Настройка логов действий демона named производится с помощью инструкции logging, в ней в указываем с помощью channel методы и параметры вывода логов, с помощью category — типы сообщений, которые в этот лог будут записаны:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
logging { channel logfile { file "/var/named/var/log/named.log" versions unlimited size 10m; severity info; print-category yes; print-severity yes; print-time yes; }; category default { logfile; }; category security { logfile; }; category lame-servers{ null; }; category config { logfile; }; category xfer-in { logfile; }; category xfer-out { logfile; }; category edns-disabled { null; }; }; |
Имя канала «logfile»; все, что приходит в этот канал, перенаправляется в файл /var/named/var/log/named.log, количество версий лога неограниченное, размер log-файла 10М. Опции для channel: уровень логирования severity (аналог «приоритетов» syslog’а) — info; печатаем в лог категорию, уровень, время — print-category, print-severity, print-time.
Категории сообщений в логе задаем с помощью директивы category, и эти сообщения перенаправляем в канал logfile. Категории, которые не хотим видеть в логе, отправляем в канал null.
Таким образом с помощью каналов и категорий можно создавать столько логов, сколько вам нужно, и определенного вида.