К сожалению, ответ здесь "это зависит". Факторы, от которых это зависит, будут зависеть от домена и от того, как настроены серверы-владельцы, а также от того, как настроен ваш собственный локальный DNS.
Во-первых, например, в отношении возвращаемых записей NS: совершенно возможно рандомизировать порядок, в котором эти записи возвращаются, поэтому порядок может отличаться при каждом запросе. С другой стороны, это делается не всеми реализациями DNS, поэтому вы вполне можете получить статически упорядоченный список. Дело в том, что вы не можете быть уверены.
Затем, некоторые реализации DNS будут запрашивать каждый NS параллельно и использовать тот, который ответит первым. Другие поразят каждый, определят самый быстрый за некоторое количество запросов и используют тот. Или это может быть просто круговой.
Есть несколько RFC для DNS, два из наиболее полезных, которые я нашел:
http://www.faqs.org/rfcs/rfc1912.html
http://www.faqs.org/rfcs/rfc1033.html
Я понимаю, что это что-то вроде отсутствия ответа, без какой-либо определенной цели, которую вы можете отнять, но, учитывая вышесказанное, единственный верный способ определить поведение для данного домена - это проверить.
Наиболее распространенная реализация, которую я видел на уровне клиентов, таких как интернет-провайдеры по всему миру, выглядит следующим образом:
Этот процесс повторяется для КАЖДОГО поиска записи. Однако только первый запрос выполняет всю работу; IP-адреса сервера имен будут кэшироваться после этого, и последующие запросы к DNS-серверу ISP, которые будут кэшироваться, быстро смогут перейти к шагу 8.
Теперь, что касается рандомизации шага 8, он работает на уровне записи. Допустим, что широкополосный абонент этого провайдера спросил о следующих записях:
Каждая запись будет обрабатываться как отдельная «сущность», независимо кэшироваться и просматриваться. Итак, скажем, подписчик и Интернет-провайдер никогда не сталкивались с доменом раньше, и оба имеют полностью нулевые кэшированные записи. Поиск может быть следующим:
Всякий раз, когда срок действия кэшированных записей постепенно истекает, процесс повторяется, поэтому вы даже не знаете, что последующие запросы для этой записи снова будут использовать тот же сервер.
Поэтому ваша самая большая цель - убедиться, что все ваши DNS-серверы полностью синхронизированы друг с другом, идеально отражая каждую запись DNS на каждом сервере. Вы никогда не знаете, на какой сервер будет работать DNS-клиент, и вы не можете рассчитывать на какой-либо заказ. Там нет такой вещи.
Кроме того, как упомянул Адам С, DNS-серверы серверного уровня (example.com) сами могут возвращать записи NS и рандомизировать их порядок. Обычные DNS-серверы очень часто рандомизируют свои записи NS из-за небольшого несоответствия тому, что плохая реализация DNS всегда выбирает первый возвращаемый namserver. Однако серверы имен ROOT TLD (упомянутые ранее) никогда не будут рандомизировать список, и их список - это то, что действительно имеет значение, когда дело доходит до разрешения домена. Вот почему большинство реализаций выбирают случайный сервер из списков серверов имен, чтобы всегда не попадать на один и тот же сервер и не перегружать его.
Хорошо, это ваш пример того, как работает DNS и что вы должны помнить.
Отказ от ответственности: более высокие цели в жизни, чем управление DNS, могут быть доступны, но продаются отдельно, используйте свое воображение. ;-)
источник