Наличие нескольких CNAME

У нас есть 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 плохим дизайном в целом?

11
задан 22 August 2016 в 23:28
3 ответа

Является ли этот вид многоуровневого CNAME плохой конструкцией в целом?

Цепочки CNAME в CNAME не запрещены , но, как вы уже знаете, это не очень надежный решение.

Каждый дополнительный CNAME увеличивает глубину рекурсии для резолвера, и эта глубина не всегда неограничена. Также вы рискуете создать петли или запустить алгоритм обнаружения петель.

Чтобы получить представление о том, сколько и какие запросы нужно сделать серверу имен ваших пользователей, запустите трассировку DNS:

dig +trace www.example.com 

или в Windows

nslookup -debug www.example.com
15
ответ дан 2 December 2019 в 21:44

HBrujin верен , но на самом деле глубина рекурсии намного хуже, чем что-либо dig + trace собирается вам показать. Глубина рекурсии - это то, над чем часто насмехаются и преувеличивают, но эти люди забывают, что вы не просто разрешаете ~ 5 CNAME записей. Это связано с тем, что при разрешении цели записи CNAME возникает необходимость искать каждый сервер имен на пути, что часто намного больше, чем кажется на первый взгляд.

Есть цель CNAME находится в другом домене? Вам нужно будет выполнить рекурсию на его серверах имен, что потребует не только поиска записей NS , но также поиска A (AAA) , где клей отсутствует. Живут ли серверы имен для тех серверов имен в другом домене верхнего уровня? Если у этих TLD нет общих серверов имен, скорее всего, связующие записи не будут включены, и вам также придется рекурсивно пройти через серверы имен других TLD. И так далее.

Каждая запись CNAME , добавляемая в цепочку, может экспоненциально увеличивать количество требуемых поисков в зависимости от количества серверов имен, через которые необходимо выполнить рекурсию. Эти цепочки поиска записей CNAME + NS + A (AAA) , в свою очередь, могут быть безумно запутанными, достигая более 150 уровней в пустом кэше. Здесь ограничения глубины рекурсии могут стать чрезвычайно неприятными, что приведет к временным сбоям в поиске вашего домена в пустом кэше и по причинам, которые часто не сразу очевидны.

Короче говоря, вы можете это сделать, но действуйте осторожно , и серьезно относитесь к отзывам такого рода. Вы не можете контролировать, как часто рекурсивные DNS-серверы в Интернете перезапускаются или очищаются.

10
ответ дан 2 December 2019 в 21:44

Многоуровневые CNAME часто удобны на практике. Каждый уровень перенаправления обеспечивает уровень контроля в потенциально отдельной административной зоне или в совершенно другой организации. Хотя это вряд ли каждый технически необходимый, он может обойти организационные проблемы.

Как отмечали другие люди, это может вызвать трудности, но их можно решить:

  • монитор все DNS-серверы. Может, один неисправен. Контролируйте как внешние серверы, так и свои собственные. Возможно, вам потребуется сообщить о проблеме в Akamai или других поставщиков.

  • TTL s должен быть достаточно высоким, чтобы разрешить кэширование, но достаточно низким, чтобы вы могли перемещать трафик достаточно быстро для вашего приложения

0
ответ дан 2 December 2019 в 21:44

Теги

Похожие вопросы