Служба DNS в локальной сети.

Автор: Алекс

1. Что такое DNS

Как вы знаете в локально сети, если она построена на основе протокола TCP/IP, все компьютеры имеют IP адреса. Что удобно для компьютера, но не совсем удобно для человека, поскольку запоминать 12 значные комбинации цифр - 192.168.121.212 - несовсем удобно. Гораздо удобнее запоминать символьные имена, например: Masha или Vasia. Поэтому для удобства пользователей была введена символьное именование компьютеров в сети. Эти символьные имена могут использоваться не только человеком, но и любыми программами использующими сетевые ресурсы.

Однако как вы помните протокол TCP/IP использует IP адреса. IP сосоит из 4 байт, естественно в IP пакетах этот адрес передается в двоичной системе исчисления, а вот в настройках операционных систем он отображается в десятичной системеисчисления. При этом каждый байт отделяется точками. Максимальное значение байта в двоичной системе это: 11111111, в десятичной системе это число будет 255. Примером записи адреса можеи быть: 192.168.0.5. Существуют определенные правила назначения этих адресов (см. статью "Протокол TCP/IP. Адресация в IP сетях" на этом сайте). В интернет порядком выдачи адресов ведает служба NIC (Network Information Center).

Так вот мы имем проблемму как сопоставить символьные имена хостов с их IP адресами. На самом деле никакой проблемы нет и все уже давно решено. Исторически первой была сеть ARPANET в ней соответствие текстовых и двоичных адресов просто записывалось в файле hosts.txt, в котором перечислялись все хосты и их IP-адреса. Кстати такой файл есть и в windows в каталоге, где располагается сама ОС. называется он hosts, без расширения. Посмотрите его и вы легко и вы легко увидите пример записей соответствия символьных имен и IP адресов.

Но вернемся к ARPANET. Принятая организация была несовсем удобной, так как каждую ночь все хосты получали этот файл с сайта, на котором тот хранился. При небольших размерах сети все работало достаточно неплохо. Однако с ростом сети, когда в нее вошли тысячи машин такой способ стал неприемлемым. По причинам большого размера файла, а также возможности возникновения конфликтов имен (в следствии отсутстия централизованного управления). Для решениея этих и других проблемм и была создана служба имен доменов DNS (Domain Name System).

Основу системы DNS составляет иерархическая ситсема имен, основанная на доменах, и распределенной базе данных, реализующей эту схему имен. Именно эта система преобразует символьные имена хостов в их IP адреса, однако только этим назначение службы DNS не ограничевается.Система DNS определена в стандартах RFC 1034 и 1035.

Общая схема работы системы DNS. При необходимости клиент (хост) посылает запрос DNS серверу, в запросе содержиться имя интересующего хоста. Посылка осуществляется с использованием библиотечных функций через UDP-пакет в адрес локального DNS-сервера, сервер DNS возвращает соответствующий IP-адреc. В конечном счете пройдя по стеку протоколов (см. модель OSI) искомый IP адрес возвращается процессу запросившему его. Если локальный DNS сервер не может сам разрешить запросы, то он переправляет запрос вышесоящему серверу.

2. Пространство имен

С точки зрения службы DNS интернет представляет собой большую и динамическую систему имен. Управление этим пространством представляет сложную проблемму, ведь интернет разделен на несколько сот доменов верхнего уровня. Домен это множество компьютеров (хостов), объединенных в логическую группу. У каждого домена могут существовать поддомены, которые, в свою очередь, также могут состоять из других доменов и т. д. Получается структура очень похожая на дерево, только вверх ногами.

Все эти домены можно рассматривать в виде дерева, показанного на рис. 1. У этого дерева есть корень, ствол и ветки (домены имеющие поддомены) и листья домены н имеющие поддоменов (только хосты).

Рис. 1 дерево доменных имен в сети интернет

Пространство имен в принципе имеет логически стройную структуры. Домены верхнего уровня делятя на две большие группы. Первую состовляют домены государств. Вторая группа это "тематические домены" группирующие другие поддомены по определенной тематике. например домен com объединяет коммерческие организации, edu - учебные заведения и т.д.

3. Установка DNS

Службы DNS могут использоваться и в локальных сетях. Правда если в интернет это пожалуй единственный способ найти хост по его имени, то в локальных сетях для этого можно использовать службу WINS (детище компани MS). Но сейчас речть не о ней сейчас реьпойдет о том, как на базе компьютера с ОС Linux организовать в локальной сети свой собственный DNS сервер.

Как правило пакет BIND входит в большинство дитрибутивов. Если нет то его можно скачть с http://www.isc.org/products/ . после того как вы его скачали его нужно установить:
1. Создайте специальный каталог куда скопируйте архив.
2. Распакуем для чего войдя в каталог наберем:
      tar xvfz bind-XX_XX.tar.gz
3. Перейдем во вновь созданный програмой распаковки каталог
4. Набираем: ./configure
5.Собираем пакет командой: make
6. Инсталируем пакет командой: make install

