Anycast es una técnica de red en la que se anuncia el mismo prefijo IP desde múltiples ubicaciones. Luego, la red decide a qué ubicación enrutar la solicitud de un usuario, en función de los costos del protocolo de enrutamiento y posiblemente del "estado" de los servidores de publicidad.
Hay varios beneficios para anycast. Primero, en estado estable, los usuarios de un servicio de difusión ilimitada (DNS es un excelente ejemplo) siempre se conectarán al servidor DNS 'más cercano' (desde la perspectiva del protocolo de enrutamiento). Esto reduce la latencia, además de proporcionar un nivel de equilibrio de carga (suponiendo que sus consumidores estén distribuidos uniformemente en su red).
Otra ventaja es la facilidad de gestión de la configuración. En lugar de tener que configurar diferentes servidores DNS dependiendo de dónde se implemente un servidor / estación de trabajo (Asia, América, Europa), tiene una dirección IP configurada en cada ubicación.
Dependiendo de cómo se implemente anycast, también puede proporcionar un nivel de alta disponibilidad. Si el anuncio de la ruta de difusión ilimitada está condicionado a algún tipo de comprobación de estado (por ejemplo, una consulta DNS para un dominio bien conocido, en este ejemplo), tan pronto como un servidor falle, su ruta puede eliminarse. Una vez que la red vuelve a converger, las solicitudes de los usuarios se enviarán sin problemas a la siguiente instancia más cercana de DNS, sin la necesidad de ninguna intervención manual o reconfiguración.
Una ventaja final es la de escala horizontal; Si encuentra que un servidor se está sobrecargando, simplemente implemente otro en una ubicación que le permita tomar una proporción de las solicitudes del servidor sobrecargado. Nuevamente, como no se requiere configuración del cliente, esto se puede hacer muy rápidamente.
Una de las cosas que a menudo me confundió al entender "anycast" es que, si bien es un término de alto nivel, en la implementación práctica generalmente se reduce a dos ejemplos:
Los enrutadores que utilizan BGP para anunciar el mismo bloque de IP a través de múltiples rutas AS como una forma aproximada de dirigir a los usuarios a un sitio "más cercano". Al mismo tiempo, proporciona una conmutación por error casi transparente a los otros sitios simplemente retrayendo las rutas de un sitio problemático. Esto puede ser útil para casi cualquier protocolo, aunque obviamente plantea muchas preocupaciones de sincronización de datos de back-end.
Publicidad del mismo servicio IP desde múltiples puntos dentro de su propia red (a través de enrutamiento estático , OSPF , EIGRP o lo que sea). Si las rutas se ponderan de manera diferente , actúa como un mecanismo de conmutación por error. Si las rutas se ponderan de manera uniforme , puede aprovechar las capacidades de equilibrio de carga por paquete o por flujo de la mayoría de los enrutadores de marcas reconocidas. Debe tener cuidado de que el protocolo de la capa de aplicación se sienta cómodo con esto, por eso casi siempre escucha que se utiliza con DNSdonde una solicitud siempre es un paquete y todo no tiene estado. Personalmente, veo esto como una intrusión hacky de las preocupaciones de la capa de aplicación en la capa de red cuando una combinación de DNS y equilibradores de carga adecuados casi siempre será una mejor solución.
fuente
Se utiliza principalmente para servicios basados en UDP como DNS. Básicamente, anuncia la misma ruta desde múltiples centros de datos en todo el mundo. De esta manera, sus clientes serán enviados al centro de datos "mejor" y "más cercano" en función de las rutas BGP. Pongo "mejor" y "más cercano" entre comillas porque los proveedores de red pueden jugar juegos y enrutar el tráfico desde ciertas redes de manera diferente. En general, las cosas funcionan mejor con anycast, pero no es una garantía.
Un ejemplo de esto sería enumerar sus servidores DNS como 1.2.3.4 y 1.2.3.5. Sus enrutadores anunciarían una ruta para 1.2.3 / 24 de múltiples centros de datos. Si está en Japón y tiene un centro de datos allí, es probable que termine allí. Si se encuentra en los EE. UU., Se lo enviará a su centro de datos de EE. UU. Nuevamente, se basa en el enrutamiento BGP y no en el enrutamiento geográfico real, pero así es como se descomponen las cosas.
fuente
De acuerdo con mi respuesta original, acabo de publicar dos artículos más en mi blog titulados: Anycast DNS - Parte 3, Uso de RIP y Anycast DNS - Parte 3, Uso de RIP (continuación). Este último entra en más detalles, pero en www.netlinxinc.com/netlinx-blog.html encontrará recetas reales sobre cómo configurar los enrutadores Cisco y el software de enrutamiento basado en host Quagga de código abierto para Anycast DNS usando RIP.
Actualmente estoy trabajando en escribir el cuarto artículo de la serie. Esto proporcionará recetas sobre cómo implementar Anycast DNS usando OSPF. Último en la serie, mostraré recetas para implementar Anycast DNS usando BGP.
Anycast DNS - Parte 1, Descripción general
Anycast DNS - Parte 2, Uso de rutas estáticas
Anycast DNS - Parte 3, Uso de RIP
Anycast DNS - Parte 3, Uso de RIP (continuación)
fuente
Dado que esto es principalmente DNS en este momento ...
Informalmente, hace que su servicio sea más resistente y con un mejor acceso a la red / latencia / velocidad al permitirle configurar el mismo servicio en múltiples ubicaciones en todo el mundo, todas con la misma dirección. Cuando alguien pregunta por esa dirección, recibe la ruta más cercana / mejor.
Desde la perspectiva del servidor:
Si la unidifusión va a una sola persona, y la multidifusión va a varias, y la transmisión se dirige a todas las personas, entonces cualquier transmisión es esquizofrénica y tiene múltiples personalidades donde la personalidad más adecuada para cada persona se conecta con ellas. Hmm No es la mejor analogía.
fuente
Un uso realmente interesante de anycast es DNS. Puede colocar 5 servidores DNS diferentes en varias ubicaciones físicas y de red, pero compartir una sola dirección (o, a veces, DNS primaria y secundaria). Dependiendo de dónde esté la fuente, se enrutan a su nodo más cercano. Esto equilibra el tráfico y proporciona redundancia si un servidor DNS muere.
fuente
Según uno de mis colegas, también es útil como técnica de mitigación de ataques DoS, ya que las personas solo pueden atacar la dirección IP "más cercana", por lo tanto, si hay muchos zombis en, por ejemplo, los EE. UU., Su sitio Euro sería en su mayoría no se ven afectados, ya que en realidad no pueden enviarle paquetes.
También es posible usarlo como una forma de filtrar (algo ingenuamente) paquetes falsificados si obviamente provienen de algún lugar que probablemente no se anuncie en BGP como la ruta correcta (por ejemplo, paquetes que ingresan a Europa cuando la ASN indica un N American bloquear).
fuente
También es bueno tener en cuenta que Anycast no es bueno o confiable para algunas conexiones TCP que no pueden sobrevivir a los reinicios o cualquier conversación larga.
Anycast IPs, usando BGP, le dice a Internet que hay 2, 3 o más rutas a un HOST específico , sin embargo, en realidad estos NO son el mismo host , son réplicas exactas de hosts anunciados en múltiples centros de datos para lograr conexiones de latencia más bajas.
Por ejemplo, tengo 3 servidores que realizan una redirección 301 no www para 198.251.86.133, si hace ping a este host, puede obtener respuestas DUPLICADAS a veces, o incluso caídas dependiendo de dónde se encuentre, ya que mis servidores están en el este de EE. UU. -Oeste y EUR. para conexiones de tiempo corto (como las 301 que son cacheadas en el navegador) esto da una respuesta rápida por parte de un servidor local en el centro de datos más cercano.
Desde el punto de vista de la redundancia, no hay ninguno integrado en ninguna difusión, aún necesitaría redundancia independiente en cada sitio, ya que esa IP (en escenarios típicos) siempre apuntará a esos centros de datos.
fuente