Equilibrio de carga de un grupo de servidores SIP
El Protocolo de inicio de sesión (SIP) está diseñado para iniciar, gestionar y finalizar las sesiones de comunicaciones multimedia. Se ha convertido en el estándar para la telefonía por Internet (VoIP). Los mensajes SIP se pueden transmitir a través de TCP o UDP. Los mensajes SIP son de dos tipos: mensajes de solicitud y mensajes de respuesta.
El tráfico en un sistema de comunicación basado en SIP se enruta a través de dispositivos y aplicaciones dedicados (entidades). En una sesión de comunicación multimedia, estas entidades intercambian mensajes. La siguiente ilustración muestra un sistema básico de comunicación basado en SIP:
Figura 1. Sistema de comunicación basado en SIP
Un NetScaler le permite equilibrar la carga de mensajes SIP a través de UDP o a través de TCP (incluido TLS). Puede configurar NetScaler para equilibrar la carga de las solicitudes SIP a un grupo de servidores proxy SIP. Para ello, cree un servidor virtual de equilibrio de carga con el método de equilibrio de carga y el tipo de persistencia establecidos en una de las siguientes combinaciones:
- Método de equilibrio de carga con hash de identificador de llamada sin configuración de persistencia
- Persistencia basada en identificadores de llamadas con mínima conexión o método de balanceo de carga por turnos
- Persistencia basada en reglas con menos conexión o método de equilibrio de carga round robin
Además, de forma predeterminada, NetScaler agrega RPORT a través del encabezado de la solicitud SIP, de modo que el servidor devuelve la respuesta a la dirección IP de origen y al puerto desde el que se originó la solicitud.
Nota: Para que el equilibrio de carga funcione, debe configurar los proxies SIP para que no añadan direcciones IP privadas o dominios privados a la carga o cabecera SIP. Los proxies SIP deben añadir al encabezado SIP un nombre de dominio que se resuelva en la dirección IP del servidor virtual SIP. Además, los proxies SIP deben comunicarse con una base de datos común para compartir la información de registro.
Tráfico iniciado por el servidor
Para el tráfico saliente iniciado por el servidor SIP, configure RNAT en NetScaler para que las direcciones IP privadas utilizadas por los clientes se traduzcan en direcciones IP públicas.
Si ha configurado parámetros SIP que incluyen el puerto de origen o destino de RNAT, el dispositivo compara los valores de los puertos de origen y destino de los paquetes de solicitud con los puertos de origen y destino de RNAT. Si uno de los valores coincide, el dispositivo actualiza el encabezado VIA con RPORT. La respuesta SIP del cliente recorre entonces la misma ruta que la solicitud.
Para el tráfico SSL iniciado por el servidor, NetScaler utiliza un par de claves de certificado integrado.如果desea utilizar联合国de响木德certificado不相上下personalizado, vincule el par de claves de certificado personalizado al servicio interno de NetScaler denominado nsrnatsip-127.0.0.0.1-5061.
Compatibilidad con directivas y expresiones
El lenguaje de expresiones predeterminadas de NetScaler contiene varias expresiones que funcionan en conexiones de Session Initiation Protocol (SIP). Estas expresiones solo pueden vincularse a servidores virtuales basados en SIP (sip_udp, sip_tcp o sip_ssl) y a puntos de enlace globales. Puede utilizar estas expresiones en las directivas de cambio de contenido, limitación de velocidad, respuesta y reescritura.
Configuración del equilibrio de carga para el tráfico de señalización SIP a través de TCP o UDP
NetScaler puede equilibrar la carga de los servidores SIP que envían solicitudes a través de UDP o TCP, incluido el tráfico TCP protegido por TLS. El ADC proporciona los siguientes tipos de servicios para equilibrar la carga de los servidores SIP:
- SIP_UDP: se usa cuando los servidores SIP envían mensajes SIP a través de UDP.
- SIP_TCP: se usa cuando los servidores SIP envían mensajes SIP a través de TCP.
- SIP_SSL: se utiliza para proteger el tráfico de señalización SIP a través de TCP mediante SSL o TLS. NetScaler admite los siguientes modos:
- Conexión TLS de extremo a extremo entre el cliente, el ADC y el servidor SIP.
- Conexión TLS entre el cliente y el ADC y conexión TCP entre el ADC y el servidor SIP.
- Conexión TCP entre el cliente y el ADC y conexión TLS entre el ADC y el servidor SIP.
La siguiente ilustración muestra la topología de una instalación configurada para equilibrar la carga de un grupo de servidores SIP que envían mensajes SIP a través de TCP o UDP.
Figura 2. Topología de equilibrio de carga SIP
Tipo de entidad | 名字 | Dirección IP | Puerto | Tipo de servicio/Protocolo |
---|---|---|---|---|
Servidor virtual | Vserver-LB-1 | 10.102.29.65 | 80 | SIP_UDP/SIP_TCP/ SIP_SSL |
Servicios | Service-SIP-1 | 192.168.1.6 | 80 | SIP_UDP/SIP_TCP/ SIP_SSL |
Service-SIP-2 | 192.168.1.5 | 80 | SIP_UDP/SIP_TCP/ SIP_SSL | |
Monitores | Valor predeterminado | Nada | 80 | SIP_UDP/SIP_TCP/ SIP_SSL |
continuacion se提供了una descripcion将军de la configuración del equilibrio de carga básico para el tráfico SIP:
Configure los servicios y configure un servidor virtual para cada tipo de tráfico SIP que desee equilibrar la carga:
- SIP_UDP: si está equilibrando la carga del tráfico SIP a través de UDP.
- SIP_TCP: si está equilibrando la carga del tráfico SIP a través de TCP.
- SIP_SSL: si está equilibrando la carga y protegiendo el tráfico SIP a través de TCP.
Nota: Si usa SIP_SSL, asegúrese de crear un par de claves de certificado SSL. Para obtener más información, consulte Agregar un par de claves de certificado.
Enlazar los servicios a los servidores virtuales.
Si desea supervisar los estados de los servicios con un monitor que no sea el predeterminado (tcp-default), cree un monitor personalizado y vincúlelo a los servicios. NetScaler proporciona dos tipos de monitores personalizados,SIP-UDP y SIP-TCP, para supervisar los serviciosSIP**.
Si utiliza un servidor virtual SIP_SSL, vincule un par de claves de certificado SSL al servidor virtual.
Si utiliza NetScaler como puerta de enlace para los servidores SIP en su implementación, configure RNAT.
Si desea añadir RPORT a los mensajes SIP que se inician desde el servidor SIP, configure los parámetros SIP.
Para configurar una configuración básica de equilibrio de carga para el tráfico SIP mediante la interfaz de línea de comandos
Cree uno o más servicios. En la línea de comandos, escriba:
add service (SIP_UDP | SIP_TCP | SIP_SSL)
Ejemplo:
add service Service-SIP-UDP-1 192.0.2.5 SIP_UDP 80
Cree tantos servidores virtuales como sea necesario para gestionar los servicios que ha creado. El tipo de servidor virtual debe coincidir con el tipo de servicios que le vincula. En la línea de comandos, escriba:
add lb vserver (SIP_UDP | SIP_TCP | SIP_SSL)
Ejemplo:
add lb vserver Vserver-LB-1 SIP_UDP 10.102.29.60 80
Enlaza cada servicio a un servidor virtual. En la línea de comandos, escriba:
bind lb vserver
Ejemplo:
bind lb vserver Vserver-LB-1 Service-SIP-UDP-1
(Opcional) Cree un monitor personalizado de tipo SIP-UDP o SIP-TCP y vincule el monitor al servicio. En la línea de comandos, escriba:
add lb monitor [] bind lb monitor
Ejemplo:
add lb monitor mon1 sip-UDP -sipMethod REGISTER -sipuRI sip:mon@test.com -sipregURI sip:mon@test.com -respcode 200 bind monitor mon1 Service-SIP-UDP-1
Si ha creado un servidor virtual SIP_SSL, vincule un par de claves de certificado SSL al servidor virtual. En la línea de comando, escriba: En la línea de comando, escriba:
bind ssl vserver -certkeyName -CA –skipCAName
Ejemplo:
bind ssl vserver Vserver-LB-1 -certkeyName CertKey-SSL-1
Configure el RNAT según lo requiera la topología de red. En la línea de comandos, escriba uno de los siguientes comandos para crear, respectivamente, una entrada de RNAT que utilice una dirección de red como condición y un SNIP como dirección IP de NAT, una entrada de RNAT que utilice una dirección de red como condición y una dirección IP única como dirección IP de NAT, una entrada de RNAT que utilice una ACL como condición y un dirección IP única como dirección IP de NAT:
add rnat ( | ( [-redirectPort ])) bind rnat @ … show rnat
Ejemplo:
add rnat RNAT-1 192.168.1.0 255.255.255.0 bind rnat RNAT-1 -natip 10.102.29.50
如果desea utilizar联合国de响木德certificado不相上下personalizado, vincule el par de claves de certificado personalizado al servicio interno de NetScaler denominado nsrnatsip-127.0.0.0.1-5061.
add ssl certKey -cert [-key ] bind ssl service -certkeyName
Ejemplo:
add ssl certKey c1 -cert cert.epm -key key.ky bind ssl service nsrnatsip-127.0.0.1-5061 -certkeyName c1
Si desea añadir RPORT a los mensajes SIP que inicia el servidor SIP, escriba el siguiente comando en la línea de comandos:
set lb sipParameters -rnatSrcPort -rnatDstPort -retryDur -addRportVip - sip503RateThreshold
Configuración de ejemplo para equilibrar la carga del tráfico SIP a través de UDP
add service service-UDP-1 10.102.29.5 SIP_UDP 80 Done add lb vserver vserver-LB-1 SIP_UDP 10.102.29.60 80 Done bind lb vserver vserver-LB-1 service-UDP-1 Done add lb mon mon1 sip-udp -sipMethod REGISTER -sipuRI sip:mon@test.com -sipregURI sip:mon@test.com -respcode 200 Done bind mon mon1 service-UDP-1 Done add rnat RNAT-1 192.168.1.0 255.255.255.0 Done set lb sipParameters -rnatSrcPort 5060 -rnatDstPort 5060 -retryDur 1000 -addRportVip ENABLED -sip503RateThreshold 1000 Done
Ejemplo de configuración para equilibrar la carga del tráfico SIP a través de TCP
add service service-TCP-1 10.102.29.5 SIP_TCP 80 Done add lb vserver vserver-LB-1 SIP_TCP 10.102.29.60 80 Done bind lb vserver vserver-LB-1 service-TCP-1 Done add lb mon mon1 sip-tcp -sipMethod REGISTER -sipuRI sip:mon@test.com -sipregURI sip:mon@test.com -respcode 200 Done bind mon mon1 service-TCP-1 Done add rnat RNAT-1 192.168.1.0 255.255.255.0 Done set lb sipParameters -rnatSrcPort 5060 -rnatDstPort 5060 -retryDur 1000 -addRportVip ENABLED -sip503RateThreshold 1000 Done
Ejemplo de configuración para el equilibrio de carga y la protección del tráfico SIP a través de TCP
add service service-SIP-SSL-1 10.102.29.5 SIP_SSL 80 Done add lb vserver vserver-LB-1 SIP_SSL 10.102.29.60 80 Done bind lb vserver vserver-LB-1 service-SIP-SSL Done add lb mon mon1 sip-tCP -sipMethod REGISTER -sipuRI sip:mon@test.com -sipregURI sip:mon@test.com -respcode 200 Done bind mon mon1 service-SIP-SSL Done bind ssl vserver Vserver-LB-1 -certkeyName CertKey-SSL-1 Done add rnat RNAT-1 192.168.1.0 255.255.255.0 Done set lb sipParameters -rnatSrcPort 5060 -rnatDstPort 5060 -retryDur 1000 -addRportVip ENABLED -sip503RateThreshold 1000 Done
Para configurar una configuración básica de equilibrio de carga para el tráfico SIP mediante la GUI
Vaya aAdministración del tráfico > Equilibrio de carga > Servidores virtualesy agregue un servidor virtual de tipo SIP_UDP, SIP_TCP o SIP_SSL.
Haga clic en la secciónServicioy agregue un servicio de tipo SIP_UDP, SIP_TCP o SIP_SSL.
(Opcional) Haga clic en la secciónSupervisary agregue un monitor del tipo: SIP-UDP o SIP-TCP.
Enlazar el monitor al servicio y enlazar el servicio al servidor virtual.
Si ha creado un servidor virtual SIP_SSL, vincule un par de claves de certificado SSL al servidor virtual. Haga clic en la sección Certificados y vincule un par de claves de certificado al servidor virtual.
Configure el RNAT según lo requiera la topología de red. Para configurar RNAT:
- Vaya aSistema > Red > Rutas.
- En la pagina太阳,混合clic En la fichaRNAT.
- En el panel de detalles, haga clic enConfigurar RNAT.
- En el cuadro de diálogo Configurar RNAT, realice una de las siguientes acciones:
- Si desea utilizar la dirección de red como condición para crear una entrada RNAT, haga clic enRedy establezca los siguientes parámetros:
- Red
- Máscara de red
- Si desea utilizar una ACL extendida como condición para crear una entrada RNAT, haga clic enACLy establezca los siguientes parámetros:
- Nombre de ACL
- Puerto de redireccionamiento
- Si desea utilizar la dirección de red como condición para crear una entrada RNAT, haga clic enRedy establezca los siguientes parámetros:
- Para configurar una dirección SNIP como dirección IP de NAT, vaya al paso 7.
- Para establecer una dirección IP única como IP NAT, en la lista IP NAT disponible (s), seleccione la dirección IP que quiere establecer como IP NAT y, a continuación, haga clic en Agregar. La IP NAT que ha seleccionado aparece en la lista de IP NAT configuradas.
- Haga clic en Creary, a continuación, en Cerrar.
如果desea utilizar联合国de响木德certificado不相上下personalizado, vincule el par de claves de certificado personalizado al servicio interno de NetScaler denominado nsrnatsip-127.0.0.0.1-5061.Para unir el par:
- Vaya aAdministración del tráfico > Equilibrio de carga > Serviciosy haga clic en la ficha Servicios internos.
- Seleccione nsrnatsip-127.0.0.1-5061 y haga clic en Editar.
- Haga clic en la secciónCertificadosy vincule un par de claves de certificado al servicio interno.
Si desea añadir RPORT a los mensajes SIP que inicia el servidor SIP, configure los parámetros SIP. Vaya aAdministración del tráfico > Equilibrio de cargay haga clic en Cambiar configuración de SIP, establezca los distintos parámetros SIP.
Ejemplo de directiva y expresión SIP: compresión habilitada en las solicitudes de los clientes
Un NetScaler no puede procesar las solicitudes SIP de cliente comprimidas, por lo que se produce un error en la solicitud SIP del cliente.
Puede configurar una directiva de respuesta que intercepte el mensaje SIP NEGOCIATE del cliente y busque el encabezado de compresión. Si el mensaje incluye un encabezado de compresión, la directiva responde con “400 solicitudes incorrectas” para que el cliente vuelva a enviar la solicitud sin comprimirla.
En la línea de comandos, escriba los siguientes comandos para crear la directiva de respuesta:
add responder action sipaction1 respondwith q{"SIP/2.0 400 Bad Requestrnrn"} Done add responder policy sippol1 add responder policy sippol1 "SIP.REQ.METHOD.EQ("NEGOTIATE")&&SIP.REQ.HEADER("Compression").EXISTS" sipaction1
En este artículo
- Tráfico iniciado por el servidor
- Compatibilidad con directivas y expresiones
- Configuración del equilibrio de carga para el tráfico de señalización SIP a través de TCP o UDP
- Para configurar una configuración básica de equilibrio de carga para el tráfico SIP mediante la interfaz de línea de comandos
- Configuración de ejemplo para equilibrar la carga del tráfico SIP a través de UDP
- Ejemplo de configuración para equilibrar la carga del tráfico SIP a través de TCP
- Ejemplo de configuración para el equilibrio de carga y la protección del tráfico SIP a través de TCP
- Para configurar una configuración básica de equilibrio de carga para el tráfico SIP mediante la GUI
- Ejemplo de directiva y expresión SIP: compresión habilitada en las solicitudes de los clientes