- Информация о материале
- Автор: Артемьев Евгений Викторович
- Категория: Настройка DNS сервера
- Просмотров: 3580
Настройка
Существует много способов настроить BIND9. Наиболее распространенные конфигурации - это кэширующий сервер имен, первичный мастер и вторичный мастер.
-
Когда BIND9 настроен как кэширующий сервер, он ищет ответы на запросы имени и запоминает ответ на случай, если запрос придет повторно.
-
В качестве первичного мастера BIND9 читает данные зоны из локального файла и является ответственным за эту зону.
-
В качестве вторичного мастера BIND9 получает данные по зоне (целиком) с другого сервера имен, отвечающего за эту зону.
Обзор
Файлы настройки DNS сохраняются в каталоге /etc/bind. Основной файл конфигурации - это /etc/bind/named.conf.
Строки include определяют имена файлов, которые содержат DNS опции. Строка directory в файле /etc/bind/named.conf.options говорит DNS где искать файлы. Все файлы, используемые BIND, будут относительными к этому каталогу.
Файл с именем /etc/bind/db.root описывает корневые сервера имен в мире. Сервера со временем меняются, поэтому файл /etc/bind/db.root должен обслуживаться сейчас и потом. Обычно это происходит в качестве обновления к пакету bind9. Секция zone определяет мастер сервер и она сохранена в файле, определяемой опцией file.
Существует возможность настроить один сервер как кэширующий сервер имен, первичный мастер и вторичный мастер одновременно. Сервер может быть началом авторизации (SOA) для одной зоны, при этом предоставляя вторичный сервис для другой. И при всем этом предоставлять кэширующий сервис в локальной сети (LAN).
Кэширующий сервер имен
По умолчанию конфигурация настраивается на работу кэширующим сервером. Все что для этого требуется - это добавить IP адреса DNS серверов вашего интернет провайдера. Просто раскомментируйте и исправьте следующее в /etc/bind/named.conf.options:
forwarders { 1.2.3.4; 5.6.7.8; };
Теперь перегружаем DNS сервер для применения новой конфигурации. Наберите в терминале:
sudo service bind9 restart
Смотрите dig для информации по тестированию кэширующего DNS сервера.
Первичный мастер
В этом разделе BIND9 будет настроен как первичный мастер для домена example.com. Просто замените example.com на ваше FQDN (квалифицированное имя домена).
Файл прямой зоны
Для добавления DNS зоны в BIND9, что превратит его в сервер первичного мастера, первым шагом отредактируем /etc/bind/named.conf.local:
zone "example.com" { type master; file "/etc/bind/db.example.com"; };
Теперь используем существующий файл зоны в качестве шаблона для создания файла /etc/bind/db.example.com:
sudo cp /etc/bind/db.local /etc/bind/db.example.com
Редактируем новый файл зоны /etc/bind/db.example.com, заменив localhost. на FQDN нашего сервера, оставляя дополнительную "." в конце. Заменим 127.0.0.1 на IP адрес сервера имен и root.localhost на правильный адрес email, но с "." вместо символа "@", опять же оставляя "." на конце. Замените комментарии для указания домена, для которого этот файл сделан.
Создайте A запись для базового домена example.com. Также создайте A запись для ns.example.com - сервера имен в данном примере:
; ; BIND data file for example.com ; $TTL 604800 @ IN SOA example.com. root.example.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL IN A 192.168.1.10 ; @ IN NS ns.example.com. @ IN A 192.168.1.10 @ IN AAAA ::1 ns IN A 192.168.1.10
Вы должны увеличивать Serial Number каждый раз, как делаете изменения в файле зоны. Если вы делаете множественные изменения, просто увеличьте Serial на единицу один раз перед перезапуском BIND9.
Теперь вы можете добавлять DNS записи в конец файла зоны. Смотрите детали в разделе Общие типы записей.
Как только вы произвели изменения в файле зоны, требуется перегрузить BIND9 для применения изменений:
sudo service bind9 restart
Файл обратной зоны
Теперь, поскольку зона создана и разрешает имена в IP адреса, требуется создать также обратную зону. Обратная зона позволяет DNS определять имя по IP адресу.
Редактируем /etc/bind/named.conf.local и добавляем следующее:
zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192"; };
Теперь создаем файл /etc/bind/db.192:
sudo cp /etc/bind/db.127 /etc/bind/db.192
Далее редактируем /etc/bind/db.192, изменяя в основном те же опции, что и в /etc/bind/db.example.com:
; ; BIND reverse data file for local 192.168.1.XXX net ; $TTL 604800 @ IN SOA ns.example.com. root.example.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns. 10 IN PTR ns.example.com.
Serial Number в обратной зоне также требуется увеличивать при каждом изменении. Для каждой A записи, которую вы настроите в /etc/bind/db.example.com на другой адрес, вы должны создать запись PTR в /etc/bind/db.192.
После создания файла обратной зоны перегрузите BIND9:
sudo service bind9 restart
Вторичный мастер
Поскольку первичный мастер настроен, требуется вторичный мастер для того, чтобы поддерживать домен при недоступности первичного мастера.
Для начала на первичном мастере надо разрешить передачу зоны. Добавьте опцию allow-transfer к определениям прямой и обратной зон в /etc/bind/named.conf.local:
zone "example.com" { type master; file "/etc/bind/db.example.com"; allow-transfer { 192.168.1.11; }; }; zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192"; allow-transfer { 192.168.1.11; }; };
Перезапустим BIND9 на первичном мастере:
sudo service bind9 restart
Далее, на вторичном мастере установите пакет bind9 так же, как делали на первичном. Затем отредактируем /etc/bind/named.conf.local и добавим следующие определения к прямой и обратной зонам:
zone "example.com" { type slave; file "db.example.com"; masters { 192.168.1.10; }; }; zone "1.168.192.in-addr.arpa" { type slave; file "db.192"; masters { 192.168.1.10; }; };
Перегружаем BIND9 на вторичном мастере:
sudo service bind9 restart
В /var/log/syslog вы сможете увидеть нечто похожее на (некоторые строки разделены для соответствия формату документа):
client 192.168.1.10#39448: received notify for zone '1.168.192.in-addr.arpa' zone 1.168.192.in-addr.arpa/IN: Transfer started. transfer of '100.18.172.in-addr.arpa/IN' from 192.168.1.10#53: connected using 192.168.1.11#37531 zone 1.168.192.in-addr.arpa/IN: transferred serial 5 transfer of '100.18.172.in-addr.arpa/IN' from 192.168.1.10#53: Transfer completed: 1 messages, 6 records, 212 bytes, 0.002 secs (106000 bytes/sec) zone 1.168.192.in-addr.arpa/IN: sending notifies (serial 5) client 192.168.1.10#20329: received notify for zone 'example.com' zone example.com/IN: Transfer started. transfer of 'example.com/IN' from 192.168.1.10#53: connected using 192.168.1.11#38577 zone example.com/IN: transferred serial 5 transfer of 'example.com/IN' from 192.168.1.10#53: Transfer completed: 1 messages, 8 records, 225 bytes, 0.002 secs (112500 bytes/sec)
zone "example.com" { type master; file "/etc/bind/db.example.com"; allow-transfer { 192.168.1.11; }; also-notify { 192.168.1.11; }; }; zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192"; allow-transfer { 192.168.1.11; }; also-notify { 192.168.1.11; }; };
- Информация о материале
- Автор: Артемьев Евгений Викторович
- Категория: Настройка DNS сервера
- Просмотров: 3329
Для начала нужно установить самые последние обновления системы
После этого установим службу DNS сервера Bind9
после установки службы, она автоматически запуститьсяСледующим шагом, генерируем ключ для обновления DNS записей
выводим его на экран
на экране вы должны увидеть ключ, что то подобно этому:
Key: 4GD8OIb8pZk4vAueACAfUQ==
Обязательно сохраните этот ключ, в последующей настройке он нам понадобится
Настраиваем DNS сервер Bind9
Открываем файл конфигурации
Добавим следующий код:
- forwaders – вышестоящий dns сервер (сервер гугла), используется если url запроса не найден в нашей базе.
- listen-on – адреса через которые будет обслуживаться наш DNS сервер.
Сохраняем (Ctrl+O) и закрываем (Ctrl+X) файл.
Перезапустим bind9
sudo service bind9 restart
Теперь можно протестировать работу нашего DNS сервера
Добавим в фал /etc/resolv.conf строчку с нашим DNS сервером (так как файл /etc/resolv.conf при перезагрузке меняет значения на дефолтные, добавить запись нужно в тот файл из которого будут браться дефолтные значения)
в этот файл пишем следующее:
Сохраняем файл, закрываем его и перезагружаем сервер. После перезагрузки протестируем работу сервера, выполните следующую команду:
в ответ вы получите ответ с временем выполнения запроса (выделено цветом)
Как видите запрос был выполнен за 284 мсек. Теперь еще раз выполним этот же запрос и проверим время запроса
Повторный запрос был выполнен за 7 мсек! Отлично! Кэширование запросов работает. Двигаемся дальше.
Настройка основного DNS сервера
Исходные данные:
- Доменное имя – lab.loc
- IP сервера – 192.168.0.1
- Имя сервера – srv-01.lab.loc
Нам нужно будет указать две зоны (прямого и обратного просмотра) и прописать их в конфигурации сервера.
Я начну с конца и укажу настройки зон в файле конфигурации. Открываем его
и вставляем следующее:
- key DHCP_UPDATER — информация о ключе, который мы с вами записывали (в кавычки вам нужно вписать свой ключ)
- zone «lab.loc» — информация о зоне использования DNS, указан тип — master, путь к файлу хранения данных зоны, обновления файла разрешено с использованием ключа.
- zone «0.168.192.in-addr.arpa» — создание зоны обратного просмотра
Теперь создадим сами файлы в которых будут храниться данные зоны lab.loc. Для этого скопируем образец файла прямого просмотра:
откроем его
и внесем правки как у меня:
Теперь скопируем файл зоны обратного просмотра:
откроем его
Вносим в него следующее:
Сохраняем, закрываем, перезапускаем Bind9
Сохраняем, закрываем, проверяем работу DNS сервера:
в ответ вы должны увидеть следующее:
Как видите зона прямого просмотра работает, нам показался адрес проверяемого имени. Теперь проверим работу зоны обратного просмотра
В ответ должны получить следующее:
Как видите в ответ мы получили имя сервера по его адресу. Если у вас в ответ на nslookup так же все корректно отображается, значит вы все сделали правильно! Если нет, проверяйте что сделали не так.
Настройка динамического обновления зон DHCP сервером
Если вы вместе со мной настраивали сервер с самого начала, тогда у вас не должно возникнуть трудностей. Откроем файл /etc/dhcp/dhcpd.conf
Проверяем что опция option domain-name содержит имя домена lab.loc, строку ddns-update-style none; закомментировать. Теперь добавим строчку update-static-leases on; – она отвечает за создание зон для клиентов у которых статичный IP адрес. Для автоматизации этого процесса, добавим следующий код:
<div">zone0.168.192.in-addr.arpa.{ <div">primary127.0.0.1; <div">key DHCP_UPDATER; <div">}
где secret это тот самый код который мы делали вначале статьи.
Вот пример моего файла /etc/dhcp/dhcpd.conf:
Больше никакие настройки DHCP не трогаем, перезапускаем bind9 и dhcp
Теперь нужно проверить как все это дело работает “в бою”. Запускаем клиентскую машину, которая находиться в сети с сервером. После включения машина получит IP адрес от DHCP сервера, а DHCP сервер создаст запись вроде klient-pc.lab.loc.
На запрос nslookup yos-pc (yos-pc это имя клиентской машины), мы должны увидеть ответ от сервера
Как видите по скриншоту, работает и прямой и обратный запросы к DNS.
После перезагрузки сервера, можно посмотреть на файлы прямого и обратного просмотра, в них вы увидите записи о новых машинах, вот пример моего файла, после перезагрузки сервера