- Установка и настройка DNS-сервера BIND в Linux
- Установка сервера bind
- Создание файла зоны DNS
- Настройка обратной зоны
- Настройка файла конфигурации bind
- Проверка файлов зоны и конфигурации
- Проверка обратной зоны
- Запуск и перезапуск сервера bind
- Тестирование сервера bind
- Похожие записи:
- How Do I Restart DNS service on Linux?
- Как запустить или перезапустить BIND DNS сервис (Named)
- Запуск DNS сервера Named
- Остановка сервиса Named
- Как перезапустить BIND
Установка и настройка DNS-сервера BIND в Linux
BIND – наиболее распространенное open-source приложение, в котором реализованы протоколы DNS, предоставляющие возможность преобразования доменных имен в IP-адреса и наоборот.
Данная статья представляет собой руководство по быстрой настройке DNS-сервера в Linux при помощи BIND. Мы не будем подробно разбирать, что такое система DNS и как она работает, а сосредоточимся на примере настройки своей зоны и файла конфигурации для домена/узла с поддержкой сервисов www и электронной почты.
В нашем примере мы будем использовать следующие параметры:
IP-адрес, на котором будет установлен сервер имен: 172.31.0.122
имя домена/узла: itproffi.ru
авторитативные сервера имен для зоны itproffi.ru: ns1.itproffi.ru (172.31.1.10) и ns2. itproffi.ru (172.31.1.11)
службы www и электронной почты для itproffi.ru будут использовать адрес 172.31.1.10
Установка сервера bind
Установка bind очень проста – нужно воспользоваться менеджером пакетов. В Debian и Ubuntu выполните следующую команду:
apt-get install bind9 dnsutils
yum install bind dnsutils
Пакет dnsutils необязателен для запуска сервера bind, но для тестирования конфигурации мы будем пользоваться командой dig из этого пакета.
Создание файла зоны DNS
Дальнейшие примеры будут для Ubuntu/Debian, но также подходят и для Centos/RedHat, только директория с настройками зон в CentOS будет находиться в /etc/named/ , а основной файл конфигурации /etc/named.conf . Для начала нам потребуется создать новый файл зоны для домена itproffi.ru. Перейдите в директорию /etc/bind/ . создайте в ней поддиректорию zones/master/ и перейдите в нее, выполнив следующую последовательность команд:
cd /etc/bind mkdir -p zones/master cd zones/master/
Директория /etc/bind/zones/master будет содержать файл зоны для домена itproffi.ru. При желании можно использовать другую директорию. Файл зоны db.itproffi.ru будет содержать запись DNS, которая поможет серверу имен установить соответствие полного доменного имени IP-адресу. Создайте этот файл со следующим содержимым:
; ; Файл данных BIND для itproffi.ru ; $TTL 3h @ IN SOA ns1.itproffi.ru. admin.itproffi.ru. ( 1 ; серийный номер 3h ; обновление каждые 3 часа 1h ; повторная попытка через час 1w ; срок годности – 1 неделя 1h ) ; хранение кэша отказов 1 час; @ IN NS ns1.itproffi.ru. @ IN NS ns2.itproffi.ru. itproffi.ru. IN MX 10 mail.itproffi.ru. itproffi.ru. IN A 172.31.1.10 ns1 IN A 172.31.1.10 ns2 IN A 172.31.1.11 www IN CNAME itproffi.ru. mail IN A 172.31.1.10 ftp IN CNAME itproffi.ru.
Рассмотрим ключевые строки этого файла:
- Запись SOA: авторитативный сервер имен для itproffi.ru – это ns1.itproffi.ru, адрес ответственного за зону DNS администратора – admin@itproffi.ru
- Записи NS: два сервера имен для зоны itproffi.ru – ns[1,2].itproffi.ru
- Запись MX: почтовый сервер для itproffi.ru. Число 10 означает уровень приоритета
- Записи A: A означает «адрес» (address). Другими словами, ns1 в зоне itproffi.ru будет иметь адрес 172.31.1.10
- Запись CNAME (Canonical Name – каноническое имя): привязывает одно доменное имя к другому (каноническому), например, устанавливает соответствие mail.itproffi.ru и itproffi.ru.
Настройка обратной зоны
На данном этапе DNS-сервер bind может выдать IP-адрес, связанный с узлом itproffi.ru. Теперь нам нужно научить наш сервер имен обратному процессу, то есть устанавливать соответствие имени IP-адресу. Для этого создадим еще один файл db.172.31.1 со следующим содержимым:
; ; Обратный файл данных BIND для 1.31.172.in-addr.arpa ; $TTL 604800 1.31.172.in-addr.arpa. IN SOA ns1.itproffi.ru. admin.itproffi.ru. ( 1 ; серийный номер 3h ; обновление каждые 3 часа 1h ; повторная попытка через час 1w ; срок годности – 1 неделя 1h ) ; хранение кэша отказов 1 час; 1.31.172.in-addr.arpa. IN NS ns1.itproffi.ru. 1.31.172.in-addr.arpa. IN NS ns2.itproffi.ru. 10.1.31.172.in-addr.arpa. IN PTR itproffi.ru.
Запись PTR: DNS-запись, используемая для определения соответствия IP-адреса имени узла.
Настройка файла конфигурации bind
На данный момент у нас должно быть два файла:
/etc/bind/zones/master/db.itproffi.ru /etc/bind/zones/master/db.172.31.1
Теперь требуется вставить имена обоих файлов зоны в файл конфигурации bind /etc/bind/named.conf.local . Для этого добавьте в файл следующие строки:
zone "itproffi.ru" < type master; file "/etc/bind/zones/master/db.itproffi.ru"; >; zone "1.31.172.in-addr.arpa" < type master; file "/etc/bind/zones/master/db.172.31.1"; >;
Последний момент перед проверкой конфигурации – внести в файл named.conf.options IP-адрес стабильного DNS-сервера. Он будет использоваться, если локальный DNS-сервер не будет знать ответ на запрос разрешения имени. Часто этот адрес предоставляется интернет-провайдером, но если вы поклонник Google, можно указать адрес 8.8.8.8 или 8.8.4.4.
Замените следующий блок текста в файле named.conf.options:
на блок текста с адресом стабильного DNS-сервера
Если вы планируйте что к вашему серверу будут подключаться другие компьютеры, то нужно разрешить в опциях внешние подключения. Для этого в основном файле конфигурации, в секции options добавьте или замените следующие правила
listen-on port 53 < any; >; allow-query < any; >;
А лучше, для безопасности вместо any пропишите ваши сети с которых разрешено подключение
listen-on port 53 < 192.168.0.0/24; >; allow-query < 192.168.0.0/24; >;
Если этого не сделать, то при попытке обращения к серверу с другого компьютера вы получите ошибку
Проверка файлов зоны и конфигурации
Прежде чем попытаться запустить сервер имен с новой зоной и конфигурацией, можно воспользоваться некоторыми инструментами, чтобы проверить, что конфигурация корректна и не содержит ошибок.
Для проверки файлов конфигурации выполните следующую команду:
С этой командой работает простое правило: отсутствие результата – это хороший результат. Если команда ничего не возвращает, значит ошибок в ваших файлах конфигурации не обнаружено.
Для проверки файлов зоны DNS можно воспользоваться командой named-checkzone:
named-checkzone itproffi.ru /etc/bind/zones/master/db.itproffi.ru zone itproffi.ru/IN: loaded serial 1 OK
Проверка обратной зоны
named-checkzone 1.31.172.in-addr.arpa /etc/bind/zones/master/db.172.31.1 zone 1.31.172.in-addr.arpa/IN: loaded serial 1 OK
Запуск и перезапуск сервера bind
Теперь мы можем запускать сервер bind:
Если сервер уже был запущен, его можно перезапустить командой restart:
Для того что бы перечитать конфигурацию не перезапуская сервер, используйте команду
Тестирование сервера bind
Для тестирования новой конфигурации сервера имен bind нам пригодится команда dig из пакета dnsutils. Эту команду можно запустить на любом компьютере с сетевым доступом к вашему DNS-серверу, но лучше всего начать тестирование с локального узла. В рассматриваемом нами примере IP-адрес сервера имен 172.31.0.122. Сначала проверим прямое разрешение имени (получение IP-адреса по доменному имени):
dig @172.31.0.122 www.itproffi.ru
Теперь проверим обратную зону:
Если вы получили аналогичные результаты, то зона DNS настроена правильно. Вместо команды dig для тестирования можно также использовать команду nslookup.
nslookup itproffi.ru 172.31.0.122
nslookup 172.31.1.10 172.31.0.122
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Похожие записи:
How Do I Restart DNS service on Linux?
Can anyone tell me how to restart my dns service on linux? I have tried /etc/init.d/named restart but receive a no such directory exists error. I don’t see a directoy called init.d so I assume that is the problem. However I have no idea where to go to restart this service beyond that. I really don’t know linux very well. Any help would be much appreciated.
what brand/version of linux are you running?
can you do a find for that service?
version is Linux 2.4.30 #10 SMP Thu Dec 20 20:58:18 MST 2007 i686 unknown unknown GNU/Linux
i did run a list of services and saw both inetd and named running.
I have no idea where the service is located to restart it though..
/etc/rc.d/init.d/named restart
should work
/usr/sbin/ndc restart
does the same
Experts Exchange is like having an extremely knowledgeable team sitting and waiting for your call. Couldn’t do my job half as well as I do without it!
bash-2.05b# /etc/rc.d/init.d/named restart
bash: /etc/rc.d/init.d/named: No such file or directory
bash-2.05b#
that is the error i get..
should also point to the location
I started with Experts Exchange in 2004 and it’s been a mainstay of my professional computing life since. It helped me launch a career as a programmer / Oracle data analyst
bash-2.05b# find / -name named
/usr/local/sbin/named
/export/source/bind-9.2.3/ bin/named
/export/source/bind-9.2.3/ bin/named/ include/na med
/export/source/bind-9.2.3/ bin/named/ unix/inclu de/named
/export/source/bind-9.2.3/ bin/named/ win32/incl ude/named
/export/source/bind-9.2.3/ bin/named/ named
/export/source/bind-9.6.0- P1/bin/nam ed
/export/source/bind-9.6.0- P1/bin/nam ed/include /named
/export/source/bind-9.6.0- P1/bin/nam ed/unix/in clude/name d
/export/source/bind-9.6.0- P1/bin/nam ed/win32/i nclude/nam ed
/export/source/bind-9.6.0- P1/bin/nam ed/named
/etc/named
see if the directories are there. rhel by default chroots it, but the /etc/init.d/named file should still be there. You might not have installed the package
Как запустить или перезапустить BIND DNS сервис (Named)
Эту инструкцию я делаю как шпаргалку для себя на тему как запустить DNS-сервис BIND (он же Named), перезапустить или остановить его при необходимости. Надеюсь, что она сможет пригодиться и ещё кому-то.
BIND (Berkeley Internet Name Domain) — это открытая и очень популярная реализация DNS-сервера, которая обеспечивает выполнение преобразования DNS-имени в IP-адрес и наоборот. Она по праву считается самой первой системой ДНС и на сегодняшний день так же не теряет актуальность. Для того, чтобы выполнять манипуляции с сервисом БИНД, необходимо зайти в систему с правами суперпользователя root. Вводим следующие команды:
Запуск DNS сервера Named
Эти базовые команды позволяют запустить сервис BIND из терминала Linux:
root@setos [~]# service named start или root@setos [~]# /etc/init.d/named start
Остановка сервиса Named
Основные команды позволяют запустить сервис BIND из терминала Linux:
root@setos [~]# service named stop или root@setos [~]# /etc/init.d/named stop
Как перезапустить BIND
Для того, чтобы перезагрузить Named и перезапустить сервис — выполните в консоли следующие команды:
root@setos [~]# rndc reload или root@setos [~]# /etc/init.d/named restart или root@setos [~]# service named restart
Для того, чтобы посмотреть текущий статус работы DNS-сервера БИНД можно использовать такие команды:
root@setos [~]# service named status или root@setos [~]# /etc/init.d/named status
Итак, мы с Вами рассмотрели самые основные команды для управления DNS-сервером Bind.