Документация по ОС FreeBSD Четверг, 12.12.2024, 17:55
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » DNS

Установка сервера DNS на FreeBSD
Установка сервера dns

   Введение

   В этом документе я попытаюсь дать вам пример установки сервера DNS.  Большинство этой информации взято из 'FreeBSD handbook' (печатная  версия).

   Встроенные FreeBSD dns демон называется 'named' и является частью    порта 'bind' (/usr/ports/bind8). Директория '/etc/namedb' - это место,    где named ищет конфигурационные файлы / файлы зон.

   Нас интересуют следующие файлы и мы будем создавать/редактировать их    довольно долго:

  named.conf
  db.example.org
  example-reverse
  localhost.rev

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

   Вот схема сети:

                        /-----------------------\
                        |        интернет       |
                        \-----------------------/
                                    |
                                    |
                          |--------------------|
                          | DNS сервер/шлюз |
                          | ns.example.org     |
                          | 192.168.1.1        |
                          |--------------------|
                                    |
                                    |
            |-------------------------------------------------|
            |                                                 |
   |-----------------|                              |------------------|
   | Хост            |                              | Хост             |
   | sun.example.org |                        | moon.example.org |
   | 192.168.1.100   |                          | 192.168.1.101    |
   |-----------------|                             |------------------|

   named.conf
   По умолчнию этот файл находится в директории /etc/namedb и нам необходимо отредактировать его.

   Вот пример того, как он должен выглядеть:

options {
        directory "/etc/namedb";

        forwarders {
                [dns-сервер 1]; [dns-сервер 2];
        };
        query-source address * port 53;

};

zone "." {
        type hint;
        file "named.root";
};

zone "0.0.127.IN-ADDR.ARPA" {
        type master;
        file "localhost.rev";
};

zone "example.org" {
        type master;
        file "db.example.org";
};

zone "1.168.192.in-addr.arpa" {
        type master;
        file "example.org-reverse";
};

   Вот что все это означает:

   forwarders
   Это должен быть разделенный точкой с запятой (не забудьте поставить последнюю точку с запятой) список серверов dns. Если ваш сервер dns не знает ответа, он будет запрашивать эти серверы dns.

   query-source address
   При помощи этой опции вы можете заставить сервер DNS использовать определенный порт, это очень полезно при использовании файрволла.

   zone "."
   Это зона для доменов верхнего уровня, файл 'named.root' содержит все корневые серверы (адреса не меняются годами, так что вы можете не редактировать этот фыйл).

   zone "example.org"
   Это определяет файл, в котором сервер DNS может найти информацию о домене 'example.org'

   zone "1.168.192.in-addr.arpa"
   Эта зона используется для обратных поисков (lookup) DNS. Как вы могли обратить внимание, адрес ip яаляется обратным и в нем пропущен последний номер. Это решение для проблемы 'яйца и курицы'. Откуда сервер DNS знает на каком сервере он может найти информацию, которую он ищет? Он разрешает адрес ip и опрашивает ответственный за это
сервер, но как он опрашивает сервер? путем разрешения имени хоста. Вы видите, это небольшая проблема. Вот почему выбран этот метод. Я не стану углубляться в подробности, поскольку для установки сервера DNS в этом нет необходимости.

   db.example.org
   Это файл зоны для вашего домена. Вот пример:

$TTL 86400

example.org.    IN      SOA     ns.example.org. admin.example.org. (
                2001220201      ; Serial (YYYYDDMM plus 2 digit serial)
                86400           ; refresh (1 day)
                7200            ; retry (2 hours)
                8640000         ; expire (100 days)
                86400)          ; minimum (1 day)

                IN      NS      ns.example.org.
                IN      MX      10 mail.example.org.

