1

Так, например, днс google.com - это публичный ip, к которому подключается пользователь.

У Google огромная инфраструктура веб-серверов.

Как все это может работать на одном и том же IP-адресе, так что URL-адрес по-прежнему google.com

3 ответа3

1

Я не уверен, что Google использует это, но было бы предположить баланс нагрузки. Не для того, чтобы украсть чужую информацию, так что вот ссылка на ветку. Объясняет это лучше, чем я могу.

Балансировка нагрузки на многих серверах, поэтому вы видите 1 IP-адрес, но соединение маршрутизируется на один из многих серверов (с учетом отказоустойчивости).

Если ваши веб-серверы не используют одно и то же хранилище (общее хранилище может быть сложным, вам нужно использовать SAN с «общей» файловой системой, такой как GFS, или с базой данных), тогда вам следует включить липкие сеансы, которые сообщают маршрутизатору, что каждый клиент выберет сервер для связи с ним в первый раз и сохранит связь с этим сервером. Это менее отказоустойчиво (но в Интернете вам просто нужно обновить разорванное соединение, чтобы начать заново), но гораздо проще для архитектуры (и быстрее, так как каждый веб-сервер может оставаться независимым)

Другая проблема, которая может понадобиться вам в действительно отказоустойчивой ситуации, заключается в расположении физических серверов далеко друг от друга, что вызывает проблемы с производительностью для большинства проектов совместного использования (т. Е. Вы не можете поместить все свои серверы в сеть SAN, если они находятся в разные страны), заключается в использовании подхода с несколькими серверами, с использованием одного DNS-имени и регулярной репликации данных между ними. Балансировка нагрузки на DNS, возможно, самый простой способ использования нескольких веб-серверов в качестве одного веб-сайта.

В этих случаях БД часто может быть единой базой данных, с которой все серверы обмениваются данными, или могут совместно использоваться, используя кластеризацию или чаще доставку журналов, чтобы гарантировать, что у вас есть резервная копия, готовая к подключению в случае сбоя первичной системы. Доставка журналов более распространена для серверов резервного копирования, чем расположенных далеко. [1]: https://stackoverflow.com/questions/906539/how-do-multiple-servers-work-in-sync-for-web-application

0

Они используют Anycast. Т.е. один и тот же публичный IP размещен в нескольких местах. Стек маршрутизации гарантирует, что ближайший из них разрешится клиенту. Кроме того, это позволяет брандмауэрам помещать в белый список один IP вместо многих.

0

У Google нет только одного IP-адреса для google.com. Например, если я выполняю команду nslookup в системе Microsoft Windows, где я сейчас нахожусь, я вижу следующее:

C:\>nslookup google.com
Server:  localhost
Address:  ::1

Non-authoritative answer:
Name:    google.com
Addresses:  2607:f8b0:4004:80d::200e
          216.58.217.142

Но когда я подключаюсь к другой системе, находящейся примерно в 20 милях, где предприятие использует другого интернет-провайдера (ISP) и запускаю ту же команду nslookup, я вижу следующее:

Name:    google.com
Addresses:  173.194.121.1, 173.194.121.7, 173.194.121.9, 173.194.121.0
          173.194.121.2, 173.194.121.8, 173.194.121.4, 173.194.121.3, 173.194.121.14
          173.194.121.6, 173.194.121.5

IP-адреса или IP-адреса, которые кто-то видит возвращенными при отправке запроса системы доменных имен (DNS) для google.com, могут различаться в зависимости от географического положения. Итак, если вы находитесь в Канаде, а я в США, вы можете получить IP-адрес сервера Google в Канаде, в то время как я получаю IP-адрес одного из серверов в США. Многие крупные компании также используют циклический DNS, где IP-адрес адрес, который будет использовать чья-то система, когда система запрашивает DNS-сервер для перевода полного доменного имени (FQDN), такого как www.google.com, на IP-адрес, который отличается от множества IP-адресов в списке, который можно увидеть из такого nslookup , Похоже, Google это делает, поскольку во втором примере, приведенном выше, был возвращен не один, а много IP-адресов. Методика используется для балансировки нагрузки между многими серверами. Поэтому, если я сейчас захожу на google.com с этого сайта, возможно, я подключусь к одному из этих IP-адресов, но к другому, если через два часа снова зайду на google.com с того же сайта. В статье Википедии о платформе Google, опубликованной в комментарии DavidPostill, говорится, что Google использует метод циклического перебора для распределения нагрузки между несколькими серверами.

Даже если вы всегда получаете один и тот же IP-адрес для компании, это не значит, что вы всегда получаете веб-страницы с одного и того же веб-сервера. Компания может иметь балансировщик нагрузки, который использует метод обратного прокси-сервера для передачи вашего запроса на веб-страницы на сайтах компании на один из нескольких веб-серверов за балансировщиком нагрузки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .