Лабораторные работы по ПО/Система доменных имен сервера Bind: различия между версиями

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(Прямая зона поддомена)
 
(не показано 15 промежуточных версий 4 участников)
Строка 1: Строка 1:
 
=Настройка Сервера Доменных Имен (DNS)=
 
=Настройка Сервера Доменных Имен (DNS)=
В предидущих практических работах мы настраивали сетевые сервисы и получали к ним доступ по ip адресам. С точки зрения разработки протоколов и программного обеспечения адреса компьютеров выраженные в цифровом формате очень удобны. Но было бы странно предлагать другому человеку зайти на новый сайт с адресом 192.168.5.20. Было бы гораздо удобнее сказать "зайди на хост с именем serv2.lab.nntc.nnov.ru". Пусть даже немного длиннее, но уже понятнее и гораздо лучше запоминаеться. Именно для этого в начале 90-х годов был придуман сервис DNS. DNS (Domain Naim Service) выполняет только одну, но очень важную задачу - связи буквенных имен компьютеров и их числовых ip адресов.  
+
В предыдущих практических работах мы настраивали сетевые сервисы и получали к ним доступ по ip адресам. С точки зрения разработки протоколов и программного обеспечения адреса компьютеров выраженные в цифровом формате очень удобны. Но было бы странно предлагать другому человеку зайти на новый сайт с адресом 192.168.5.20. Было бы гораздо удобнее сказать "зайди на хост с именем serv2.lab.nntc.nnov.ru". Пусть даже немного длиннее, но уже понятнее и гораздо лучше запоминается. Именно для этого в начале 90-х годов был придуман сервис DNS. DNS (Domain Name Service) выполняет только одну, но очень важную задачу - связи буквенных имен компьютеров и их числовых ip адресов.  
  
В DNS храняться имена компьютеров в сети, например mail.ru, и соответствующие этим именам ip-адреса.  
+
В DNS хранятся имена компьютеров в сети, например mail.ru, и соответствующие этим именам ip-адреса.  
  
И каждый раз при обращении через web-брайзер к сайту сначало производиться запрос к DNS серверу, в ответ на который DNS сервер возвращает соответсвующий ip-адрес сайта и дальше все взаимодействия с запрашиваемым сайтом производяться по его ip-адресу.
+
И каждый раз при обращении через web-брайзер к сайту сначала производиться запрос к DNS серверу, в ответ на который DNS сервер возвращает соответствующий ip-адрес сайта и дальше все взаимодействия с запрашиваемым сайтом производятся по его ip-адресу.
  
 
В этой работе мы:  
 
В этой работе мы:  
Строка 14: Строка 14:
 
Самым распространенным в Internet является сервер доменных имен BIND (Berkley Internet Nameserver Daemon). Он используется более чем на 80% интернет серверов. Мы так же воспользуемся им.
 
Самым распространенным в Internet является сервер доменных имен BIND (Berkley Internet Nameserver Daemon). Он используется более чем на 80% интернет серверов. Мы так же воспользуемся им.
  
Все настройки нужно будет производить на сервере. Зайдите на сервер с помощью удаленного доступа к консоли по протоколу ssh, как вы это делали при выполнении предидущих заданий.   
+
Все настройки нужно будет производить на сервере. Зайдите на сервер с помощью удаленного доступа к консоли по протоколу ssh, как вы это делали при выполнении предыдущих заданий.   
  
В репозитории сервис bind представлен пакетом 9-й версии этого приложения. Установм его коммандой:
+
В репозитории сервис bind представлен пакетом 9-й версии этого приложения. Установим его командой:
  
 
  sudo aptitude install bind9
 
  sudo aptitude install bind9
Строка 34: Строка 34:
 
           };
 
           };
  
Теперь все DNS-запросы к внешним адресам, сделанные серез DNS-сервер на вашем сервере, будут обрабатыватся основным DNS-сервером колледжа.
+
Теперь все DNS-запросы к внешним адресам, сделанные через DNS-сервер на вашем сервере, будут обрабатываться основным DNS-сервером колледжа.
  
 
==Прямая зона поддомена==  
 
==Прямая зона поддомена==  
 
Создадим прямую зону нашего поддомена с двумя записями.
 
Создадим прямую зону нашего поддомена с двумя записями.
  
Для этого в файле /etc/bind/bind.conf.local опишем нашу зону:
+
Для этого в файле /etc/bind/named.conf.local опишем нашу зону:
  
  sudo nano /etc/bind/bind.conf.local
