Компьютерные сети Лекция 7 Доменная служба имён DNS - Букатов Александр Алексеевич

Страница создана Марк Лебедев
 
ПРОДОЛЖИТЬ ЧТЕНИЕ
Компьютерные сети Лекция 7 Доменная служба имён DNS - Букатов Александр Алексеевич
Компьютерные сети

               Лекция 7

Доменная служба имён DNS

 Букатов Александр Алексеевич
         baa@sfedu.ru

    © Компьютерные сети 2021 , Букатов А.А.
Назначение DNS (Domain Name Service)

•   Прикладные процессы, при взаимодействии с транспортным уровнем
    идентифицируют компьютеры их IP-адресами, а при взаимодействии
    с пользователями – символическими именами.

•   Преобразование символических имён компьютеров в их IP-адреса, а
    также выполнение обратного преобразования обеспечивают службы
    именования компьютеров в сети

•   DNS – основная служба именования компьютеров в сети,
    применяемая с 1984 года.

                    © Компьютерные сети 2021 , Букатов А.А.      2
Структура лекции

Далее рассматриваются следующие основные темы:
•   Старая система именования компьютеров глобальной сети
•   Краткая история создания DNS
•   Организация доменной система имён (Domain Name System - тоже
    DNS)
•   Служба DNS: Общая организация
•   Служба DNS: Программная организация
•   Служба DNS: Логика работы сервера DNS
•   Служба DNS: Логика обратного преобразования адреса в имя
•   Служба DNS: Формат записей файлов БД DNS
•   Служба DNS: Интерфейсы доступа к информации сервера имен

                       © Компьютерные сети 2021 , Букатов А.А.
                                                                   3
Старая система именования компьютеров

•   Файл hosts.txt в ARPANet хранился на сервере Стэндфордского
    исследовательского института SRI и раз в сутки скачивался на все
    компьютеры сети

•  В системах UNIX – это файл /etc/hosts
   Его записи имеют вид
IP-address cname [ aliases (псевдонимы) ] (cname – каноническое
(основное) имя)
• Обычно единственной строкой этого файла является строка
127.0.0.1 localhost

•   Недостатки: очень плохая масштабируемость (сложность обеспечения
    уникальности имен, большой объем работы по администрированию БД
    имен, относительно медленная реакция на изменения в БД имён)).
                        © Компьютерные сети 2021 , Букатов А.А.
                                                                       4
Причины создания
                   и краткая история DNS (1)

•   Уже к началу 1980-х годов количество компьютеров в ARPANet перевалило за
    тысячу, в 1983 году это количество превысило 4000
•   При таком количестве компьютеров в сети централизованное ведение единого
    файла hosts.txt стало весьма и весьма обременительным.
•   Поэтому к 1983 году был разработан Полом Мокапетрисом и Джоном Постелом
    проект децентрализованной службы имён (стандарты RFC 882 и RFC 883).
•   В первом из них описывается иерархическая доменная система именования
    (Domain Name System), во втором - проект реализации распределенной
    доменной службы имен (Domain Name Service - DNS).

                          © Компьютерные сети 2021 , Букатов А.А.
                                                                        5
Причины создания
                    и краткая история DNS (2)

•   Созданный проект DNS оказался очень удачным: с момента его создания и до
    сего времени он не претерпел никаких революционных изменений, а
    эволюционно развивался при развитии
    - как самой системы именования (например, введение имён, представленных
      в национальных алфавитах),
    - так и базовых сетевых протоколов (например - при создании протокола IPv6).
•   Разработкой RFC 882 и RFC 883 создание реально работающей, а не
    существующей лишь в проекте, службы DNS не завершилось. Для завершения
    необходимо было програмно реализовать составляющий основу этой службы
    демон сервера имен.
•   Реализация этого демона была выполнена уже в 1984 году 4-мя студентами
    Калифорнийского университета города Беркли и получила название BIND
    (Berkeley Internet Name Daemon - Берклиевский демон интернетовских имен).
    Этот демон и по сей день является самой распространенной программой
    сервера DNS.
                            © Компьютерные сети 2021 , Букатов А.А.
                                                                           6
Доменная система имен

