Круговой DNS — это метод распределения нагрузки , балансировки нагрузки или обеспечения отказоустойчивости нескольких резервных узлов службы Интернет-протокола , например веб-сервера , FTP-серверов , путем управления ответами системы доменных имен (DNS) на запросы адреса. с клиентских компьютеров согласно соответствующей статистической модели. [1]
В своей простейшей реализации циклический DNS работает, отвечая на DNS-запросы не только одним потенциальным IP-адресом , но и списком потенциальных IP-адресов, соответствующих нескольким серверам, на которых размещаются идентичные службы. [2] [3] Порядок, в котором возвращаются IP-адреса из списка, является основой термина « циклический перебор» . С каждым ответом DNS последовательность IP-адресов в списке меняется . [4] Традиционно IP-клиенты сначала пытаются подключиться с первым адресом, возвращенным из DNS-запроса, [5] так, чтобы при разных попытках подключения клиенты получали услуги от разных провайдеров, таким образом распределяя общую нагрузку между серверами.
Некоторые преобразователи пытаются изменить порядок списка, чтобы отдать приоритет численно «более близким» сетям. Такое поведение было стандартизировано при определении IPv6, и его обвиняли в нарушении циклической балансировки нагрузки. [6] [7] [8] Некоторые настольные клиенты пробуют использовать альтернативные адреса после тайм-аута соединения до 30 секунд. [2]
DNS с циклическим перебором часто используется для запросов балансировки нагрузки между несколькими веб-серверами . Например, у компании есть одно доменное имя и три идентичные копии одного и того же веб-сайта, расположенные на трех серверах с тремя IP-адресами. DNS-сервер будет настроен таким образом, чтобы доменное имя имело несколько записей A, по одной для каждого IP-адреса. Когда один пользователь заходит на домашнюю страницу, она будет отправлена на первый IP-адрес. Второй пользователь, получивший доступ к домашней странице, будет отправлен на следующий IP-адрес, а третий пользователь будет отправлен на третий IP-адрес. В каждом случае, как только IP-адрес выдан, он перемещается в конец списка. Таким образом, четвертый пользователь будет отправлен на первый IP-адрес и так далее.
DNS-имя с циклическим перебором в редких случаях называют «ротором» из-за ротации между альтернативными записями A.
Несмотря на простоту реализации, циклический DNS имеет ряд недостатков, например, связанных с кэшированием записей в самой иерархии DNS, а также с кэшированием и повторным использованием адресов на стороне клиента, комбинацией которых может быть трудно управлять. Для обеспечения доступности услуг не следует полагаться исключительно на DNS с циклическим перебором. Если служба по одному из адресов в списке выйдет из строя, DNS продолжит выдавать этот адрес, и клиенты все равно будут пытаться связаться с неработоспособной службой.
Сам по себе циклический DNS, возможно, не лучший выбор для балансировки нагрузки , поскольку он просто меняет порядок адресных записей каждый раз, когда запрашивается сервер имен. Поскольку он не учитывает время транзакции, нагрузку на сервер и перегрузку сети, он лучше всего работает для сервисов с большим количеством равномерно распределенных подключений к серверам эквивалентной мощности. В противном случае он просто распределяет нагрузку . [9]
Существуют методы преодоления таких ограничений. Например, модифицированные DNS-серверы (такие как lbnamed [10] ) могут регулярно опрашивать зеркальные серверы на предмет доступности и коэффициента загрузки. Если сервер не отвечает должным образом, его можно временно удалить из пула DNS до тех пор, пока он не сообщит, что снова работает в соответствии со спецификациями.
{{cite journal}}
: Требуется цитировать журнал |journal=
( помощь ) {{cite journal}}
: Требуется цитировать журнал |journal=
( помощь )