Anycast vs Unicast: cuál es mejor elegir en cada caso

Probablemente muchos hayan oído hablar de Anycast. Con este método de direccionamiento y enrutamiento de red, se asigna una única dirección IP a varios servidores de la red. Estos servidores pueden incluso estar ubicados en centros de datos que están alejados entre sí. La idea de Anycast es que, dependiendo de la ubicación de la fuente de solicitudes, los datos se envían al servidor más cercano (según la topología de la red, más precisamente, el protocolo de enrutamiento BGP). Por tanto, es posible reducir el número de saltos y la latencia.



Básicamente, la misma ruta se anuncia desde varios centros de datos de todo el mundo. Por lo tanto, los clientes serán enviados al centro de datos "mejor" y "más cercano" en función de las rutas BGP. ¿Por qué Anycast? ¿Por qué utilizar Anycast en lugar de Unicast?





Unicast es realmente bueno para un sitio con un servidor web y tráfico moderado. Sin embargo, si un servicio tiene millones de suscriptores, generalmente usa muchos servidores web, cada uno con la misma dirección IP. Estos servidores están distribuidos geográficamente para atender las solicitudes de manera óptima.



En este escenario, Anycast mejorará el rendimiento (el tráfico se dirige al usuario con una latencia mínima), garantizará la confiabilidad del servicio (gracias a los servidores redundantes) y el equilibrio de carga: el enrutamiento a múltiples servidores distribuirá efectivamente la carga entre ellos, mejorando la velocidad del sitio.



Los operadores ofrecen a los clientes varios tipos de equilibrio de carga basados ​​en Anycast y DNS. Los clientes pueden indicar las direcciones IP a las que se enviarán las solicitudes según la ubicación geográfica del sitio. Esto permite distribuir las solicitudes de los usuarios de forma más flexible.



Suponga que hay varios sitios entre los que necesita distribuir la carga (usuarios), por ejemplo, una tienda en línea con 100.000 solicitudes por día o un blog popular. Para restringir la región desde la cual los usuarios ingresan a un sitio específico, puede usar la opción Comunidad geográfica. Le permite limitar la región dentro de la cual el operador anunciará la ruta.









Anycast vs. Unicast: Diferencias



Anycast se usa a menudo en aplicaciones como DNS (sistema de nombres de dominio) y CDN (redes de entrega de contenido), lo que permite tomar decisiones de enrutamiento que mejoran el rendimiento de la red. Las redes de entrega de contenido usan Anycast, ya que manejan grandes volúmenes de tráfico, y Anycast proporciona una serie de ventajas en este caso (más sobre ellas a continuación). En DNS, Anycast puede aumentar significativamente el nivel de confiabilidad y tolerancia a fallas del servicio.





En Anycast IP, usando BGP, hay varias rutas a un host específico. En realidad, se trata de copias de hosts en varios centros de datos que se utilizan para establecer conexiones de latencia más baja.



Entonces, en la red Anycast, la misma dirección IP se anuncia desde diferentes ubicaciones, y la red decide dónde dirigir la solicitud del usuario en función del "costo" de la ruta. Por ejemplo, BGP se usa a menudo para determinar la ruta más corta para la transmisión de datos. Cuando un usuario envía una solicitud Anycast, BGP determina la mejor ruta para los servidores Anycast disponibles en la red.



Beneficios de Anycast

Reducir la latencia Anycast , . «» ( ) DNS-. Anycast . , .


, , , , .



IP, . Anycast //. 



, , , Anycast, , DNS. DNS - . Anycast , . 



Anycast . , , . , , . .

DoS- 

Anycast – DDoS. DDoS- Anycast, . 



DDoS- , , . Anycast , «» , . « », , .



Anycast . , Anycast, , . . 



, . , . , . , , , . . 



, 10 25 /. 100 IP- .



, Anycast — DNS. DNS-, DNS-. , , . DNS-. , , DNS- , , DNS- .



Anycast , , , . .



No se requieren servidores, redes o componentes especiales para usar la tecnología Anycast desde el lado del cliente. Pero Anycast tiene sus inconvenientes. Se cree que su implementación es una tarea compleja que requiere equipos adicionales, proveedores confiables y enrutamiento de tráfico adecuado.



