Proxy TCP como proxy inverso y equilibrador de carga

Guías, Mayo-06-20225 minutos de lectura

Un proxy de protocolo de control de transporte (TCP) opera en la capa TCP del modelo de Interconexión de Sistemas Abiertos (OSI). El servidor proxy TCP es un proxy intermedio entre el cliente y el servidor de destino. El cliente establece una conexión con el servidor proxy TCP, que a su vez establece una conexión con el servidor de destino. El servidor proxy TCP

Un proxy de protocolo de control de transporte (TCP) opera en la capa TCP del modelo de Interconexión de Sistemas Abiertos (OSI). El servidor proxy TCP es un proxy intermedio entre el cliente y el servidor de destino. 

El cliente establece una conexión con el servidor proxy TCP, que a su vez establece una conexión con el servidor de destino. El servidor proxy TCP actúa como servidor y como cliente para acceder a servicios que restringen las conexiones en función de la dirección de red.

Algunas páginas web sólo son accesibles desde máquinas internas, y recibirá un mensaje de error de acceso denegado cuando acceda a ellas desde otro lugar. Sin embargo, puede ver esta página desde un navegador web en cualquier lugar de Internet utilizando un proxy en una de las máquinas internas.

El servidor web piensa que está sirviendo los datos a un cliente en la máquina que ejecuta el proxy. Sin embargo, el proxy reenvía los datos fuera de la red al cliente real. 

El servidor proxy acepta conexiones de varios clientes y las reenvía mediante varias conexiones al servidor. El cliente o el servidor deben leer o escribir datos en sus conexiones y no deben colgar el servidor proxy rechazándole ninguna operación.

Modelo OSI - Vista previa

Los modelos OSI conceptualizan el proceso de creación de redes informáticas. Consta de siete capas:

  • Capa física
  • Capa de enlace de datos
  • Capa de red
  • Capa de transporte
  • Capa de sesión
  • Capa de presentación
  • Capa de aplicación

La capa de transporte se encarga de transferir datos a través de una red. Utiliza dos protocolos diferentes, el TCP y el Protocolo de Datagramas de Usuario (UDP). El TCP se utiliza habitualmente para la transferencia de datos y este protocolo dirige cómo enviar los datos. Corta el mensaje en segmentos y los envía desde el origen hasta el destino.

Conexión de enchufe

En circunstancias normales hay un emisor y un receptor que transmiten trozos de datos. El emisor y el receptor están en comunicación con máquinas diferentes al mismo tiempo, por lo que el proxy establece una conexión de socket entre un emisor y un receptor que participan en una comunicación.

El socket es una conexión lógica entre ambos utilizando la IP y el número de puerto. El proxy establece una conexión de socket en el lado del emisor y del receptor. La dirección del socket, formada por una dirección IP y un número de puerto, es única para la comunicación entre el emisor y el receptor.

La dirección de socket única garantiza que la transmisión de datos se produzca de forma paralela y que los paquetes no choquen entre sí.

Implementación de un proxy en la capa TCP

Un proxy TCP recibe el tráfico entrante y abre un socket de salida a través del cual lleva el tráfico entrante al servidor de destino. Mueve los datos entre el cliente y el servidor, pero no puede modificarlos porque no los entiende.

Un proxy en esta capa tiene acceso a la dirección IP y al número de puerto al que el receptor intenta conectarse en el servidor backend. Si el servidor utiliza el número de puerto 3306 para escuchar peticiones, el proxy lo implementa en esta capa y también escucha en este puerto. 

El proxy escucha ese puerto y retransmite los mensajes al servidor. El proxy TCP crea una conexión mediante un socket a través de una única combinación host: puerto.

Implementar un proxy en la capa de transporte es ligero y rápido, ya que la capa sólo es responsable de la transferencia de datos.

Los proxies actúan como un medio para pasar mensajes de un lado a otro, y no pueden leer los mensajes. Estos proxies le ayudan a monitorizar la red, ocultar la red interna de la red pública, poner en cola las conexiones para evitar la sobrecarga del servidor, y limitar las conexiones. Es la mejor solución para equilibrar la carga de los servicios que se comunican a través de TCP, como el tráfico de bases de datos a MYSQL, y Postgres.

Proxy TCP como proxy inverso