+
  sudo nano /etc/bind/named.conf.local
 
   
 
   
  zone "srv1.lab.nntc" {
+
  zone "srv2.lab6.nntc" {
 
       type master;
 
       type master;
       file "/etc/bind/db.srv1";
+
       file "/etc/bind/db.srv2";
 
       notify no;
 
       notify no;
 
  };
 
  };
Строка 51: Строка 51:
 
Теперь создадим файл, непосредственно содержащий информацию об именах компьютеров и соответствующих им ip-адресах.
 
Теперь создадим файл, непосредственно содержащий информацию об именах компьютеров и соответствующих им ip-адресах.
  
  sudo nano /etc/bind/db.srv1
+
  sudo nano /etc/bind/db.srv2
+
 
   
+
  $TTL 3600
  @      IN    SOA  ns.srv1.lab.nntc. root.srv1.lad.nntc. (
+
  @      IN    SOA  ns1.srv2.lab6.nntc. root.srv2.lab6.nntc. (
             93011120 ; серийный номер
+
             20091123 ; seriyniy nomer
               10800 ; обновление каждые 3 часа
+
               2M    ; obnovlyat kahdie 2 minuty
                3600 ; повтор каждый час
+
              3M    ; povtor kazdie 3 minuty
            3600000 ; хранить информацию 1000 часов
+
              1D    ; hranit 1 den
              86400) ; TTL записи — 24 часа
+
              30)   ; TTL zapisy - 30 minut
 
            
 
            
  @       IN NS      ns.srv1.lab.nntc.
+
  @       IN NS      ns1.srv2.lab6.nntc.
  srv1    IN A        192.168.5.2
+
  @        IN A        192.168.6.2
  ns     IN A        192.168.5.2       
+
  ns1     IN A        192.168.6.2       
  
 
Сохраним файл и перезапустим сервис bind
 
Сохраним файл и перезапустим сервис bind
  
  sudo /etc/init.d/bind restart
+
  sudo /etc/init.d/bind9 restart
  
 
==Проверка работоспособности зоны==
 
==Проверка работоспособности зоны==
  
Давайте проверим правильность работы нашего поддомена. В терминате компьютера за которым вы непосредственно седите (не на виртуальном сервере) выполните команду nslookup с имен нашего поддомена в качестве параметра.
+
Давайте проверим правильность работы нашего поддомена. В терминале компьютера за которым вы непосредственно сидите (не на виртуальном сервере) выполните команду nslookup с имен нашего поддомена в качестве параметра.
  
  nslookup srv1.lab.nntc.
+
  nslookup srv2.lab6.nntc [ip адрес вашего DNS сервера]
  
Наличие точки в конце адреса хоста зависит от параметров в файле /etc/resolv.conf. Если ваш dhcp сервер соощает настройки dns сервера с параметром '''search''', то вам следует соохранить точку в конце доменново имени. Иначе значение параметра search будет автоматически подставлено к внутреннему адресу srv1.lab.nntc и вы получите неверный запрос.
+
Наличие точки в конце адреса хоста зависит от параметров в файле /etc/resolv.conf. Если ваш dhcp сервер сообщает настройки dns сервера с параметром '''search''', то вам следует соохранить точку в конце доменного имени. Иначе значение параметра search будет автоматически подставлено к внутреннему адресу srv1.lab.nntc и вы получите неверный запрос.
 
Если параметр search в /etc/resolv.conf отсутствует точка в конце доменного имени не обязательна.
 
Если параметр search в /etc/resolv.conf отсутствует точка в конце доменного имени не обязательна.
  
В ответ на комманду вы должны получить соответствующий имени домена ip-адрес.
+
В ответ на команду вы должны получить соответствующий имени домена ip-адрес.
  
 
Если вы получаете именно тот адрес, который задавали в файле db.srv1 - значит все работает правильно.
 
Если вы получаете именно тот адрес, который задавали в файле db.srv1 - значит все работает правильно.
 +
 +
===Если не получается===
 +
 +
Dec  2 08:11:45 lab-srv03 named[6356]: dns_rdata_fromtext: /etc/bind/db.srv3:1: near 'nntc.': not a valid number
 +
Dec  2 08:11:45 lab-srv03 named[6356]: zone srv3.lab.nntc/IN: loading from master file /etc/bind/db.srv3 failed: not a valid number
  
 
==Добавление дополнительных хостов==
 
==Добавление дополнительных хостов==
  
