Next Previous Contents

## 5. Пример реального домена

Мы здесь перечислим несколько настоящих файлов зон

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

Я использую этот пример с разрешения David Bullock из LAND-5. Эти файлы содержат информацию, которая являлась реальной на 24 Сентября 1996 года, и были отредактированы мною для соответствия правилам синтаксиса bind-8 и использовали некоторые мои расширения. Так что, то что вы увидите здесь будет отличаться от того, что вы увидите сделав запрос на настоящий сервер имен LAND-5.

## 5.1 /etc/named.conf (или /var/named/named.conf)

Здесь мы обнаружим два раздела основных зон для двух необходимых обратных зон: для сети 127.0.0, а также для домена LAND-5 с номером 206.6.177. А записи для основной зоны домена land-5.com. Также заметим, что вместо размещения файлов в директории названной `pz`, как я делал здесь до этого, администратор поместил эти файлы в директорию названную `zone`.

    // Загрузочный файл для сервера имен LAND-5

    options {

            directory "/var/named";

    };

    zone "." {

            type hint;

            file "root.hints";

    };

    zone "0.0.127.in-addr.arpa" {

            type master;

            file "zone/127.0.0";

    };

    zone "land-5.com" {

            type master;

            file "zone/land-5.com";

    };

    zone "177.6.206.in-addr.arpa" {

            type master;

            file "zone/206.6.177";

    };

Если вы поместите эти данные в ваш файл named.conf для того, чтобы поэкспериментировать с ними, то ПОЖАЛУЙСТА поместите строку `notify no;` в раздел зон, принадлежащих land-5, для того чтобы избежать инцидентов.

## 5.2 /var/named/root.hints

Запомните, что это файл не является постоянным, и данные одног из перечисленных здесь серверов являются устаревшими. Вам лучше использовать вместо приведенного файла, файл сделанный перед этим помощью программы dig, как это объяснялось ранее.

    ; <<>> DiG 8.1 <<>> @A.ROOT-SERVERS.NET.

    ; (1 server found)

    ;; res options: init recurs defnam dnsrch

    ;; got answer:

    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10

    ;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13

    ;; QUERY SECTION:

    ;;      ., type = NS, class = IN

    ;; ANSWER SECTION:

    .                       6D IN NS        G.ROOT-SERVERS.NET.

    .                       6D IN NS        J.ROOT-SERVERS.NET.

    .                       6D IN NS        K.ROOT-SERVERS.NET.

    .                       6D IN NS        L.ROOT-SERVERS.NET.

    .                       6D IN NS        M.ROOT-SERVERS.NET.

    .                       6D IN NS        A.ROOT-SERVERS.NET.

    .                       6D IN NS        H.ROOT-SERVERS.NET.

    .                       6D IN NS        B.ROOT-SERVERS.NET.

    .                       6D IN NS        C.ROOT-SERVERS.NET.

    .                       6D IN NS        D.ROOT-SERVERS.NET.

    .                       6D IN NS        E.ROOT-SERVERS.NET.

    .                       6D IN NS        I.ROOT-SERVERS.NET.

    .                       6D IN NS        F.ROOT-SERVERS.NET.

    ;; ADDITIONAL SECTION:

    G.ROOT-SERVERS.NET.     5w6d16h IN A    192.112.36.4

    J.ROOT-SERVERS.NET.     5w6d16h IN A    198.41.0.10

    K.ROOT-SERVERS.NET.     5w6d16h IN A    193.0.14.129

    L.ROOT-SERVERS.NET.     5w6d16h IN A    198.32.64.12

    M.ROOT-SERVERS.NET.     5w6d16h IN A    202.12.27.33

    A.ROOT-SERVERS.NET.     5w6d16h IN A    198.41.0.4

    H.ROOT-SERVERS.NET.     5w6d16h IN A    128.63.2.53

    B.ROOT-SERVERS.NET.     5w6d16h IN A    128.9.0.107

    C.ROOT-SERVERS.NET.     5w6d16h IN A    192.33.4.12

    D.ROOT-SERVERS.NET.     5w6d16h IN A    128.8.10.90

    E.ROOT-SERVERS.NET.     5w6d16h IN A    192.203.230.10

    I.ROOT-SERVERS.NET.     5w6d16h IN A    192.36.148.17

    F.ROOT-SERVERS.NET.     5w6d16h IN A    192.5.5.241

    ;; Total query time: 215 msec

    ;; FROM: roke.uio.no to SERVER: A.ROOT-SERVERS.NET.  198.41.0.4

    ;; WHEN: Sun Feb 15 01:22:51 1998

    ;; MSG SIZE  sent: 17  rcvd: 436