Если устаначливать из rpm пакета то: rpm –i bind-xx-xx-x.i386.rpm

Все сервер установлен. О том как его запустить читайте статью "Установка и настройка DHCP" на этом сайте, все аналогично.

4.Записис ресурсов

Приведем основные записи ресурсов используемые для построкения зон.

Таблица 1. Основные записи ресурсов

Запись
Коментарий
SRV
Определяют местонахождение служб в пределах домена
SOA
Начало зоны. Содержит административную информацию.
NS
Идентифицирует серверы имен для данного домена
A
Отображение имени в адрес, составляют основную часть базы данных
PTR
Обратный указатель обеспечивает обратный перевод IP адресов в имена
CNAME
Каноническое имя, позволяет назначать узлу дополнительные имена.
TXT
Позволяют добавлять произвольный текст в файл
MX
Используется системой электронной почты для более эффективной маршрутизации

Таблица 2. Специальные символы

Символ
Значение
@
Обозначает имя текущего домена
( )
Объединяет несколько строк в одну строку
*
Метасимвол. Может применяться только в поле имя. Обозначает все возмпожные комбинации.
;
Строки коментария

 

Запись SOA
SOA – start of authorithy – начало полномочий. Обозначает начало зоны. Зона продолжается до тех пор, пока не встретится другая запись SOA. Наличие SOA указывает на то, что данный сервер DNS является первичным источником информации для данного домена.
Разберем подробнее возможную форму записи для ресурса. Имена узлов приведены для примера и являются вымышленными.
  stuff.org. IN SOA first.stuff.org. admni.first.stuff.org. (
                                                               2004123101 ; Порядковый номер
                                                               10800 ; Период обновления в секундах
                                                               3600 ; Интервал между попытками обновления ; в секундах
                                                               60448 ; Период устаревания в секундах
                                                               7200) ; Время жизни в секундах

Данный файл описывает зону stuff.org Класс зоны интернет (IN). Первичным сервером зоны является сервер first.stuff.org, адрес электронной почты администратора домена admin.first.stuff.org читать этот адрес надо как admin@first.stuff.org Следует также обратить внимание на точку в конце имени.

Порядковый номер это порядковый номер конфигурации. При его помощи вторичные сервера определяют момент когда надо загружать новую конфигурацию. При каждом изменении конфигурации порядковый номер должен монотонно возрастать. Как правило первая часть это дата изменения, а последняя это порядковый номер изменения в рамках данной даты. В нашем случае 31 декабря 2004 года. (Кто-то работает даже в новый год J)

Следующие четыре периода времени по умолчанию имеют формат в секундах, однако допускается и другая запись, для этого используются буквы: w – неделя; d – дни; h – часы; m – минуты.

Период обновления обозначает, как часто вторичные сервера обновляют данные с первичного. Обновление производится в том случае, если в конфигурации произошли изменения. О наличие изменений говорит разница в порядковых номерах. Обновление производиться в том случае если порядковый номер на первичном сервер больше.

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

Интервал -период устаревания обозначает период времени в течении которого вторичные сервера будут обслуживать домен, если первичный сервер не отвечает (невозможно провести обновление файла зоны).

Время нахождения в кэш отрицательных ответов. (В вресиях до 8.2 задавал время жизни запроса).

Запись NS
Задает сервер имен для данного домена. Обратите внимание на точку в конце записи.
Пример:
          stuff.org. IN NS first.stuff.org.
          stuff.org. IN NS second.stuff.org.

Запись А
Является основной записью базы данных DNS и отображает имя в адрес. Для каждого сетевого интерфейса существует одна запись. Это значит, что для компьютера может существовать несколько записей по каждой на один сетевой интерфейс.
Пример:
          first.stuff.org. IN A 128.100.241.212
          first.stuff.org. IN A 128.100.241.213
          second.stuff.org.IN A 128.100.241.214
Запись PTR
Обеспечивает обратный перевод, то есть перевод IP адресов в символьные имена. Точно также как и в предыдущем случае для каждого сетевого интерфейса существует только одна запись PTR. В простейшем случае это записанный наоборот IP адрес с суфиксом in-addr.arpa.
Пример:
          212.241.100.128. in-addr.arpa. IN PTR first.stuff.org.
          213. 241.100.128. in-addr.arpa. IN PTR first.stuff.org.
          214. 241.100.128. in-addr.arpa. IN PTR second.stuff.org.

Запись MX
Используется системой электронной почты для более эффективной маршрутизации. Запись МХ подменяет адресатов сообщений.
Пример
          stuff.org. IN MX 10 first.stuff.org.
          stuff.org. IN MX 20 second.stuff.org.
Эта запись означает, что вместо сервера почты stuff.org. , будут использоваться сервера first.stuff.org. и second.stuff.org.10 и 20 означают приоритет чем меньше число, тем больше приоритет. Допустимым является диапазон приоритета 0 – 65535. На практике как правило используется с шагом 10, что бы можно было поставть, что – то между 10 – 20 – 30 , не переписывая весь файл.