Un proxy inverso acepta una solicitud de un cliente, la reenvía a un servidor que puede satisfacerla y devuelve la respuesta del servidor al cliente. Puede desplegar un proxy inverso incluso si sólo hay un servidor o aplicación.

El proxy inverso es visto públicamente por otros usuarios de la red. Se implementa en el borde de la red del sitio para aceptar solicitudes de navegadores web y aplicaciones móviles. 

Implementar un proxy TCP como proxy inverso tiene las siguientes ventajas:

Seguridad - Aumenta la seguridad de la red. Los clientes maliciosos no pueden acceder a los servidores backend, ya que no son visibles para la red exterior. No puede acceder a ellos directamente para explotar cualquier vulnerabilidad.

Prevenir ataques DDOS - Los servidores backend están protegidos por el proxy inverso para protegerlos de la denegación de servicio distribuida (DDOS).

Regular el tráfico - Puede rechazar el tráfico de una determinada dirección IP de cliente (lista negra), o limitar el número de conexiones desde el cliente.

Escalabilidad y flexibilidad - es flexible cambiar la configuración del backend porque el cliente sólo puede ver la dirección del proxy inverso. Para equilibrar la carga en el servidor, puede ampliar y reducir el número de servidores para adaptarse a los cambios en el volumen de tráfico.

Aceleración web - Reduce el tiempo necesario para generar una respuesta para el cliente solicitante. 

Compresión: el proxy TCP responde antes de volver al cliente, lo que reduce el ancho de banda necesario para transmitir los datos por la red.

Cifrado - El tráfico entre el cliente y el servidor en la red requiere cifrado. El proceso de cifrado supone una sobrecarga para el cliente y el servidor, ya que es computacionalmente exhaustivo. El proxy inverso realiza el cifrado y el descifrado, liberando así a los servidores backend para que se dediquen únicamente a atender a los clientes.

Caché - El proxy inverso almacena una copia de la solicitud en su sistema local antes de servirla al cliente. El proxy inverso sirve la petición desde la caché en lugar de reenviarla al servidor y recuperarla cuando el cliente vuelve a solicitarla. 

Proxy TCP como equilibrador de carga

Un equilibrador de carga es un proxy que gestiona el tráfico cuando hay varios servidores. Permite que el servidor funcione eficientemente y escalar el servidor cuando el tráfico es alto. El equilibrador de carga distribuye el tráfico entre los servidores y enruta las conexiones originales directamente desde los clientes a un servidor backend sano sin interrupciones.

El proxy TCP utiliza la devolución directa del servidor para llevar las respuestas de los servidores backend sanos a los clientes directamente y no a los equilibradores de carga. El servidor backend termina el tráfico de capa de sockets seguros (SSL) y no el equilibrador de carga. 

Sesión Afinidad

El tráfico TCP entre el cliente y el servidor soporta afinidad de sesión. La afinidad de sesión es cuando el cliente puede enviar peticiones al mismo servidor backend siempre que esté sano y capacitado. 

Supervisar servidores

El proxy TCP realiza comprobaciones de la salud del servidor backend monitorizando periódicamente su disponibilidad. Cuando el servidor backend no puede gestionar el tráfico, se trata de un nodo no sano, y el servidor redirige el tráfico a otros servidores backend sanos.

El proxy TCP presenta las siguientes características cuando actúa como equilibrador de carga:

Comportamiento asíncrono - El proxy TCP tiene un comportamiento asíncrono, lo que significa que si un cliente deja repentinamente de leer del socket al proxy, los demás clientes no deben notar ninguna interrupción del servicio a través del proxy.

Soporta otros protocolos - El proxy TCP soporta HTTP y también otros protocolos de capa de aplicación como FTP.

Actúa como proxy inverso - Un usuario puede utilizar un proxy TCP como proxy inverso en función de la ubicación de implementación. En el lado del servidor, regula el tráfico del cliente al usuario. 

Opción de escala de ventana

La ventana de recepción TCP es la cantidad de datos que un receptor puede manejar en bytes que puede almacenar en el búfer durante una conexión. El receptor debe actualizar el tamaño de su ventana antes de iniciar la comunicación y esperar el acuse de recibo. 

