Практика
Итак, у нас есть мастер-сервер (первичный) DNS, в дополнение к которому нам необходимо "прикрутить" второго брата-собрата. Если нужна настройка мастер-сервера для Debian: то про это уже писалось
Сначала пара слов - для чего. Дело в том, что регистраторы требуют наличие минимум двух серверов DNS с различными IP-адресами и/или именами в интернете для регистрации зон DNS. Объяснение простое - один сервер должен быть основный, второй - на случай отказа первого. По этой причине с только одним сервером имен Вы можете работать с внутрисетью, но зарегистрировать зону в интернет не получится - с Вас спросят IP адрес еще одного такого "брата-собрата".
DNS так устроена, что в своей базисе подразумевает работу сразу нескольких серверов параллельно. С одной стороны, это может немного снизить нагрузку на них, распределяя запросы DNS между несколькими машинами, а с другой - помочь в отказоустойчивости.
Общий вид схемы выглядит так: имеется мастер-сервер (главный) и один или несколько второстепенных (slave) серверов. Мастер-сервер (Master) хранит у себя информацию и именно на этом сервере администратор изменяет зоны DNS при необходимости. Дополнительные (Slave) сервера получают обновления данных по зонам от мастер-сервера и имеют полную актуальную картину "мира" тех зон, которые обслуживают.
При этом Slave сервера так-же имеют полную информацию о зонах DNS, которые они обслуживают. Поэтому при отказе мастер-сервера любую обслуживаемую зону можно получить с второстепенного - он так-же ответит на запрос.
Данные администратор меняет на мастер-сервере. После того, как DNS-зона изменена - мастер извещает об этом второстепенные сервера и передает изменения. Передает не сразу - во время следующей синхронизации. Но при этом мы получаем картину, когда одинаковые данные находятся сразу на всех DNS-серверах, поэтому отказ одного из них не ведет к отказу службы DNS предприятия в целом.
Ну что-ж, хватит жевать теорию (тем более, что намного больше можно прочитать в специализированной литературе). У нас задача - показать, как установить и настроить второстепенный сервер DNS на машине под управлением Linux Debian.
Установка
Настройка
Свои настройки bind хранит по пути /etc/bind. Переходим в эту директорию - все действо отныне будет разворачиваться там.
1) Создаем каталог, в котором будут хранится конфигурации наших DNS зон.
Заметка. Самостоятельно ничего в этот каталог записывать не надо! Служба DNS slave-сервера сама будет создавать здесь файлы зон во время синхронизации с мастер-сервером.
2) Открываем на редактирование файл named.conf.options и приводим его к такому виду (опции прокомментированы, Вам необходимо их значения указывать верными для себя, а не копировать примеры):
Здесь:
Как видно - все адреса - только для примера. В Вашем конкретном случае они будут своими.
Сохраняем файл.
3) Теперь открываем файл named.conf и видим, что в нем указаны 3 ссылки на наши конфигурации:
Мы добавим еще одну ссылку - на файл с описаниями наших DNS-зон:
И сохраним данный конфиг-файл.
4) Теперь создадим файл /etc/bind/named.conf.zones и запишем в него тестовую зону. Выглядеть этот файл будет как-то так:
Мы видим здесь, что я указал заведомо несуществующую в интернете зону "test.int". Ее тип на данном сервере - ведомая (slave), поэтому мы добавили опцию "masters", внутри которой указали - с какого сервера получать и запрашивать обновления.
Таким образом, на slave-сервере тоже нужно объявлять зоны DNS, которыми он будет владеть и указывать - с какого именно сервера получать информацию по этим зонам. Отличие заключается в том, что сами зоны прописывать не надо (т.е. НЕ нужно создавать файлы с конфигурациями зон) - BIND самостоятельно свяжется с мастер-сервером и получит все необходимые данные.
Заметка. Для того, чтобы тест прошел успешно - зона test.int должна быть объявлена на мастер-сервере. В данном случае - на сервере 11.22.33.44 (кстати, не забудте изменить этот фиктивный IP-адрес на адрес Вашего мастер-сервера!)
При уже запущенном и работающем мастер-сервере можно вместо test.int использовать существующую "боевую" зону.
Проверка
Попросим наш второстепенный сервер перечитать информацию:
Если на стороне мастер-сервера все настроено правильно - то slave-сервер скопирует к себе DNS-зону test.int и начнет отвечать на запросы касательно нее.
Проверяем. В каталоге /etc/bind/slave должен появиться файл test.int с содержимым, идентичным зоне на стороне master-сервера. Именно так - нам не нужно было самим забивать зону на стороне ведомого сервера - он сам ее прочитал с мастер-сервера.
Теперь проверим, что slave-сервер отвечает на запросы по зоне test.int:
В случае успеха - ответ должен Вам предоставить информацию о IP адресе зоны.
На этом настройка сервера заканчивается.
Еще немного
Первое. Чтобы slave-сервера копировали измененные зоны с мастер-серверов - параметр "Serial " (т.е. серийный номер) редактируемой зоны администратор должен увеличивать. Причем именно увеличивать - а не просто менять.
Логика тут такая: slave-сервер при синхронизации не получает каждый раз весь набор данных по каждой зоне. Он смотрит только на серийный номер зон - и только в случае, если серийный номер увеличился (не остался таким-же и не уменьшился) - только в таком случае ведомый запрашивает всю информацию с мастер-сервера по данной зоне.
Второе. Чтобы вручную, не дожидаясь ничего и не учитывая серийный номер зоны синхронизировать ее с мастер-сервером - введите на slave-машине следующую команду:
Где вместо test.int - указывайте имя зоны, которую необходимо передать на slave-сервер в принудительном порядке.
Нередко нам приходится искать знакомые файлы конфигурации в новых для нас операционных системах. На привычном месте этих файлов почему-то не оказывается.
В этой заметке - расположение файла конфигурации PHP (php.conf или php.ini) в ОС FreeBSD, Linux Debian/ubuntu и Linux CentOS/RedHat.
Итак,
FreeBSD:
/usr/local/etc/php.ini
Причем в случае FreeBSD его изначально может не быть, но будут рядом лежать файлы php.ini-... с различными конфигурациями, один из которых можно просто скопировать в php.ini
Debian/ubuntu:
/etc/php7/apache2/php.ini
CentOS/RedHat:
/etc/httpd/conf.d/php.conf
или
/etc/php.ini
Комментарии
Оставить комментарий
Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)
Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)