Назад | Перейти на главную страницу

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

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

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

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

Спасибо.

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

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

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

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

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

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

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

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

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

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

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

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