•   Структура доменного пространства имен:
    иерархическая система имен, основанная на иерархии доменов (domain)
•   «Исторические» домены mil, gov, edu, com, org, net
•   Домены стран: uk, nw, sw, fr, it,     su, ru, ua
•   Прочие домены: например, mob
•   Кириллические домены: РФ, СТОПКОРОНОВИРУС.РФ и пр.
•   Традиции именования серверов прикладных служб: давать серверу псевдоним
    (alias), совпадающий с названием службы.
•   Интуитивный способ «вычисления» имен серверов по имени предоставляемой
    ими службы и названию организации (полному или сокращённому):
    www.nasa.gov, ftp.microsoft.com, www.mit.edu, www.mmcs.sfedu.ru
•   О различии границ доменов DNS и IP-сетей различных владельцев

                             Компьютерные сети 2021 , Букатов А.А         7
Общая организация DNS (1)

•   Ключевое понятие службы DNS – зона DNS – множество всех компьютеров,
    непосредственно входящих в домен

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

•   Каждую зону DNS должны обслуживать не менее 2-х серверов DNS

•   При этом каждый из серверов может обслуживать несколько зон

•   ВЫСОЧАЙШИЕ требования надёжности, предъявляемые к службе

                          © Компьютерные сети 2021 , Букатов А.А.
                                                                        8
Общая организация DNS (2)

•   Серверы DNS могут быть классифицированы по их роли и их организации
•   По их роли серверы DNS могут быть
    - первичными (primary, основной сервер)
    - вторичными (secondary, резервный сервер)
•   По организации серверы DNS могут быть:
    - главными (master) - содержат оригинал БД сервера
    - ведомыми (slave) – копируют все обновления БД главного снрвера
    - только кэширующими (caching only) – в БД содержатся только
      результаты ранее выполненных запросов
    - ресольверами (resolver, remote server) – не имеют собственной БД,
       иногда ресольверами ЛВС называют сервер имён ЛВС другого типа
•   Необходимость вторичных серверов для обеспечения
    - надёжности службы
    - ускорения работы DNS в подсетях с плохой коннективностью
                           © Компьютерные сети 2021 , Букатов А.А.        9
Программная организация DNS

1) демон named (bind или другие реализации демона имен)

2) конфигурационные файлы (БД) DNS
• Обычное место расположения БД DNS – каталог /etc/namedb/
•   В нем размещаются ряд файлов (имеющие общий формат записей). В этих
    файлах содержатся следующие сведения:
    – информация о серверах корневой зоны DNS
    – информация о компьютере, на котором размещен сервер DNS
    – информация о компьютерах зон, обслуживаемых данным сервером
    – информация для преобразования IP-адресов в доменные имена
      (IN-ADDR.ARPA)
•   На ресольвере компьютера пользователя есть только файл
    /etc/resolve.conf, содержащий информацию о серверах имён
                         © Компьютерные сети 2021 , Букатов А.А.    10
Логика работы сервера DNS (1)

•   Обычно запрос к DNS начинается с обращения к процессу-реcольверу,
    запущенному на локальном компьютере пользователя.
    - ресольвер перенаправляет запрос к серверу имен локальной сети,
      информация о котором указана в сетевых настройках локального
      ресольвера.
    - часто, если такая информация неизвестна, в настройках указывают
      открытые для всех серверы имён Google 8.8.8.8 и 8.8.4.4 или
      Cloudflare 1.1.1.1 и 1.0.0.1.
•   Сервер имён локальной сети проверяет наличие ответа у себя в кэше
    и, в случае отсутствия, обращается с тем же запросом к корневому
    серверу имен. Запрос к DNS серверу, при котором он выполняет
    полный поиск нужной информации, при необходимости обращаясь к
    другим DNS-серверам, называют рекурсивным.

                      © Компьютерные сети 2021 , Букатов А.А.
                                                                   11
Логика работы сервера DNS (2)

•   Запросы к службе DNS выполняются для прямого или обратного
    преобразования имён в IP-адреса и некоторых других функций
•   Все запросы от своих пользователей DNS сервер локальной сети
    обрабатывает рекурсивно
