stringtranslate.com

Anycast

Visualización de enrutamiento anycast.

Anycast es una metodología de enrutamiento y direccionamiento de red en la que una única dirección IP es compartida por dispositivos (generalmente servidores) en múltiples ubicaciones. Los enrutadores dirigen los paquetes dirigidos a este destino a la ubicación más cercana al remitente, utilizando sus algoritmos normales de toma de decisiones , típicamente el menor número de saltos de red BGP . El enrutamiento Anycast es ampliamente utilizado por redes de entrega de contenido como servidores web y de nombres , para acercar su contenido a los usuarios finales.

Historia

El primer uso documentado del enrutamiento anycast para el equilibrio de carga topológico de servicios conectados a Internet fue en 1989; [1] [2] la técnica se documentó formalmente por primera vez en el IETF cuatro años después. [ 3] Se aplicó por primera vez a la infraestructura crítica en 2001 con el anycasting del servidor de nombres raíz I. [2]

Objeciones tempranas

Las primeras objeciones a la implementación del enrutamiento anycast se centraban en el conflicto percibido entre las conexiones TCP de larga duración y la volatilidad de la topología enrutada de Internet. En teoría, una conexión de larga duración, como una transferencia de archivos FTP (que puede tardar horas en completarse en el caso de archivos grandes), podría ser redireccionada a una instancia anycast diferente en medio de la conexión debido a cambios en la topología de la red o en el enrutamiento, con el resultado de que el servidor cambia en medio de la conexión y el nuevo servidor no está al tanto de la conexión y no posee el estado de conexión TCP de la instancia anycast anterior.

En la práctica, no se observaron tales problemas y estas objeciones se disiparon a principios de la década de 2000. Muchas de las implementaciones iniciales de anycast consistían en servidores DNS, que utilizaban principalmente transporte UDP. [4] [2] Las mediciones de flujos anycast a largo plazo revelaron muy pocos fallos debidos a cambios de instancias a mitad de conexión, muchos menos (menos del 0,017% [5] o "menos de un flujo por cada diez mil por hora de duración" [1] según varias fuentes) de los que se atribuían a otras causas de fallo. Se desarrollaron numerosos mecanismos para compartir de forma eficiente el estado entre instancias anycast. [6] Y algunos protocolos basados ​​en TCP, en particular HTTP, incorporaron mecanismos de "redireccionamiento", mediante los cuales las direcciones de servicio anycast podían utilizarse para localizar la instancia más cercana de un servicio, con lo que un usuario sería redirigido a esa instancia específica antes del inicio de cualquier transacción con estado de larga duración. [1] [7]

Protocolo de Internet versión 4

Anycast se puede implementar a través del protocolo de puerta de enlace de borde (BGP). A varios hosts (normalmente en diferentes áreas geográficas) se les asigna la misma dirección IP de unidifusión y se anuncian diferentes rutas a la dirección a través de BGP. Los enrutadores consideran que estas son rutas alternativas al mismo destino, aunque en realidad son rutas a diferentes destinos con la misma dirección. Como es habitual, los enrutadores seleccionan una ruta según la métrica de distancia que se utilice (la de menor coste, la menos congestionada, la más corta). Seleccionar una ruta en esta configuración equivale a seleccionar un destino.

Protocolo de Internet versión 6

La arquitectura de direccionamiento IPv6 admite de forma explícita la función anycast . [8] La dirección más baja dentro de una subred IPv6 (identificador de interfaz 0) se reserva como la dirección anycast del "enrutador de subred". Además, los 128 identificadores de interfaz más altos dentro de una subred también se reservan como direcciones anycast. [9]

La mayoría de los enrutadores IPv6 en la ruta de un paquete anycast a través de la red no lo distinguirán de un paquete unicast, pero se requiere un manejo especial de los enrutadores cercanos al destino (es decir, dentro del alcance de la dirección anycast) ya que deben enrutar un paquete anycast a la interfaz "más cercana" dentro de ese alcance que tenga la dirección anycast adecuada, de acuerdo con cualquier medida de distancia ( saltos , costo, etc.) que se esté utilizando.

El método utilizado en IPv4 de anunciar múltiples rutas en BGP a direcciones unicast de asignación múltiple también funciona en IPv6 y se puede utilizar para enrutar paquetes al host más cercano de varios hosts geográficamente dispersos con la misma dirección. Este enfoque, que no depende de enrutadores que admitan anycast, tiene los mismos casos de uso y los mismos problemas y limitaciones que en IPv4.

Aplicaciones

Con el crecimiento de Internet, los servicios de red tienen cada vez más requisitos de alta disponibilidad. Como resultado, la operación de servicios anycast ha ganado popularidad entre los operadores de red. [10]

Sistema de nombres de dominio

