Примеры работы резолвера

Пример N1.

  1. Клиент вводит доменное имя в браузер.
  2. Резолвер посылает локальному кэширующему DNS серверу провайдера рекурсивный запрос, в котором просит определить IP адрес домена.
  3. Локальный кэширующий DNS сервер находит информацию о доменном имени в кэше и возвращает резолверу запрошенный IP адрес.

Пример N2.

  1. Клиент вводит доменное имя в браузер.
  2. Резолвер посылает локальному кэширующему DNS серверу провайдера рекурсивный запрос, в котором просит определить IP адрес домена.
  3. Локальный кэширующий DNS сервер просматривает свои зоны и не находит зону, содержащую указанное имя домена. Тогда он проверяет, есть ли у него информация о DNS серверах, поддерживающих данную зону.
  4. Локальный кэширующий DNS сервер находит информацию о DNS серверах, поддерживающих данную зону.
  5. Локальный кэширующий DNS сервер посылает DNS серверу, ответственному за данную зону итеративный запрос.
  6. DNS сервер домена, ответственный за данную зону, возвращает IP адреса серверов имен, обслуживающих домен.
  7. Локальный кэширующий DNS сервер посылает DNS серверу домена итеративный запрос.
  8. DNS сервер домена возвращает IP адрес.
  9. Локальный кэширующий DNS сервер возвращает резолверу запрошенный IP адрес.

Пример N3.

  1. Клиент вводит доменное имя в браузер.
  2. Резолвер посылает локальному DNS серверу провайдера рекурсивный запрос, в котором просит определить IP адрес домена.
  3. Локальный кэширующий DNS сервер просматривает свои зоны и не находит зону, содержащую указанное имя домена. Тогда он проверяет, есть ли у него информация о DNS серверах, поддерживающих данную зону.
  4. Локальный кэширующий DNS сервер не находит информацию о DNS серверах, поддерживающих данную зону и посылает к корневому серверу имен итеративный запрос.<>/li>
  5. Корневой DNS сервер, возвращает IP адреса серверов имен для домена верхнего уровня.
  6. Локальный кэширующий DNS сервер посылает DNS серверу, ответственному за данную зону итеративный запрос.
  7. DNS сервер, ответственный за данную зону, возвращает IP адреса серверов имен, обслуживающих домен.
  8. Локальный кэширующий DNS сервер посылает DNS серверу домена итеративный запрос.
  9. DNS сервер домена возвращает IP адрес.
  10. Локальный кэширующий DNS сервер возвращает резолверу запрошенный IP адрес.

Локальный кэширующий сервер самостоятельно опрашивает все серверы доменных имен, поэтому он обменивается с ними нерекурсивными запросами.

Если процесс резолвинга не может состояться, то будет получен один из ответов:

  • NXDOMAIN - домен не существует.
  • SERVFAIL - сбой сервера.
  • REFUSED - нет прав доступа.
  • TIMEOUT - превышено время ожидания ответа.

Посмотреть, как происходит разрешение доменного имени, можно командой: nslookup -debug

Разные серверы, применяют разные алгоритмы выбора первого сервера для опроса.

BIND выбирает сервер с наименьшим RTT (Round Trip Time), а Windows выбирает случайным образом из полученного списка.

Время между отправкой запроса и получением ответа, позволяет определять двусторонние задержки (RTT) по маршруту и частоту потери пакетов, то есть косвенно определять загруженность на каналах передачи данных и промежуточных устройствах. Для определения RTT используется утилита ping.