Como puede actuar OpenSIPs en el balanceamiento de carga

Hace poco comenté la distribución de trafico SIP con OpenSIPs.

Hoy abordaremos el tema de como puede actuar OpenSIPs cuando distribuye ese trafico. Sustancialmente los escenarios son tres:

  1. stateless: sin mantener el estado de la señalización SIP
  2. stateful a nive de transacción: manteniendo el estado solamente de la primera transacción SIP
  3. stateful a nivel de dialogo: manteniendo el estado de todo el dialogo SIP

En el primer caso es cuando el servidor Proxy consuma menos recursos y al mismo tiempo cuando casi toda la señalización SIP es directa entre los dos UA (User Agent). Aunque es el escenario que escala más fácilmente, no permite ningún tipo de “manipulación” por parte de OpenSIPs (CDR, respaldo, conocer la carga de cada servidor, etc.). Desde un punto de vista gráfico, sería:

image

En el segundo caso OpenSIPs mantiene el estado solamente de la primera transacción SIP; las demás transacciones pertenecientes al dialogo se intercambiarán directamente entre los dos UA (User Agent). Esta configuración representa un buen compromiso entre consumo de recursos y control del estado de los servidores utilizados para distribuir el trafico. En este escenario OpenSIPs puede conocer el estado de cada servidor utilizado para distribuir el trafico y saber donde enviar una nueva llamada.  Visto gráficamente, sería:

image 

El tercer caso es donde OpenSIPs se mantiene en el medio de toda la señalización SIP de cada dialogo, conociendo, de esta forma, toda la “vida” del dialogo, desde su creación hasta fu terminación. Como pueden entender, en este tipo de escenario OpenSIPs puede ser utilizado también con servicios de valor añadido como, por ejemplo, la facturación de las llamadas. OpenSIPs en cualquier momento conocerá el numero de diálogos activos, la carga de cada servidor utilizado para la distribución del trafico y si el servidor está activo o no. Este tipo de escenario comporta el más alto consumo de recursos:

image

Una tabla donde se muestran algunos valores según el tipo de de escenario utilizado:

image

  • Traffic: trafico SIP que pasa por OpenSIPs
  • Processing: consumo de recursos de CPU por cada dialogo
  • Load Balancing, Probabilistic Balancing, Server Failover: los servicios que se pueden utilizar según el tipo de escenario utilizado.

Para la forma de implementar cada tipo de escenario, consulten los módulos de OpenSIPs TM y RR

Fuente: Traffic balancing – the insertion into the SIP flow