## 5.3 /var/named/zone/127.0.0

Как основа файла обязательными записями являются запись SOA, и запись, которая объявляет 127.0.0.1 как `localhost`. Требуется указать обе эти записи. Больше ничего не должно быть в этом файле. Его скорее всего никогда не надо будет обновлять, до тех пор пока не изменится адрес сервера имен или ответственного за машину (hostmaster).

    @               IN      SOA     land-5.com. root.land-5.com. (

                                    199609203       ; Serial

                                    28800   ; Refresh

                                    7200    ; Retry

                                    604800  ; Expire

                                    86400)  ; Minimum TTL

                            NS      land-5.com.

    1                       PTR     localhost.

## 5.4 /var/named/zone/land-5.com

Здесь мы увидим обязательную запись SOA, и необходимые записи NS. Мы можем видеть, что имеется дополнительный сервер имен расположенный по адресу ns2.psi.net. Всегда необходимо иметь дополнительный сервер имен за пределами домена в качестве резерва. Мы также можем видеть, что этот домен имеет основной сервер, названный land-5, который заботится о множестве разных сервисов Internet, это сделано используя записи CNAME (как альтернатива использованию записей A).

Как вы видите из записи SOA, файл зоны расположен в домене land-5.com, ответственным лицом является `root@land-5.com`. `hostmaster` -- это другой часто используемый адрес для отвественного за эту работу человека. Серийный номер записан в привычном формате yyyymmdd и дополнен серийным номером для текущего дня; это примерно 6-я версия файла зоны на 20 сентября 1996. Помните, что серийный номер должен увеличиваться монотонно, здесь только одна цифра для серийного номера текущего дня, так что после 9 поправок мы должны ждать завтрашнего дня, для того чтобы дальше продолжить редактировать файл. Рассмотрите возможность использования двух цифр для номера вместо одной.

    @       IN      SOA     land-5.com. root.land-5.com. (

                            199609206       ; serial, todays date + todays serial #

                            8H              ; refresh, seconds

                            2H              ; retry, seconds

                            1W              ; expire, seconds

                            1D )            ; minimum, seconds

                    NS      land-5.com.

                    NS      ns2.psi.net.

                    MX      10 land-5.com.  ; Основной почтовый сервер

    localhost       A       127.0.0.1

    router          A       206.6.177.1

    land-5.com.     A       206.6.177.2

    ns              A       206.6.177.3

    www             A       207.159.141.192

    ftp             CNAME   land-5.com.

    mail            CNAME   land-5.com.

    news            CNAME   land-5.com.

    funn            A       206.6.177.2

    @               TXT     "LAND-5 Corporation"

    ;

    ;       Рабочие станции

    ;

    ws-177200       A       206.6.177.200

                    MX      10 land-5.com.   ; Основная почтовая машина

    ws-177201       A       206.6.177.201

                    MX      10 land-5.com.   ; Основная почтовая машина

    ws-177202       A       206.6.177.202

                    MX      10 land-5.com.   ; Основная почтовая машина

    ws-177203       A       206.6.177.203

                    MX      10 land-5.com.   ; Основная почтовая машина

    ws-177204       A       206.6.177.204

                    MX      10 land-5.com.   ; Основная почтовая машина

    ws-177205       A       206.6.177.205

                    MX      10 land-5.com.   ; Основная почтовая машина

    ; {много повторяющихся определений удалено}

    ws-177250       A       206.6.177.250

                    MX      10 land-5.com.   ; Основная почтовая машина

    ws-177251       A       206.6.177.251

                    MX      10 land-5.com.   ; Основная почтовая машина

    ws-177252       A       206.6.177.252

                    MX      10 land-5.com.   ; Основная почтовая машина

    ws-177253       A       206.6.177.253

                    MX      10 land-5.com.   ; Основная почтовая машина

    ws-177254       A       206.6.177.254

                    MX      10 land-5.com.   ; Основная почтовая машина