El remitente envía los datos en función del tamaño de la ventana. El diseño de la pila TCP/IP de Windows se ajusta al tamaño cambiante de los datos y utiliza un tamaño de ventana mayor. Cada vez que el remitente transmite, utiliza un tamaño de ventana mayor que el utilizado en la transmisión anterior.

El tamaño de la ventana no es fijo, ya que se puede redimensionar ajustando el tamaño máximo del segmento (MSS). El cliente y el servidor negocian el MSS durante la configuración de la conexión. Ajustar la ventana de recepción a incrementos del MSS aumenta el porcentaje de segmentos TCP de tamaño completo utilizados durante las transmisiones masivas de datos.

El tamaño de la ventana de recepción se determina de la siguiente manera:

El cliente envía la primera solicitud de conexión al servidor anunciando un tamaño de ventana de recepción de 16K (16.384 bytes).Cuando se establece la conexión, el cliente ajusta el tamaño de la ventana de recepción en función del MSS.El tamaño de la ventana se ajusta a cuatro veces el MSS, hasta un tamaño máximo de 64 K, a menos que se utilice la opción de escalado de ventana.

Preguntas frecuentes

1. ¿En qué se diferencia un proxy inverso de un proxy de equilibrio de carga?

Proxy inversoProxy de equilibrio de carga
Un proxy inverso es una aplicación intermediaria que se implementa entre el cliente y el servidor.Un proxy de equilibrio de carga distribuye el tráfico de forma uniforme y eficiente entre varios servidores backend.
Los proxies inversos mejoran la seguridad de los servidores web al garantizar que los clientes no se comunican directamente con el servidor original.Hay varios servidores backend y, en caso de caída de la red o ataque DDoS, un proxy de equilibrio de carga ayuda a evitar el cierre del sitio, ya que el tráfico puede redirigirse a un servidor alternativo.
El proceso: - El usuario realiza una petición HTTP. - El proxy inverso la recibe. - El proxy inverso permite o deniega la solicitud del usuario. - Si se permite, el proxy inverso reenvía la petición al servidor. - Si se deniega, el proxy inverso envía un mensaje de error al cliente. - El servidor envía la respuesta correspondiente al proxy inverso, que a su vez reenvía la respuesta del servidor al cliente.El proceso:- El equilibrador de carga recibe la solicitud del cliente.- El equilibrador de carga envía la solicitud a un único servidor del grupo de servidores backend.- El servidor seleccionado devuelve la respuesta al equilibrador de carga.- El equilibrador de carga reenvía la respuesta del servidor al usuario.
Algunos ejemplos de proxies inversos de código abierto sonNGINXApache HTTP ServerApache Traffic ServerAlgunos ejemplos de algoritmos de equilibrio de carga sonHashRound RobinPower of Two Choices

2. Diferencia entre un proxy HTTP y un proxy TCP.

Proxy HTTPProxy TCP
En una zona desmilitarizada (DMZ), se utiliza como equilibrador de carga o proveedor de IP pública para blindar los servidores backend.Se utiliza como proxy inverso para una conexión TCP entre el cliente y el servidor.
Crea una petición/respuesta HTTP.Abre una conexión de socket TCP y mueve datos a través de ella.
El proxy HTTP lee la dirección del host y se conecta al host correspondiente.El proxy TCP no cambia los datos ya que no puede entenderlos.
Además de HTTP, puede servir peticiones HTTPS y FTP.Además de TCP, puede servir peticiones HTTP y FTP.

Reflexiones finales

Un proxy TCP actúa como proxy inverso y también como equilibrador de carga. Ambos tipos de aplicaciones residen entre clientes y servidores, aceptando peticiones de los primeros y entregando respuestas de los segundos.

A veces, el proxy inverso y el balanceador de carga pueden sonar igual y llevar a confusión. Explorar cuándo y por qué puedes desplegarlos en un sitio web te ayudará a entenderlo.

La recopilación de datos es una tarea inmensa e importante para una empresa establecida o una startup. Es un proceso que requiere tendencias de mercado, análisis de la competencia y preferencias de los clientes para tomar decisiones. 

ProxyScrape ofrece proxies premium, proxies residenciales y proxies dedicados para recopilar cantidades masivas de datos de sitios web. Hay una combinación flexible de proxies para elegir y el precio también es asequible. Sigue visitando nuestro blog para obtener más información sobre los nuevos proxies, sus usos y las ventajas que ofrece ProxyScrape .