Теперь у вас есть возможность создавать доменные записи в доменной зоне, обслуживаемой вашим сервером. Давайте создадим несколько дополнительных записей для каждого из сервисов, работающих на нашем сервере. Это не повлияет на настройки сервисов, но, возможно, созаст некоторое удобство для пользователей. К тому же, если вы захотите переместить один из ваших сервисов на другой компьютер, все что потреьуеться - изменить запись в DNS-зоне. Для пользователей перенос сервиса пройдет незаметно.
+
Теперь у вас есть возможность создавать доменные записи в доменной зоне, обслуживаемой вашим сервером. Давайте создадим несколько дополнительных записей для каждого из сервисов, работающих на нашем сервере. Это не повлияет на настройки сервисов, но, возможно, создаст некоторое удобство для пользователей. К тому же, если вы захотите переместить один из ваших сервисов на другой компьютер, все что потребуется - изменить запись в DNS-зоне. Для пользователей перенос сервиса пройдет незаметно.
  
Давайте создадим две записи, www.srv1.lab.nntc и ftp.srv1.lab.nntc
+
Давайте создадим две записи, www.srv2.lab.nntc и ftp.srv2.lab.nntc
  
  sudo nano /etc/bind/db.dhsilabs.com
+
  sudo nano /etc/bind/db.srv2
 
   
 
   
 
   
 
   
  @      IN    SOA  ns.srv1.lab.nntc. root.srv1.lad.nntc. (
+
$TTL 3600
             93011120 ; серийный номер
+
  @      IN    SOA  ns1.srv2.lab6.nntc. root.srv2.lad6.nntc. (
               10800 ; обновление каждые 3 часа
+
             20091123 ; серийный номер
                3600 ; повтор каждый час
+
               2M    ; обновление каждые 2 минуты
            3600000 ; хранить информацию 1000 часов
+
              3M    ; повтор каждый 3 минуты
              86400) ; TTL записи — 24 часа
+
              1D    ; хранить 1 день
 +
              30)   ; TTL записи — 30 минут
 
            
 
            
  @       IN NS      ns.srv1.lab.nntc.
+
  @       IN NS      ns1.srv2.lab6.nntc.
  srv1    IN A        192.168.5.2
+
  @        IN A        192.168.6.2
  ns     IN A        192.168.5.2   
+
  ns1     IN A        192.168.6.2   
  '''www      IN A      192.168.5.2'''
+
  '''www      IN A      192.168.6.2'''
  '''ftp      IN A      192.168.5.2'''
+
  '''ftp      IN A      192.168.6.2'''
  
 
Перезапускаем сервис bind  
 
Перезапускаем сервис bind  
Строка 110: Строка 116:
 
И проверяем работоспособность новых доменных записей
 
И проверяем работоспособность новых доменных записей
  
  nslookup www.srv1.lab.nntc
+
  nslookup www.srv2.lab6.nntc [ip адрес вашего DNS сервера]
 
   
 
   
  nslookup ftp.srv1.lab.nntc
+
  nslookup ftp.srv2.lab6.nntc [ip адрес вашего DNS сервера]

Текущая версия на 11:07, 30 марта 2017

Настройка Сервера Доменных Имен (DNS)

В предыдущих практических работах мы настраивали сетевые сервисы и получали к ним доступ по ip адресам. С точки зрения разработки протоколов и программного обеспечения адреса компьютеров выраженные в цифровом формате очень удобны. Но было бы странно предлагать другому человеку зайти на новый сайт с адресом 192.168.5.20. Было бы гораздо удобнее сказать "зайди на хост с именем serv2.lab.nntc.nnov.ru". Пусть даже немного длиннее, но уже понятнее и гораздо лучше запоминается. Именно для этого в начале 90-х годов был придуман сервис DNS. DNS (Domain Name Service) выполняет только одну, но очень важную задачу - связи буквенных имен компьютеров и их числовых ip адресов.

В DNS хранятся имена компьютеров в сети, например mail.ru, и соответствующие этим именам ip-адреса.

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

В этой работе мы:

  • установим свой DNS сервер, обслуживающий нашу под-зону имен
  • создадим две записи в нашей подзоне, отдельно для сервиса www и ftp
  • подготовим DNS сервер для создания виртуальных доменов в Apache в следующей практической работе

Установка сервера доменных имен BIND

Самым распространенным в Internet является сервер доменных имен BIND (Berkley Internet Nameserver Daemon). Он используется более чем на 80% интернет серверов. Мы так же воспользуемся им.

Все настройки нужно будет производить на сервере. Зайдите на сервер с помощью удаленного доступа к консоли по протоколу ssh, как вы это делали при выполнении предыдущих заданий.

В репозитории сервис bind представлен пакетом 9-й версии этого приложения. Установим его командой:

sudo aptitude install bind9

После установки пакета перейдите в директорию с конфигурационными файлами сервиса bind:

cd /etc/bind

Базовая настройка сервиса BIND

