Una red de distribución de aplicaciones ( ADN ) es un conjunto de tecnologías que, cuando se implementan en conjunto, brindan disponibilidad, seguridad, visibilidad y aceleración para aplicaciones de Internet, como sitios web. Los componentes de ADN brindan una funcionalidad de soporte que permite que el contenido del sitio web se entregue a los visitantes y otros usuarios de ese sitio web de una manera rápida, segura y confiable.
Gartner define la red de distribución de aplicaciones como la combinación de controladores de optimización de WAN (WOC) y controladores de distribución de aplicaciones (ADC). [1] En el extremo del centro de datos de un ADN se encuentra el ADC, un dispositivo de gestión de tráfico avanzado que a menudo también se conoce como conmutador web, conmutador de contenido o conmutador multicapa, cuyo propósito es distribuir el tráfico entre varios servidores o sitios geográficamente dislocados según criterios específicos de la aplicación. En la parte de la sucursal de un ADN se encuentra el controlador de optimización de WAN, que trabaja para reducir la cantidad de bits que fluyen por la red mediante el almacenamiento en caché y la compresión, y da forma al tráfico TCP mediante la priorización y otras técnicas de optimización. [2] Algunos componentes WOC se instalan en PC o clientes móviles, y normalmente hay una parte del WOC instalada en el centro de datos. Algunos proveedores de CDN también ofrecen redes de distribución de aplicaciones.
El ADC, un componente de un ADN, evolucionó a partir de conmutadores de capa 4 a 7 a fines de la década de 1990, cuando se hizo evidente que las técnicas tradicionales de equilibrio de carga no eran lo suficientemente robustas para manejar la mezcla cada vez más compleja de tráfico de aplicaciones que se entregaba a través de una variedad más amplia de opciones de conectividad de red.
Internet fue diseñada según el principio de extremo a extremo [3] . Este principio mantiene la red central relativamente simple y traslada la inteligencia lo más posible a los puntos finales de la red: los hosts y los clientes. Una red de distribución de aplicaciones (ADN) mejora la distribución de aplicaciones a través de Internet mediante el empleo de una serie de técnicas de optimización. Muchas de estas técnicas se basan en las mejores prácticas establecidas que se emplean para enrutar de manera eficiente el tráfico en la capa de red, incluida la redundancia y el equilibrio de carga [4].
En teoría, una red de entrega de aplicaciones (ADN) está estrechamente relacionada con una red de entrega de contenido . La diferencia entre las dos redes de entrega radica en la inteligencia de la ADN para comprender y optimizar las aplicaciones, generalmente denominada fluidez de la aplicación. La red fluida de aplicaciones (AFN) se basa en el concepto de fluidez de aplicaciones [5] para referirse a las técnicas de optimización de WAN aplicadas en la capa cuatro a la capa siete del modelo OSI para redes. La fluidez de aplicaciones implica que la red es fluida o inteligente en la comprensión y capacidad de optimizar la entrega de cada aplicación. [6] La red fluida de aplicaciones es una adición de capacidades SDN. Alcatel-Lucent Enterprise utiliza el acrónimo 'AFN' para referirse a una red fluida de aplicaciones.
La entrega de aplicaciones utiliza uno o más conmutadores de capa 4 a 7 , también conocidos como conmutador web, conmutador de contenido o conmutador multicapa para distribuir de forma inteligente el tráfico a un grupo, también conocido como clúster o granja, de servidores. Al controlador de entrega de aplicaciones (ADC) se le asigna una única dirección IP virtual (VIP) que representa el grupo de servidores. El tráfico que llega al ADC se dirige a uno de los servidores del grupo (clúster, granja) en función de una serie de factores, incluidos los valores de datos específicos de la aplicación, el protocolo de transporte de la aplicación, la disponibilidad de los servidores, las métricas de rendimiento actuales y los parámetros específicos del cliente. Un ADN proporciona las ventajas de la distribución de la carga, el aumento de la capacidad de los servidores, la escalabilidad mejorada, la seguridad y una mayor confiabilidad a través de controles de estado específicos de la aplicación.
Cada vez más, el ADN comprende un par redundante de ADC en el que se integran una serie de conjuntos de características diferentes diseñados para proporcionar funciones de seguridad, disponibilidad, confiabilidad y aceleración. En algunos casos, estos dispositivos siguen siendo entidades separadas, implementadas juntas como una red de dispositivos a través de la cual se entrega el tráfico de la aplicación, y cada uno proporciona una funcionalidad específica que mejora la entrega de la aplicación.
La multiplexación TCP se basa en gran medida en técnicas de agrupación de conexiones establecidas que utilizan las plataformas de servidores de aplicaciones para optimizar la ejecución de consultas de bases de datos desde dentro de las aplicaciones. Un ADC establece una serie de conexiones con los servidores de su grupo y mantiene las conexiones abiertas. Cuando el ADC recibe una solicitud del cliente, la evalúa y luego la dirige a un servidor a través de una conexión existente. Esto tiene el efecto de reducir la sobrecarga impuesta por el establecimiento y la interrupción de la conexión TCP con el servidor, lo que mejora la capacidad de respuesta de la aplicación.
Algunas implementaciones de ADN llevan esta técnica un paso más allá y también multiplexan las solicitudes HTTP y de la aplicación. Esto tiene la ventaja de ejecutar las solicitudes en paralelo, lo que mejora el rendimiento de la aplicación.
Existen varias solicitudes de comentarios (RFC) que describen mecanismos para mejorar el rendimiento de TCP. Muchas ADN implementan estas RFC para proporcionar una mejor entrega de aplicaciones mediante un uso más eficiente de TCP.
Los RFC más comúnmente implementados son:
Los ADN también permiten optimizar los datos de las aplicaciones mediante técnicas de compresión y almacenamiento en caché. En la actualidad, los ADN utilizan dos tipos de compresión: la compresión HTTP estándar de la industria y los algoritmos de reducción de datos patentados. Es importante tener en cuenta que el costo en ciclos de CPU para comprimir datos al atravesar una LAN puede tener un impacto negativo en el rendimiento y, por lo tanto, las mejores prácticas son utilizar la compresión solo cuando se entregan aplicaciones a través de una WAN o un enlace de datos de alta velocidad particularmente congestionado.
La compresión HTTP es asimétrica y transparente para el cliente. La compatibilidad con la compresión HTTP está integrada en los servidores y navegadores web. Actualmente, todos los productos comerciales de ADN admiten la compresión HTTP.
Una segunda técnica de compresión se logra a través de algoritmos de reducción de datos. Debido a que estos algoritmos son propietarios y modifican el tráfico de la aplicación, son simétricos y requieren un dispositivo para volver a ensamblar el tráfico de la aplicación antes de que el cliente pueda recibirlo. Una clase separada de dispositivos conocidos como controladores de optimización de WAN (WOC) proporcionan esta funcionalidad, pero la tecnología se ha agregado lentamente a la cartera de ADN durante los últimos años a medida que esta clase de dispositivo continúa adquiriendo más conciencia de las aplicaciones, brindando características adicionales para aplicaciones específicas como CIFS y SMB .
La comprobación avanzada del estado de salud es la capacidad de un ADN de determinar no solo el estado del servidor en el que se aloja una aplicación, sino también el estado de la aplicación que está entregando. Las técnicas de comprobación avanzada del estado de salud permiten al ADC determinar de forma inteligente si el contenido que devuelve el servidor es correcto y debe entregarse al cliente.
Esta característica habilita otras funciones de confiabilidad en el ADN, como reenviar una solicitud a un servidor diferente si se descubre que el contenido devuelto por el servidor original es erróneo.
Los algoritmos de equilibrio de carga que se encuentran en los ADN actuales son mucho más avanzados que los algoritmos simplistas de round-robin y de menor conexión que se usaban a principios de los años 90. Estos algoritmos se basaban originalmente en algoritmos de programación de sistemas operativos, pero desde entonces han evolucionado para tener en cuenta las condiciones propias de los entornos de redes y aplicaciones. Es más preciso describir los algoritmos de "equilibrio de carga" actuales como algoritmos de enrutamiento de aplicaciones, ya que la mayoría de los ADN emplean el conocimiento de la aplicación para determinar si una aplicación está disponible para responder a una solicitud. Esto incluye la capacidad del ADN de determinar no solo si la aplicación está disponible, sino también si la aplicación puede responder o no a la solicitud dentro de parámetros específicos, a menudo denominados acuerdo de nivel de servicio .
Los algoritmos de equilibrio de carga estándar de la industria típicos disponibles en la actualidad incluyen:
El ADN proporciona tolerancia a fallos a nivel de servidor, dentro de grupos o granjas. Esto se logra designando servidores específicos como "respaldo" que el ADN activa automáticamente en caso de que el servidor o los servidores principales del grupo fallen. [16]
El ADN también garantiza la disponibilidad y confiabilidad de las aplicaciones mediante su capacidad de realizar una "conmutación por error" sin problemas a un dispositivo secundario en caso de una falla de hardware o software. Esto garantiza que el tráfico continúe fluyendo en caso de una falla en un dispositivo, lo que proporciona tolerancia a fallas para las aplicaciones. La tolerancia a fallas se implementa en los ADN a través de una conexión en red o en serie.
La dirección IP virtual (VIP) se comparte entre dos dispositivos. Un demonio de latidos en el dispositivo secundario verifica que el dispositivo principal esté activo. En caso de que se pierda el latido, el dispositivo secundario asume la VIP compartida y comienza a atender las solicitudes. Este proceso no es inmediato y, aunque la mayoría de los ADN replican sesiones del dispositivo principal al secundario, no hay forma de garantizar que se mantengan las sesiones iniciadas durante el tiempo que tarda el secundario en asumir la VIP y comenzar a administrar el tráfico.
En una configuración de conmutación por error basada en conexión en serie, dos dispositivos ADN se comunican a través de una conexión RS-232 estándar en lugar de la red, y toda la información y el estado de la sesión se intercambian a través de esta conexión. La conmutación por error es casi instantánea, aunque sufre las mismas limitaciones con respecto a las sesiones iniciadas mientras el dispositivo principal falla, como la conmutación por error basada en red.
Aunque a menudo se asigna erróneamente a la capa de aplicación, SSL es el método más común para proteger el tráfico de aplicaciones a través de un ADN en la actualidad. SSL utiliza PKI para establecer una conexión segura entre el cliente y el ADN, lo que dificulta que los atacantes descifren los datos en tránsito o secuestren la sesión. [ cita requerida ]
El uso de una dirección IP virtual (VIP) y la posición del ADN en la red proporcionan los medios a través de los cuales ciertos recursos pueden ocultarse u ocultarse del cliente. Debido a que el ADN está diseñado para comprender aplicaciones y protocolos de aplicación, como HTTP , puede manipular ciertos aspectos del protocolo para ocultar los servidores en el grupo y evitar que se exponga información potencialmente útil sobre la infraestructura de software y hardware.
Un uso típico de esta funcionalidad es ocultar el sistema operativo y el software del servidor que se utiliza para alojar la aplicación. Esto se logra generalmente reescribiendo el campo Servidor en una respuesta HTTP. [17]
Un segundo uso típico de esta funcionalidad es la explotación de la capacidad del ADN de reescribir la parte URI de una solicitud HTTP. Al cliente se le presenta un URI y una VIP que sólo conoce el ADN y, al recibir la solicitud, el ADN puede (a) reescribir el URI y enviar una redirección 302 [18] o (b) traducir de forma transparente el URI y responder al cliente como si el URI fuera el correcto desde el principio.
En los últimos años, las ADN comerciales han comenzado a incluir funciones de firewall de aplicaciones para proteger aún más las aplicaciones durante el proceso de entrega. Este es un tema muy debatido, ya que muchos profesionales de la seguridad sostienen que las funciones incluidas en un firewall de aplicaciones son innecesarias y que deberían ser gestionadas por la aplicación, mientras que otros consideran que emplear la mayor seguridad posible, independientemente de la posición en la red de entrega, es la mejor práctica. Muchas empresas de ADN comerciales han adquirido e integrado estas funciones y presentan dichas características como parte de una estrategia de defensa en profundidad que a menudo citan los profesionales de la seguridad.
El ADN se implementa con mayor frecuencia en la DMZ en el borde de la red. Esto da como resultado la exposición a posibles ataques de capa de red, incluidos ataques de denegación de servicio (DoS) de ICMP y inundaciones SYN. Como resultado, el ADN debe protegerse necesariamente no solo a sí mismo sino también a las aplicaciones que entrega para que no sucumban a tales ataques. El ADN generalmente emplea una serie de protecciones contra ataques típicos de capa de red, aunque no implementa la seguridad completa que ofrece un IPS . Algunas de las tecnologías de seguridad de capa de red que pueden emplear los dispositivos ADN incluyen:
El enlace retrasado , también llamado empalme TCP, es el aplazamiento de la conexión entre el cliente y el servidor para obtener información suficiente para tomar una decisión de enrutamiento. Algunos conmutadores y enrutadores de aplicaciones retrasan el enlace de la sesión del cliente al servidor hasta que se completen los protocolos de enlace adecuados para evitar ataques de denegación de servicio.
Los ADN suelen tener la capacidad de filtrar el tráfico en función de listas de control de acceso (ACL), rangos de IP falsos (filtrado Bogon) y comparación de patrones de inspección profunda de paquetes . En algunos casos, se pueden emplear umbrales o limitaciones de velocidad de direcciones IP o rangos de direcciones IP.
Los ADN están incorporando cada vez más funciones avanzadas de gestión del tráfico. Las capacidades de inspección profunda de paquetes de algunos de estos productos pueden identificar el tráfico por tipo de aplicación y pueden utilizarse para analizar, bloquear, dar forma y priorizar el tráfico.