Anycast
Una dirección IP anunciada desde muchos lugares, para que cada usuario llegue a la más cercana.
Normalmente una dirección IP pertenece a una máquina en un lugar (unicast). Con anycast, la misma dirección se anuncia desde muchos lugares a la vez: São Paulo, Madrid, Tokio y decenas más. Cada uno de esos sitios les avisa a sus vecinos por BGP "yo puedo entregar a 1.1.1.1", y cada router de internet elige la mejor ruta que conoce. El resultado es que un usuario en Buenos Aires cae en los servidores de São Paulo y uno en Lisboa en los de Madrid, sin que ninguno haga nada especial.
Así sobreviven los servidores raíz del DNS: las 13 "letras" raíz se sirven desde bastante más de mil sitios anycast en todo el mundo. Los resolvers públicos como el 1.1.1.1 de Cloudflare y el 8.8.8.8 de Google funcionan igual, y también muchas redes CDN. Anycast además reparte un ataque DDoS entre todas las ubicaciones en vez de concentrarlo en una, así que cada sitio absorbe solo su parte local; y si un sitio se cae, deja de anunciar la ruta y el tráfico pasa al siguiente más cercano en segundos o minutos.
Las contras vienen de que BGP elige rutas por política y largo del camino, no por distancia real ni por carga. Un usuario puede terminar en un sitio más lejano por cómo se interconecta su proveedor, y un cambio de rutas en medio de una sesión puede mover a un cliente a otra ubicación. Eso no molesta en intercambios cortos como DNS sobre UDP, pero una conexión TCP larga puede cortarse si cambia de servidor a mitad de camino, así que los operadores guardan el mínimo estado posible, lo comparten entre sitios o usan anycast solo para elegir la puerta de entrada y después derivan.
Para quedarse
- Muchos servidores comparten una IP; el ruteo manda a cada usuario al más cercano según el camino de red.
- Se apoya en BGP: cada sitio anuncia el mismo prefijo a sus vecinos.
- Lo usan los servidores raíz del DNS, resolvers públicos como 1.1.1.1 y las CDN; reparte el tráfico de un DDoS.
- Ideal para intercambios cortos y sin estado; las sesiones TCP largas pueden cortarse si cambian las rutas.
Para seguir leyendo
- Anycast en Wikipedia
- RFC 4786, Operation of Anycast Services (en inglés)
- What is Anycast? (Cloudflare Learning, en inglés)