Un poco de historia antes de llegar a la respuesta.
Configuración de implementación
Cualquier sitio web o servicio web que quiera estar altamente disponible debe tener múltiples instancias de su aplicación ejecutándose. Por lo general, hay miles de máquinas, también conocidas como hosts, que ejecutan la misma aplicación. De esa manera, la aplicación es más tolerante a fallas y también está disponible para una gran cantidad de solicitudes simultáneas.
Esto puede no ser lo suficientemente redundante para servicios realmente altamente disponibles como Google. Entonces, replican toda esta configuración en múltiples centros de datos distribuidos en múltiples regiones geográficas (dentro de un país).
Es fácil ver cómo este modelo se extiende a otros continentes y países si el servicio web necesita servir a una audiencia internacional.
Solicitar enrutamiento
Los hosts que se encuentran dentro de un centro de datos forman parte de una LAN y las direcciones IP individuales no son accesibles fuera de la LAN. Esto se hace por varias razones, incluyendo no agotar el número limitado de direcciones ipv4. Para distribuir uniformemente las solicitudes entre todas estas máquinas, hay hardware especializado llamado equilibradores de carga implementados como un par en cada centro de datos. Entre la pareja, solo uno de ellos está activo en cualquier momento. El otro está en espera todo el tiempo y se hace cargo de inmediato si falla el primario. Hay equilibradores de carga de hardware que utilizan una de las muchas estrategias para distribuir las solicitudes de manera uniforme entre todos estos hosts. El más común es un round robin simple que pasa por los hosts como si iterara una lista enlazada circular y entregara una solicitud antes de pasar al siguiente host.
- ¿Qué decide la dirección MAC?
- ¿Cuál es el método para obtener la dirección IP de un dispositivo iOS que Apple aprueba?
- ¿Hay alguna manera de saber (* de manera confiable *) qué software de servidor web se está ejecutando en el otro extremo (cuando envío una solicitud HTTP a un dominio o dirección IP)?
- ¿Cómo funciona una dirección IP estática en redes de computadoras?
- ¿Cómo creo una subred 148 para una red 178.98.9.0?
Direcciones IP vistas por clientes
Los equilibradores de carga, a diferencia de los hosts, están conectados a Internet y, por lo tanto, tienen una dirección IP pública. Las direcciones IP de todos los equilibradores de carga (una por cada centro de datos) se agregan a la entrada DNS del sitio web real. Entonces, si hace nslookup www.google.com, verá cinco o seis direcciones IP, cada una correspondiente al equilibrador de carga por centro de datos, que a su vez reenvía las solicitudes a uno de los cientos o incluso miles de hosts que ejecutan la aplicación real .
¿Quién rota la dirección IP?
La respuesta DNS para una consulta en google.com devolvería varias direcciones, pero el cliente debe elegir una de ellas. Probablemente elijan uno al azar.