Sé que los servidores raíz DNS tienen 13 ips y usan anycast para distribuir la solicitud a sus 800 servidores físicos reales en todo el mundo.
Sé que el servidor raíz en Hong Kong tiene la misma IP con otro servidor espejo en algún lugar, ¿es legal tener dos servidores con direcciones físicas diferentes en Internet con la misma IP?
Pero no sé cómo se dirigirá la solicitud de DNS al servidor más cercano a mi ubicación, como Hong Kong.
¿Cómo elige el DNS su servidor? ¿Es legal tener 2 servidores con direcciones físicas diferentes con la misma IP?
Respuesta1
En una red grande (una con enrutadores dedicados) puede haber más de una ruta de red entre dos computadoras. Los enrutadores suelen tener múltiples enlaces de red entre sí para lograr redundancia, por lo que puede enviar paquetes a través de cualquiera de los enlaces para llegar a la misma computadora de destino.
Anycast aprovecha esto haciendo que parezca que hay dos o más rutas hacia una dirección IP, pero en realidad esas rutas van a computadoras completamente diferentes. Si una de las computadoras se desconecta, la ruta desaparecerá, pero la otra ruta seguirá estando disponible.
Requiere cierta configuración para comenzar a funcionar. Para compartir IP entre sitios, necesita configurar BGP (enrutamiento a nivel de ISP) y solo puede hacerlo para bloques de al menos 256 direcciones IP (por lo que usar Anycast para una sola IP desperdiciará ~253 IP). Dentro de un sitio, aún necesita configurar sus enrutadores para que sepan dónde encontrar todos los puntos finales de Anycast, y esto generalmente se hace haciendo que cada punto final publique su presencia mientras está en línea.
Debido a que los puntos finales parecen múltiples rutas a la misma computadora, el tráfico puede usar aleatoriamente una ruta diferente. Normalmente esto no es un problema (los paquetes siguen llegando al mismo lugar incluso si la ruta que tomaron cambió), pero para una IP anycast una ruta diferente significa un destino diferente. Esto significa que puede enviar tráfico a un punto final y, de repente, los paquetes llegarán a un punto final diferente.
Por esta razón, anycast no funciona con protocolos "de larga duración" y normalmente solo se usa con protocolos sin estado. DNS anycast es común porque los paquetes son pequeños y no importa si el servidor del punto final cambia inesperadamente. Algunos sitios utilizan anycast con HTTP para archivos muy pequeños que se pueden recuperar en sólo uno o dos paquetes. Pero cualquier cosa más allá de eso se vuelve poco confiable con anycast, ya que las conexiones TCP parecerán abandonarse aleatoriamente cada vez que cambia la "ruta".