[[Установка и настройка DNS сервер BIND]]

Gentoo

Установка и настройка DNS сервер BIND

Статья рассказывает об установке и настройке BIND в качестве публичного ДНС сервера для обслуживания ваших доменов.

Вариантов настройка ДНС сервера довольно много и у статьи нет цели рассмотреть все варианты, поэтому тут рассматривает один частный случай чаще всего встречающийся на хостингах

Исходные данные:

  • Нужно делегировать обслуживание вашего доменного имени youname.ru на собственный ДНС сервер
  • Для делегирования обязательно наличие двух ДНС серверов (master и slave), желательно независимых
  • Как минимум подойдет один ДНС сервер на машине с двумя IP адресами (рассматриваем этот случай)
  • Локальная машина и сеть использует этот ДНС сервер как рекурсивный кеширующий ДНС сервер

Установка

Для установки bind в Gentoo Linux выполните:

emerge net-dns/bind

Для большей безопасности bind можно поместить в chroot окружение, делается это очень просто - достаточно выполнить:

emerge net-dns/bind --config

Настройка

Основной конфигурационный файл - /chroot/dns/etc/bind/named.conf 1) или /etc/bind/named.conf. В нём следует внести следующие изменения:

nano /chroot/dns/etc/bind/named.conf

options {
	directory "/var/bind";

	// Если планируете использовать bind как ДНС сервер для локальной машины
	// активируйте следующие две опции
	forward first;
	// Замените IP адресса на ДНС сервера вашего провайдера
	forwarders {
		89.111.176.254;
		89.111.172.1;
	};

	listen-on-v6 { none; };
        // Дополните список IP адресами вашего сервера
        listen-on { 127.0.0.1; 1.22.333.444; 4444.333.22.1; };

	// Разрешить обрабатывать ДНС отовсюду
	allow-query {
		any;
	};

	// По-умолчанию выключаем рекурсивные запросы
	recursion no;

	// if you have problems and are behind a firewall:
	//query-source address * port 53;
	pid-file "/var/run/named/named.pid";
};

// ------------- Представление для внутреннего использования (на локальной машине и локальной сети) -------------

view "internal" {
        // IP адреса считающиеся внутренними
        match-clients {  127.0.0.1; 10.0.0.0/8; 192.168.0.0/24; };
        // включить рекрсивные запросы
        recursion yes;

     // Стандартные настройки зон
     zone "." IN { type hint; file "named.ca";  };
     zone "localhost" IN { type master; file "pri/localhost.zone"; allow-update { none; }; notify no; };
     zone "127.in-addr.arpa" IN { type master; file "pri/127.zone"; allow-update { none; }; notify no; };

     // Зона вашего домена
     zone "youname.ru" { type master; file "/etc/bind/pri/youname.ru.zone"; };
};

// ------------- Внешнее представление -------------

view "public" {
        match-clients { any; };
        // Выключить рекурсивные запросы
        recursion no;
        
     // Зона вашего домена
     zone "youname.ru" { type master; file "/etc/bind/pri/youname.ru.zone"; };
};

Теперь создадим само описание зоны youname.ru:

nano /chroot/dns/etc/bind/pri/youname.ru.zone

$TTL 7200 ; Время жизни кеша по умолчанию 2 часа
@       IN      SOA     ns1.youname.ru.  admin.youname.ru. (
                                        2010070601      ; серийный номер (YYYYMMDDrr)
                                        7200            ; обновлять каждые 2 часа
                                        1800            ; повторно (30 минут)
                                        604800          ; полное устаревание (1 неделя)
                                        7200            ; минимальный TTL (2 часа)
                                )

                                NS      ns1.youname.ru.
                                NS      ns2.youname.ru.

; Основной IP адрес
                                A       1.22.333.444

; ДНС сервера
ns1                             A       1.22.333.444
ns2                             A       4444.333.22.1

; IP дня поддомена www
www                             A       1.22.333.4444

; Для всех остальных поддоменов IP как для www
*                               CNAME   www

Теперь можно запустить bind и проверить его работу:

/etc/init.d/named start
rc-update add named default

Проверка локально:

dig @127.0.0.1 youname.ru ANY

Внешняя проверка:

dig @1.22.333.4444 youname.ru ANY
dig @444.333.22.1 youname.ru ANY

Все запросы должны отдать одинаковый результат соответствующие описанной зоне.

Если всё верно то теперь можете делегировать ваш домен указав следующие параметры для ДНС сервера:

ns1.youname.ru 1.22.333.4444
ns2.youname.ru 4444.333.22.1

Делегирование может занять несколько часов из-за кеширования.

Так же локальные машины можно настроить на использование вашего ДНС сервера. Для этого в gentoo изменить следующий конфиг:

nano /etc/resolv.conf

// Для машины с ДНС сервером:
nameserver 127.0.0.1
// Для машин в локальной сети:
nameserver 1.22.333.4444
nameserver 4444.333.22.1

Дополнительная информация

Ссылки:

Тема настройки ДНС очень обширна и без чтения дополнительной документации не обойтись. Если есть вопросы пишите в комментарии.

1) для я chroot

Обсуждение

checker, 2011/02/20 22:08

ошибка:: view "internal" {

      // IP адреса считающиеся внутренними
      match-clients {  127.0.0.1; 10.0.0.0/8; 192.168**.0.0/24 };**

там нужна еще ; правильно будет так view "internal" {

      // IP адреса считающиеся внутренними
      match-clients {  127.0.0.1; 10.0.0.0/8; 192.168.0.0/24; };
Konstantin vzOne Enchant, 2011/02/20 22:24

Спасибо, исправлено.

Иван, 2011/03/23 15:44

Во-первых строках своего письма хотел бы сказать огромное спасибо за столь полезный сайт! Вопрос: а если есть 2 сервера с реальными IP адресами? Каким образом нужно изменить конфигурацию? Там как я понимаю должен быть первичный (master) и вторичный (slave) сервера?

Иван, 2011/03/23 15:48

Да, забыл, и не плохо было бы про spf ещё упомянуть… Спасибо!

Alex, 2012/04/20 18:32

За расшифровку и примеры view - огромное спасибо !!! ПОМОГЛО!!!

Иван, 2013/02/05 16:18

Спасибо огромное! Очень полезный сайт!

Дмитрий, 2013/11/13 18:56

При запуске выдало такую ошибку.. Что делать то?

start-stop-daemon: failed to start `/usr/sbin/named'

Aleksey, 2013/11/14 15:38

Смотреть логи

Дмитрий, 2014/03/20 19:17

Поменяй путь к файлу в zone "." на тот который стоит по стандарту при установке пакета.

lacostewin, 2014/05/28 14:57

Всем привет!

Есть проблемы с настройкой Bind9. Есть 2 DNS сервера в локальной сети (один на Ubuntu, др. на Win2008), со своими зонами. Оба DNS знают только о своих зонах. Есть так же компы у которых прописаны свои DNS.

Задача: Заставить Bind опрашивать DNS на Win2008 при отсутствии записи у себя.

Ваш комментарий. Вики-синтаксис разрешён:
41 -9​ = ?
 
howto/gentoo/bind.txt · Последние изменения: 2012/06/03 21:52 (внешнее изменение)
Gentoo Linux Driven by DokuWiki