Todos los servidores raíz de Internet se implementan como clústeres de hosts que utilizan direcciones anycast. [11] Los 13 servidores raíz A–M existen en múltiples ubicaciones, con 11 en múltiples continentes. (Los servidores raíz B y H existen en dos ubicaciones de EE. UU.) [12] [13] [14] Los servidores utilizan anuncios de direcciones anycast para proporcionar un servicio descentralizado. Esto ha acelerado la implementación de servidores raíz físicos (en lugar de lógicos) fuera de los Estados Unidos . Muchos proveedores de DNS comerciales han cambiado a un entorno IP anycast para aumentar el rendimiento y la redundancia de las consultas, y para implementar el equilibrio de carga. [2]

Transición a IPv6

En la transición de IPv4 a IPv6 , se puede implementar el direccionamiento anycast para proporcionar compatibilidad IPv6 a los hosts IPv4. Este método, 6to4 , utiliza una puerta de enlace predeterminada con la dirección IP 192.88.99.1 . [15] Esto permite que varios proveedores implementen puertas de enlace 6to4 sin que los hosts tengan que conocer las direcciones de puerta de enlace de cada proveedor individual. 6to4 ha quedado obsoleto [16] en respuesta a la creciente prevalencia del IPv6 nativo.

Redes de distribución de contenidos

Las redes de distribución de contenido pueden utilizar anycast para conexiones HTTP reales a sus centros de distribución o para DNS . Debido a que la mayoría de las conexiones HTTP a dichas redes solicitan contenido estático, como imágenes y hojas de estilo , generalmente son de corta duración y sin estado en las sesiones TCP posteriores. La estabilidad general de las rutas y la falta de estado de las conexiones hacen que anycast sea adecuado para esta aplicación, aunque utilice TCP . [5] [1]

Conectividad entre redes Anycast y Multicast

El punto de encuentro anycast se puede utilizar en el Protocolo de descubrimiento de origen multicast (MSDP) y su aplicación es ventajosa, ya que Anycast RP es una característica intradominio que proporciona redundancia y capacidades de reparto de carga. Si se utiliza el punto de encuentro anycast múltiple, el enrutamiento IP seleccionará automáticamente el punto de encuentro topológicamente más cercano para cada fuente y receptor. Proporcionaría una red de multidifusión con los requisitos de tolerancia a fallos. [17]

Seguridad

Anycast permite a cualquier operador cuya información de enrutamiento sea aceptada por un enrutador intermedio secuestrar cualquier paquete destinado a la dirección anycast. Si bien esto a primera vista parece inseguro, no es diferente del enrutamiento de paquetes IP ordinarios , y no es más o menos seguro. Al igual que con el enrutamiento IP convencional, el filtrado cuidadoso de quién tiene y quién no tiene permiso para propagar anuncios de ruta es crucial para evitar ataques de tipo man-in-the-middle o blackhole . El primero también se puede prevenir cifrando y autenticando mensajes, como mediante Transport Layer Security , mientras que el segundo se puede frustrar mediante el enrutamiento de cebolla .

Fiabilidad

Anycast es normalmente muy confiable, ya que puede proporcionar conmutación por error automática sin agregar complejidad o nuevos puntos potenciales de falla. Las aplicaciones anycast generalmente cuentan con monitoreo externo de "latido" de la función del servidor y retiran el anuncio de ruta si el servidor falla. En algunos casos, esto lo hacen los servidores reales que anuncian el prefijo anycast al enrutador a través de OSPF u otro IGP . Si los servidores fallan, el enrutador retirará automáticamente el anuncio. La funcionalidad de "latido" es importante porque, si el anuncio continúa para un servidor que falla, el servidor actuará como un "agujero negro" para los clientes cercanos; este es el modo de falla más grave para un sistema anycast. Incluso en este caso, este tipo de falla solo provocará una falla total para los clientes que estén más cerca de este servidor que cualquier otro, y no provocará una falla global. Sin embargo, incluso la automatización necesaria para implementar la retirada del enrutamiento de "latido" puede agregar un punto potencial de falla, como se vio en la interrupción de Facebook de 2021 .

Mitigación de ataques de denegación de servicio

En los ataques de denegación de servicio , un host de red fraudulento puede publicitarse como un servidor anycast para un servicio de red vital, para proporcionar información falsa o simplemente bloquear el servicio.

Las metodologías anycast en Internet pueden ser explotadas para distribuir ataques DDoS y reducir su efectividad: como el tráfico se enruta al nodo más cercano, un proceso sobre el cual el atacante no tiene control, el flujo de tráfico DDoS se distribuirá entre los nodos más cercanos. Por lo tanto, no todos los nodos pueden verse afectados. Esta puede ser una razón para implementar el direccionamiento anycast. [18] Sin embargo, la efectividad de esta técnica depende de mantener la confidencialidad de cualquier dirección unicast asociada con los nodos de servicio anycast, ya que un atacante en posesión de las direcciones unicast de nodos individuales puede atacarlos desde cualquier ubicación, eludiendo los métodos de direccionamiento anycast. [19]

Nodos locales y globales

