Несколько записей A, указывающих на один и тот же домен, похоже, используются почти исключительно для реализации DNS Round Robin в качестве дешевого метода балансировки нагрузки.
Обычное предупреждение против DNS RR состоит в том, что это не хорошо для высокой доступности. Когда 1 IP выходит из строя, клиенты будут продолжать использовать его в течение минут.
Балансировщик нагрузки часто предлагается как лучший выбор.
Оба утверждения не совсем верны:
Когда трафик HTTP, тогда большинство браузеров HTML могут автоматически пробовать следующую запись A, если предыдущая не работает, без нового поиска DNS. Прочитайте здесь главу 3.1 и здесь .
Когда задействованы несколько центров обработки данных, DNS RR является единственным вариантом для распределения трафика между ними.
Итак, правда ли, что при наличии нескольких центров обработки данных и HTTP-трафика использование DNS RR является ЕДИНСТВЕННЫМ способом обеспечить мгновенное переключение при сбое, когда один центр обработки данных выходит из строя?
Спасибо,
Валентино
Редактировать:
- Конечно, каждый центр обработки данных имеет локальный балансировщик нагрузки с горячим резервированием.
- Можно пожертвовать близостью сеанса для мгновенного переключения при сбое.
- AFAIK единственный способ для DNS предложить центр обработки данных вместо другого - ответить только IP (или IP), связанными с этим центром обработки данных. Если центр обработки данных становится недоступным, то все эти IP-адреса также недоступны. Это означает, что даже если умные HTML-браузеры смогут мгновенно попробовать другую запись A, все попытки завершатся неудачно, пока не истечет срок действия записи в локальном кэше и не будет выполнен новый поиск DNS, извлекая новые рабочие IP-адреса (я предполагаю, что DNS автоматически предлагает новый дата-центр при выходе из строя). Таким образом, «умный DNS» не может обеспечить мгновенное переключение при сбое.
- И наоборот, циклический перебор DNS разрешает это. Когда происходит сбой одного центра обработки данных, интеллектуальные HTML-браузеры (большинство из них) мгновенно пробуют другие кэшированные записи A, переходя в другой (работающий) центр обработки данных. Таким образом, циклическая перестановка DNS не гарантирует сессионную сессию или самый низкий RTT, но, кажется, является единственным способом обеспечить мгновенное переключение при сбое, когда клиенты являются «умными» браузерами HTML.
Изменить 2:
- Некоторые люди предлагают TCP Anycast в качестве окончательного решения. В этой статье (глава 6) объясняется, что отработка отказа Anycast связана с конвергенцией BGP. По этой причине Anycast может использовать от 15 минут до 20 секунд. 20 секунд возможны в сетях, где топология была оптимизирована для этого. Вероятно, только операторы CDN могут предоставить такие быстрые отработки отказа.
Редактировать 3: *
- Я сделал несколько проверок DNS и traceroutes (может быть, некоторые эксперты могут проверить дважды) и:
- Похоже, что единственным CDN, использующим TCP Anycast, является CacheFly, другие операторы, такие как сети CDN и BitGravity, используют CacheFly. Кажется, что их края не могут быть использованы в качестве обратных прокси. Следовательно, они не могут быть использованы для мгновенного переключения при сбое.
- Akamai и LimeLight, похоже, используют гео-ориентированный DNS. Но! Они возвращают несколько записей А. Из traceroutes кажется, что возвращенные IP-адреса находятся в одном центре обработки данных. Итак, я озадачен тем, как они могут предложить 100% SLA, когда один центр обработки данных выходит из строя.