Запись CNAME
Каноническое имя, позволяет назначать узлу дополнительные имена. Как правило
используется для закрепления за компьютером определенных функций.
Например:
          www. stuff.org. IN CNAME second.stuff.org.

Запись SRV
Определяют местонахождение служб в пределах домена. С помощью этой записи легко менять адреса служб.
Например:
          http.tcp.www IN SRV 10 0 80 second.stuff.org.

Запись ТХТ
Задает произвольный текст.
Например:
          IN TXT “Это произвольный текст”

4. Простой домен

Теперь приведем пример простого домена в нем булут три машины. 1 сервер и две рабочие станции. IP адреса соответственно 192.168.0.1, 192.168.0.2, 192.168.0.3. Хочеться также обратить внимание на то, что при выборе имени своего домена надобыть осторожным и выбрать имя не имеющее аналогов в интернет, например домен можно назвать localdomain. Елси ваша сеть не имеет выхода в интернет завите как хотите.

При чтении листингов обязательно обращайте внимание на точки в конце имен. Отсутствие точки означает, что отсчет будет идти не от корневого домена, а от текущего. Также обратите внимание, что в файле named.conf точка не ставиться

Содержиниее named.conf
          ; В начале опишем локальную зону
          zone “0.0.127.in-addr.arpa” {
                                                  type master;
                                                  file “/etc/domain/ld127”;};
                                                  ;создаем основной сервер для 0.0.127.in-addr.arpa фоайл зоны в
                                                  ; файле “domain/ld127”

; создадим нашу основную зону
          ; она будет описана в файле domain/locacdomain

zone “localdomain”{
                                        notify no
                                        type master
                                        file “domain/ld”;};

; Обратная зона поиска
          zone “0.168.192.in-addr.arpa” {
                                        notify no;
                                        type master;
                                        file “ld168”;};

Итак в файле namad.conf - основном конфигурационном файле службы DNS мы задали три зоны. Каждая из этих зон согласно описанию будет распологаться в отдельном файле. Теперь рассмотрим содержимое этих файлов.

Содержание файла domain/ ld127
          @ IN SOA dns.localdomain. admin.mail.localdomain. (
                                                  2005031501 ; Порядковый номер
                                                  10800 ; Период обновления в секундах
                                                  3600 ; Интервал между попытками обновления ; в секундах
                                                  60448 ; Период устаревания в секундах
                                                  7200) ; Время жизни в секундах
                    

          ; Зададим сервер имен первую часть - @ IN можно опустить
                    NS dns.localdomain.
                    ; Это значит, что машина с адресом 127.0.1 называется localhost
                    1 PTR localhost.

Содержания файла основной зоны domain/ld
                    ; Файл зоны samba
                     @ IN SOA dns. localdomain admni.mail.localdomain (
                                                               2005031501 ; Порядковый номер
                                                               10800 ; Период обновления в секундах
                                                               3600 ; Интервал между попытками обновления ; в секундах
                                                               60448 ; Период устаревания в секундах
                                                              7200) ; Время жизни в секундах
                    NS dns.localdomain.;
                    MX 10 mail.localdomain. ; Почтовый сервер
                    ; Записи о ресурсах

                    ; Сервер
                    localhost A 127.0.0.1
                    dns A 192.168.0.1
                    mail A 192.168.0.1
                    
                     ; Рабочие станции
                    ws1 A 192.168.0.2
                    TXT “Первая рабочая станция”
                    ws2 A 192.168.0.3
                    TXT “вторая рабочая станция”

содержание фалйа обратной зоны domain/ld168
                    @ IN SOA dns.localdomain admni.mail.localdomain (
                                                            2005031501 ; Порядковый номер
                                                            10800 ; Период обновления в секундах
                                                            3600 ; Интервал между попытками обновления ; в секундах
                                                            60448 ; Период устаревания в секундах
                                                            7200) ; Время жизни в секундах
                    NS dns. samba.;
                    ; Обратные записи о ресурсах
                    1 PTR dns.localdomain
                    2 PTR ws1.localdomain
                    3 PTR ws2.localdomain

Тепреь о том где эти файлы распологаются. Как правило файл named.conf распоогается в /etc/named.conf, тогда все сотальные наши файлы будут распослатьс в директории /etc/domain/ Именно об этом и говорит то, что имена начинаются со слова domain.

Все эти три файла вы самостоятельно создаете в текстовом редакторе и записываете их в нужное место.

 

5. Проверка работоспособности

Прямая зона

Отправляем проверочный запрос:
          # nslookup
          >set q=any
          > ws1.localdomain.
В ответ должны получить IP адрес если получили значит все норамально.

Обратная зона

Отправляем проверочный запрос:
          # nslookup
          >set q=any
          > 192.168.0.2.
В ответ должны получить имя рабочей станции ws2.localdomain если получили значит все новрмально.

Ну вроде все. Теперь только укажите рабочим станциям какой DNS сервер использовать. Делается это в свойствах сетевого подключения на закладке DNS



 
 
Hosted by uCoz