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

Почему я получаю разные IP-адреса при многократной проверке одного и того же имени хоста?

Я получил три разных IP-адреса при трех попытках разрешить доменное имя. Все три пинга произошли с интервалом в несколько секунд. Это нормально? Я бы не подумал, что DNS-серверы можно обновлять так быстро, поэтому я предполагаю, что это как-то связано с балансировкой нагрузки.

Пока что я заметил это только на сайте bestbuy.com, и попробовал, потому что друг сообщал, что он был перенаправлен на Best Buy Turkey и Best Buy Korea вчера вечером при посещении bestbuy.com.

G:\>ping bestbuy.com

Pinging bestbuy.com [77.67.19.107] with 32 bytes of data:...

G:\>ping bestbuy.com

Pinging bestbuy.com [69.31.49.74] with 32 bytes of data:...

G:\>ping bestbuy.com

Pinging bestbuy.com [69.31.49.73] with 32 bytes of data:...

(Возможно, лучший вопрос для serverfault, но ...)

Если вы выполните nslookup на bestbuy.com:

localhost /home/me > nslookup
Default Server:  #############.com
Address:  192.168.252.11

> bestbuy.com
Server:  ####################.com
Address:  192.168.252.11

Non-authoritative answer:
Name:    bestbuy.com
Addresses:  77.67.19.120, 77.67.19.107

>

Обратите внимание, что этому IP-имени соответствует несколько IP-адресов. Основная цель этого - обеспечить аварийное переключение. Если одна из их веб-ферм перейдет на DOA, другая продолжит принимать входящий трафик. Положительным побочным эффектом этого является то, что когда все работает нормально, они могут распределять нагрузку трафика между двумя фермами.

Причина этого в том, что файл зоны для зоны bestbuy.com содержит несколько записей A для записи @, например:

@                IN        A         77.67.19.120
@                IN        A         77.67.19.107 

Это сделано для балансировки нагрузки.

Неправильный сайт для этого вопроса, но я предполагаю, что балансировка нагрузки

Посмотрите на копать:

# dig bestbuy.com

; <<>> DiG 9.5.0-P2.1 <<>> bestbuy.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 395
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;bestbuy.com.                   IN      A

;; ANSWER SECTION:
bestbuy.com.            20      IN      A       173.223.232.48
bestbuy.com.            20      IN      A       173.223.232.98

;; Query time: 52 msec
;; SERVER: 72.249.191.254#53(72.249.191.254)
;; WHEN: Sat Aug 14 14:26:35 2010
;; MSG SIZE  rcvd: 61

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

Лучше реализовать это с помощью настоящего балансировщика нагрузки или VIP (виртуальный IP-адрес).