De una fuente pura a una hermosa lejana



Si bien Anycast enruta a los usuarios en función de los menores saltos, no necesariamente significa la menor latencia. La latencia es una métrica más compleja, ya que una transición puede tener más de diez.





Ejemplo: las comunicaciones intercontinentales pueden implicar un salto de latencia muy alto.



Anycast se utiliza principalmente para servicios basados ​​en UDP como DNS. Las solicitudes de los usuarios se dirigen a los centros de datos "mejores" y "más cercanos" según las rutas BGP.





Ejemplo: una estación de trabajo cliente DNS con la dirección IP DNS de Anycast 123.10.10.10, realiza la resolución de DNS para el más cercano de los tres servidores de nombres DNS implementados utilizando la misma dirección IP de Anycast. Si el enrutador R1 o el servidor A falla, los paquetes del cliente DNS se reenviarán automáticamente al siguiente servidor DNS más cercano a través de R2 y R3. Además, la ruta a nuestro servidor A se eliminará de las tablas de enrutamiento, evitando un uso posterior de este servidor de nombres.



Scripts de implementación



Hay dos esquemas generales que se utilizan para determinar a qué servidor se conecta un usuario:



  • Capa de red Anycast . Conecta al usuario al servidor más cercano. La ruta de la red desde el usuario al servidor es importante aquí.
  • Anycast . , , , . . , .


CDN Anycast



Volvamos ahora al uso de Anycast en redes de distribución de contenido. Anycast es sin duda un concepto de red interesante y está ganando una aceptación cada vez mayor entre los proveedores de CDN de próxima generación.



CDN es una red distribuida de servidores que entregan contenido a los usuarios finales con alta disponibilidad y baja latencia. Las redes de distribución de contenido desempeñan hoy un papel importante como columna vertebral de numerosos servicios multimedia en línea, y los consumidores son cada vez menos tolerantes con las velocidades de descarga lentas. Las aplicaciones de video y voz son especialmente sensibles a la fluctuación y la latencia de la red.



CDN reúne todos los servidores en una red y proporciona una carga de contenido más rápida. A veces es posible reducir el tiempo de espera del usuario en 5-6 segundos. El objetivo de una CDN es optimizar la entrega sirviendo contenido desde el servidor más cercano al usuario final. Esto es muy similar a Anycast, donde se selecciona el servidor más cercano según la ubicación del usuario final. Parecería que todos los proveedores de CDN usarán Anycast de forma predeterminada, pero en realidad no lo es.



Las aplicaciones que utilizan protocolos como HTTP / TCP dependen de la conexión establecida. Si se selecciona un nuevo nodo Anycast (por ejemplo, si el servidor falla), es posible que el servicio se interrumpa. Esta es la razón por la que Anycast se recomendaba anteriormente para servicios sin conexión como UDP y DNS. Sin embargo, Anycast funciona bien para protocolos orientados a la conexión, por ejemplo, TCP funciona bien en modo Anycast.



Algunos proveedores de CDN utilizan el enrutamiento basado en Anycast, otros prefieren el enrutamiento basado en DNS: se elige el servidor más cercano según la ubicación del servidor DNS del usuario.



Las infraestructuras de centros de datos híbridos y múltiples son otro caso de uso de Anycast. La dirección IP de equilibrio de carga recibida del proveedor le permite distribuir la carga entre las direcciones IP de diferentes servicios de cliente en el centro de datos del proveedor. Con cualquier tecnología de direccionamiento de dispositivos, proporciona un mejor rendimiento con tráfico significativo, tolerancia a fallas y ayuda a optimizar los tiempos de respuesta para un gran número de usuarios.



En las infraestructuras híbridas de varios centros de datos, puede distribuir el tráfico entre servidores o incluso máquinas virtuales en servidores dedicados.



Por lo tanto, existe una gran selección de soluciones técnicas para la construcción de infraestructura. También puede configurar el equilibrio de carga de IP en varios centros de datos, utilizando cualquier dispositivo del grupo para optimizar el rendimiento del sitio.