•   Запросы от пользователей извне локальный сервер DNS рекурсивно
    не обрабатывает, чтобы исключить возможность DDoS атак, так как
    рекурсивная обработка запроса – весьма затратная процедура.
•   Если окончательный ответ на запрос корневому серверу имен
    неизвестен (указанный компьютер не входит в его зону)
    - он отвечает списком IP-адресов серверов имен, отвечающих
      за следующую зону верхнего уровня
    - после этого сервер DNS локальной сети итеративно продолжает
      опрашивать DNS-серверы, направляя запрос к одному из
      полученных серверов имен и т.д.
                     © Компьютерные сети 2021 , Букатов А.А.
                                                                      12
Иллюстрация логики работы сервера DNS

           © Компьютерные сети 2021 , Букатов А.А   13
Логика обратного преобразования
                       IP-адресов в имена
           (с использованиемдомена IN-ADDR.ARPA)

•   Для выполнения обратного преобразования IP-адреса в доменное имя
    (каноническое) компьютера применяется тот же самый механизм.
•   Для того, чтобы это было возможным, IP-адрес вида n1.n2.n3.n4
    интерпретируется как доменное имя n4.n3.n2.n1.IN-ADDR.ARPA, в котором n4
    используется аналогично имени компьютера, а домены n3, n2 и n1
    последовательно входят вначале друг в друга, а потом в специальный домен
    IN-ADDR.ARPA, предназначенный для решения задачи преобразования IP-
    адресов в соответствующие доменные имена
    (для IPv6 IP-адрес представляется 8-ю 4-символьными 16-ми числами).
•   Зоны соответствующих “обратных” (reverse) доменов обычно обслуживаются
    серверами “прямых” зон, содержащих компьютеры с адресами из этих
    обратных зон. В БД этих серверов обратные зоны обычно описываются
    отдельными файлами преобразования адресов в имена. Формат записей этих
    файлов (и других файлов БД сервера имен) рассматривается ниже.

                           © Компьютерные сети 2021 , Букатов А.А      14
Формат записей файлов БД DNS

•   Каждый из файлов БД DNS (во всех версиях ОС) может содержать записи 2-
    х типов: SOA и RR

•   Запись SOA – Start Of Authority (начало зоны ответственности)
    находится в начале последовательного сегмента файла, все дальнейшие
    записи которого имеют формат RR,
    и описывают ресурсы (компьютеры и их роли) зоны.

•   Запись SOA имеет ряд параметров, одним из главных среди которых
    является номер версии информации о зоне. Значение этого параметра
    используется для синхронизации баз данных всех видов ведомых серверов
    с БД главного сервера

•   Запись RR (Resource Record – запись о ресурсе)

                           © Компьютерные сети 2021 , Букатов А.А.
                                                                          15
Формат записи RR

• Формат записи
[имя] [ttl]   класс-адреса тип-записи {данные, специфичные для типа}
    - правила умолчания для необязательных параметров

• Пример
www    IN       A       192.15.208.01
• Основные типы записей о ресурсах
  NS – запись указывает, что компьютер является сервером имен
  A – address – запись задает IP-адрес компьютера
  AAAA – информация об IPv6 адресе компьютера
  HINFO – информация, специфичная для компьютера, например тип его ОС
  CNAME – каноническое имя
  PTR – указатель; объяснить использование домена IN-ADDR.ARPA
  MX – Mail eXchanger – почтовый сервер зоны
                       © Компьютерные сети 2021 , Букатов А.А.         16
Интерфейсы доступа
             к информации сервера имен

1) команда (утилита) nslookup
   Использование (простейший формат)
nslookup {доменное имя | IP-адрес}
   если задано имя, печатает IP-адрес,
   если задан IP-адрес – печатает имя
        + специальные запросы

2) API: gethostbyname, gethostbyaddr
по заданному имени или IP-адресу компьютера
заполняют специальную структуру информацией
- о всех именах (каноническом и псевдонимах)
 - и IP-адресах (их столько, сколько есть сетевых интерфейсов) компьютера.

                       Компьютерные сети 2020, Букатов А.А            17
Спасибо за внимание!

  Компьютерные сети 2020, Букатов А.А   18
Вы также можете почитать