ns              IN      A       192.168.1.1
sun             IN      A       192.168.1.100
moon            IN      A       192.168.1.101
maan            IN      CNAME   moon

   Комментарии в конфигурационных файлах обычно помечаются точками с запятой, вместо слэшей!!!

   За каждым доменом точка выделена жирным. Это потому, что эта точка ДОЛЖНА быть там, а общей ошибкой является то, что многие об этом забывают.

   $TTL
   Здесь должно быть указано время жизни по умолчанию.

   SOA
   Это сокращение от Start Of Authority и за ним должен следовать домен первоначального хоста и почтовый адрес администратора сервера DNS. Как вы могли заметить: в почтовом адресе отсутствует символ `эта'. Все это потому, что символ `эта' имеет здесь другое значение, а следовательно, этот символ заменен первой точкой там где это необходимо.

   Serial
   Это последовательный номер для этой зоны, он должен увеличиваться каждый раз, когда что-то было изменено. Хорошая структура  последовательного номера: YYYYDDMM плюс 2 цифры. Первые четыре цифры - это год, затем день, месяц и последовательный номер. Последнее - полезно когда вы обновляете файл зоны более одного раза в день.

   IN NS ns.example.org.
   Это говорит серверу dns, что 'dns.example.org' является ответственным за эту зону.

   В данном случае, этот ответственный сервер dns находится в том же домене (example.org), что и домен за который он отвечает. Вот пример более реалистичной зоны:

$TTL 86400

mydomain.org. IN SOA ns.example.org. admin.example.org. (
              2001220201 ; Serial (YYYYDDMM plus 2 digit serial)
              86400 ; refresh (1 day)
              7200 ; retry (2 hours)
              8640000 ; expire (100 days)
              86400) ; minimum (1 day)

              IN NS ns.example.org.
              IN MX 10 mail.example.org.

mydomain.org.    A 211.211.211.211
www           IN A 212.212.212.212
db            IN A 213.213.213.213

   Как вы можете видеть в этом примере добавлена запись mx и данные для доменного имени без поддомена. Адрес example.org все еще здесь, поскольку он является ответственным сервером dns.

   example.org-reverse
   Этот файл используется для обратных поисков (lookup)

$TTL 86400

@       IN      SOA     ns.example.org. admin.example.org. (
                        2001220200      ; Serial (date, 2 digits version)
                        86400           ; refresh (1 day)
                        7200            ; retry (2 hours)
                        8640000         ; expire (100 days)
                        86400)          ; minimum (1 day)
        IN      NS      ns.example.org.

100     IN      PTR     sun.example.org.
101     IN      PTR     moon.example.org.

   PTR
   PTR означает Указатель (Pointer).

   localhost.rev
   Этот файл просто мапит 127.0.0.1 на localhost.

$TTL    3600

@       IN      SOA     ns.example.org. admin.example.org.  (
                                2001220200      ; Serial
                                3600            ; Refresh
                                900             ; Retry
                                3600000         ; Expire
                                3600 )          ; Minimum
        IN      NS      ns.example.org.
1       IN      PTR     localhost.example.org.

   Запуск сервера DNS
   Итак, теперь вы создали/отредактировали все необходимые конфигурационные файлы и хотите запустить ваш сервер. Вы можете сделать это вручную, введя (будучи root) '/usr/sbin/named'. Теперь проверьте /var/log/messages на наличие ошибок. Если ваш сервер запустился без ошибок, измените файл '/etc/resolv.conf' на что-то, соответствующее следующему:

domain example.org
nameserver 192.168.1.1

   Теперь запустите nslookup и запросите ваш сервер по одному из поддоменов в вашем файле зоны.

   Если все это работает, то вы, вероятно, захотите, чтобы сервер DNS автоматически запускался при загрузке вашего сервера. Вставьте следующие строки в '/etc/rc.conf'

named_enable="YES"
named_program="/usr/sbin/named"
named_flags="-u bind -g bind"
   Убедитесь, что пользователь и группа 'bind' существуют. Если вы не запустили named с этими пользователем/группой, то он будет запускаться с правами root:wheel (нужно объяснять, почему так делать не стоит?)
Категория: DNS | Добавил: oleg (27.10.2007)
Просмотров: 3857 | Рейтинг: 3.0/2 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024