Puedes distribuir el tráfico según tus propias reglas, definiendo el "peso" de cada uno de los servidores distribuidos en cada centro de datos. Esta configuración es especialmente útil cuando tiene un parque de servidores distribuidos y el rendimiento de los servicios no es uniforme. Esto le permite distribuir el tráfico con más frecuencia para mejorar el rendimiento del servidor.



Para crear un sistema de monitoreo usando el comando ping, es posible configurar sondas. Esto permite al administrador definir sus propios procedimientos de supervisión y obtener una visión más clara del estado de cada componente de la infraestructura. De esta forma, se pueden definir criterios de disponibilidad.



Existe la posibilidad de construir una infraestructura híbrida: a veces es conveniente dejar el back office en la red corporativa y transferir la parte del front-end a la subcontratación al proveedor.



Es posible agregar certificados SSL para equilibrio de carga, cifrado de datos transmitidos y seguridad de la comunicación entre los visitantes del sitio y la infraestructura corporativa. En el caso del equilibrio de carga entre centros de datos, también se puede utilizar SSL.



El servicio de equilibrio de carga de direcciones Anycast está disponible en su ISP. Esta función ayudará a mejorar la forma en que los usuarios interactúan con las aplicaciones según la ubicación. Basta con declarar qué servicios están disponibles en el centro de datos y el tráfico se redireccionará a la infraestructura más cercana. Si hay servidores dedicados, por ejemplo, en Francia o América del Norte, los clientes serán dirigidos al servidor más cercano de la red.



Un caso de uso de Anycast es la elección óptima del punto de presencia del operador (PoP). Demos un ejemplo... LinkedIn (bloqueado en Rusia) busca no solo mejorar el rendimiento y la velocidad de sus productos, aplicaciones móviles y web, sino también mejorar la infraestructura de red para la entrega de contenido acelerada. Para esta entrega de contenido dinámico, LinkedIn utiliza activamente PoP, puntos de presencia. Anycast se aplica para dirigir a los usuarios al PoP más cercano.



La razón es que en el caso de Unycast, cada PoP en LinkedIn tiene una dirección IP única. Luego, a los usuarios se les asignan PoP en función de su ubicación geográfica mediante DNS. El problema es que al usar DNS, alrededor del 30% de los usuarios en los Estados Unidos fueron redirigidos a PoP subóptimo. Con la implementación por fases de Anycast, la asignación de PoP subóptima se redujo del 31% al 10%.





, Y — PoP. «» Anycast PoP.



Anycast



En teoría, las redes Anycast son simples: a varios servidores físicos se les asigna la misma dirección IP, que BGP usa para determinar la ruta. Pero la implementación y el diseño de las plataformas Anycast es complejo y las redes tolerantes a fallas Anycast son especialmente famosas por esto. Aún más desafiante es el monitoreo efectivo de la red Anycast para identificar y aislar fallas rápidamente.



Si los servicios utilizan un proveedor de CDN de terceros para ofrecer su contenido, es muy importante que supervisen y verifiquen el rendimiento de la red. El monitoreo de CDN basado en Anycast se enfoca en medir la latencia de un extremo a otro y el rendimiento del penúltimo salto para comprender qué centro de datos está proporcionando el contenido. El análisis de los encabezados del servidor HTTP es otra forma de determinar de dónde provienen los datos.





Ejemplo: encabezados de respuesta HTTP que indican la ubicación del servidor CDN.



Por ejemplo, CloudFlare usa su propio encabezado CF-Ray en los mensajes de respuesta HTTP, que incluye una indicación del centro de datos al que se realizó la solicitud. En el caso de Zendesk, el encabezado CF-Ray para la región de Seattle es CF-RAY: 2a21675e65fd2a3d-SEA, y para Amsterdam es CF-RAY: 2a216896b93a0c71-AMS. También puede utilizar los encabezados HTTP X de la respuesta HTTP para determinar dónde se encuentra el contenido.



Otros métodos de direccionamiento



Existen otros métodos de direccionamiento para enrutar las solicitudes de los usuarios a un punto final de red específico:
Unidifusión

