Los listeners de enrutamiento personalizado son ideales cuando se necesita reenviar el tráfico de los clientes a servidores de backend específicos. Este tema describe su funcionamiento, sus límites y las diferencias con los listeners de enrutamiento inteligente. También incluye ejemplos sobre cómo utilizarlos.
Funcionamiento de los listeners de enrutamiento personalizado
Una vez que configura un listener de enrutamiento personalizado, Global Accelerator (GA) genera una tabla de asignación de puertos. Esta tabla se basa en el rango de puertos del listener, el protocolo y el rango de puertos del grupo de endpoints, así como en las direcciones IP del endpoint (vSwitch). Después, GA enruta el tráfico de los clientes hacia los servidores de backend con direcciones IP y puertos específicos, de acuerdo con dicha tabla.
A continuación se describe el flujo de trabajo de un listener de enrutamiento personalizado:
|
Núm. |
Descripción |
|
1 |
GA genera una tabla de asignación de puertos. Para ello, toma en cuenta el rango de puertos del listener de enrutamiento personalizado, el rango de puertos de destino del grupo de endpoints y las direcciones IP del vSwitch del endpoint. |
|
2 |
El cliente envía una solicitud a GA para consultar la información de los puertos disponibles (puertos de aceleración). |
|
3 |
GA consulta la tabla de asignación de puertos y selecciona un servidor de backend que admita tráfico según la lógica de negocio. |
|
4 |
GA devuelve la información del puerto de aceleración asignado al puerto del servidor de backend seleccionado. Este puerto se toma del rango de puertos del listener. |
|
5 |
El cliente usa el puerto de aceleración asignado y la dirección IP acelerada para acceder a su servicio. |
|
6 |
El listener de enrutamiento personalizado reenvía el tráfico del cliente al servidor de backend correspondiente, con base en la tabla de asignación de puertos. |
Límites
Tenga en cuenta los siguientes límites cuando use listeners de enrutamiento personalizado:
Límites de las áreas de aceleración
Las direcciones IP aceleradas solo admiten IPv4.
Límites del rango de puertos del listener
Los listeners de enrutamiento personalizado usan los puertos del 1 al 65499. Los puertos 25, 250, 4789 y 4790 están reservados por el sistema y se excluyen de las tablas de asignación de puertos. Las instancias pay-as-you-go de GA también excluyen el puerto 6081.
-
El rango de puertos del listener debe abarcar los puertos del grupo de endpoints y las direcciones IP del vSwitch. Se debe cumplir la siguiente fórmula:
Number of listening ports (minus the number of system-reserved ports) ≥ Number of all ports in the endpoint group × Number of IP addresses of all vSwitches in the endpoint. Especifique un rango amplio de puertos para el listener.Por ejemplo, si establece el rango de puertos de destino del grupo de endpoints en 81-85 y todos los vSwitch usados como endpoints proporcionan 16 direcciones IP, el rango de puertos del listener debe contener como mínimo 80 puertos. Configure el rango de puertos del listener en 101-180. Si lo configura en 101-179, no se podrá crear el listener.
-
Después de la configuración inicial, no puede eliminar los puertos que ya existen en la tabla de asignación cuando modifique el rango.
Por ejemplo, suponga que el rango original de puertos de escucha es 100-10000 y que la tabla asigna el puerto 199 al puerto de destino 80 del endpoint. En este caso, puede ampliar el rango a 20-10000, pero no reducirlo a 200-10000.
Los puertos de los listeners en una misma instancia de GA no deben superponerse.
Límites del protocolo del listener
Solo se admiten TCP y UDP. Puede especificar el protocolo cuando configure el grupo de endpoints. Tiene la opción de elegir TCP, UDP o ambos protocolos.
Límites de los servicios de backend
Solo puede especificar vSwitches como endpoints de los listeners de enrutamiento personalizado. Como destinos de tráfico, únicamente se permiten las direcciones IP privadas y los puertos de las instancias de Elastic Compute Service (ECS).
La máscara de subred del vSwitch que funciona como endpoint debe estar entre
/17y/28. Además, el vSwitch debe proporcionar como mínimo 16 direcciones IP.Cuando especifica un vSwitch como endpoint, todo el tráfico dirigido a él se rechaza de forma predeterminada. Si necesita que una instancia ECS dentro del vSwitch reciba tráfico, modifique la configuración del listener para permitir todo el tráfico hacia el vSwitch. Otra opción es especificar la dirección IP y el puerto de la instancia ECS para admitir tráfico únicamente hacia ella.
La lista de control de acceso (ACL) de red asociada al vSwitch que actúa como endpoint y las reglas del security group de la instancia ECS de destino deben permitir el tráfico. Para obtener más información sobre cómo configurar ACL de red y reglas de security group, consulte Create and manage a network ACL y Add a security group rule.
No se admiten comprobaciones de estado en grupos de endpoints ni en endpoints individuales. Un listener de enrutamiento personalizado reenvía el tráfico según la tabla de asignación de puertos, sin importar el estado de salud de los endpoints.
Ejemplos
Los listeners de enrutamiento personalizado resultan ideales cuando se requiere reenviar el tráfico de los clientes a servidores de backend específicos. Por ejemplo, en un videojuego multijugador en línea, el sistema puede asignar jugadores con características similares (como ubicación geográfica o nivel) a una misma sesión en un servidor de backend. Esto se logra mediante la tabla de asignación de puertos y la lógica de negocio.
En este ejemplo, se usan tres instancias ECS desplegadas en el mismo vSwitch para construir una aplicación de juego. El bloque CIDR del vSwitch es 10.1.1.0/28. Las direcciones IP de las instancias ECS son 10.1.1.1, 10.1.1.2 y 10.1.1.3. Los puertos que proporcionan el servicio son los puertos TCP 80, 81 y 82. Sin embargo, solo dos instancias ECS atienden solicitudes, con las direcciones IP 10.1.1.1 y 10.1.1.2.
Para mejorar la experiencia del usuario, configure el listener de enrutamiento personalizado y el endpoint con la siguiente información:
Rango de puertos del listener: del 1001 al 1050.
Rango de puertos del grupo de endpoints: del 80 al 82. Protocolo: TCP.
Seleccione el vSwitch como endpoint. Permita el tráfico hacia las instancias ECS con las direcciones IP 10.1.1.1 y 10.1.1.2. Establezca el rango de puertos en 80-82.
Una vez completada la configuración, GA genera la siguiente tabla de asignación de puertos:
En este ejemplo, los puertos se asignan de manera secuencial para facilitar la comprensión. La tabla real podría ser distinta. Para consultarla, ejecute las operaciones ListCustomRoutingPortMappings y ListCustomRoutingPortMappingsByDestination.
|
Puerto de aceleración |
Dirección IP de destino |
Puerto de destino |
Política de tráfico |
|
1001 |
10.1.1.1 |
80 |
Allow |
|
1002 |
10.1.1.1 |
81 |
Allow |
|
1003 |
10.1.1.1 |
82 |
Allow |
|
1004 |
10.1.1.2 |
80 |
Allow |
|
1005 |
10.1.1.2 |
81 |
Allow |
|
1006 |
10.1.1.2 |
82 |
Allow |
|
1007 |
10.1.1.3 |
80 |
Deny |
|
1008 |
10.1.1.3 |
81 |
Deny |
|
1009 |
10.1.1.3 |
82 |
Deny |
Como se muestra en la siguiente figura, distintos jugadores acceden a la aplicación de juego mediante las direcciones IP y los puertos acelerados que asigna GA. El jugador 1 entra por el puerto 1001 y su dirección IP acelerada correspondiente. El jugador 2 lo hace por el puerto 1003 y su respectiva dirección IP. El tráfico de ambos se enruta hacia la instancia ECS con la dirección IP 10.1.1.1. El jugador 3 accede por el puerto 1005 y su dirección IP, de modo que su tráfico llega a la instancia ECS 10.1.1.2. Por su parte, el jugador 4 no logra conectarse a la instancia ECS 10.1.1.3, ya que esta no admite tráfico.
Diferencias entre los listeners de enrutamiento inteligente y los de enrutamiento personalizado
La siguiente tabla compara las funciones de ambos tipos de listeners.
Función | Listener de enrutamiento inteligente | Listener de enrutamiento personalizado |
Admite TCP, UDP, HTTP y HTTPS. | Admite TCP y UDP. Puede especificar el protocolo cuando configure el grupo de endpoints. Tiene la opción de elegir TCP, UDP o ambos. | |
La cantidad de puertos configurables para un listener varía según su protocolo. | El rango de puertos del listener que especifique determina el producto entre la cantidad de puertos del grupo de endpoints asociado y la cantidad de direcciones IP del endpoint. Se debe cumplir el siguiente requisito: Una vez configurados los puertos del listener, no puede eliminar aquellos que ya aparecen en la tabla de asignación cuando modifique el rango. | |
Compatible. | No compatible. | |
Admite IPv4, IPv6 y pila doble. | Solo admite IPv4. | |
Los tipos de servicio de backend compatibles dependen de dónde esté desplegado:
| vSwitches en Alibaba Cloud. Permite especificar las direcciones IP privadas y los puertos de destino de una o más instancias ECS dentro de un vSwitch como destinos de tráfico. | |
Compatible. | No compatible. | |
Compatible. | No compatible. | |
Compatible. | Compatible. | |
La compatibilidad depende del protocolo del listener:
| No compatible de forma predeterminada. Si necesita usar esta función, comuníquese con su administrador de cuenta. | |
Compatible. | No compatible. |