Pregunta ¿Qué es "anycast" y cómo es útil?


Nunca había escuchado de ninguna transmisión hasta hace unos segundos, cuando leí "¿Cuáles son algunos trucos de servidor / red interesantes o útiles?".

La wikipedia "Anycast"el artículo es bastante formal y en realidad no evoca una imagen mental de cómo se usaría.

¿Puede alguien explicar en unas pocas frases informales qué es "anycast", cómo lo configuras (en un sentido general) y cuáles son sus beneficios (qué facilita)?


78
2018-05-29 18:54


origen




Respuestas:


Anycast es una técnica de red en la que se anuncia el mismo prefijo de IP desde varias ubicaciones. Luego, la red decide a qué ubicación enrutar una solicitud del usuario, según los costos del protocolo de enrutamiento y, posiblemente, el "estado" de los servidores de publicidad.

Hay varios beneficios para anycast. Primero, en estado estable, los usuarios de un servicio de difusión por difusión (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 (asumiendo 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 según la ubicación de 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 implementa anycast, también puede proporcionar un nivel de alta disponibilidad. Si el anuncio de la ruta anycast está condicionado a algún tipo de comprobación de estado (por ejemplo, una consulta de DNS para un dominio conocido, en este ejemplo), tan pronto como un servidor falla, se puede eliminar su ruta. Una vez que la red se reconvierta, las solicitudes de los usuarios se reenviarán sin problemas a la siguiente instancia más cercana de DNS, sin necesidad de ninguna intervención manual o reconfiguración.

Una ventaja final es la de la escala horizontal; Si descubre que un servidor se está cargando demasiado, simplemente despliegue otro en una ubicación que le permita tomar parte de las solicitudes del servidor sobrecargado. Nuevamente, como no se requiere una configuración de cliente, esto puede hacerse muy rápidamente.


83
2018-05-29 19:22



¿Anycast utiliza más ancho de banda en comparación con unicast? Imagina que tenemos mil servidores que comparten la misma dirección IP cuando enviamos un paquete a ese dirección, ¿no ocuparía más ancho de banda que en comparación con unicasting? - Pacerier
No: el tráfico enviado a una dirección de difusión por difusión solo llegará a un lugar donde se anuncie la dirección. Usted puede estar pensando en multicast, donde los paquetes enviados a una dirección de grupo de multidifusión se envían a todos los hosts interesados ​​en ese grupo. - Murali Suriar
No es el problema de "En lugar de tener que configurar diferentes servidores DNS dependiendo de dónde se implementa un servidor / estación de trabajo"¿Resuelto por los nombres de dominio? Entonces, ¿cuál es el punto de cualquier difusión cuando simplemente está duplicando qué nombres de dominio ya están haciendo? - Pacerier
@Pacerier: no puede usar nombres de dominio para encontrar su servidor DNS, eso es una dependencia circular. Ejemplo: configurar dns.foo.com. como su servidor DNS. ¿A qué dirección IP le envío las solicitudes a dns.foo.com? Lo sé, lo buscaré en DNS. etc. - Murali Suriar


Una de las cosas que a menudo me confundía 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:

  1. Enrutadores utilizando BGP para anunciar el mismo bloque de IP a través de múltiples COMO caminos 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 con problemas. Esto puede ser útil para casi cualquier protocolo, aunque obviamente plantea muchos problemas de sincronización de datos de back-end.

  2. Anunciar el mismo servicio IP desde múltiples puntos dentro de su propia red (a través de enrutamiento estatico, OSPF, EIGRP, o lo que sea). Si las rutas están ponderadas diferentementeActúa como un mecanismo de conmutación por error. Si las rutas están ponderadas igualmente puede aprovechar las capacidades de balanceo de carga por paquete o por flujo de la mayoría de los enrutadores de proveedores de marca. Hay que tener cuidado de que el capa de aplicación El protocolo se siente cómodo con esto, es por eso que casi siempre escuchas que se usa con DNS donde una solicitud es siempre un paquete y todo es sin estado. Personalmente, veo esto como una intrusión intrincada 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.


31
2018-05-30 04:24



+1 por mencionar un paquete y la apatridia - nponeccop
El problema con DNS es que uno puede usar google o algún otro sistema de resolución remoto y el servidor más cercano a resolver puede ser diferente al usuario. Por supuesto, esto es válido solo para cualquier difusión no es para uso de DNS (por ejemplo, cualquier difusión de tcp u otro uso). - akostadinov
@cagenut, ¿HTTP se rompería en el caso de equilibrio de carga por paquete (debido a pesos pares o de otro tipo)? - Pacerier


Se utiliza principalmente para servicios basados ​​en UDP como DNS. Básicamente, usted anuncia la misma ruta para salir de 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" basado en las rutas BGP. Pongo "mejor" y "más cercano" entre comillas porque los proveedores de red pueden jugar juegos y enrutar el tráfico de ciertas redes de manera diferente. En general, las cosas funcionan mejor con cualquier difusión, pero no es una garantía.

Un ejemplo de esto sería listar 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 varios centros de datos. Si estás en Japón y tienes un centro de datos allí, es probable que termines allí. Si está 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 las cosas se descomponen.


16
2018-05-29 19:01



¿Cómo se evitan entonces los conflictos? - Pacerier
No estoy seguro de lo que quieres decir con conflictos. BGP realmente no permite conflictos. Simplemente escoge una ruta. Un problema (a menudo ignorado) con anycast es legal. Técnicamente, cualquier difusión está cubierta por diferentes patentes. Nadie hace cumplir esto, pero diferentes tipos de tráfico (CDN, DNS, TCP vs UDP) están cubiertos por diferentes patentes. Este párrafo debe ser cubierto con IANAL. - diq
¿Quieres decir que esos servicios de ip2location son inexactos? Debido a que no hay una ubicación oficial para una IP y podría ser en cualquier sitio ¿Dependiendo de qué computadora BGP hablas? - Pacerier


De acuerdo con mi respuesta original, acabo de publicar dos artículos más en mi blog titulado: Anycast DNS - Parte 3, Uso de RIP y Anycast DNS - Parte 3, Uso de RIP (continuación). Este último incluye 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 de código abierto Quagga basado en host para Anycast DNS utilizando RIP.

Actualmente estoy trabajando en escribir el cuarto artículo de la serie. Esto proporcionará recetas sobre cómo implementar Anycast DNS utilizando OSPF. El último de la serie, mostraré recetas para implementar Anycast DNS utilizando BGP.

DNS de Anycast - 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) 


8
2018-05-31 16:32



Entonces, ¿es cierto que debido a cualquier difusión, es posible que alguien más en Internet en todo el mundo tenga la misma IP pública que la que le dio su ISP? - Pacerier
¿No es cierto que solo los ISP son capaces de implementar servidores anycast? - Pacerier
De hecho, necesitarías poseer múltiple ISPs para hacer anycast. - Pacerier


Dado que esto es principalmente DNS en este momento ...

Informalmente, hace que su servicio sea más resistente y con mejor acceso / latencia / velocidad a la red al permitirle configurar el mismo servicio en múltiples ubicaciones en todo el mundo utilizando la misma dirección. Cuando alguien consulta por esa dirección, se le da la ruta más cercana / mejor.

Desde la perspectiva del servidor:

Si unicast está yendo a una sola persona, y multicast está yendo a varias, y transmitiendo a todas las personas, Anycast está siendo esquitzofrénico 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.


4
2018-05-29 19:19





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 (o, a veces, tanto DNS primario como secundario) direcciones. Dependiendo de dónde esté la fuente, se enrutan a su nodo más cercano. Esto hace un poco de equilibrio de tráfico y proporciona redundancia si un servidor DNS muere.


3
2018-05-29 19:03



¿Pero el sistema DNS ya no proporciona redundancia? - Pacerier


De acuerdo con uno de mis colegas, también es útil como una técnica de mitigación de ataques DoS, ya que las personas solo pueden atacar la dirección IP de difusión más cercana, por lo que si hay muchos zombis en los EE. UU., Su sitio del euro sería En su mayoría no se ven afectados, ya que no pueden enviar paquetes.

También puede ser posible usarlo como una forma (algo ingenua) de filtrar paquetes falsificados si obviamente vienen de algún lugar poco probable que se anuncie en BGP como la ruta correcta (por ejemplo, los paquetes que llegan a Europa cuando el ASN indica que hay un N American) bloquear).


