ADC

Configurar equilibrio de carga de diámetro

El protocolo Diameter es un protocolo de señalización AAA (Autenticación, Autorización y Contabilidad) de próxima generación utilizado principalmente en dispositivos móviles como equipos portátiles y teléfonos móviles. Es un protocolo de igual a igual, a diferencia del modelo tradicional cliente-servidor utilizado por la mayoría de los demás protocolos. Sin embargo, en la mayoría de las implementaciones de Diameter, los clientes originan la solicitud y el servidor responde a la solicitud.

Cuando se intercambian mensajes de Diameter, el servidor Diameter suele procesar mucho más que el cliente Diameter. Con el aumento del volumen de señalización del plano de control, el servidor Diameter se convierte en un obstáculo. Por lo tanto, los mensajes de Diameter deben tener una carga equilibrada en varios servidores. Un servidor virtual que equilibra la carga de los mensajes de Diameter ofrece las siguientes ventajas:

  • Carga más ligera en los servidores Diameter, lo que se traduce en un tiempo de respuesta más rápido para los usuarios finales.
  • Supervisión del estado del servidor y mejores capacidades de conmutación por error.
  • Mejor escalabilidad en términos de adición de servidores sin cambiar la configuración del cliente.
  • Alta disponibilidad.
  • Descarga con Diameter SSL.

La siguiente ilustración muestra un sistema de diameter en una implementación de NetScaler ADC:

diameter-system

Un sistema Diameter tiene los siguientes componentes:

  • Cliente Diameter. Admite aplicaciones cliente Diameter además del protocolo base. Los clientes de Diameter a menudo se implementan en dispositivos situados en el borde de una red y proporcionan servicios de control de acceso para esa red. Ejemplos típicos de clientes Diameter son un servidor de acceso a la red (NAS) y el agente externo de IP móvil (FA).
  • Agente de Diameter. Proporciona servicios de retransmisión, proxy, redireccionamiento o traducción. El dispositivo Citrix ADC (configurado con un servidor virtual de equilibrio de carga Diameter) desempeña la función de agente Diameter.
  • Servidor Diameter. Gestiona las solicitudes de autenticación, autorización y contabilidad de un dominio en particular. Un servidor Diameter debe admitir las aplicaciones del servidor Diameter además del protocolo base.

En una topología típica de Diameter, cuando un dispositivo de usuario final (como un teléfono móvil) necesita un servicio, envía una solicitud a un cliente de Diameter. Cada cliente de Diameter establece una conexión única (conexión TCP; aún no se admite SCTP) con un servidor Diameter, según lo especificado en el protocolo base RFC 6733 de Diameter. La conexión dura mucho tiempo y todos los mensajes entre los dos nodos de Diameter (cliente y servidor) se intercambian a través de esta conexión. El Citrix ADC utiliza un equilibrio de carga basado en mensajes.

Ejemplo:

Un proveedor de servicios móviles utiliza Diameter para su sistema de facturación. Cuando un suscriptor usa un número de prepago, el cliente Diameter envía repetidamente solicitudes al servidor para comprobar el saldo disponible. El protocolo Diameter establece una conexión entre el cliente y el servidor, y todas las solicitudes se intercambian a través de esa conexión. El equilibrio de carga basado en conexiones no tendría sentido, porque solo hay una conexión. Sin embargo, dada la gran cantidad de mensajes en la conexión, el equilibrio de carga basado en mensajes acelera el proceso de facturación al suscriptor de telefonía móvil de prepago.

Cómo funciona el balanceo de carga diametral

Un cliente Diameter abre una conexión con el dispositivo NetScaler y envía un mensaje de solicitud de intercambio de capacidad (CER) de Diameter. El NetScaler selecciona un servidor Diameter, abre una conexión con el servidor y reenvía el mensaje CER al servidor. El servidor lee la identidad del cliente y determina que está conectado directamente al cliente.

El servidor Diameter prepara la respuesta del apretón de manos Diameter y la envía al dispositivo NetScaler. El aparato modifica el apretón de manos e inserta su propia identidad. En este punto, el cliente Diameter determina que está conectado directamente al NetScaler (el agente).

Nota:

Todos los mensajes de solicitud de Diameter del cliente se ponen en cola en el servidor seleccionado hasta que se complete el apretón de manos de Diameter. Los paquetes se reenvían al servidor cuando se completa el apretón de manos.

Tráfico de diameter de equilibrio de carga

Cuando un cliente envía una solicitud al dispositivo NetScaler ADC, el dispositivo analiza la solicitud y la carga contextualmente equilibra en un servidor Diameter basado en un AVP persistente. El dispositivo ha anunciado la identidad del cliente al servidor, por lo que no agrega entradas de ruta, ya que el servidor espera mensajes directamente del cliente.

Las solicitudes iniciadas por el servidor no son tan frecuentes como las solicitudes de los clientes. Las solicitudes iniciadas por el servidor son similares a las solicitudes iniciadas por el cliente, excepto:

  • Como los mensajes se reciben de varios servidores, el dispositivo mantiene el estado de la transacción añadiendo un número único Hop by Hop (HByH) a cada mensaje de solicitud reenviado. Cuando llega la respuesta al mensaje (con el mismo número de HByH), el dispositivo traduce este número de HByH al número de HByH que se recibió en el servidor cuando llegó la solicitud.
  • El dispositivo Citrix ADC agrega una entrada de ruta poniendo su identidad, ya que el cliente ve el dispositivo como un agente de retransmisión.