La mayor parte de Internet hoy en día utiliza este método. Unicast: transmisión unicast, la dirección IP está asociada con un solo nodo específico en la red. Esto se denomina correspondencia uno a uno. 

Multicast

Multicast « » « ». . ( ). Multicast Anycast, , Anycast , .

Broadcast

, . , ( ).

Geocast

Geocast Multicast: . , . .



(Geo Router) . , , . .









Unicast, Multicast y Broadcast.



El uso de la tecnología Anycast aumenta el nivel de confiabilidad, resistencia y seguridad del DNS. Con esta tecnología, los operadores ofrecen a sus clientes servicios para varios tipos de equilibrio de carga basado en DNS. En el panel de control, puede especificar las direcciones IP a las que se enviarán las solicitudes según la ubicación geográfica. Esto les dará a los clientes la capacidad de distribuir las solicitudes de los usuarios de manera más flexible.



Algunos operadores utilizan el monitoreo de rutas POP: el sistema analiza automáticamente las rutas locales y globales más cortas para los puntos de presencia y las redirige a través de ubicaciones geográficas con la latencia más baja sin tiempo de inactividad.



Por el momento, Anycast es la solución más estable y confiable para construir servicios DNS altamente cargados, que están sujetos a altos requisitos de estabilidad y confiabilidad.



El dominio .ru admite 35 servidores DNS Anycast, agrupados en 20 nodos, distribuidos en cinco nubes Anycast. En este caso, se utiliza el principio de construcción sobre una base geográfica, es decir Geocast. Al colocar los nodos DNS, se planea moverlos a ubicaciones geográficamente dispersas cerca de los usuarios más activos, la concentración máxima de proveedores rusos en el sitio del sitio, así como la disponibilidad de capacidades gratuitas y la facilidad de interacción con el sitio.



¿Cómo construyo una CDN?



CDN es una red de servidores que acelera la entrega de contenido a los usuarios. La red de entrega de contenido conecta todos los servidores en una red y proporciona una carga de contenido más rápida. La distancia del servidor al usuario juega un papel importante en la velocidad de descarga.



CDN le permite utilizar los servidores más cercanos a su público objetivo. Esto reduce el tiempo de espera, ayuda a acelerar la carga del contenido del sitio para todos los visitantes, lo cual es especialmente crítico para sitios con archivos grandes o servicios multimedia. Las aplicaciones típicas de CDN son el comercio electrónico y el entretenimiento.



La red de servidores adicionales creada en la infraestructura CDN, que se encuentran lo más cerca posible de los usuarios, contribuye a una entrega de datos más estable y rápida. Según las estadísticas, el uso de una CDN reduce la latencia al acceder a un sitio en más del 70% en comparación con los sitios sin CDN.



Cómo crear una CDN usando DNS? Configurar una CDN usando su propia solución Anycast puede ser un proyecto bastante costoso, pero existen opciones más económicas. Por ejemplo, puede utilizar GeoDNS y servidores normales con direcciones IP únicas. Los servicios GeoDNS pueden crear una CDN de geolocalización donde las decisiones se toman en función de la ubicación real del visitante, no la ubicación del resolutor de DNS. Puede configurar su zona DNS para mostrar las direcciones IP de los servidores estadounidenses a los visitantes de los Estados Unidos, y los visitantes europeos verán la dirección IP de Europa.



Con GeoDNS, es posible devolver diferentes respuestas de DNS dependiendo de la dirección IP del usuario. Para hacer esto, el servidor DNS está configurado para devolver diferentes direcciones IP basadas en la dirección IP original en la solicitud. Normalmente, la base de datos GeoIP se utiliza para determinar la región desde la que se realiza la solicitud. La geolocalización mediante DNS le permite enviar contenido a los usuarios desde un sitio cercano.



GeoDNS define la dirección IP del cliente que realizó la solicitud de DNS, o la IP del servidor DNS recursivo del ISP, que se utiliza para procesar la solicitud del cliente. El país / región está determinado por la IP del cliente y la base GeoIP. Luego, el cliente obtiene la dirección IP del servidor CDN más cercano. Puede leer más sobre la configuración de GeoDNS aquí .



