Балансировка нагрузки на DNS с несколькими IP-адресами в одном домене в GoDaddy

6582
jacmkno

В поисках более дешевого решения, чем amazon CloudFront, я поместил две записи «A» с разными IP-адресами на разные серверы в одном и том же поддомене в NameSever, управляемом GoDaddy, для достижения некоторого механизма балансировки нагрузки и отработки отказа для статических файлов в моем Веб-сайт.

Проверьте это: nslookup static.hsbnoticias.com

НЕКОТОРЫЕ НАБЛЮДЕНИЯ

  • Я видел несколько статей о балансировке нагрузки циклического перебора DNS, но не смог понять, можно ли это сделать с какой-либо службой DNS или для нее требуется специальное программное обеспечение или служба.
  • Я не нашел поставщиков услуг для такой услуги
  • Тестирование nslookup на Facebook CDN возвращает несколько IP-адресов в разном порядке каждый раз, что, я думаю, является правильным способом балансировки нагрузки на DNS.
  • Мой NameServer возвращает IP-адреса в том же порядке каждый раз

ВОПРОСЫ

  1. Будет ли нагрузка распределена между двумя серверами?
  2. Существует ли стандартное поведение, которому должны следовать браузеры при разрешении доменов с несколькими IP-адресами на ресурсах страницы? (Тайм-аут, запасной вариант и т. Д.)
  3. Как случайный (или фиксированный) порядок записей, возвращаемых сервером имен, влияет на балансировку нагрузки?
  4. Будет ли браузер пробовать разные IP-адреса, когда тот, который они используют, становится медленным или только когда срабатывает тайм-аут?
  5. Будет ли IP Fail Over прозрачным для пользователя, или пользователю потребуется перезагрузить страницу?
2

1 ответ на вопрос

2
milli
  1. Mostly, yes. This poor-man way of doing it leaves the returned order of the A records to the discretion of the DNS server a client is using, so if round-robin is turned off or not supported (as with your local nameserver), clients using it will get a fixed ordering returned for as long as it's cached. But it at least does provide redundancy (if one IP is down but tried first, browsers generally will use the other one after a connect timeout).

  2. Not consistently, no. They will all fallback to a second (or more) IP address, but it depends on browser "vendor" and version and whether or not any ICMP unreachable messages are returned, to determine how long that fallback takes. TCP timeouts -- without receiving any ICMP unreachable messages -- are usually measured in minutes when a server is not responding. E.g., Chrome has a long connect timeout, often more than 3 minutes before failing over. IE is faster. But it will just appear to the user to be down or really slow. Caveat emptor... there's a lot of moving parts along DNS resolution paths and you have little control over the order that multiple returned IP addresses are finally used in a given browser. This is why there is a whole industry of products that support fast-failover load-balancing, but they generally use DNS in a minimal fashion to accomplish it (e.g., lookup www.google.com in DNS... you'll find you only get back ONE IP address.)

  3. The load "balancing" across your severs can vary significantly between any two time periods.

  4. Only on connect timeout or explicitly unreachable.

  5. It will be transparent, but the site can appear really slow if the instance IP they are connecting to is hung. If you intentionally take it down (e.g., for maintenance), the fallback will be faster if it's off the network and ARP requests are not answered (router will report back with ICMP host unreachable).

Похожие вопросы