Configurar el equilibrio de carga de diameter

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 ordenadores portátiles y teléfonos móviles. Es un protocolo peer-to-peer, a diferencia del modelo cliente-servidor tradicional utilizado por la mayoría de los otros protocolos. Sin embargo, en la mayoría de las implementaciones de Diameter, los clientes origina la solicitud y el servidor responde a la solicitud.

Cuando se intercambian mensajes de diameter, el servidor de diameter suele realizar mucho más procesamiento que el cliente de diameter. Con el aumento del volumen de señalización del plano de control, el servidor de diameter se convierte en un cuello de botella. Por lo tanto, los mensajes de diameter deben equilibrarse la carga en varios servidores. Un servidor virtual que realiza el equilibrio de carga de los mensajes de Diameter proporciona 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 de diameter SSL.

La siguiente figura muestra un sistema de diameter en una implementación de Citrix ADC:

diameter-sistema

Un sistema de 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, redirección o traducción. El dispositivo Citrix ADC (configurado con un servidor virtual de equilibrio de carga de diameter) desempeña el papel de agente de diameter.
  • Servidor de diameter. Maneja las solicitudes de autenticación, autorización y contabilidad para un dominio determinado. Un servidor Diameter debe admitir aplicaciones de 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 Diameter establece una única conexión (TCP Connection—SCTP aún no se admite) con un servidor Diameter como se especifica en el protocolo base Diameter RFC 6733. La conexión es de larga duración y todos los mensajes entre los dos nodos Diameter (cliente y servidor) se intercambian a través de esta conexión. Citrix ADC utiliza el equilibrio de carga basado en mensajes.

Ejemplo:

Un proveedor de servicios móviles utiliza Diameter para su sistema de facturación. Cuando un suscriptor utiliza 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 la conexión no tendría sentido, porque solo hay una conexión. Sin embargo, con la gran cantidad de mensajes en la conexión, el equilibrio de carga basado en mensajes acelera el proceso de facturación al suscriptor móvil prepago.

Cómo funciona el equilibrio de carga de diameter

Una solicitud de desconexión del mismo nivel (DPR) indica la intención del par de cerrar la conexión, con el motivo para cerrar la conexión. El par responde con un DPA (TCP siempre proporciona un DPA correcto).

  • Cuando el dispositivo recibe un DPR del cliente, transmite el DPR a todos los servidores y responde inmediatamente con un DPA al cliente. Los servidores responden con 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 solo con un DPA a ese servidor y no quita el servidor del grupo de reutilización. Cuando el servidor envía un FIN, el dispositivo responde con FIN/ACK y quita 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 quita inmediatamente la conexión del 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 nueva conexión.

Tráfico de diameter de equilibrio de carga

Cuando un cliente envía una solicitud al dispositivo Citrix ADC, el dispositivo analiza la solicitud y la carga contextualmente equilibra a un servidor Diameter sobre la base de 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 del cliente. Las solicitudes iniciadas por el servidor son similares a las solicitudes iniciadas por el cliente, excepto:

  • Dado que los mensajes se reciben de varios servidores, el dispositivo mantiene el estado de la transacción agregando un número único de Hop by Hop (HByH) a cada mensaje de solicitud reenviada. Cuando llega la respuesta del 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 colocando su identidad, ya que el cliente ve el dispositivo como un agente de retransmisión.

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

Desconectar una sesión

Una solicitud de desconexión del mismo nivel (DPR) indica la intención del par de cerrar la conexión, con el motivo para cerrar la conexión. El par responde con un DPA (TCP siempre proporciona un DPA correcto).

  • Cuando el dispositivo Citrix ADC recibe un DPR del cliente, transmite el DPR a todos los servidores y responde inmediatamente con un DPA al cliente. Los servidores responden con 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 solo con un DPA a ese servidor y no quita el servidor del grupo de reutilización. Cuando el servidor envía un FIN, el dispositivo responde con FIN/ACK y quita 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 quita inmediatamente la conexión del 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 nueva conexión.

Configurar el equilibrio de carga para el tráfico de diameter

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

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

Configure los parámetros de diameter.

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

Ejemplo:

set ns diameter -identity mydomain.org -realm org -serverClosePropagation YES

Agregue un monitor de diameter.

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

Ejemplo:

add lb monitor diameter_mon DIAMETER -originHost mydomain.org -originRealm org

Cree los servicios de Diameter.

add service <name> <IP> DIAMETER <port>

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

Enlazar los servicios Diameter al monitor Diameter.

bind service <name>@ monitorName <monitorName>

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

Agregue un servidor virtual de equilibrio de carga de diameter con persistencia de diameter.

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

Ejemplo:

add lb vserver diameter_vs DIAMETER 10.102.112.152 3868 -persistenceType DIAMETER -persistAVPno 263

Enlazar los servicios de diameter al servidor virtual de equilibrio de carga de diameter.

bind lb vserver <name> <serviceName>

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

Guarde la configuración.

save ns config

Nota: También puede configurar el equilibrio de carga del tráfico de diámetro 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 diámetro y defina los parámetros de diámetro.
  2. Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales y cree un servidor virtual de equilibrio de carga del tipo Diámetro.
  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 Diámetro e introduzca un número AVP de persistencia.
  7. Haga clic en Guardar y haga clic en Listo.