2
2018-05-31 17:16



Bueno, incluso en el caso simple que solo detendría a las personas cuya ruta AS va a ese servidor, por ejemplo. puede detener a las personas que lo contactan desde Comcast, pero no a AT&T. Si lo tiene configurado "correctamente" para la conmutación por error (rastree el servicio L7, deje de anunciar cuando se caiga), entonces es mucho más difícil manejar los ataques DoS, ya que atacará un servidor y luego pasará al siguiente cuando sea los anuncios son bajados ... - James Cape
@JamesCape, Interesante, Pero cuando pasan a la siguiente, el DOS ha fallado ya que las personas no pueden conectarse, ¿verdad? - Pacerier
@Pacerier En el caso más simple, en el que acaba de anunciar la misma IP en todas partes sin inteligencia, sí. Sin embargo, si intenta ser inteligente y retirar el anuncio en los EE. UU. Porque el servicio no responde, entonces el único anuncio que quedará será el de Europa. Entonces, todos los zombies de los EE. UU. Golpearán el siguiente servidor disponible y matarán a ese también. - James Cape


También es bueno tener en cuenta que Anycast no es bueno ni confiable para algunas conexiones TCP que no pueden sobrevivir a reinicios o cualquier conversación larga.

Las direcciones IP de Anycast, utilizando BGP, le dicen a Internet que hay 2, 3 o más rutas a un HOST específicoSin embargo, en la actualidad estos son NO el mismo anfitrión, son réplicas exactas de hosts anunciados en múltiples centros de datos para lograr conexiones de menor latencia.

Por ejemplo, tengo 3 servidores que realizan 301 redireccionamientos no www para 198.251.86.133, si hace ping a este host, puede recibir respuestas DUPLICADAS a veces, o incluso caídas, dependiendo de dónde se encuentre, ya que mis servidores son EE. UU., EE. UU., EE. UU. -West, y EUR. para conexiones de tiempo corto (como 301 que son caché del navegador) esto brinda una respuesta rápida por parte de un servidor local en el centro de datos más cercano.

Desde un punto de vista de redundancia, no hay ninguno integrado en ninguna transmisión, aún necesitaría redundancia independiente en cada sitio, ya que esa IP (en los escenarios típicos) siempre apuntará a esos centros de datos.


2
2017-10-13 12:58



Re "ping"; ¿No es ping una conexión UDP? - Pacerier
Re "como esa IP (en escenarios típicos) siempre apuntará a esos centros de datos"; ¿Estás seguro? Si ese servidor se apagara, comenzarían a señalar el siguiente servidor más cercano, ¿no es así? - Pacerier