Настройка собственного DNS
Раньше этот сайт находился на бесплатном домене site_name.no-ip.org (dyndns), который привязывался к моему динамическому ip. Если org.ua бесплатный, почему же не перейти на него? Но для регистрации необходимо было два DNS-сервера которые могли бы поддерживать мою зону unigx.org.ua. На бесплатных серверах регистрация не прошла, видимо регистратор ввел некоторые ограничения, хотя раньше все работало, решил поднимать у себя на сервере, который смотрит в интернет.
Для начала немного терминологии:
DNS (Система доменных имен) - с помощью которой можно преобразовать IP-адреса в имена, и на оборот.
Forward DNS (Прямой запрос к DNS) - преобразование имени хоста в адрес IP.
Reverse DNS (Обратный DNS) - преобразование адреса IP в имя хоста (операция обратная форварду).
Origin (Ориджин) - домен, покрываемый конкретным файлом зоны.
Корневая зона(.) - Начало иерархии зон в Internet.
Резолвер - процесс, отвечающий за преобразование доменных имен в IP-адреса. Резолвер, в свою очередь, обращается за просьбой к серверу DNS, который указан в файле /etc/resolv.conf.
Master - ведущий DNS сервер.
Slave - ведомый DNS сервер.
После установке FreeBSD, DNS-сервер уже присутствует в системе он называется BIND (Berkeley Internet Name Domain).
Конфигурационные файлы находятся в /var/named/etc/namedb или алиас /etc/namedb.
Конфиг. файл named - /etc/namedb/named.conf
Логи тут: /var/named/var/log.
Идем в /etc/namedb/named.conf и добавляем поддержку зоны unigx.org.ua:
zone "unigx.org.ua" {
# тип
type master;
# файл форвард зоны
file "master/unigx.org.ua.forw";
# сервера на которые разрешено передавать зону
allow-transfer { 193.108.251.254; };
# при изменении зоны все вторичные DNS сервера получают уведомление
notify yes;
};
Далее создаём файл форвард зоны нашего домена:
[root@router /etc/namedb/master/]#cat > unigx.org.ua.forw
$TTL 3600
;запись SOA - начальная запись зоны
@ IN SOA ns.unigx.org.ua. admin.unigx.org.ua. (
2010092801 ; Серийный номер формат YYYYMMDDNN
3600 ; Обновление
900 ; Повтор
3600000 ; Истечение срока
3600 ) ; Минимальное TTL
;серверы DNS
@ IN NS ns.unigx.org.ua.
@ IN NS ns.yuren.com.ua.
;записи MX
@ MX 10 mail.unigx.org.ua.
;сопоставление имя - ip
@ IN A 82.207.87.36
@ IN AAAA 2001:470:27:9ab::2
www IN A 82.207.87.36
www IN AAAA 2001:470:27:9ab::2
mx IN A 82.207.87.36
ftp IN A 82.207.87.36
ns IN A 82.207.87.36
Сам файл имеет четкую структуру, немного опишу его:
1. Директива $TTL (время жизни по умолчанию)
2. Запись SOA (Start of Authority - начальная запись зоны)
3. Записи DNS (список ответственных NS серверов за данную зону)
4. Записи A (соответствие Адрес - IP)
4a. Записи AAAA (соответствие Адрес - IPv6)
5. Записи CNAME (Canonical Name - псевдонимы)
6. Записи MX (сервера которые ответственные за роботу с почтой с этой зоне)
Хотел бы немного остановится на записи SOA, что она собой представляет:
Она имеет свой формат:
Вместо "Имя" я использую $ORIGING - это имя домена, которое описывается в директиве zone "unigx.org.ua" в named.conf.
@ - это и есть ссылка на текущее значение $ORIGING.
"TTL" я уже казал уже в глобально директиве в $TTL.
"IN" - это и есть клас.
"SOA" - тип
"значение" - имя первичного DNS сервера зоны, далее указываем адрес электронной почты админа домена у меня это admin.unigx.org.ua, но вместо @, ставим точку.
далее..
"Серийный номер" - с помощью него BIND проверяет актуальность файла зоны. Обычно он имеет формат YYYYMMDDNN (год_месяц_день_номер последнего редактирования за день). После модификации файла зоны, не забываем его увеличивать.
Далее добавляем в автозапуск /etc/rc.conf:
[root@router /]# echo 'named_flags="-u bind -g bind"' >> /etc/rc.conf
И пробуем запускать:
[root@router /etc/rc.d]# ps -A | grep named
879 ?? Ss 0:13,40 /usr/sbin/syslogd -l /var/run/log -l /var/named/var/run/log -s
37336 ?? Ss 0:41,71 /usr/sbin/named -t /var/named -u bind
Проверяем работоспособность:
; <<>> DiG 9.4.2 <<>> @ns.unigx.org.ua unigx.org.ua
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62662
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;unigx.org.ua. IN A
;; ANSWER SECTION:
unigx.org.ua. 3600 IN A 82.207.87.36
;; AUTHORITY SECTION:
unigx.org.ua. 3600 IN NS ns.yuren.com.ua.
unigx.org.ua. 3600 IN NS ns.unigx.org.ua.
;; ADDITIONAL SECTION:
ns.unigx.org.ua. 3600 IN A 82.207.87.36
;; Query time: 32 msec
;; SERVER: 193.108.251.254#53(193.108.251.254)
;; WHEN: Wed Sep 29 14:48:14 2010
;; MSG SIZE rcvd: 106
Не забываем открыть 53 порт наружу, выдержка с servises:
domain 53/udp #Domain Name Server
Для pf это:
По желанию можно обновлять named.root, заходим в /etc/namedb, но это уже в другой статье:
- Войдите на сайт для отправки комментариев
- Версия для печати
Здравствуйте, заранее извиняюсь за ламерский вопрос, но я действительно новичок: В локальной сети есть веб сервер по IP из локальной сети к нему обратиться удается, а вот по доменному имени нет. Как настроить DNS локальной сети как чтобы обращение к нему по доменному имени стало возможным. Сервер настроен на FreeBSD 8.2.
Добрый, с вопросами не по статье пишите на форум, там все обсудим.