Anycast es una metodología de direccionamiento y enrutamiento de red en la que una única dirección IP de destino tiene múltiples rutas de enrutamiento a dos o más destinos de punto final. Los enrutadores seleccionarán la ruta deseada según el número de saltos , la distancia, el costo más bajo, las mediciones de latencia o según la ruta menos congestionada. Las redes Anycast se utilizan ampliamente para que los productos de redes de entrega de contenido (CDN) acerquen su contenido al usuario final.
Métodos de direccionamiento
Esquemas de enrutamiento |
---|
Unidifusión |
Transmisión |
Multidifusión |
Anycast |
Geocast |
El Protocolo de Internet y otros sistemas de direccionamiento de red reconocen cinco métodos principales de direccionamiento:
- El direccionamiento unidifusión utiliza una asociación uno a uno entre un remitente y un destino: cada dirección de destino identifica de forma única un único punto final del receptor.
- Broadcast utiliza una asociación de uno a todos ; un único datagrama de un remitente se enruta a todos los posibles puntos finales asociados con la dirección de difusión. La red replica automáticamente los datagramas según sea necesario para llegar a todos los destinatarios dentro del alcance de la transmisión, que generalmente es una subred de red completa.
- El direccionamiento de multidifusión utiliza una asociación de uno a muchos de muchos o de muchos a muchos de muchos ; Los datagramas se enrutan simultáneamente en una sola transmisión a muchos destinatarios. Se diferencia de la difusión en que la dirección de destino designa un subconjunto, no necesariamente todos, de los nodos accesibles.
- El direccionamiento Anycast es una asociación de uno a uno de muchos donde los datagramas se enrutan a un solo miembro de un grupo de receptores potenciales que están todos identificados por la misma dirección de destino. El algoritmo de enrutamiento selecciona el receptor único del grupo en función de la métrica de enrutamiento menos costosa. En la práctica, esto significa que los paquetes se enrutan al miembro topológicamente más cercano de un grupo anycast. Anycasting en la arquitectura de Internet se describió por primera vez en RFC 1546 [1]
- Geocast se refiere a la entrega de información a un grupo de destinos en una red identificados por sus ubicaciones geográficas. Es una forma especializada de direccionamiento de multidifusión utilizada por algunos protocolos de enrutamiento para redes móviles ad hoc.
Protocolo de Internet versión 4
Anycast se puede implementar a través del Border Gateway Protocol (BGP). Múltiples hosts (generalmente en diferentes áreas geográficas) reciben 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 se trata de 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 esté utilizando (el menor costo, el menos congestionado, el más corto). Seleccionar una ruta en esta configuración equivale a seleccionar un destino.
El problema de este enfoque es que una conexión a una dirección anycast puede fallar porque la red puede cambiar el enrutamiento de los paquetes en la mitad de la conexión debido a la congestión o cambios en la red, con el resultado de que el destino cambia a mitad de la conexión, aunque el el nuevo destino no es consciente de la conexión y no mantiene el estado de conexión. Por lo general, estas condiciones se denominan " conmutador PoP ". Con una dirección de unidifusión normal, un cambio de enrutamiento no sería un problema, ya que esto simplemente da como resultado una ruta diferente al mismo destino final. Normalmente, no es necesario que todos los paquetes dentro de una conexión sigan la misma ruta. Pero cuando la dirección es en realidad una dirección anycast disfrazada de dirección unicast (como en este diseño), un cambio de enrutamiento podría ser un cambio de destino.
Debido a la posibilidad de un "conmutador PoP" en IPv4, anycast se usa generalmente con protocolos sin conexión basados en UDP , como una forma de proporcionar alta disponibilidad y equilibrio de carga para servicios sin estado . Por ejemplo, una de las aplicaciones más conocidas de Anycast IPv4 es el sistema de nombres de dominio (DNS). Esto se adapta bien a anycast porque es un servicio basado en UDP que proporciona acceso sin conexión a datos de nombres de dominio que se replican en múltiples servidores sin estado, geográficamente dispersos, con severas demandas de disponibilidad y escalabilidad .
Debido a que anycast es más propenso a errores con protocolos orientados a la conexión como TCP, donde el destino mantiene el estado , se usa con menos frecuencia con estos protocolos. Algunas pilas de IP personalizadas utilizan métodos patentados para reparar los protocolos con estado cuando es necesario, [2] mitigando los problemas debidos a los conmutadores PoP anycast. Estos métodos generalmente involucran alguna forma de virtualización de funciones de red [3] en forma de reescritura de paquetes, como ha sido demostrado por AWS HyperPlane, [4] [5] y Google Maglev [6] y / o encapsulación de paquetes según lo establecido por protocolos como Generic Encapsulación de enrutamiento , IPOP .
Protocolo de Internet versión 6
Anycast se admite explícitamente en IPv6 . RFC 4291 , que cubre la arquitectura de direccionamiento IPv6, reserva el Identificador de interfaz 0 dentro de una subred IPv6 como la dirección anycast del "Enrutador de subred". Además, RFC 2526 reserva un bloque de 128 identificadores de interfaz dentro de una subred como direcciones anycast.
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 cerca del destino (es decir, dentro del alcance de la dirección anycast) ya que se requiere para enrute 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 para anunciar múltiples rutas en BGP a direcciones unidifusión asignadas de forma múltiple también funciona en IPv6, y se puede utilizar para enrutar paquetes al más cercano de varios hosts dispersos geográficamente con la misma dirección. Este enfoque, que no depende de enrutadores compatibles con anycast, tiene los mismos casos de uso junto con 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, el funcionamiento de los servicios anycast ( RFC 4786 ) ha ganado popularidad entre los operadores de red. [7]
sistema de nombres de dominio
Todos los servidores de nombres raíz de Internet se implementan como grupos de hosts que utilizan direccionamiento anycast. Los 13 servidores raíz A – M existen en varias ubicaciones, con 11 en varios continentes. (Los servidores raíz B y H existen en dos ubicaciones de EE. UU.) [8] [9] [10] Los servidores utilizan anuncios de dirección 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 . RFC 3258 documenta el uso de direccionamiento anycast para proporcionar servicios DNS autorizados . Muchos proveedores de DNS comerciales se han cambiado a un entorno de difusión por Internet de IP para aumentar el rendimiento y la redundancia de las consultas, y para implementar el equilibrio de carga. [ cita requerida ]
Transición de IPv6
En la transición de IPv4 a IPv6 , el direccionamiento anycast se puede implementar para brindar compatibilidad con IPv6 a los hosts IPv4. Este método, 6to4 , utiliza una puerta de enlace predeterminada con la dirección IP 192.88.99.1, como se describe en RFC 3068 . 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. Este método ha quedado obsoleto en RFC 7526 .
Redes de distribución de contenido
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 de TCP posteriores. La estabilidad general de las rutas y la ausencia de estado de las conexiones hace que anycast sea adecuado para esta aplicación, a pesar de que utiliza TCP . [ cita requerida ]
Conectividad entre la red Anycast y Multicast
El punto de encuentro Anycast se puede utilizar en el Protocolo de descubrimiento de origen de multidifusión (MSDP) y su aplicación ventajosa, ya que Anycast RP es una función dentro del dominio que proporciona redundancia y capacidades de carga compartida. Si se utiliza el punto de encuentro de 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. [11]
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 , ni más ni menos seguro. Al igual que con el enrutamiento IP convencional, el filtrado cuidadoso de quién puede y quién no puede propagar anuncios de ruta es crucial para evitar ataques de hombre en el medio o de agujero negro . Lo primero también se puede prevenir cifrando y autenticando mensajes, como el uso de Transport Layer Security , mientras que el segundo puede frustrarse con el enrutamiento de cebolla .
Fiabilidad
Anycast es normalmente muy confiable, ya que puede proporcionar conmutación por error automática . Las aplicaciones Anycast generalmente cuentan con monitoreo externo de "latidos" 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 mueren, el enrutador retirará automáticamente el anuncio.
La funcionalidad "Heartbeat" es importante porque, si el anuncio continúa para un servidor fallido, el servidor actuará como un "agujero negro" para los clientes cercanos; este modo de falla es el modo de falla más serio para un sistema anycast. Incluso en este caso, este tipo de falla solo causará una falla total para los clientes que están más cerca de este servidor que cualquier otro, y no causará una falla global.
Mitigación de ataques de denegación de servicio
En los ataques de denegación de servicio , un host de red deshonesto puede anunciarse a sí mismo 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 explotarse para distribuir ataques DDoS y reducir su efectividad: a medida que 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 tanto, no todos los nodos pueden verse afectados. Esta puede ser una razón para implementar el direccionamiento anycast. [12]
Sin embargo, la efectividad de esta técnica para desviar ataques es cuestionable, porque las direcciones de unidifusión (utilizadas para el mantenimiento) pueden ser fáciles de obtener, al menos en IPv6 . El ahora obsoleto RFC 2373 declaró que una "dirección anycast no debe utilizarse como la dirección de origen de un paquete IPv6". Por lo tanto, hacer ping a una dirección anycast devolverá la dirección unicast del nodo más cercano, ya que la respuesta debe provenir de una dirección unicast. Un atacante puede atacar nodos individuales desde cualquier ubicación, sin pasar por los métodos de direccionamiento anycast. Este mismo método funciona en algunas direcciones IPv4 anycast, pero no en todas. [13]RFC 2373 también restringió las direcciones IPv6 anycast solo a enrutadores. Sin embargo, ambas restricciones se levantaron en RFC 4291 .
La autenticación de transmisiones anycast puede resolver este problema. [14]
Nodos locales y globales
Algunas implementaciones anycast en Internet distinguen entre nodos locales y globales para beneficiar a la comunidad local, al dirigirse preferentemente a los nodos locales. 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 tanto locales como globales, los anuncios de los nodos globales suelen ir precedidos de AS (es decir, el AS se añade unas cuantas veces más) para alargar la ruta de modo que se prefiera un anuncio de nodo local sobre un anuncio de nodo global. [15]
Ver también
- Multihoming
- Búsqueda de línea , para un sistema equivalente para teléfonos
Referencias
- ^ Partridge, C .; Méndez, T .; Milliken, W. (noviembre de 1993). "Host Anycasting Service" (PDF) . RFC 1546 . El IETF Trust . Consultado el 14 de agosto de 2019 .
- ^ Príncipe, Mateo. "Comentario del CEO en el blog de CloudFlare" . Blog de CloudFlare . Consultado el 12 de agosto de 2014 .
- ^ Casos de uso de virtualización de funciones de red (NFV), ETSI GS NFV 001 v1.1.1 (2013-10)
- ^ MacCarthaigh, Colm. "HyperPlane" . YouTube . Consultado el 27 de febrero de 2019 .
- ^ MacCarthaigh, Colm. "Equilibrio de carga a hiperescala" . AtScaleConference . Consultado el 27 de febrero de 2019 .
- ^ Eisenbud, Daniel. "Un balanceador de carga de red de software rápido y confiable" . Google . Consultado el 27 de febrero de 2019 .
- ^ Abley, J .; Lindqvist, K. (diciembre de 2006). "Funcionamiento de los servicios Anycast" (PDF) . RFC 4786 . El IETF Trust . Consultado el 21 de febrero de 2011 .
- ^ Servidor DNS raíz B de la página de inicio, visitado el 8 de febrero de 2015
- ^ "Informe sobre ubicaciones de servidores de nombres raíz" . Cámara de compensación de paquetes . Consultado el 21 de febrero de 2011 .
- ^ "Asociación de Operaciones Técnicas del Servidor Raíz" . root-servers.org . Consultado el 16 de febrero de 2013 .
- ^ https://www.cisco.com/c/en/us/td/docs/ios/solutions_docs/ip_multicast/White_papers/anycast.html
- ^ "Hoja informativa de la ICANN sobre el ataque al servidor raíz el 6 de febrero de 2007" (PDF) . Ficha informativa . La 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 .
- ^ Metz, C. (2002). "IP Anycast: comunicación punto a (cualquier) punto (es necesario iniciar sesión)". Computación por Internet IEEE . IEEE . 6 (2): 94–98. doi : 10.1109 / 4236.991450 .
- ^ Al-Ibrahim, Mohamed; Cerny, Anton (2003). Gorodetsky, V .; et al. (eds.). "Autenticación de la comunicación Anycast". Apuntes de conferencias en informática . Sociedad de redes informáticas. 2776 : 419–423. doi : 10.1007 / 978-3-540-45215-7_36 . ISBN 978-3-540-40797-3.
- ^ Oki, Eiji; Rojas-Cessa, Roberto; Tatipamula, Mallikarjun; Vogt, Christian (24 de abril de 2012). Protocolos, servicios y aplicaciones avanzados de Internet . John Wiley e hijos. págs. 102 y 103. ISBN 978-0-470-49903-0. Archivado desde el original el 5 de enero de 2020.
enlaces externos
- Prácticas recomendadas en el enrutamiento Anycast IPv4 Tutorial sobre la configuración del enrutamiento Anycast .