Какое практическое ограничение для IP-адресов в циклическом пересылке DNS?


8

В настоящее время у меня работает сайт, трафик которого распределяется между 7 зеркальными серверами прямо сейчас (с использованием циклического перебора DNS). Но скоро потребуется больше зеркал, учитывая высокий объем трафика, который постоянно растет.

Существуют ли какие-либо практические или рекомендуемые ограничения на количество IP-адресов, связанных с данным доменным именем, при использовании циклического DNS?

Кроме того, какое решение вы бы порекомендовали, если количество зеркал велико (например, более 10 или 20 зеркал)?

Спасибо.

Ответы:


10

Следует иметь в виду, что по умолчанию при поиске DNS используется UDP. Если ответ больше, чем может поместиться в одной дейтаграмме, возвращается столько, сколько подходит, и в заголовке устанавливается бит TC (усеченный).

Запрашивающая сторона может выбрать работу с тем, что было возвращено, или повторить запрос, используя TCP.

Кэширующие DNS-серверы не должны кэшировать усеченные ответы, так как они не знают, насколько полным является набор возвращаемых записей (в ответе не говорится «Я даю вам 12 из 28 записей»).

Таким образом, максимальное количество записей зависит от того, сколько вы можете вставить в дейтаграмму UDP. Помните, что ответ должен включать раздел полномочий, размер которого зависит от записи SOA для зоны.

Если вы используете записи CNAME, это также увеличит размер ответа, так как вы получите CNAME и запись A того объекта, на который указывает.

Лучше всего поиграть с различными номерами записей A, используя dig или "host -v", чтобы увидеть, когда запрос пересекает максимальный размер ответа UDP.


1
фактически кеширующим серверам разрешается кешировать ответы, если весь раздел получен. Если с разделом «ответ» все в порядке, но «дополнительный» раздел был усечен, было бы неплохо кэшировать этот ответ.
Альнитак

8

Не существует жесткого ограничения, но большинство сайтов не используют более 5 или 10 зеркал. Зеркальное отображение с помощью циклического перебора DNS наиболее полезно, если сайты географически разделены, так что в дополнение к распределению нагрузки существует избыточность.

По мере увеличения количества зеркал эффективность использования циклического перебора DNS при распределении нагрузки уменьшается, поскольку циклический перебор DNS не учитывает различные запросы, требующие большего количества ресурсов. Лучше использовать балансировку внешней нагрузки для распределения рабочей нагрузки по нагрузке на ЦП и доступности сервера, что также упростит обслуживание, поскольку сервер может быть немедленно отключен без изменения DNS, в результате чего клиенты пытаются получить доступ к отключенному серверу из кэшированных записей DNS. ,


3

Я опоздал на этот вопрос, но я подумал, что было бы неплохо упомянуть фактические пределы того, что вы можете сделать. Я не знаю теоретического предела, но некоторые интернет-провайдеры не будут принимать что-либо после 36. На самом деле, если вы включите больше, это не только не будет включать дополнительные серверы, они будут полностью игнорировать вас. У меня были проблемы с Verizon и Comcast, но я уверен, что другие пострадали.

Тем не менее, если у вас достаточно трафика для гарантии 36 зеркал, пожалуйста, не используйте циклический DNS.


2

Если у вас много серверов, возможно, лучший ответ - это сделать Akamai и использовать anycast DNS-серверы и циклический перебор. Другими словами, DNS-серверы для зоны распределены по сети, все с одинаковыми IP-адресами, и точки маршрутизации клиентов находятся на ближайших серверах по сети. Каждый сервер отвечает в циклическом порядке за подмножество полного списка возможных серверов.


1

Мы делаем что-то очень похожее, но мы используем аппаратные балансировщики нагрузки (кстати, Cisco ACE), единственным ограничением является размер подсети (если таковой).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.