Round robin DNS

DNS с циклическим перебором — метод балансировки нагрузки или отказоустойчивости при использовании чрезмерного количества серверов, основанный на управлении ответами DNS-сервера в соответствии с определённой статистической моделью[1].

В простейшем случае циклический DNS работает следующим образом: он отвечает на вопросы не только по одному IP-адресу, но и по списку из нескольких адресов серверов, предоставляющих одну и ту же услугу[2][3]. Порядок, в котором IP-адреса возвращаются из списка, определяется циклическим алгоритмом, и с каждым ответом последовательность IP-адресов меняется[4].

Существуют различные подходы к определению того, какие адреса будут использоваться запрашивающим приложением, для чего некоторые серверы пытаются изменить порядок в списке, отдавая приоритет численно «более близким» сетям[5][6][7]. Некоторые настольные клиенты пытаются получить альтернативные адреса после сбоя соединения в течение 30[2]-45 секунд.

Циклический DNS часто используется для распределения нагрузки между географически распределёнными веб-серверами. Например, у компании есть один домен и три веб-сайта, расположенные на трёх серверах с тремя разными адресами. Когда пользователь заходит на домашнюю страницу, он будет перенаправлен на первый IP-адрес. Второй пользователь, получивший доступ к домашней странице, будет отправлен на следующий IP-адрес, а третий пользователь будет отправлен на третий адрес. В каждом случае, когда выдается IP-адрес, он отправляется в конец списка, и через него четвертый пользователь снова будет отправлен на первый IP-адрес, и так далее[8].

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

Кроме того, циклический DNS — не лучший выбор для самобалансировки нагрузки, поскольку он изменяет порядок адресов только при каждом запросе имени сервера. При этом не учитываются IP-адрес и географическое местоположение пользователя, время выполнения, нагрузка на сервер, перегруженность сети и т. д[10].

Существуют методы преодоления таких ограничений, например, с помощью которых модифицированные DNS-серверы (такие как lbnamed[11]) могут регулярно голосовать за зеркальные серверы, чтобы контролировать их доступность и загрузку. Если сервер отвечает некорректно, его можно временно удалить из пула dns до тех пор, пока он не сообщит, что снова работает в соответствии со спецификацией.

Примечания

  1. Round-Robin DNS. Cloudflare. Cloudflare, Inc.. Дата обращения: 16 августа 2019.
  2. 1 2 Feenberg, Daniel. DNS round robin for web server failover (25 июля 2016). Дата обращения: 10 января 2020.
  3. What is the difference among a multivalue answer routing policy and a simple routing policy? Amazon Web Services, Inc. (3 августа 2018). Дата обращения: 10 января 2020.
  4. Liska, A. Understanding DNS // DNS Security / A. Liska, G. Stowe. — 2016. — P. 19.
  5. getaddrinfo with round robin DNS and happy eyeballs (3 января 2012).
  6. Draves, R.; Matsumoto, A.; Chown, T.; Chown, T. (2012). Thaler, D. (ed.). "RFC 6724 - Default Address Selection for Internet Protocol Version 6 (IPv6)". doi:10.17487/RFC6724. {{cite journal}}: Cite journal требует |journal= (справка)
  7. Rule 9 for IPv4 caused serious operational problems ([the Debian Linux] ftp sites failed!
  8. LOAD BALANCING ALGORITHMS ROUND-ROBIN (RR), LEAST-CONNECTION, AND LEAST LOADED EFFICIENCY
  9. CLUE Based Load Balancing in Replicated Web Server
  10. Brisco, Thomas P. (April 1995). "RFC 1794 - DNS Support for Load Balancing". doi:10.17487/RFC1794. Дата обращения: 2019-08-24. {{cite journal}}: Cite journal требует |journal= (справка)
  11. lbnamed, a load-balanced DNS server implemented in the Perl programming language

Источники

 

Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia