EN ESTA PÁGINA
Puertas de enlace de capa de aplicación de servicios de última generación
En este tema se describen las puertas de enlace de capa de aplicación (ALG) compatibles con Junos OS para los servicios de próxima generación. La compatibilidad con ALG incluye la administración de agujeros de alfiler y las relaciones padre-hijo para las ALG compatibles.
RTSP
El protocolo de transmisión por secuencias en tiempo real (RTSP) controla la entrega de datos con propiedades en tiempo real, como audio y vídeo. Las secuencias controladas por RTSP pueden usar RTP, pero no es obligatorio. Los medios se pueden transmitir en la misma secuencia de control RTSP. Este es un protocolo basado en texto similar a HTTP, pero el cliente y el servidor mantienen la información de la sesión. Se establece una sesión con el mensaje SETUP y se termina con el mensaje TEARDOWN. El transporte (el protocolo de medios, la dirección y los números de puerto) se negocia en la configuración y la respuesta de configuración.
La compatibilidad con firewall de estado y servicios NAT requiere que configure el ALG RTSP para el puerto TCP 554.
El ALG supervisa la conexión de control, abre flujos dinámicamente para flujos de medios (RTP/RTSP) y realiza reescrituras de puertos y direcciones NAT.
SORBO
El protocolo de inicio de sesión (SIP) es un protocolo de capa de aplicación que puede establecer, mantener y finalizar sesiones multimedia. Es un protocolo de señalización de voz sobre IP (VoIP) ampliamente utilizado. El ALG SIP supervisa el tráfico SIP y crea y administra dinámicamente agujeros en las rutas de señalización y medios. El ALG sólo permite paquetes con los permisos correctos. El ALG SIP también realiza las siguientes funciones:
Administra las relaciones de sesión padre-hijo.
Aplica políticas de seguridad.
Administra agujeros para el tráfico de VoIP.
El SIP ALG admite las siguientes características:
Firewall de estado
TDR de origen estático
TDR de origen de solo dirección dinámica
Traducción de puertos de direcciones de red (NAPT)
Las sesiones SIP están limitadas a 12 horas (720 minutos) para el procesamiento NAT en las tarjetas de interfaz MS-MIC y MS-MPC. Las sesiones SIP en MS-DPC no tienen límite de tiempo.
Configuración de SIP
El protocolo de inicio de sesión (SIP) es un protocolo generalizado para la comunicación entre extremos implicados en servicios de Internet como telefonía, fax, videoconferencia, mensajería instantánea e intercambio de archivos.
Junos OS proporciona servicios de ALG de acuerdo con el estándar descrito en RFC 3261, SIP: Protocolo de inicio de sesión. Los flujos SIP en Junos OS son los que se describen en RFC 3665, Ejemplos de flujo de llamada básico del Protocolo de inicio de sesión (SIP).
Antes de implementar el ALG de SIP de Junos OS, debe estar familiarizado con ciertas limitaciones, que se describen en Limitaciones de la ALG de SIP de Junos OS
El uso de NAT junto con el ALG SIP produce cambios en los campos de encabezado SIP debido a la traducción de direcciones. Para obtener una explicación de estas traducciones, consulte Interacción de SIP ALG con la traducción de direcciones de red.
Para implementar SIP en interfaces de servicios adaptables, configure la application-protocol
instrucción en el nivel de [edit applications application application-name]
jerarquía con el valor sip
. Además, hay otras dos instrucciones que puede configurar para modificar la implementación de SIP:
Puede habilitar el enrutador para que acepte cualquier llamada SIP entrante para los dispositivos de punto de conexión que están detrás del firewall NAT. Cuando un dispositivo detrás del firewall se registra con el proxy que está fuera del firewall, el AS o PIC multiservicios mantiene el estado de registro. Cuando la
learn-sip-register
instrucción está habilitada, el enrutador puede usar esta información para aceptar llamadas entrantes. Si esta instrucción no está configurada, no se aceptan llamadas entrantes; Solo los dispositivos detrás del firewall pueden llamar a dispositivos fuera del firewall.Para configurar el registro SIP, incluya la
learn-sip-register
instrucción en el nivel de[edit applications application application-name]
jerarquía:[edit applications application application-name] learn-sip-register;
Nota:La
learn-sip-register
instrucción no es aplicable al MX-SPC3 de servicios de próxima generación.También puede inspeccionar manualmente el registro SIP emitiendo el
show services stateful-firewall sip-register
comando; para obtener más información, consulte la Referencia de comandos de servicios y conceptos básicos del sistema de Junos OS. Elshow services stateful-firewall sip-register
comando no es compatible con los servicios de próxima generación.Puede especificar un período de tiempo de espera para la duración de las llamadas SIP que se ponen en espera. Cuando una llamada se pone en espera, no hay actividad y los flujos pueden agotar el tiempo de espera después de que expire el período configurado
inactivity-timeout
, lo que resulta en el desmontaje del estado de la llamada. Para evitar esto, cuando una llamada se pone en espera, el temporizador de flujo se restablece alsip-call-hold-timeout
ciclo para conservar el estado de la llamada y fluye durante más tiempo que elinactivity-timeout
período.Nota:La
sip-call-hold-timeout
instrucción no es aplicable al MX-SPC3 de servicios de próxima generación.Para configurar un período de tiempo de espera, incluya la
sip-call-hold-timeout
instrucción en el nivel de[edit applications application application-name]
jerarquía:[edit applications application application-name] sip-call-hold-timeout seconds;
El valor predeterminado es 7200 segundos y el intervalo es de 0 a 36.000 segundos (10 horas).
Interacción de SIP ALG con la traducción de direcciones de red
El protocolo de traducción de direcciones de red (NAT) permite que varios hosts en una subred privada compartan una única dirección IP pública para acceder a Internet. Para el tráfico saliente, NAT reemplaza la dirección IP privada del host en la subred privada por la dirección IP pública. Para el tráfico entrante, la dirección IP pública se convierte de nuevo en la dirección privada y el mensaje se enruta al host apropiado en la subred privada.
El uso de NAT con el servicio de protocolo de inicio de sesión (SIP) es más complicado porque los mensajes SIP contienen direcciones IP en los encabezados SIP, así como en el cuerpo del SIP. Cuando se utiliza NAT con el servicio SIP, los encabezados SIP contienen información sobre la persona que llama y el receptor, y el dispositivo traduce esta información para ocultarla de la red externa. El cuerpo SIP contiene la información del Protocolo de descripción de sesión (SDP), que incluye direcciones IP y números de puerto para la transmisión de los medios. El dispositivo traduce la información de SDP para asignar recursos para enviar y recibir los medios.
La forma en que se reemplazan las direcciones IP y los números de puerto en los mensajes SIP depende de la dirección del mensaje. Para un mensaje saliente, la dirección IP privada y el número de puerto del cliente se reemplazan por la dirección IP pública y el número de puerto del firewall de Juniper Networks. Para un mensaje entrante, la dirección pública del firewall se sustituye por la dirección privada del cliente.
Cuando se envía un mensaje INVITE a través del firewall, la puerta de enlace de capa de aplicación (ALG) del SIP recopila información del encabezado del mensaje en una tabla de llamadas, que utiliza para reenviar mensajes posteriores al extremo correcto. Cuando llega un mensaje nuevo, por ejemplo, un ACK o 200 OK, el ALG compara los campos "De:, Para:, y Identificador de llamada:" con la tabla de llamadas para identificar el contexto de llamada del mensaje. Si llega un nuevo mensaje de INVITACIÓN que coincide con la llamada existente, el ALG lo procesa como una REINVITACIÓN.
Cuando llega un mensaje que contiene información del SDP, el ALG asigna puertos y crea una asignación NAT entre ellos y los puertos del SDP. Dado que el SDP requiere puertos secuenciales para los canales del Protocolo de transporte en tiempo real (RTP) y del Protocolo de control en tiempo real (RTCP), el ALG proporciona puertos pares e impares consecutivos. Si no puede encontrar un par de puertos, descarta el mensaje SIP.
Este tema contiene las siguientes secciones:
Llamadas salientes
Cuando se inicia una llamada SIP con un mensaje de solicitud SIP de la red interna a la externa, NAT reemplaza las direcciones IP y los números de puerto en el SDP y enlaza las direcciones IP y los números de puerto al firewall de Juniper Networks. Los campos de encabezado SIP Vía, Contacto, Ruta y Registro-Ruta, si están presentes, también están enlazados a la dirección IP del firewall. El ALG almacena estas asignaciones para su uso en retransmisiones y para mensajes de respuesta SIP.
A continuación, el ALG SIP abre agujeros en el firewall para permitir que los medios pasen por el dispositivo en los puertos asignados dinámicamente negociados en función de la información del SDP y los campos de encabezado Via, Contacto y Registro-Ruta. Los agujeros de alfiler también permiten que los paquetes entrantes lleguen a las direcciones y puertos IP de contacto, vía y registro-ruta. Al procesar el tráfico de retorno, el ALG inserta los campos SIP originales Contacto, Vía, Ruta y Registro-Ruta en paquetes.
Llamadas entrantes
Las llamadas entrantes se inician desde la red pública a direcciones NAT estáticas públicas o a direcciones IP de interfaz en el dispositivo. Los NAT estáticos son direcciones IP configuradas estáticamente que apuntan a hosts internos; El ALG registra dinámicamente las direcciones IP de interfaz mientras supervisa los mensajes REGISTER enviados por hosts internos al registrador SIP. Cuando el dispositivo recibe un paquete SIP entrante, configura una sesión y reenvía la carga útil del paquete al ALG SIP.
El ALG examina el mensaje de solicitud SIP (inicialmente una INVITACIÓN) y, basándose en la información del SDP, abre puertas para los medios salientes. Cuando llega un mensaje de respuesta 200 OK, el ALG SIP realiza NAT en las direcciones IP y los puertos y abre agujeros en la dirección de salida. (Las puertas abiertas tienen poco tiempo de vida y agotan el tiempo de espera si no se recibe rápidamente un mensaje de respuesta OK de 200).
Cuando llega una respuesta OK 200, el proxy SIP examina la información del SDP y lee las direcciones IP y los números de puerto de cada sesión multimedia. El SIP ALG del dispositivo realiza NAT en las direcciones y números de puerto, abre agujeros para el tráfico saliente y actualiza el tiempo de espera de las puertas en la dirección entrante.
Cuando el ACK llega para el OK 200, también pasa a través del ALG SIP. Si el mensaje contiene información de SDP, el ALG del SIP se asegura de que las direcciones IP y los números de puerto no se cambien con respecto a la invitación anterior; si lo están, el ALG elimina los agujeros de alfiler antiguos y crea nuevos orificios para permitir el paso de los medios. El ALG también supervisa los campos SIP Vía, Contacto y Registro-Ruta y abre nuevos orificios si determina que estos campos han cambiado.
Llamadas desviadas
Una llamada desviada es cuando, por ejemplo, el usuario A fuera de la red llama al usuario B dentro de la red y el usuario B reenvía la llamada al usuario C fuera de la red. El ALG SIP procesa la invitación del usuario A como una llamada entrante normal. Pero cuando el ALG examina la llamada reenviada de B a C fuera de la red y observa que se llega a B y C utilizando la misma interfaz, no abre agujeros en el firewall, ya que los medios fluirán directamente entre el usuario A y el usuario C.
Terminación de llamada
El mensaje BYE finaliza una llamada. Cuando el dispositivo recibe un mensaje BYE, traduce los campos de encabezado del mismo modo que lo hace para cualquier otro mensaje. Pero debido a que un mensaje BYE debe ser reconocido por el receptor con un OK de 200, el ALG retrasa el desmontaje de la llamada durante cinco segundos para dar tiempo a la transmisión del OK de 200.
Mensajes de reinvitación de llamadas
Los mensajes de Re-INVITE agregan nuevas sesiones multimedia a una llamada y eliminan las sesiones multimedia existentes. Cuando se agregan nuevas sesiones multimedia a una llamada, se abren nuevos agujeros de alfiler en el firewall y se crean nuevos enlaces de direcciones. El proceso es idéntico a la configuración de llamada original. Cuando se quitan una o más sesiones multimedia de una llamada, se cierran los orificios y se liberan los enlaces al igual que con un mensaje BYE.
Temporizadores de sesión de llamada
El ALG SIP utiliza el valor Session-Expires para agotar el tiempo de espera de una sesión si no se recibe un mensaje Re-INVITE o UPDATE. El ALG obtiene el valor Session-Expires, si está presente, de la respuesta OK 200 a INVITE y utiliza este valor para el tiempo de espera de señalización. Si el ALG recibe otra INVITACIÓN antes de que se agote el tiempo de espera de la sesión, restablece todos los valores de tiempo de espera a esta nueva INVITACIÓN o a valores predeterminados, y el proceso se repite.
Como medida de precaución, el ALG SIP utiliza valores de tiempo de espera rígido para establecer la cantidad máxima de tiempo que puede existir una llamada. Esto garantiza que el dispositivo esté protegido en caso de que ocurra uno de los siguientes eventos:
Los sistemas finales se bloquean durante una llamada y no se recibe un mensaje BYE.
Los usuarios malintencionados nunca envían un BYE en un intento de atacar un ALG SIP.
Las implementaciones deficientes del proxy SIP no procesan Record-Route y nunca envían un mensaje BYE.
Los errores de red impiden que se reciba un mensaje BYE.
Cancelación de llamada
Cualquiera de las partes puede cancelar una llamada enviando un mensaje de CANCELACIÓN. Al recibir un mensaje CANCEL, el ALG SIP cierra los orificios a través del firewall (si se ha abierto alguno) y libera los enlaces de dirección. Antes de liberar los recursos, el ALG retrasa la antigüedad del canal de control durante aproximadamente cinco segundos para dar tiempo a que pasen los últimos 200 OK. La llamada finaliza cuando expira el tiempo de espera de cinco segundos, independientemente de si llega una respuesta 487 o no 200.
Bifurcar
La bifurcación permite que un proxy SIP envíe un único mensaje INVITE a múltiples destinos simultáneamente. Cuando llegan los 200 mensajes de respuesta OK para la llamada única, el ALG SIP analiza pero actualiza la información de llamada con los primeros 200 mensajes OK que recibe.
Mensajes SIP
El formato de mensaje SIP consta de una sección de encabezado SIP y el cuerpo SIP. En los mensajes de solicitud, la primera línea de la sección de encabezado es la línea de solicitud, que incluye el tipo de método, el URI de solicitud y la versión del protocolo. En los mensajes de respuesta, la primera línea es la línea de estado, que contiene un código de estado. Los encabezados SIP contienen direcciones IP y números de puerto utilizados para la señalización. El cuerpo SIP, separado de la sección del encabezado por una línea en blanco, está reservado para la información de descripción de la sesión, que es opcional. Actualmente, Junos OS solo admite SDP. El cuerpo SIP contiene las direcciones IP y los números de puerto utilizados para transportar los medios.
Encabezados SIP
En el siguiente mensaje de solicitud SIP de ejemplo, NAT reemplaza las direcciones IP en los campos de encabezado para ocultarlas de la red externa.
INVITE bob@10.150.20.5
SIP/2.0 Via: SIP/2.0/UDP10.150.20.3
:5434 From: alice@10.150.20.3
To: bob@10.150.20.5
Call-ID: a12abcde@10.150.20.3
Contact: alice@10.150.20.3
:5434 Route: <sip:netscreen@10.150.20.3
:5060> Record-Route: <sip:netscreen@10.150.20.3
:5060>
La forma en que se realiza la traducción de direcciones IP depende del tipo y la dirección del mensaje. Un mensaje puede ser cualquiera de los siguientes:
Solicitud entrante
Respuesta saliente
Solicitud saliente
Respuesta entrante
La Tabla 1 muestra cómo se realiza NAT en cada uno de estos casos. Tenga en cuenta que para varios de los campos de encabezado el ALG determina algo más que si los mensajes provienen de dentro o fuera de la red. También debe determinar qué cliente inició la llamada y si el mensaje es una solicitud o respuesta.
Solicitud entrante (de público a privado) |
Para: |
Reemplazar dominio con dirección local |
De: |
Ninguno |
|
ID de llamada: |
Ninguno |
|
Vía: |
Ninguno |
|
URI de solicitud: |
Reemplazar la dirección ALG por una dirección local |
|
Contacto: |
Ninguno |
|
Ruta de registro: |
Ninguno |
|
Ruta: |
Ninguno |
|
Respuesta saliente (de privado a público) |
Para: |
Reemplazar la dirección ALG por una dirección local |
De: |
Ninguno |
|
ID de llamada: |
Ninguno |
|
Vía: |
Ninguno |
|
URI de solicitud: |
N/A |
|
Contacto: |
Reemplazar la dirección local por la dirección ALG |
|
Ruta de registro: |
Reemplazar la dirección local por la dirección ALG |
|
Ruta: |
Ninguno |
|
Solicitud saliente (de privado a público) |
Para: |
Ninguno |
De: |
Reemplazar la dirección local por la dirección ALG |
|
ID de llamada: |
Ninguno |
|
Vía: |
Reemplazar la dirección local por la dirección ALG |
|
URI de solicitud: |
Ninguno |
|
Contacto: |
Reemplazar la dirección local por la dirección ALG |
|
Ruta de registro: |
Reemplazar la dirección local por la dirección ALG |
|
Ruta: |
Reemplazar la dirección ALG por una dirección local |
|
Respuesta saliente (de público a privado) |
Para: |
Ninguno |
De: |
Reemplazar la dirección ALG por una dirección local |
|
ID de llamada: |
Ninguno |
|
Vía: |
Reemplazar la dirección ALG por una dirección local |
|
URI de solicitud: |
N/A |
|
Contacto: |
Ninguno |
|
Ruta de registro: |
Reemplazar la dirección ALG por una dirección local |
|
Ruta: |
Reemplazar la dirección ALG por una dirección local |
Cuerpo SIP
La información del SDP en el cuerpo del SIP incluye las direcciones IP que el ALG utiliza para crear canales para la secuencia multimedia. La traducción de la sección SDP también asigna recursos, es decir, números de puerto para enviar y recibir los medios.
El siguiente extracto de una sección de ejemplo de SDP muestra los campos que se traducen para la asignación de recursos.
o=user 2344234 55234434 IN IP410.150.20.3
c=IN IP410.150.20.3
m=audio43249
RTP/AVP 0
Los mensajes SIP pueden contener más de una secuencia multimedia. El concepto es similar a adjuntar varios archivos a un mensaje de correo electrónico. Por ejemplo, un mensaje INVITE enviado desde un cliente SIP a un servidor SIP puede tener los siguientes campos:
c=IN IP410.123.33.4
m=audio33445
RTP/AVP 0 c=IN IP410.123.33.4
m=audio33447
RTP/AVP 0 c=IN IP410.123.33.4
m=audio33449
RTP/AVP 0
Junos OS admite hasta 6 canales SDP negociados para cada dirección, para un total de 12 canales por llamada.
Limitaciones de ALG SIP de Junos OS
Se aplican las siguientes limitaciones a la configuración de la ALG SIP:
Solo se admiten los métodos descritos en RFC 3261.
Solo se admite la versión 2 de SIP.
TCP no se admite como mecanismo de transporte para señalar mensajes para MS-MPC, pero se admite para los servicios de próxima generación.
No configure el ALG SIP cuando utilice STUN. si los clientes utilizan STUN/TURN para detectar el firewall o los dispositivos NAT entre la persona que llama y el respondedor o el proxy, el cliente intenta adivinar mejor el comportamiento del dispositivo NAT y actuar en consecuencia para realizar la llamada.
En MS-MPC, no use la opción de grupo NAT de asignación independiente del extremo junto con la ALG de SIP. Se producirán errores. Esto no se aplica a los Servicios de próxima generación.
Los datos de señalización IPv6 no son compatibles con MS-MPC, pero sí con los servicios de próxima generación.
No se admite la autenticación.
No se admiten mensajes cifrados.
La fragmentación SIP no se admite para MS-MPC, pero sí para los servicios de próxima generación.
Se supone que el tamaño máximo del paquete UDP que contiene un mensaje SIP es de 9 KB. No se admiten mensajes SIP más grandes que este.
Se supone que el número máximo de canales multimedia en un mensaje SIP es seis.
Los nombres de dominio completos (FQDN) no se admiten en campos críticos.
No se admite la QoS. SIP admite reescrituras DSCP.
No se admite la alta disponibilidad, excepto para el modo de espera semiactivo.
Una configuración de tiempo de espera de nunca no se admite en SIP o NAT.
No se admite la multidifusión (proxy de bifurcación).