Примеры работы резолвера
Пример N1.
- Клиент вводит доменное имя в браузер.
- Резолвер посылает локальному кэширующему DNS серверу провайдера рекурсивный запрос, в котором просит определить IP адрес домена.
- Локальный кэширующий DNS сервер находит информацию о доменном имени в кэше и возвращает резолверу запрошенный IP адрес.
Пример N2.
- Клиент вводит доменное имя в браузер.
- Резолвер посылает локальному кэширующему DNS серверу провайдера рекурсивный запрос, в котором просит определить IP адрес домена.
- Локальный кэширующий DNS сервер просматривает свои зоны и не находит зону, содержащую указанное имя домена. Тогда он проверяет, есть ли у него информация о DNS серверах, поддерживающих данную зону.
- Локальный кэширующий DNS сервер находит информацию о DNS серверах, поддерживающих данную зону.
- Локальный кэширующий DNS сервер посылает DNS серверу, ответственному за данную зону итеративный запрос.
- DNS сервер домена, ответственный за данную зону, возвращает IP адреса серверов имен, обслуживающих домен.
- Локальный кэширующий DNS сервер посылает DNS серверу домена итеративный запрос.
- DNS сервер домена возвращает IP адрес.
- Локальный кэширующий DNS сервер возвращает резолверу запрошенный IP адрес.
Пример N3.
- Клиент вводит доменное имя в браузер.
- Резолвер посылает локальному DNS серверу провайдера рекурсивный запрос, в котором просит определить IP адрес домена.
- Локальный кэширующий DNS сервер просматривает свои зоны и не находит зону, содержащую указанное имя домена. Тогда он проверяет, есть ли у него информация о DNS серверах, поддерживающих данную зону.
- Локальный кэширующий DNS сервер не находит информацию о DNS серверах, поддерживающих данную зону и посылает к корневому серверу имен итеративный запрос.<>/li>
- Корневой DNS сервер, возвращает IP адреса серверов имен для домена верхнего уровня.
- Локальный кэширующий DNS сервер посылает DNS серверу, ответственному за данную зону итеративный запрос.
- DNS сервер, ответственный за данную зону, возвращает IP адреса серверов имен, обслуживающих домен.
- Локальный кэширующий DNS сервер посылает DNS серверу домена итеративный запрос.
- DNS сервер домена возвращает IP адрес.
- Локальный кэширующий DNS сервер возвращает резолверу запрошенный IP адрес.
Локальный кэширующий сервер самостоятельно опрашивает все серверы доменных имен, поэтому он обменивается с ними нерекурсивными запросами.
Если процесс резолвинга не может состояться, то будет получен один из ответов:
- NXDOMAIN - домен не существует.
- SERVFAIL - сбой сервера.
- REFUSED - нет прав доступа.
- TIMEOUT - превышено время ожидания ответа.
Посмотреть, как происходит разрешение доменного имени, можно командой: nslookup -debug
Разные серверы, применяют разные алгоритмы выбора первого сервера для опроса.
BIND выбирает сервер с наименьшим RTT (Round Trip Time), а Windows выбирает случайным образом из полученного списка.
Время между отправкой запроса и получением ответа, позволяет определять двусторонние задержки (RTT) по маршруту и частоту потери пакетов, то есть косвенно определять загруженность на каналах передачи данных и промежуточных устройствах. Для определения RTT используется утилита ping.