Linux: настраеваем DNS сервер bind9Достаточно долго я не решался заняться настройкой DNS (Domain Name Service) сервера в сети. Но рано или поздно любой администратор в сети столкнется с этой задачей. В этой статье будет рассказано как установить и настроить свой сервер DNS.

[ad#ad-2]

Прежде чем перейти к теме статьи, хотелось бы рассказать что такое DNS, зачем он нужен и при помощи каких утилит можно его установить.
Основное назначение DNS сервера - перевод доменных имен в ip адреса. А так же хранение информации о домене: поддоменах, почтовых серверах и многом другом.
На сегодня в среде Linux реализовать DNS сервер можно при помощи утилиты Bind 8й или 9й версии. Основное отличие в версиях заключается в том, что при ошибке в файле named.conf Bind9 запишет информацию об ошибке в файл лога и продолжит работу, а Bind8 запишет информацию об ошибке и остановится (перестанет обрабатывать запросы).
Для реализации задачи DNS сервера мы выберем Bind9. Как обычно все операции будем проводить на нашем сервере под управлением Ubuntu Linux.
Для установки Bind9 в Ubuntu Linux выполним следующую команду:

sudo apt-get install bind9 dnsutils
[sudo] password for ioann:
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Уже установлена самая новая версия dnsutils.
Будут установлены следующие дополнительные пакеты:
  bind9utils
Предлагаемые пакеты:
  bind9-doc resolvconf
НОВЫЕ пакеты, которые будут установлены:
  bind9 bind9utils
обновлено 0, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 14 пакетов не обновлено.
Необходимо скачать 372kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 1.147kB.
Хотите продолжить [Д/н]? Y
..................
..................
Добавляется группа `bind' (GID 124) ...
Готово.
Добавляется системный пользователь `bind' (UID 116) ...
Добавляется новый пользователь `bind' (UID 116) в группу `bind' ...
Не создаётся домашний каталог `/var/cache/bind'.
wrote key file "/etc/bind/rndc.key"
#
 * Starting domain name service... bind9                                                                                                              [ OK ]

Наш DNS сервер установлен. Теперь нам надо его настроить. В случае использования bind9 в качестве корпоративного есть смысл настроить форвардинг запросов на DNS сервер провайдера. Делается это так

vi /ets/bind/named.conf.option

И включаем опцию forwarders

forwarders {
44.44.44.44;
};

В данном случае 44.44.44.44 - DNS сервер провайдера. Если планируется поддержка только интернет сайтов, то этого делать нет смысла.
Пусть основной нашей задачей является поддержка сайта с именем ioann.com и ip адресом 172.16.221.17. В конфигурационный файл bind запишем информацию о наших зонах, как прямого имя - айпи, так и обратного айпи - имя преобразования.

vi /ets/bind/named.conf.local

zone "ioann.com" {
	type master;
	file "/var/lib/bind/ioann.com.hosts";
	};
zone "17.221.16.172.in-addr.arpa" {
	type master;
	file "/var/lib/bind/172.16.221.17.rev";
	};

Теперь нам надо создать файлы зон.
Создадим файл прямого преобразования и внесем в него такую информацию:

vi /var/lib/bind/ioann.com.hosts
$ttl 38400
ioann.com.	IN	SOA	. admin.feyhoa.org.ua. (
			1271143377
			10800
			3600
			604800
			38400 )
ioann.com.	IN	NS	ioann-desktop.
ioann.com.	IN	A	172.16.221.17
www.ioann.com.	IN	CNAME	ioann.com.
ftp.ioann.com.	IN	CNAME	ioann.com.

Теперь создадим файл обратного преобразования

vi /var/lib/bind/172.16.221.17.rev
$ttl 38400
17.221.16.172.in-addr.arpa.	IN	SOA	. admin.feyhoa.org.ua. (
			1271143767
			10800
			3600
			604800
			38400 )
17.221.16.172.in-addr.arpa.	IN	NS	ioann-desktop.
17.221.16.172.in-addr.arpa.	IN	PTR	ioann.com.

Нам кажется, что всем будет интересно самим узнать как составляется файл зон и что в нем описывается. Поэтому более детально о файлах зоны мы расскажем в последующих статьях.
О том как организовать DNS для локальной сети читайте позже.

З.Ы. и совсем забыл
после этого надо перезапустить сервис bind9

sudo /etc/init.d/bind9 restart

И проверить правильно ли он отвечает на запросы. Для этого выполним на настроенном сервере

nslookup
server localhost
> www.ioann.com
Server:  [localhost]
Address:  localhost

Name:    ioann.com
Address:  172.16.221.17
Aliases:  www.ioann.com

> 172.16.221.17
Server:  [localhost]
Address:  localhost

Name:    ioann.com
Address:  172.16.221.17
Теги: