← 1.1.1.1 (DNS-резолвер) / 1.1.1.1
Разрешение на вышестоящих серверах
Если у 1.1.1.1 нет готового ответа в кэше, он обращается от вашего имени к авторитетным серверам имён. Авторитетными серверами имён называются DNS-серверы, которые хранят фактические записи домена. На этой странице описано, как 1.1.1.1 выбирает, к какому серверу имён обратиться, что происходит при недоступности сервера имён и как формируется итоговый ответ.
Минимизация имени запроса
При разрешении многоуровневого доменного имени, например foo.bar.example.com, 1.1.1.1 не раскрывает полное имя каждому серверу в цепочке, а передаёт лишь минимум информации, необходимой каждому из них. Например, при обращении к .com TLD-сервер, 1.1.1.1 сообщает только о том, что ему нужно найти example.com : части поддомена (foo.bar) не включаются. Это ограничивает объём информации, доступной промежуточным серверам, и снижает утечку приватных данных.
Корневая зона
1.1.1.1 использует локально размещённые копии файла корневой зоны ↗ вместо обращения к удалённым корневым серверам при каждом запросе. Файл корневой зоны содержит адреса всех серверов доменов верхнего уровня (TLD). Размещая его локально, 1.1.1.1 избегает лишнего обращения по сети к корневым серверам, что снижает задержку, повышает приватность и уменьшает нагрузку на глобальную систему корневых серверов DNS.
Выбор сервера имён
У большинства доменов для отказоустойчивости есть несколько авторитетных серверов имён. Когда 1.1.1.1 нужно обратиться к одному из них, выбор делается на основе измеренной производительности. Резолвер отслеживает метрики каждого сервера имён, в том числе время отклика (round-trip time, то есть время, за которое запрос доходит до сервера и возвращается обратно) и качество ответов, а затем выбирает сервер имён, который по статистике оказывался самым быстрым и надёжным в дата-центре, обрабатывающем ваш запрос.
Если выбранный сервер имён не отвечает вовремя или возвращает ошибку, 1.1.1.1 повторяет запрос к другому серверу имён той же зоны. См. Поведение при повторных попытках для получения подробностей.
Небольшая доля запросов также направляется на альтернативные серверы имён, чтобы данные об их производительности оставались актуальными. Это позволяет заново оценить ранее медленный сервер, если его производительность улучшилась. Подробнее о системе, лежащей в основе такого выбора, см. в Статья блога об архитектуре BigPineapple ↗.
Поведение при повторных попытках
Если сервер имён не отвечает вовремя или возвращает временную ошибку, 1.1.1.1 повторяет запрос к другому авторитетному серверу имён той же зоны. Недоступный сервер получает более низкий приоритет, чтобы последующие запросы предпочитали более надёжные варианты. 1.1.1.1 периодически проверяет серверы с пониженным приоритетом, чтобы обнаружить их восстановление.
Когда несколько клиентов одновременно запрашивают один и тот же домен, 1.1.1.1 объединяет исходящие запросы, чтобы один выполняющийся запрос обслуживал все ожидающие клиенты. Точные интервалы повторных попыток и логика ранжирования со временем настраиваются и могут изменяться.
Выбор ответа
На каждый запрос 1.1.1.1 отправляет клиенту только один ответ. Если авторитетные серверы имён расходятся во мнениях, выбор ответа 1.1.1.1 зависит от типа полученных ответов.
Ниже перечислены актуальные коды ответов DNS:
NOERROR: запрос выполнен успешно. Ответ содержит запрошенные записи либо указывает, что имя существует, но не имеет записей запрошенного типа (иногда это называютNODATA).NXDOMAIN: доменное имя не существует.SERVFAIL: на сервере имён произошла внутренняя ошибка, и он не смог ответить на запрос.REFUSED: сервер имён отказался отвечать на запрос.
Как 1.1.1.1 обрабатывает расхождения между серверами имён:
NOERRORпо сравнению сNXDOMAIN: Оба ответа считаются корректными авторитетными ответами. 1.1.1.1 возвращает тот ответ, который получает первым, и не опрашивает остальные серверы имён для сравнения. Авторитетные серверы имён одной и той же зоны должны давать согласованные ответы. Если один из них возвращаетNXDOMAINа другой возвращаетNOERRORдля одного и того же имени, это указывает на ошибку настройки на стороне авторитетного сервера.- Тайм-аут в сравнении с корректным ответом: Тайм-аут не считается ответом. 1.1.1.1 повторяет запрос к другому серверу имён и возвращает первый полученный корректный ответ.
SERVFAILилиREFUSEDпо сравнению с корректным ответом: Временные сбои считаются ошибками вышестоящего сервера, а не авторитетными ответами. 1.1.1.1 повторяет запрос к другому серверу имён и возвращает первый корректный ответ. Только если все серверы имён возвращают ошибки, 1.1.1.1 возвращает клиенту сбой, обычноSERVFAIL, илиREFUSEDесли именно это стабильно возвращают серверы имён.