DNS работает по принципу «Клиент-Сервер» с возможностью синхронизации и кэширования. Одним из самых популярных сегодня является DNS server BIND.
Далее я опишу, как настроить сервер для собственного домена с автоматической передачей зоны на вторичный сервер. Т.к. во FreeBSD по умолчанию используется BIND — устанавливать его не нужно, а для того чтобы настроить, достаточно отредактировать основной файл конфигурации named.conf и файл зоны своего домена, проверить если нет ошибок в конфигах и можно запускать демон BIND-a. И так поехали…
Правим основной файл конфигурации named.conf:
#ee /etc/namedb/named.conf
——————————————————————————————————
options {
directory «/etc/namedb»;
pid-file «/var/run/named/pid»;
dump-file «/var/dump/named_dump.db»;
statistics-file «/var/stats/named.stats»;
allow-transfer { 195.24.128.164; 193.218.105.146; };
allow-query { any; };
recursion no;
notify yes;
version «hi»;
};
zone «.» {
type hint;
file «named.root»;
};
zone «localhost.» {
type itcomp;
file «itcomp/localhost»;
};
zone «0.0.127.in-addr.arpa» {
type itcomp;
file «itcomp/localhost.rev»;
};
zone «itcomp.org» {
type itcomp;
file «itcomp/itcomp.org»;
};
zone «122.21.211.in-addr.arpa» {
type itcomp;
file «itcomp/itcomp.org.rev»;
};
——————————————————————————————————
секция options {
directory «/etc/namedb»; Указываем где находится рабочая директория
pid-file «/var/run/named/pid»; Где находится пид файл
dump-file «/var/dump/named_dump.db»; Где находится дамп
statistics-file «/var/stats/named.stats»; Проверить состояние бинда можно здесь
allow-transfer { 195.24.128.164; 193.218.105.146; }; Здесь перечисляются IP адреса вторичных серверов, на которые можно передавать зону. (slave server ip adress)
allow-query { any; }; Спрашивать информацию имеют права все, ограничений нет
recursion no; А вот рекурсивные запросы запрещены, мой DNS сервер отвечает только за одну зону
notify yes; Оповещать вторичные сервера, когда есть изменения на основном
version «hi»; Здесь можно подключить творчество
};
Ниже опций, пишутся зоны, их имена и где они расположенны. Корневая зона, localhost (прямая, обратная), itcomp.org (прямая, обратная).
——Настройка зоны itcomp.org
В руководстве написанно: «Для создания основной зоны для локального хоста перейдите в каталог /etc/namedb и выполните команду»
# sh make-localhost
Не знаю как у остальных, но у меня этого скрипта воабще не было, кстати он может создавать не только зону локалхоста, но и все остальные необходимые, например itcomp.org. Т.к. скрипта не было пришлось делать все вручную, в каталоге /etc/namedb/itcomp/ есть 2-а файлика:
localhost-forward.db
localhost-reverse.db
из этих файликов я наклепал еще 4-ре, которые мне нужны:
# ls -l /etc/namedb/itcomp/
localhost localhost.rev itcomp.org itcomp.org.rev и начал их редактировать:
#ee /etc/namedb/itcomp/itcomp.org
$ORIGIN itcomp.org.
$TTL 3h
itcomp.org. SOA admin.itcomp.org. admin.itcomp.org. (
1306200802 5h 1h 1w 3h
;Serial, Refresh, Retry, Expire, TTL
)
@ IN NS ns1.itcomp.org.
@ IN NS ns2.trifle.net.
@ IN NS ns0.xname.org.
@ IN NS ns1.xname.org.
@ IN MX 10 ASPMX.L.GOOGLE.COM.
@ IN MX 20 ALT1.ASPMX.L.GOOGLE.COM.
@ IN A 211.11.122.111
ns1 IN A 159.22.117.7
www IN A 211.11.122.111
@ IN AAAA ::1
forum CNAME google.com.
——————————
В файлах зон, символ « @ » заменяется демоном named на имя зоны, написанной в файле named.conf после слова zone в кавычках: zone »itcomp.org», именно поэтому E-Mail пишется через точку, а не через « @ » admin.itcomp.org.
Серийный номер не обязательно должен быть в формате «День Месяц Год Сколько Раз Изменялся» 1306200802, да, так можно узнать точную дату когда редактировалась зона, но Serial может быть любой, например можно написать 1, главное увеличивать это число после редактирования зоны — иначе вторичные DNS сервера не обновятся.
Refresh (5h) в начале, пока вы экспериментируете можно поставить один час (1h), чтобы вторичные DNS сервера быстрее обновляли значение Serial, когда все будет стабильно работать, можно увеличить это значение, например на 5h или 10h.
Retry (1h) — это значение указывает вторичным серверам, как часто необходимо обращаться к Itcomp серверу, если тот не отвечает.
Expire (3w) — это время которое slave сервера будут обслуживать зону, пока itcomp сервер не доступен. Если спустя это время вторичный сервер так и не смог достучаться до основнова сервера, он перестает обслуживать эту зону.
TTL (3h) — время жизни записей для зоны.
В конце каждого доменного имени обязательно должна стоять точка » . » Точка указывает на то, что это абсолютное имя домена, которое начинается с корня (т.е. с точки) например создадим одну запись CNAME для домена itcomp.org :
site2 IN CNAME google.com.
Так правильно! Bind будет интерпитировать эту запись так — site2.itcomp.org и перенаправлять на google.com, а если создать такую же запись, но не поставить точку в конце доменного имени, то Bind будет интепретировать такую запись, как относительную для домена itcomp.org и другие DNS сервера поймут это так:
site2.itcomp.org IN CNAME google.com.itcomp.org
Теперь, когда Itcomp сервер настроен, необходимо настроить передачу зоны вашего домена на slave сервера и чем больше у вас будет slave серверов — тем надежнее! Описание конфигурационного файла named.conf на вторичном сервере практически не отличается от файла на основном сервере, за исключением режима, в котором будет работать данный сервер (type slave) и директории.
——————-
options {
directory »/etc/namedb»;
pid-file »/var/run/named/pid»;
dump-file »/var/dump/named_dump.db»;
statistics-file »/var/stats/named.stats»;
allow-transfer { 195.24.128.164; 193.218.105.146; };
allow-query { any; };
recursion no;
notify yes;
version »hi»;
};
zone ».» {
type hint;
file »named.root»;
};
zone »localhost.» {
type itcomp;
file »itcomp/localhost»;
};
zone »0.0.127.in-addr.arpa» {
type itcomp;
file »itcomp/localhost.rev»;
};
zone »itcomp.org» {
type slave;
file »slave/itcomp.org»;
};
—————
Также будет полезно настроить несколько вторичных-бесплатных днс серверов. В интернете не так много (но и не мало) бесплатных DNS сервисов я работаю с http://ns2.trifle.net и http://www.xname.org а также можно воспользоваться http://secondary.net.ua еще есть несколько, но я их не использовал. (сайт1 сайт2 сайт3 сайт4)
Запуск Bind-a и проверка зон на работоспособность.
Запустить можно так:
# /etc/rc.d/named start
(или forcestart, а также stop, restart)
Обновить базу данных bind-a т.е. чтобы перечитал свои файлы можно командой:
# named.reload
(кстати, если вы сделали изменения в файлах зон и забыли изменить serial то после этой комманды bind вам напомнит об этом)
Проверить есть ли ошибки в конфиг файле можно командой:
# named-checkconf /etc/namedb/named.conf
Файл зоны можно проверить так:
команда ИмяЗоны ПутьКзоне
# named-checkzone itcomp.org /etc/namedb/itcomp/itcomp.org
Посмотреть bind в процессах
# top | grep named
И послушать висит ли Bind на 53 порту:
# sockstat -l4 -p 53