¿Anycast o GeoDNS?



Si bien Anycast es una excelente manera de entregar contenido a nivel mundial, carece de especificidad. Aquí es donde entra GeoDNS. Este servicio le permite crear reglas que envían a los usuarios a puntos finales únicos según su ubicación.





Ejemplo: los usuarios de Europa se dirigen a un punto final diferente.



También puede denegar el acceso a los dominios eliminando todas las solicitudes. Esta es, en particular, una forma rápida de aislar a los intrusos.



GeoDNS proporciona respuestas más precisas que Anycast. Si en el caso de Anycast, la ruta más corta está determinada por el número de saltos, entonces en GeoDNS, el enrutamiento para los usuarios finales se basa en su ubicación física. Esto reduce la latencia y mejora la precisión al crear reglas de enrutamiento granulares.



Al cambiar a un dominio, el navegador se pone en contacto con el servidor DNS más cercano, que, según el dominio, emite una dirección IP para cargar el sitio. Suponga que una tienda en línea es popular en los Estados Unidos y Europa, y los servidores DNS para ella solo están en Europa. Luego, los usuarios de los Estados Unidos que quieran utilizar los servicios de la tienda deberán enviar una solicitud al servidor más cercano y, dado que está muy lejos, llevará mucho tiempo esperar una respuesta: el sitio no se cargará rápidamente.



Cuando un servidor GeoDNS se encuentra en los EE. UU., Los usuarios ya lo consultarán. La respuesta será rápida, lo que afectará la velocidad de carga del sitio.



En una situación con un servidor DNS existente en Estados Unidos, cuando un usuario de Estados Unidos navegue a este dominio, se pondrá en contacto con el servidor más cercano que dará la IP deseada. El usuario será dirigido al servidor que contiene el contenido del sitio, pero como los servidores con el contenido están lejos, no lo recibirá rápidamente.



Si colocamos servidores CDN con datos almacenados en caché en los EE. UU., Luego de la carga, el navegador del cliente enviará una solicitud al servidor DNS más cercano, que enviará la dirección IP correcta. El navegador con la IP obtenida se dirige al servidor CDN más cercano y al servidor principal, y el servidor CDN envía el contenido almacenado en caché al navegador. Mientras se carga el contenido en caché, los archivos que faltan para cargar el sitio completo se reciben del servidor principal. Como resultado, se reduce el tiempo de carga del sitio, ya que se envían muchos menos archivos desde el servidor principal.



Determinar la ubicación exacta de una dirección IP específica no siempre es una tarea fácil: hay muchos factores en juego, y los propietarios del rango de direcciones IP pueden decidir anunciarlo en el otro lado del mundo (luego debe esperar a que la base de datos se actualice para obtener la ubicación correcta). En ocasiones, los proveedores de VPS asignarán direcciones que se cree que están en los EE. UU. Para un VPS en Singapur.



A diferencia del uso de direcciones Anycast, la distribución se realiza durante la resolución de nombres, no durante la conexión al servidor de almacenamiento en caché. Si el servidor recursivo no admite subredes de cliente EDNS, se usa la ubicación de ese servidor recursivo, no el usuario que se conectará al servidor de caché.



Las subredes de cliente en DNS es una extensión de DNS (RFC7871) que define cómo los servidores DNS recursivos pueden enviar información de cliente a un servidor DNS, específicamente información de red que el servidor GeoDNS puede usar para localizar un cliente con mayor precisión.



La mayoría usa los servidores DNS de su ISP o los servidores DNS que están geográficamente cerca de ellos, pero si alguien en los EE. UU., Por alguna razón, decide usar un resolutor de DNS ubicado en Australia, lo más probable es que obtenga una IP. dirección del servidor más cercana a Australia.



Si desea utilizar GeoDNS, es importante conocer estas características, ya que en algunos casos puede aumentar la distancia entre los servidores de almacenamiento en caché y el cliente.



Resumen: si desea combinar varios VPS en un CDN, entonces la mejor opción de implementación es usar un paquete de servidor DNS con la función GeoDNS + Anycast lista para usar.






All Articles