Una red de entrega de aplicaciones ( ADN ) es un conjunto de tecnologías que, cuando se implementan juntas, 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 entrega de aplicaciones como la combinación de controladores de optimización WAN (WOC) y controladores de entrega 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 WAN, que trabaja para reducir la cantidad de bits que fluyen a través de 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 de WOC se instalan en PC o clientes móviles y, por lo general, hay una parte del WOC instalada en el centro de datos. Algunos proveedores de CDN también ofrecen redes de entrega de aplicaciones.
El ADC, un componente de un ADN, evolucionó a partir de conmutadores de capa 4-7 a finales 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 combinación cada vez más compleja de tráfico de aplicaciones que se entrega a través de una variedad más amplia de redes. opciones de conectividad.
Técnicas de entrega de aplicaciones
Internet se diseñó de acuerdo con el principio de extremo a extremo . [3] Este principio mantiene la red central relativamente simple y mueve la inteligencia tanto como sea posible a los puntos finales de la red: los hosts y los clientes. Una red de entrega de aplicaciones (ADN) mejora la entrega 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 empleadas 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 distribución de aplicaciones (ADN) está estrechamente relacionada con una red de distribución de contenido . La diferencia entre las dos redes de distribución radica en la inteligencia del ADN para comprender y optimizar las aplicaciones, lo que generalmente se denomina fluidez de aplicaciones. [5] Application Fluent Network (AFN) se basa en el concepto de Application Fluency [6] para referirse a las técnicas de optimización WAN aplicadas en la Capa Cuatro a la Capa Siete del modelo OSI para redes. La fluidez de la aplicación implica que la red es fluida o inteligente en la comprensión y la capacidad de optimizar la entrega de cada aplicación. [7] Application Fluent Network es una adición a las capacidades de 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 de servidores, también conocido como clúster o granja. 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 luego 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 distribución de carga, aumento de la capacidad de los servidores, escalabilidad mejorada, seguridad y mayor confiabilidad a través de verificaciones de estado específicas de la aplicación.
Cada vez más, el ADN comprende un par redundante de ADC en el que se integran varios 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, cada uno de los cuales proporciona una funcionalidad específica que mejora la entrega de la aplicación.
Técnicas de optimización de ADN
Multiplexación TCP
La multiplexación de TCP se basa libremente en técnicas de agrupación de conexiones establecidas que utilizan las plataformas de servidor 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 a los servidores de su grupo y mantiene abiertas las conexiones. Cuando el ADC recibe una solicitud del cliente, la solicitud se evalúa y luego se dirige a un servidor a través de una conexión existente. Esto tiene el efecto de reducir la sobrecarga impuesta al establecer y anular la conexión TCP con el servidor, mejorando 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 HTTP y solicitudes de aplicaciones. Esto tiene la ventaja de ejecutar solicitudes en paralelo, lo que mejora el rendimiento de la aplicación.
Optimización de TCP
Hay una serie de solicitudes de comentarios (RFC) que describen mecanismos para mejorar el rendimiento de TCP. Muchos ADN implementan estos RFC para proporcionar una entrega mejorada de aplicaciones a través de un uso más eficiente de TCP.
Los RFC que se implementan con más frecuencia son:
- Agradecimientos retrasados [8]
- Algoritmo de Nagle [9]
- Reconocimientos selectivos [10] [11]
- Notificación de congestión explícita ECN [12] [13]
- Retransmisiones limitadas y rápidas [14] [15]
- Ventanas de congestión inicial adaptables [16]
Compresión y almacenamiento en caché de datos
Los ADN también proporcionan optimización de los datos de la aplicación mediante técnicas de almacenamiento en caché y compresión. Actualmente, 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 resultar en 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 servidores web y navegadores web. Todos los productos comerciales de ADN admiten actualmente la compresión HTTP.
Una segunda técnica de compresión se logra mediante 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 reensamblar 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 WAN (WOC) proporcionan esta funcionalidad, pero la tecnología se ha agregado lentamente a la cartera de ADN en los últimos años a medida que esta clase de dispositivo continúa siendo más consciente de las aplicaciones, proporcionando características adicionales para aplicaciones específicas. aplicaciones como CIFS y SMB .
Técnicas de confiabilidad y disponibilidad de ADN
Comprobación de estado avanzada
La verificación de estado avanzada es la capacidad de un ADN para determinar no solo el estado del servidor en el que está alojada una aplicación, sino también el estado de la aplicación que está entregando. Las técnicas avanzadas de verificación de estado permiten que el ADC determine de manera inteligente si el contenido que devuelve el servidor es correcto y debe entregarse al cliente.
Esta característica habilita otras características de confiabilidad en el ADN, como reenviar una solicitud a un servidor diferente si el contenido devuelto por el servidor original es erróneo.
Algoritmos de equilibrio de carga
Los algoritmos de equilibrio de carga que se encuentran en el ADN actual son mucho más avanzados que los algoritmos simplistas de round-robin y menos conexiones utilizados a principios de la década de 1990. Estos algoritmos originalmente se basaban libremente en los algoritmos de programación de los 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 actuales de "equilibrio de carga" como algoritmos de enrutamiento de aplicaciones, ya que la mayoría de los ADN emplean el conocimiento de las aplicaciones para determinar si una aplicación está disponible para responder a una solicitud. Esto incluye la capacidad del ADN para determinar no solo si la aplicación está disponible, sino también si la aplicación puede responder a la solicitud dentro de parámetros especificados, lo que a menudo se denomina acuerdo de nivel de servicio .
Los algoritmos de equilibrio de carga estándar de la industria típicos disponibles en la actualidad incluyen:
- Round Robin
- Conexiones mínimas
- El tiempo de respuesta más rápido
- Round Robin ponderado
- Conexiones menos ponderadas
- Valores personalizados asignados a servidores individuales en un grupo según SNMP u otro mecanismo de comunicación
Tolerancia a fallos
El ADN proporciona tolerancia a fallas a nivel de servidor, dentro de grupos o granjas. Esto se logra mediante la designación de servidores específicos como una 'copia de seguridad' que se activa automáticamente por el ADN en caso de que el servidor principal del grupo falle. [17]
El ADN también garantiza la disponibilidad y confiabilidad de las aplicaciones a través de su capacidad de "conmutación por error" sin problemas a un dispositivo secundario en caso de una falla de hardware o software. Esto asegura que el tráfico continúe fluyendo en caso de falla en un dispositivo, proporcionando así tolerancia a fallas para las aplicaciones. La tolerancia a fallas se implementa en ADN a través de una red o una conexión en serie.
Conmutación por error basada en red
La dirección IP virtual (VIP) se comparte entre dos dispositivos. Un demonio de latido en el dispositivo secundario verifica que el dispositivo principal esté activo. En el 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 ADN replica sesiones de la primaria a la secundaria, no hay forma de garantizar que se mantengan las sesiones iniciadas durante el tiempo que le toma a la secundaria asumir la VIP y comenzar a administrar el tráfico.
Conmutación por error en serie
En una configuración de conmutación por error basada en una conexión en serie, dos dispositivos ADN se comunican a través de una conexión RS232 estándar en lugar de la red, y todo el intercambio de información y estado de la sesión se intercambia a través de esta conexión. La conmutación por error es casi instantánea, aunque adolece de las mismas limitaciones con respecto a las sesiones iniciadas mientras el dispositivo principal falla como una conmutación por error basada en la red.
Seguridad ADN
Transport Layer Security
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 a los atacantes descifrar los datos en tránsito o secuestrar la sesión. [ cita requerida ]
Seguridad de la capa de aplicación
Encubrimiento de recursos
El uso de una dirección IP virtual (VIP) y la posición del ADN en la red proporciona los medios a través de los cuales ciertos recursos pueden ocultarse u ocultarse al cliente. Debido a que el ADN está diseñado para comprender las aplicaciones y los protocolos de aplicación, como HTTP , puede manipular ciertos aspectos del protocolo para ocultar los servidores del 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. Por lo general, esto se logra reescribiendo el campo Servidor en una respuesta HTTP. [18]
Un segundo uso típico de esta funcionalidad es la explotación de la capacidad del ADN para reescribir la porción de URI de una solicitud HTTP. Al cliente se le presenta un URI y un VIP que son conocidos solo por el ADN, y al recibir la solicitud, el ADN puede (a) reescribir el URI y enviar un redireccionamiento 302 [19] o (b) traduce de forma transparente el URI y responde al cliente como si el URI fuera el correcto en primer lugar.
Firewall de aplicaciones
En los últimos años, los ADN comerciales han comenzado a incluir la funcionalidad de firewall de aplicaciones para proteger aún más las aplicaciones durante el proceso de entrega. Este es un tema muy debatido con muchos profesionales de la seguridad que argumentan que la funcionalidad incluida en un firewall de aplicación es innecesaria y debe ser manejada por la aplicación, mientras que otros consideran emplear tanta seguridad como sea posible, independientemente de la posición en la red de entrega, para ser la mejor. práctica. Muchas empresas comerciales de ADN han adquirido e integrado estas funciones y las presentan como parte de una estrategia de defensa en profundidad que suelen citar los profesionales de la seguridad.
Seguridad de la capa de red
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 a la capa de red, incluida la denegación de servicio (DoS) de las inundaciones de ICMP y SYN. Como resultado, el ADN debe necesariamente protegerse no solo a sí mismo, sino también a las aplicaciones que ofrece para que no sucumban a tales ataques. El ADN generalmente emplea una serie de protecciones contra los ataques típicos de la capa de red, aunque no implementa la seguridad completa que ofrece un IPS . Algunas de las tecnologías de seguridad de la capa de red que pueden emplear los dispositivos ADN incluyen:
Encuadernación retrasada
El enlace retardado , también llamado empalme de 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 la vinculación de la sesión del cliente al servidor hasta que se completan los apretones de manos adecuados para evitar ataques de denegación de servicio.
Filtrado de IP
Los ADN a menudo tienen la capacidad de filtrar el tráfico basándose en listas de control de acceso (ACL), rangos de IP falsos (filtrado Bogon) y coincidencia de patrones de inspección profunda de paquetes . En algunos casos, se pueden emplear umbrales o limitación de velocidad de direcciones IP o rangos de direcciones IP.
La gestión del tráfico
Los ADN incorporan 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 usarse para analizar, bloquear, dar forma y priorizar el tráfico.
Ver también
Notas
- ^ Gartner dice que el mercado mundial de aceleración de aplicaciones alcanzará los $ 3.7 mil millones en 2008, STAMFORD, Connecticut, 21 de agosto de 2006
- ^ ¿Qué hace un controlador de optimización WAN? Network World, 8 de enero de 2008
- ^ Saltzer, JH, Reed, DP, Clark, DD: "Argumentos de extremo a extremo en el diseño del sistema", Transacciones de ACM sobre comunicaciones, 2 (4), 1984
- ^ Halabi, Bassam: "Arquitecturas de enrutamiento de Internet", New Riders Publishing, 1997
- ^ http://www.infoworld.com/article/05/07/18/29FEintelnet_1.html?NETWORK%20STANDARDS [ enlace muerto permanente ] Erlanger, Leon: "Building the Intelligent Network", InfoWorld, julio de 2005
- ^ "Envío de comunicaciones de redes empresariales" (PDF) . gartner . Consultado el 17 de noviembre de 2008 .
- ^ Erlanger, Leon. "Construyendo la Red Inteligente" . TechWorld . Consultado el 1 de agosto de 2005 .
- ^ RFC 896: Control de congestión en redes IP / TCP
- ^ RFC 1122: Requisitos para hosts de Internet: capas de comunicación
- ^ RFC 2018: Opciones de reconocimiento selectivo de TCP
- ^ RFC 2883: una extensión de la opción de reconocimiento selectivo (SACK) para TCP
- ^ RFC 3168: La adición de notificación de congestión explícita a TCP
- ^ RFC 2481: Una propuesta para agregar Notificación de congestión explícita (ECN) a IP
- ^ RFC 3042: Mejora de la recuperación de pérdidas de TCP mediante transmisión limitada
- ^ RFC 2582: La modificación de NewReno al algoritmo de recuperación rápida de TCP
- ^ RFC 3390: aumento de la ventana inicial de TCP
- ^ MacVittie, Lori: "Content Switches", Network Computing, julio de 2001 Archivado el 27 de septiembre de 2007 en Wayback Machine.
- ^ Protocolo de transferencia de hipertexto (HTTP / 1.1): semántica y contenido, contexto de respuesta
- ^ Protocolo de transferencia de hipertexto (HTTP / 1.1): Semántica y contenido, redireccionamiento 3xx
enlaces externos
- Optimización del rendimiento de la red con conmutación de contenido: equilibrio de carga de servidor, cortafuegos y caché