Algunas implementaciones anycast en Internet distinguen entre nodos locales y globales para beneficiar a la comunidad local, al dirigirse a los nodos locales de manera preferencial. Un ejemplo es el Sistema de nombres de dominio. Los nodos locales a menudo se anuncian con la comunidad BGP sin exportación para evitar que los hosts los anuncien a sus pares, es decir, el anuncio se mantiene en el área local. Cuando se implementan nodos locales y globales, los anuncios de los nodos globales a menudo se anteponen con AS (es decir, el AS se agrega unas cuantas veces más) para hacer que la ruta sea más larga de modo que se prefiera un anuncio de nodo local sobre un anuncio de nodo global. [20]

Véase también

Referencias

  1. ^ abcd Woodcock, Bill (junio de 1996). "Mejores prácticas en enrutamiento Anycast" (PDF) . Packet Clearing House.
  2. ^ abcd Hernandez, Gael (10 de octubre de 2017). "Construcción y operación de una red global Anycast" (PDF) . Eurasia Network Operators Group.
  3. ^ C. Partridge ; T. Méndez; W. Milliken (noviembre de 1993). Host Anycasting Service. Grupo de trabajo de redes. doi : 10.17487/RFC1546 . RFC 1546. Informativo.
  4. ^ Woodcock, Bill (14 de noviembre de 2019). "TCP y Anycast". Archivo de listas de correo de NANOG . North American Network Operators Group.
  5. ^ ab Levine, Matt; Lyon, Barrett; Underwood, Todd (junio de 2006). "TCP Anycast: No crea en el FUD - Experiencia operativa con TCP y Anycast" (PDF) . Grupo de Operadores de Redes de América del Norte.
  6. ^ Herrin, William. "Arquitectura TCP Anycast" . Consultado el 11 de octubre de 2021 .
  7. ^ Katz-Bassett, Ethan; Gao, Ryan (julio de 2019). "Impacto de la pérdida de TCP en el rendimiento de las aplicaciones regionales" (PDF) . Microsoft. Azure Frontdoor utiliza la redirección anycast para dirigir a los usuarios a un borde cercano.
  8. ^ R. Hinden; S. Deering (febrero de 2006). Arquitectura de direccionamiento IP versión 6. Grupo de trabajo de redes. doi : 10.17487/RFC4291 . RFC 4291. Borrador de norma. Obsoleto RFC 3513. Actualizado por RFC 5952, 6052, 7136, 7346, 7371 y 8064.
  9. ^ D. Johnson; S. Deering (marzo de 1999). Direcciones Anycast de subredes IPv6 reservadas. Grupo de trabajo de redes. doi : 10.17487/RFC2526 . RFC 2526. Norma propuesta.
  10. ^ J. Abley; K. Lindqvist (diciembre de 2006). Operación de servicios Anycast. Grupo de trabajo de redes. doi : 10.17487/RFC4786 . BCP 126. RFC 4786. Mejor práctica común.
  11. ^ T. Hardie (abril de 2002). Distribución de servidores de nombres autorizados mediante direcciones de unidifusión compartidas. Grupo de trabajo de redes. doi : 10.17487/RFC3258 . RFC 3258. Informativo.
  12. ^ Página de inicio del servidor DNS raíz B, visitado el 8 de febrero de 2015
  13. ^ "Informe sobre las ubicaciones de los servidores de nombres raíz". Packet Clearing House . Consultado el 21 de febrero de 2011 .
  14. ^ "Root Server Technical Operations Assn". root-servers.org . Consultado el 16 de febrero de 2013 .
  15. ^ C. Huitema (junio de 2001). Un prefijo Anycast para enrutadores de retransmisión 6to4. Grupo de trabajo de redes. doi : 10.17487/RFC3068 . RFC 3068. Informativo. Obsoleto por RFC 7526.
  16. ^ O. Troan (mayo de 2015). B. Carpenter (ed.). Desuso del prefijo Anycast para enrutadores de retransmisión 6to4. Grupo de trabajo de ingeniería de Internet . doi : 10.17487/RFC7526 . BCP 196. RFC 7526. Mejores prácticas actuales. RFC 3068 y 6732 obsoletos .
  17. ^ "Punto de encuentro Anycast". Cisco Systems. 1 de junio de 2001.
  18. ^ "Hoja informativa de la ICANN sobre el ataque al servidor raíz el 6 de febrero de 2007" (PDF) . Hoja informativa . Corporación de Internet para la Asignación de Nombres y Números (ICANN). 1 de marzo de 2007 . Consultado el 21 de febrero de 2011 .
  19. ^ Metz, C. (2002). "IP Anycast: comunicación punto a (cualquier) punto (se requiere iniciar sesión)". IEEE Internet Computing . 6 (2). IEEE : 94–98. doi :10.1109/4236.991450.
  20. ^ Oki, Eiji; Rojas-Cessa, Roberto; Tatipamula, Mallikarjun; Vogt, Christian (24 de abril de 2012). Protocolos, servicios y aplicaciones de Internet avanzados. John Wiley & Sons. págs. 102 y 103. ISBN 978-0-470-49903-0. Archivado del original el 5 de enero de 2020.

Enlaces externos