У нас есть DNS-домен с 5 уровнями CNAME по историческим причинам. Некоторые вещи были переданы на аутсорсинг для высокой доступности и т. Д., Но это не главное. У меня вопрос, есть ли у 5 CNAME избыточное разрешение для DNS-преобразователя? Я не смог найти ни одного известного веб-сайта с более чем 2-3 уровнями вложенных CNAME, указывающих на разные домены DNS.
Наши прыжки CNAME выглядят следующим образом: (я использую xyz только в качестве примера)
www.xyz.com -> xyz.akadns.net -> xyz.worldwide.akadns.net -> xyz.cedexis.net -> xyz.msedge.net -> host1.msedge.net (финальная запись A \ AAAA)
Я вижу, как многие клиенты жалуются на проблемы с разрешением DNS на нашем сайте, когда другие сайты работают для них нормально, хотя когда я использую http://check-host.net/check-dns?host=www.xyz.com для тестирования нашего DNS разрешающая способность.
Кажется, во всем мире все работает нормально. Мой вывод заключается в том, что DNS-провайдер локальных интернет-провайдеров облажается, когда не удается разрешить один из указанных выше переходов. nslookup не работает на этих клиентских компьютерах только для нашего веб-сайта, и это слишком спорадически.
Является ли этот вид многоуровневого CNAME плохим дизайном в целом?
источник
Ответы:
Цепочки CNAME to CNAME не запрещены, но, как вы уже знаете, это не очень надежное решение.
Каждый дополнительный CNAME увеличивает глубину рекурсии для резольвера, и эта глубина не всегда неограничена. Также вы рискуете создать петли или запустить алгоритм обнаружения петель.
Чтобы получить представление о том, сколько и какие запросы должен выполнить ваш сервер имен пользователей, выполните трассировку DNS:
или в Windows
источник
Бруджин прав, но на самом деле глубина рекурсии намного хуже, чем что-либо, что
dig +trace
вам покажет. Глубина рекурсии - это то, над чем часто насмехаются и слишком упрощают, но эти люди забывают, что вы не просто решаете ~ 5CNAME
записей. Это связано с тем, что при разрешении целиCNAME
записи возникает необходимость поиска каждого сервера имен в пути, что зачастую намного больше, чем кажется на первый взгляд.Живет ли
CNAME
цель в другом домене? Вам нужно будет вернуться к его серверам имен, что требует не толькоNS
поиска записей, но иA(AAA)
поиска, где нет клея. Находятся ли серверы имен для этих серверов имен в другом домене верхнего уровня? Если эти ДВУ не разделяют серверы имен, скорее всего, склеенные записи не будут включены, и вам также придется проходить через другие серверы имен ДВУ. И так далее.Каждая
CNAME
запись, добавленная в цепочку, может экспоненциально увеличивать количество запросов на поиск в зависимости от количества серверов имен, которые необходимо рекурсивно просматривать. Эти цепочки поискаCNAME
+NS
+A(AAA)
записей могут, в свою очередь, запутаться до безумия, достигнув более 150 уровней в кэш-памяти emtpy. Вот где пределы глубины рекурсии могут быть очень неприятными, что приводит к временным сбоям при поиске вашего домена в пустом кеше, и по причинам, которые часто не сразу очевидны.Короче говоря, вы можете сделать это, но действуйте осторожно и серьезно относитесь к подобным отзывам. Вы не можете контролировать частоту перезапуска или очистки рекурсивных DNS-серверов в Интернете.
источник
Многоуровневые
CNAME
s часто удобны на практике. Каждый уровень перенаправления обеспечивает уровень контроля в потенциально отдельной административной зоне или в совершенно другой организации. Хотя это вряд ли является технически необходимым, оно может обойти организационные проблемы.Как отметили другие люди, это может вызвать трудности, но к ним можно обратиться:
контролировать все DNS-серверы. Может быть, кто-то работает со сбоями. Мониторинг внешних серверов, а также свои собственные. Вам может потребоваться сообщить о проблеме Akamai или другим поставщикам.
TTL
Значения должны быть достаточно высокими, чтобы разрешить кэширование, но достаточно низкими, чтобы можно было достаточно быстро перемещать трафик для вашего приложения.источник