Nota: Si un mensaje de Diameter abarca más de un paquete, el dispositivo acumula los paquetes en una cola de encabezados incompleta y los reenvía al servidor cuando se acumula el mensaje completo. Del mismo modo, si un solo paquete contiene más de un mensaje de Diameter, el dispositivo divide el paquete y reenvía los mensajes a los servidores según lo determine el servidor virtual de equilibrio de carga.

Desconectar una sesión

Una solicitud de desconexión entre pares (DPR) indica la intención del par de cerrar la conexión y el motivo por el que se cerró la conexión. El par responde con un DPA (el TCP siempre proporciona un DPA exitoso).

  • Cuando el dispositivo Citrix ADC recibe un DPR del cliente, lo transmite a todos los servidores y responde inmediatamente con un DPA al cliente. Los servidores responden con los DPA, pero el dispositivo los ignora. El cliente envía un FIN, que el dispositivo transmite a todos los servidores.
  • Cuando el dispositivo recibe un DPR del servidor, responde con un DPA únicamente a ese servidor y no lo elimina del grupo de reutilización. Cuando el servidor envía un FIN, el dispositivo responde con FIN/ACK y elimina las conexiones del grupo de reutilización.
  • Si el dispositivo recibe un FIN del cliente, envía al cliente un FIN/ACK, transmite el FIN y elimina inmediatamente la conexión al servidor del grupo de reutilización.
  • Si el dispositivo recibe un FIN del servidor, envía un FIN/ACK y lo elimina del grupo de reutilización. Cualquier mensaje nuevo para este servidor se envía en una conexión nueva.

Configurar el equilibrio de carga para el tráfico diametral

Para configurar el dispositivo Citrix ADC para equilibrar la carga del tráfico de diámetro, primero debe configurar los parámetros Diameter en el dispositivo y, a continuación, agregar el monitor de diámetro, agregar los servicios de diámetro, vincular los servicios al monitor, agregar el servidor virtual de equilibrio de carga de diámetro y vincular los servicios al servidor virtual.

Para configurar el equilibrio de carga para el tráfico de diámetro mediante la interfaz de línea de comandos

Configure los parámetros de diámetro.

set ns diameter -identity <string> -realm <string> -serverClosePropagation <YES|NO>
<!--NeedCopy-->

Ejemplo:

set ns diameter -identity mydomain.org -realm org -serverClosePropagation YES
<!--NeedCopy-->

Añada un monitor Diameter.

add lb monitor <monitorName> DIAMETER -originHost <string> -originRealm <string>
<!--NeedCopy-->

Ejemplo:

add lb monitor diameter_mon DIAMETER -originHost mydomain.org -originRealm org
<!--NeedCopy-->

Cree los servicios Diameter.

add service <name> <IP> DIAMETER <port>
<!--NeedCopy-->

Ejemplo:

add service diameter_svc0 10.102.82.86 DIAMETER 3868

add service diameter_svc1 10.102.82.87 DIAMETER 3868

add service diameter_svc2 10.102.82.88 DIAMETER 3868

add service diameter_svc3 10.102.82.89 DIAMETER 3868
<!--NeedCopy-->

Enlaza los servicios Diameter al monitor Diameter.

bind service <name>@ monitorName <monitorName>
<!--NeedCopy-->

Ejemplo:

bind service diameter_svc0 -monitorName diameter_mon

bind service diameter_svc1 -monitorName diameter_mon

bind service diameter_svc2 -monitorName diameter_mon

bind service diameter_svc3 -monitorName diameter_mon
<!--NeedCopy-->

Añada un servidor virtual de equilibrio de carga de Diameter con Diameter persistencia.

add lb vserver <name> DIAMETER <IPAddress> <port> -persistenceType DIAMETER -persistAVPno <positive_integer>
<!--NeedCopy-->

Ejemplo:

add lb vserver diameter_vs DIAMETER 10.102.112.152 3868 -persistenceType DIAMETER -persistAVPno 263
<!--NeedCopy-->

Enlaza los servicios de Diameter al servidor virtual de equilibrio de carga de Diameter.

bind lb vserver <name> <serviceName>
<!--NeedCopy-->

Ejemplo:

bind lb vserver diameter_vs diameter_svc0

bind lb vserver diameter_vs diameter_svc1

bind lb vserver diameter_vs diameter_svc2

bind lb vserver diameter_vs diameter_svc3
<!--NeedCopy-->

Guarde la configuración.

save ns config
<!--NeedCopy-->

Nota: También puede configurar el equilibrio de carga del tráfico de Diameter a través de SSL mediante el tipo de servicio SSL_DIAMETER .

Para configurar el equilibrio de carga para el tráfico de Diameter mediante la utilidad de configuración

  1. Vaya a Sistema > Configuración > Cambiar parámetros de Diameter y defina los parámetros de diámetro.
  2. Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtualesy cree un servidor virtual de equilibrio de carga del tipo Diameter.
  3. Cree un servicio de tipo Diameter.
  4. Cree un monitor de tipo Diameter. En Parámetros especiales, defina el host de origen y el dominio de origen.
  5. Enlazar el monitor al servicio y enlazar el servicio al servidor virtual Diameter.
  6. En Configuración avanzada, haga clic en Persistencia, especifique el diámetro e introduzca un número AVP de persistencia.
  7. Haga clic en Guardar y haga clic en Listo.
Configurar equilibrio de carga de diámetro