BIND: DNS – настраиваем субдомены

By | 08/11/2012
 

bind-named-logoКак провести начальную установку и настройку BIND под FreeBSD можно прочитать тут>>>.

В данной статье – примеры создания и настройки различных субдоменов.

Для примера взят реально существующий (по крайней мере – на сегодняшний день :-)) файл зоны домена setevoy.org.ua:

$TTL    3600
@               IN      SOA     ns1.setevoy.org.ua. root.setevoy.org.ua.  (
2012080420      ; Serial
3600            ; Refresh
900             ; Retry
3600            ; Expire
3600            ; Minimum
)
@               IN      NS      ns1.setevoy.org.ua.
@               IN      NS      ns2.setevoy.org.ua.
@               MX      10      mx.setevoy.org.ua.
@               IN      A       77.120.106.40
www             IN      CNAME   @
mx              IN      A       77.120.106.40
ns1             IN      A       77.120.106.40
ns2             IN      A       82.144.220.21
postfixadmin    IN      A       77.120.106.40
google          IN      A       173.194.39.100
host            IN      NS      alpha.freehost.com.ua.
dc              IN      CNAME   dc.volia.com.
admin           IN      CNAME   freehost.com.ua.

ВАЖНО:

1. файл зоны ВСЕГДА должен заканчиваться пустой строкой;

2. домены/субдомены, указанные в параметрах записей – всегда должны заканчиваться точкой, например:

dc              IN      CNAME   dc.volia.com.

если не поставить в конце точку – к адресу dc.volia.com будет добавлен адрес настраиваемого домена, и получится такое – dc.volia.com.setevoy.org.ua;

3. всегда обновляйте Serial номер файла зоны, приплюсовывая единицу – иначе secondary NS не обновит запись о домене у себя;

4. всегда выполняйте проверку файла зоны перед применением изменений, например:

# named-checkzone master /var/named/zones/master/setevoy.org.ua
zone master/IN: loaded serial 2012080410
OK

Типы записей субдоменов.

Для субдоменов доступны несколько вариантов записей:

IN A

CNAME

IN NS

Проверить все субдомены домена можно командой DIG. К примеру – узнаем у NS-сервера ns1.setevoy.org.ua какие субдомены есть у домена setevoy.kiev.ua:

$ dig @ns1.setevoy.org.ua website.co.ua axfr

И получим такой вывод (лишнее удалено):


setevoy.org.ua.         3600    IN      SOA     ns1.setevoy.org.ua. root.setevoy.org.ua. 2012080420 3600 900 3600 3600
setevoy.org.ua.         3600    IN      NS      ns1.setevoy.org.ua.
setevoy.org.ua.         3600    IN      NS      ns2.setevoy.org.ua.
setevoy.org.ua.         3600    IN      MX      10 mx.setevoy.org.ua.
setevoy.org.ua.         3600    IN      A       77.120.106.40
admin.setevoy.org.ua.   3600    IN      CNAME   freehost.com.ua.
dc.setevoy.org.ua.      3600    IN      CNAME   dc.volia.com.
google.setevoy.org.ua.  3600    IN      A       173.194.39.100
host.setevoy.org.ua.    3600    IN      NS      alpha.freehost.com.ua.
mx.setevoy.org.ua.      3600    IN      A       77.120.106.40
ns1.setevoy.org.ua.     3600    IN      A       77.120.106.40
ns2.setevoy.org.ua.     3600    IN      A       82.144.220.21
postfixadmin.setevoy.org.ua. 3600 IN    A       77.120.106.40
www.setevoy.org.ua.     3600    IN      CNAME   setevoy.org.ua.

Самый распространенный из них – IN A.

К примеру, строка:

postfixadmin    IN      A       77.120.106.40

Означает, что при запросе адреса postfixadmin.setevoy.org.ua будет идти обращение к серверу 77.120.106.40 и, например, открываться страница веб-сервера с содержанием каталога, определенного настройками Apache (про виртуалхосты можно почитать тут>>>).

Таким образом, с помощью записи IN A субдомен можно перенаправить на любой сервер – хоть на google.com, к примеру:

google          IN      A       173.194.39.100

При запросе субдомена google.setevoy.org.ua будет открываться страница Google.

Имейте ввиду, что указывать запись IN A можно только в виде IP-адреса.

Иногда в записях можно встретить знак @ – он используется вместо полного имени настраиваемого домена.

К примеру, запись в файле зоны /var/named/zones/master/setevoy.org.ua:

www             IN      CNAME   @

Аналогична записи:

www             IN      CNAME   setevoy.org.ua.

Что такое запись типа CNAME?

CNAME (Canonical Name record)  служит для создания субдоменов с настройками, аналогичными указанному домену.

В приведенном выше примере субдомен www указывается синонимом основного домена setevoy.org.ua, в результате по адресу www.setevoy.org.ua и просто setevoy.org.ua откроется один и тот же сайт.

Но можно субдомен сделать синонимом другого субдомена или домена, например:

dc              IN      CNAME   dc.volia.com.

При переходе по адресу dc.setevoy.org.ua попадем на сайт dc.volia.com. Интересная и полезная особенность такого варианта создания синонима – в адресной строке браузера пользователя не будет изменяться адрес домена. Однако, это сработает на всех серверах.
Так же можно добавить и www-субдомен к домену:

www.dc IN CNAME dc.volia.com.

И последний тип записей для субдоменов – IN NS.

IN NS указывает, что данный субдомен обслуживается другим Name Server.

К примеру, запись:

host            IN      NS      alpha.freehost.com.ua.

Посмотрим, как это выглядит при запросе к нашему серверу:

$ dig @ns1.setevoy.org.ua host.setevoy.org.ua

;; QUESTION SECTION:
;host.setevoy.org.ua.           IN      A

;; AUTHORITY SECTION:
host.setevoy.org.ua.    3600    IN      NS      alpha.freehost.com.ua.

А теперь обратимся к alpha.freehost.com.ua:

$ dig @alpha.freehost.com.ua setevoy.org.ua

;; QUESTION SECTION:
;setevoy.org.ua.                        IN      A

;; ANSWER SECTION:
setevoy.org.ua.         600     IN      A       91.206.31.137

Таким образом можно разделить управление доменом и его субдоменами.

Кроме уже указанных IN A, CNAME и IN NS типов записей, существуют ещё две – SRV и TXT записи. Однако, их рассмотрение выходит за рамки простой настройки субдомена, потому их рассмотрение будет в отдельной статье попозже.

Полезных ссылок по теме как-то много не нашлось, но пару все-же посоветую:

http://wiki.russianfedora.ru

http://ru.wikipedia.org

Удобная веб-форма проверки записей о домене:

http://xseo.in/dns