Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Установка и настройка DNS-сервера BIND (named) на Linux Debian кратко

Практика



Задача: установить и выполнить начальную настройку DNS-сервера bind (так-же известного как named) на ОС Linux Debian.


Устанавливаем

$ sudo apt-get install bind9 dnsutils


Настраиваем

Сначала зададим демону syslog, что он должен слушать и писать логи от DNS-сервера. Для этого открываем файл /etc/rsyslog.conf и в самый конец файла добавляем вот такую запись:

!named
*.* /var/log/named.log
!-named

чем указываем системе писать логи bind в файл /var/log/named.log

Перезапускаем демона логирования:

$ sudo /etc/init.d/rsyslog restart


Далее, свои настройки bind хранит по пути /etc/bind. Переходим в эту директорию - все действо отныне будет разворачиваться там.

$ cd /etc/bind


Предполагается, что это у нас мастер-сервер (т.е. primary, основной).

1) Создаем каталог, в котором будут хранится конфигурации наших DNS зон.

$ sudo mkdir master


2) Открываем на редактирование файл named.conf.options и приводим его к такому виду (все опции прокомментированы, Вам необходимо их значения указывать верными для себя, а не копировать примеры):

options {
directory "/var/cache/bind"

# Здесь указываются сервера DNS, к которым будет обращаться этот сервер в случае,
# если он сам не является хозяином домена, который резолвит. Обычно указываются
# DNS-сервера Вашего провайдера и/или DNS-сервера контроллеров домена.
# ..Например, если этот сервер спросить - какой IP у yandex.ru - то он сам не
# будет знать, зато сможет спросить у выше-стоящего сервера DNS провайдера.
forwarders {
11.77.55.33;
11.77.55.34;
192.168.0.1;
};

# Откуда принимать DNS запросы. "any" означает - со всех интерфейсов от любого
# компьютера
allow-query { any; };

# Здесь указываются slave-сервера DNS, которым дозволено передавать информацию
# при обновлении DNS-зон на текущем сервере.
allow-transfer {
11.22.33.45;
192.168.0.2;
};

# Здесь указываются адреса или подсети, с которых допускаются рекурсивные запросы.
allow-recursion {
127.0.0.1;
192.168.0.0/24;
};

# При включении этой опции и изменении какой-либо DNS-зоны на этом сервере - он
# самостоятельно известит все slave-сервера о том, что зона поменялась и ее
# необходимо перезагрузить.
notify yes;

# По-умолчанию извещается только тот сервер (сервера), которые указаны как slave-
# сервера внутри описания самой зоны. Если у Вас slave-сервер(а) один и тот же -
# то логично прописать его(их) как сервера, которые всегда стоит уведомлять об
# изменении зон. При этом, даже если эти сервера не являются носителями этих зон -
# ничего страшного не произойдет - они просто "пропустят мимо ушей" информацию об
# изменении.
# Данная опция и предоставляет такую возможность - указать slave-DNS-сервера,
# которые всегда извещяются об изменениях зон.
also-notify {
11.22.33.45;
192.168.0.2;
};

auth-nxdomain no;

# Ожидать ли запросы по IPv6 протоколу и откуда? "none" означает - не ожидать и
# игнорировать; "any" означает ожидать от всех компьютеров.
listen-on-v6 { none; };

};


Сохраняем файл.

3) Теперь открываем файл named.conf и видим, что в нем указаны 3 ссылки на наши конфигурации:

...
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";


Мы добавим еще одну ссылку - на файл с описаниями наших DNS-зон:

...
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
# Тут будут наши зоны:
include "/etc/bind/named.conf.zones";


И сохраним данный конфиг-файл.

4) Теперь создадим файл /etc/bind/named.conf.zones и запишем в него тестовую зону. Выглядеть этот файл будет как-то так:

zone "test.int" {
type master;
file "/etc/bind/master/test.int";
};


Мы видим здесь, что я указал заведомо несуществующую в интернете зону "test.int". Ее тип на данном сервере - мастер (т.е. она является master-зоной, соответственно, если ее обновление должно вестись на данном сервере) и ее описание надо брать из указанного файла.

5) Ну что-ж, давайте создадим такой файл:

$ cd /etc/bind/master
$ sudo touch test.int


И положим в него примерно такой конфиг (опять-же, правильные значения IP-адресов и имен зависят от Вашей сети):

$ORIGIN .
$TTL 3600;
test.int. IN SOA ns1.mydomain.ru. webadmin.mydomain.ru. (
2011080901 ; serial
28800 ; refresh (8 hours)
7200 ; retry (2 hours)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS ns1.mydomain.ru.
NS ns2.mydomain.ru.
A 192.168.0.50
MX 10 mail.mydomain.ru.

$ORIGIN test.int.
ftp A 192.168.0.51
mail A 192.168.0.3
www CNAME test.int.


Как видно, все значения я в этой зоне накидал совершенно от балды.

Теперь сохраняем наш файл.

6) Просим bind перечитать наши конфиги:

$ sudo rndc reload


7) Проверяем:

$ nslookup test.int 127.0.0.1


И смотрим результат. Сервер должен ответить, что test.int находится по адресу 192.168.0.50 (как указано в конфигурации зоны выше, или же другой адрес- какой ввели Вы).


Дальнейшая жизнь DNS-сервера

Аналогичным образом создаются все остальные зоны, уже с реальными реквизитами (например, из зон .ru, .com и т.д.) Файл named.conf.zones выглядит примерно так:

zone "mydomain.ru" {
type master;
file "/etc/bind/master/mydomain.ru";
};

zone "anothersite.com" {
type master;
file "/etc/bind/master/anothersite.com";
};


И для каждой зоны создаем файлик с ее конфигурацией в /etc/bind/master подобно пробной конфигурации test.int.


PS. Совет. НЕ забывайте ставить ";" в конфиге named везде, где это нужно! Отсутствие одной такой точки-с-запятой обломит запуск всего bind.

PPS. НЕ забывайте ставить конечную точку "." в конце зон, которые являются абсолютными (рекомендуется вообще везде). Т.е., например, если вместо "test.int." в конфиге зоны написать "test.int" - получите Вы совсем не то, что ожидали! Ну и, соответственно, работать нифига не будет.

PPPS. При изменении (любом) зоны - не забывайте увеличивать ее сервийный номер (serial). Причем не просто менять - а именно увеличивать. В данном случае запись виде YYYYMMDDNN, где YYYY - год 4 цифры, MM - месяц 2 цифры, DD - 2 цифры дня и NN - это "какой раз я за этот день меняю зону" - вполне удобна, т.к. по течению времени ее числовое значение будет только увеличиваться.



Ведомые DNS-сервера

В случае, если Вам нужно сразу же настроить ведомые (slave) сервера DNS -читайте статью, в которой описано - как это делат

Актуально для: Linux Debian Lenny (5), Squeeze (6)

Вау!! 😲 Ты еще не читал? Это зря!

создано: 2017-05-09
обновлено: 2021-03-13
133536



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)

Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)