Если вы поработаете с сервером имен домена land-5, то вы обнаружите, что имена машин имеют форму `ws_`номер. С последних версий bind 4 named начал ограничивать то, какие символы могут быть использованы в именах машин. Так, что эти имена нельзя было использовать с bind-8, и я подставил символ '-' (тире) вместо символа '_' (подчеркивание).

Другая вещь, которую необходимо заметить, это то, что все рабочие станции не имеют индивидуальных имен, а вместо этого состоят из префикса за которым следует 2 последних числа из IP-адреса. Используя такое соглашение вы можете значительно упростить работу по сопровождению, но это может быть достаточно безлично и в действительности может быть источником недовольства со стороны ваших клиентов.

Мы также видим, что имя funn.land-5.com это алиас для land-5.com, но используется запись A, а не запись CNAME.

## 5.5 /var/named/zone/206.6.177

Я прокомментирую это файл после этого листинга.

    @               IN      SOA     land-5.com. root.land-5.com. (

                                    199609206       ; Serial

                                    28800   ; Refresh

                                    7200    ; Retry

                                    604800  ; Expire

                                    86400)  ; Minimum TTL

                            NS      land-5.com.

                            NS      ns2.psi.net.

    ;

    ;       Servers

    ;

    1       PTR     router.land-5.com.

    2       PTR     land-5.com.

    2       PTR     funn.land-5.com.

    ;

    ;       Рабочие станции

    ;

    200     PTR     ws-177200.land-5.com.

    201     PTR     ws-177201.land-5.com.

    202     PTR     ws-177202.land-5.com.

    203     PTR     ws-177203.land-5.com.

    204     PTR     ws-177204.land-5.com.

    205     PTR     ws-177205.land-5.com.

    ; {много повторяющихся определений удалено}

    250     PTR     ws-177250.land-5.com.

    251     PTR     ws-177251.land-5.com.

    252     PTR     ws-177252.land-5.com.

    253     PTR     ws-177253.land-5.com.

    254     PTR     ws-177254.land-5.com.

Обратная зона является той частью настройки, которая кажется способной вызвать большое горе (печаль, grief). Она используется для того, чтобы найти имя машины по ее IP-адресу. Пример: у вас есть IRC-сервер и он принимает соединения от IRC-клиентов. Однако он находится в Норвегии и хочет принимать соединения только от клиентов из Норвегии и других скандинавских стран. Когда вы соединяетесь с клиентом, то с помощью библиотеки языка С вы можете узнать адрес соединяющейся с сервером машины, поскольку этот адрес содержится во всех пакетах, передаваемых по сети. Теперь сервер может вызвать функцию названную gethostbyaddr, которая ищет имя машины по заданному IP-номеру. Gethostbyaddr запросит сервер DNS, который выполнит поиск заданной машины в DNS. Допустим клиент соединяется с машины ws-177200.land-5.com. IP-номер, который библиотека C передает IRC-серверу, равен 206.6.177.200. Для того, чтобы найти имя машины нам необходимо найти домен 200.177.6.206.in-addr.arpa. DNS-сервер сначала найдет сервера домена arpa., затем найдет сервера in-addr.arpa., следуя дальше через сервера группы 206, затем 6 и в конце концов найдет сервер для зоны 177.6.206.in-addr.arpa в домене land-5. От которого он в конце концов может получит ответ, что для 200.177.6.206.in-addr.arpa у нас есть запись 'PTR ws-177200.land-5.com', означающая что имя машины с адресом 206.6.177.200 равно ws-177200.land-5.com. Как и объяснение того, как мы искали prep.ai.mit.edu, этот пример вымышлен.

Вернемся к нашему примеру с IRC-сервером. IRC-сервер принимает соединения только из скандинавских стран, например, *.no, *.se, *.dk, имя ws-177200.land-5.com явно не соответствует этому правилу и сервер запретит соединение. Если бы не было обратного мапирования адреса 206.2.177.200 с помощью зоны in-addr.arpa, то сервер не смог бы вообще найти имя машины и должен был бы сравнивать адрес 206.2.177.200 с заданными масками --*.no, *.se и *.dk, которым этот адрес явно не соответствует.

Некоторые люди скажут, что обратное преобразование адресов важно только для серверов, и не важно для остальной работы. Это не так: многие ftp, news, IRC и даже некоторые http (WWW) сервера не принимают соединения от машин для которых они не могут найти имена. Так что в действительности обратное преобразование для машин является обязательным.

Next Previous Contents