Сразу после установки сервер настроен на работу в качестве кэширующего DNS-сервера и при запросах к нему делает обращения к корневым DNS-серверам, указанным в файле /etc/bind/db.root.

В нашем случае наш DNS-сервер должен будет обслуживать один из поддоменов колледжа и обращаться за адресами компьютеров вне своей под-зоны только через колледжный DNS-сервер. Для этого в файле /etc/bind/named.conf.options нам потреуеться добавить параметр forwarders.

sudo nano /etc/bind/named.conf.options

forwarders {
            192.168.10.1;
         };

Теперь все DNS-запросы к внешним адресам, сделанные через DNS-сервер на вашем сервере, будут обрабатываться основным DNS-сервером колледжа.

Прямая зона поддомена

Создадим прямую зону нашего поддомена с двумя записями.

Для этого в файле /etc/bind/named.conf.local опишем нашу зону:

sudo nano /etc/bind/named.conf.local

zone "srv2.lab6.nntc" {
     type master;
     file "/etc/bind/db.srv2";
     notify no;
};

Теперь создадим файл, непосредственно содержащий информацию об именах компьютеров и соответствующих им ip-адресах.

sudo nano /etc/bind/db.srv2
$TTL 3600
@       IN    SOA   ns1.srv2.lab6.nntc. root.srv2.lab6.nntc. (
           20091123 ; seriyniy nomer
              2M    ; obnovlyat kahdie 2 minuty
              3M    ; povtor kazdie 3 minuty
              1D    ; hranit 1 den
              30)   ; TTL zapisy - 30 minut
          
@        IN NS       ns1.srv2.lab6.nntc.
@        IN A        192.168.6.2
ns1      IN A        192.168.6.2      

Сохраним файл и перезапустим сервис bind

sudo /etc/init.d/bind9 restart

Проверка работоспособности зоны

Давайте проверим правильность работы нашего поддомена. В терминале компьютера за которым вы непосредственно сидите (не на виртуальном сервере) выполните команду nslookup с имен нашего поддомена в качестве параметра.

nslookup srv2.lab6.nntc [ip адрес вашего DNS сервера]

Наличие точки в конце адреса хоста зависит от параметров в файле /etc/resolv.conf. Если ваш dhcp сервер сообщает настройки dns сервера с параметром search, то вам следует соохранить точку в конце доменного имени. Иначе значение параметра search будет автоматически подставлено к внутреннему адресу srv1.lab.nntc и вы получите неверный запрос. Если параметр search в /etc/resolv.conf отсутствует точка в конце доменного имени не обязательна.

В ответ на команду вы должны получить соответствующий имени домена ip-адрес.

Если вы получаете именно тот адрес, который задавали в файле db.srv1 - значит все работает правильно.

Если не получается

Dec  2 08:11:45 lab-srv03 named[6356]: dns_rdata_fromtext: /etc/bind/db.srv3:1: near 'nntc.': not a valid number
Dec  2 08:11:45 lab-srv03 named[6356]: zone srv3.lab.nntc/IN: loading from master file /etc/bind/db.srv3 failed: not a valid number

Добавление дополнительных хостов

Теперь у вас есть возможность создавать доменные записи в доменной зоне, обслуживаемой вашим сервером. Давайте создадим несколько дополнительных записей для каждого из сервисов, работающих на нашем сервере. Это не повлияет на настройки сервисов, но, возможно, создаст некоторое удобство для пользователей. К тому же, если вы захотите переместить один из ваших сервисов на другой компьютер, все что потребуется - изменить запись в DNS-зоне. Для пользователей перенос сервиса пройдет незаметно.

Давайте создадим две записи, www.srv2.lab.nntc и ftp.srv2.lab.nntc

sudo nano /etc/bind/db.srv2


$TTL 3600
@       IN    SOA   ns1.srv2.lab6.nntc. root.srv2.lad6.nntc. (
           20091123 ; серийный номер
              2M    ; обновление каждые 2 минуты
              3M    ; повтор каждый 3 минуты
              1D    ; хранить 1 день
              30)   ; TTL записи — 30 минут
          
@        IN NS       ns1.srv2.lab6.nntc.
@        IN A        192.168.6.2
ns1      IN A        192.168.6.2  
www      IN A       192.168.6.2
ftp      IN A       192.168.6.2

Перезапускаем сервис bind

sudo /etc/init.d/bind9 restart

И проверяем работоспособность новых доменных записей

nslookup www.srv2.lab6.nntc [ip адрес вашего DNS сервера]

nslookup ftp.srv2.lab6.nntc [ip адрес вашего DNS сервера]