Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
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 pin y las relaciones padre-hijo para las ALG compatibles.

RTSP

El Protocolo de transmisión en tiempo real (RTSP) controla la entrega de datos con propiedades en tiempo real, como audio y video. Los flujos controlados por RTSP pueden usar RTP, pero no es obligatorio. Los medios se pueden transmitir en el mismo flujo de control RTSP. Este es un protocolo basado en texto tipo HTTP, pero el cliente y el servidor mantienen la información de sesión. Se establece una sesión mediante 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 en la respuesta de instalación.

La compatibilidad con los servicios de TDR y firewall con estado requiere que configure RTSP ALG para el puerto TCP 554.

AlG monitorea la conexión de control, abre flujos dinámicamente para flujos de medios (RTP/RTSP) y realiza reescrituras de puertos y direcciones TDR.

SIP

El Protocolo de iniciación de sesión (SIP) es un protocolo de capa de aplicación que puede establecer, mantener y finalizar sesiones de medios. Es un protocolo de señalización de voz sobre IP (VoIP) ampliamente utilizado. El ALG SIP monitorea el tráfico SIP y crea y gestiona dinámicamente agujeros de pin en las rutas de señalización y medios. ALG solo permite paquetes con los permisos correctos. El SIP ALG también realiza las siguientes funciones:

  • Administra las relaciones de sesión padre-hijo.

  • Aplica políticas de seguridad.

  • Administra los agujeros de pin para el tráfico de VoIP.

EL SIP ALG admite las siguientes funciones:

  • Firewall de estado

  • TDR de origen estático

  • Dirección dinámica solo de origen TDR

  • Traducción de puerto de dirección de red (NAPT)

Nota:

Las sesiones SIP están limitadas a 12 horas (720 minutos) para el procesamiento TDR en las tarjetas de interfaz MS-MIC y MS-MPC. Las sesiones sip en el MS-DPC no tienen límite de tiempo.

Configuración de SIP

El Protocolo de iniciación de sesión (SIP) es un protocolo generalizado para la comunicación entre puntos de conexión que intervienen en servicios de Internet, como telefonía, fax, videoconferencias, mensajería instantánea e intercambio de archivos.

Junos OS ofrece servicios ALG de acuerdo con el estándar descrito en RFC 3261, SIP: Protocolo de iniciación de sesión. Los flujos SIP bajo Junos OS son los descritos en rfc 3665, ejemplos de flujo de llamada básico del protocolo de iniciación de sesión (SIP).

Nota:

Antes de implementar Junos OS SIP ALG, debe estar familiarizado con ciertas limitaciones, como se explica en Junos OS Limitaciones de SIP ALG

El uso de TDR junto con EL SIP ALG da como resultado cambios en los campos de encabezado sip debido a la traducción de direcciones. Para obtener una explicación de estas traducciones, consulte La interacción de ALG de SIP con la traducción de direcciones de red.

Para implementar SIP en interfaces de servicios adaptables, configure la application-protocol instrucción en el [edit applications application application-name] nivel jerárquico con el valor sip. Además, hay otras dos instrucciones que puede configurar para modificar cómo se implementa SIP:

  • Puede habilitar el enrutador para aceptar cualquier llamada SIP entrante para los dispositivos de punto de conexión que se encuentran detrás del firewall TDR. Cuando un dispositivo detrás del firewall se registra con el proxy que está fuera del firewall, la PIC del AS o Multiservices 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 aceptarán llamadas entrantes; solo los dispositivos detrás del firewall pueden llamar a los dispositivos fuera del firewall.

    Para configurar el registro sip, incluya la learn-sip-register instrucción en el [edit applications application application-name] nivel de jerarquía:

    Nota:

    La learn-sip-register instrucción no es aplicable a los servicios de próxima generación MX-SPC3.

    También puede inspeccionar manualmente el registro SIP mediante la emisión del show services stateful-firewall sip-register comando; para obtener más información, consulte junos OS System Basics and Services Command Reference. El show services stateful-firewall sip-register comando no es compatible con los servicios de última generación.

  • Puede especificar un período de tiempo de espera para la duración de las llamadas SIP que se mantienen en espera. Cuando se deja en espera una llamada, no hay actividad y los flujos pueden demorar el tiempo de espera después de que expire el período configurado inactivity-timeout , lo que da como resultado el desmontaje del estado de la llamada. Para evitar esto, cuando se deja en espera una llamada, el temporizador de flujo se restablece al sip-call-hold-timeout ciclo para conservar el estado de llamada y fluye durante más tiempo que el inactivity-timeout período.

    Nota:

    La sip-call-hold-timeout instrucción no es aplicable a los servicios de próxima generación MX-SPC3.

    Para configurar un período de tiempo de espera, incluya la sip-call-hold-timeout instrucción en el [edit applications application application-name] nivel de jerarquía:

    El valor predeterminado es de 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 (TDR) permite que varios hosts en una subred privada compartan una única dirección IP pública para acceder a Internet. Para el tráfico de salida, TDR reemplaza la dirección IP privada del host en la subred privada con 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 adecuado en la subred privada.

El uso de TDR con el servicio del protocolo de iniciación de sesión (SIP) es más complicado, ya que los mensajes SIP contienen direcciones IP en los encabezados del SIP, así como en el cuerpo del SIP. Cuando se usa TDR 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.

Cómo 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 de salida, la dirección IP privada y el número de puerto del cliente se sustituyen 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 SIP (ALG) recopila información del encabezado del mensaje en una tabla de llamadas, que utiliza para reenviar mensajes posteriores al punto de conexión correcto. Cuando llega un mensaje nuevo, por ejemplo, un ACK o 200 OK, alG compara los campos "From:, To:, y Call-ID:" con la tabla de llamadas para identificar el contexto de llamada del mensaje. Si llega un nuevo mensaje INVITE que coincide con la llamada existente, ALG lo procesa como REINVITE.

Cuando llega un mensaje que contiene información de SDP, ALG asigna puertos y crea una asignación TDR 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 el protocolo de control en tiempo real (RTCP), alG ofrece puertos pares 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, TDR 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 de SIP Via, Contact, Route y Record-Route, si están presentes, también están vinculados a la dirección IP del firewall. AlG almacena estas asignaciones para su uso en retransmisiones y para mensajes de respuesta SIP.

Luego, el SIP ALG abre agujeros de pin en el firewall para permitir que los medios a través del dispositivo en los puertos asignados dinámicamente negociados según la información en el SDP y los campos de encabezado Vía, contacto y ruta de registro. Los agujeros de pines también permiten que los paquetes entrantes lleguen a las direcciones y puertos IP de contacto, vía y ruta de registro. Al procesar el tráfico de devolución, alG inserta los campos SIP de contacto, vía, ruta y registro en los paquetes.

Llamadas entrantes

Las llamadas entrantes se inician desde la red pública a direcciones TDR públicas estáticas o a direcciones IP de interfaz en el dispositivo. Las NAT estáticas son direcciones IP configuradas estáticamente que apuntan a hosts internos; las direcciones IP de la interfaz son registradas dinámicamente por ALG a medida que monitorea 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 del paquete al SIP ALG.

ALG examina el mensaje de solicitud SIP (inicialmente invite) y, según la información del SDP, abre puertas para los medios salientes. Cuando llega un mensaje de respuesta 200 OK, sip ALG realiza TDR en las direcciones y puertos IP y abre agujeros de pin en la dirección de salida. (Las puertas abiertas tienen un tiempo de vida breve, y tardan en esperar si no se recibe un mensaje de respuesta de 200 OK rápidamente.)

Cuando llega una respuesta de 200 ok, el proxy SIP examina la información de SDP y lee las direcciones IP y los números de puerto de cada sesión de medios. El SIP ALG en el dispositivo realiza TDR en las direcciones y los números de puerto, abre agujeros de pin 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 200 OK, también pasa por el SIP ALG. Si el mensaje contiene información de SDP, el SIP ALG garantiza que las direcciones IP y los números de puerto no cambien con respecto a la INVITE anterior; si lo son, alG elimina los agujeros de pin antiguos y crea nuevos agujeros de pin para permitir que los medios pasen a través. AlG también monitorea los campos SIP vía, contacto y ruta de registro y abre nuevos agujeros de pin si determina que estos campos han cambiado.

Llamadas reenviadas

Una llamada reenviada 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. SIP ALG procesa la INVITAción del usuario A como una llamada entrante normal. Pero cuando ALG examina la llamada reenviada de B a C fuera de la red y nota que se llega a B y C mediante la misma interfaz, no abre agujeros de pin en el firewall, ya que los medios fluyen directamente entre el usuario A y el usuario C.

Terminación de llamada

El mensaje BYE termina una llamada. Cuando el dispositivo recibe un mensaje BYE, traduce los campos de encabezado tal como lo hace para cualquier otro mensaje. Pero debido a que el receptor debe reconocer un mensaje BYE con un OK 200, al ALG retrasa la desmontaje de llamada durante cinco segundos para permitir tiempo para la transmisión del 200 OK.

Mensajes de llamada de re-INVITAción

Los mensajes de Volver a INVITAR agregan nuevas sesiones de medios a una llamada y eliminan las sesiones de medios existentes. Cuando se agregan nuevas sesiones de medios a una llamada, se abren nuevos agujeros de pin en el firewall y se crean nuevos enlaces de direcciones. El proceso es idéntico a la configuración original de la llamada. Cuando se eliminan una o más sesiones de medios de una llamada, se cierran los agujeros de pin y se liberan los enlaces del mismo modo que con un mensaje BYE.

Temporizadores de sesión de llamada

El SIP ALG usa el valor de Session-Expires para cronotear el tiempo de una sesión si no se recibe un mensaje de Re-INVITE o UPDATE. La ALG obtiene el valor Session-Expires, si está presente, de la respuesta 200 OK a la INVITE y utiliza este valor para el tiempo de espera de señalización. Si alG recibe otra INVITAción antes de que el tiempo de espera de la sesión, restablece todos los valores de tiempo de espera a esta nueva INVITE o a valores predeterminados, y el proceso se repite.

Como medida de precaución, SIP ALG utiliza valores de tiempo de espera difícil 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 maliciosos nunca envían un BYE en un intento de atacar un ALG SIP.

  • Las implementaciones deficientes del proxy SIP no procesan la ruta de registro 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 mediante el envío de un mensaje CANCEL. Al recibir un mensaje CANCEL, SIP ALG cierra los agujeros de pin a través del firewall (si se abrió alguno) y libera enlaces de direcciones. Antes de liberar los recursos, ALG retrasa la antigüedad del canal de control durante aproximadamente cinco segundos para permitir que pase el tiempo de los 200 ok finales. La llamada termina 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 solo mensaje INVITE a varios destinos simultáneamente. Cuando llegan los varios mensajes de respuesta de 200 OK para una sola llamada, SIP ALG 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, request-URI 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 del 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. Junos OS actualmente solo admite el SDP. El cuerpo sip contiene direcciones IP y números de puerto utilizados para transportar los medios.

Encabezados SIP

En el siguiente mensaje de solicitud SIP de ejemplo, TDR reemplaza las direcciones IP en los campos de encabezado para ocultarlas de la red externa.

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 de salida

  • Respuesta entrante

En la tabla 1 se muestra cómo se realiza la TDR en cada uno de estos casos. Tenga en cuenta que, para varios de los campos de encabezado, la ALG determina más que solo si los mensajes vienen de dentro o fuera de la red. También debe determinar qué cliente inició la llamada y si el mensaje es una solicitud o una respuesta.

Tabla 1: Solicitud de mensajes con tabla TDR

Solicitud entrante

(de lo público a lo privado)

Para:

Reemplace el dominio por dirección local

De:

Ninguno

ID de llamada:

Ninguno

Vía:

Ninguno

Solicitud-URI:

Reemplace la dirección ALG por dirección local

Contacto:

Ninguno

Ruta de registro:

Ninguno

Ruta:

Ninguno

Respuesta saliente

(de lo privado a lo público)

Para:

Reemplace la dirección ALG por dirección local

De:

Ninguno

ID de llamada:

Ninguno

Vía:

Ninguno

Solicitud-URI:

N/A

Contacto:

Reemplace la dirección local con dirección ALG

Ruta de registro:

Reemplace la dirección local con dirección ALG

Ruta:

Ninguno

Solicitud de salida

(de lo privado a lo público)

Para:

Ninguno

De:

Reemplace la dirección local con dirección ALG

ID de llamada:

Ninguno

Vía:

Reemplace la dirección local con dirección ALG

Solicitud-URI:

Ninguno

Contacto:

Reemplace la dirección local con dirección ALG

Ruta de registro:

Reemplace la dirección local con dirección ALG

Ruta:

Reemplace la dirección ALG por dirección local

Respuesta saliente

(de lo público a lo privado)

Para:

Ninguno

De:

Reemplace la dirección ALG por dirección local

ID de llamada:

Ninguno

Vía:

Reemplace la dirección ALG por dirección local

Solicitud-URI:

N/A

Contacto:

Ninguno

Ruta de registro:

Reemplace la dirección ALG por dirección local

Ruta:

Reemplace la dirección ALG por dirección local

Cuerpo SIP

La información de SDP en el cuerpo del SIP incluye las direcciones IP que ALG usa para crear canales para la transmisión de medios. La traducción de la sección SDP también asigna recursos, es decir, números de puerto para enviar y recibir los medios.

En el siguiente extracto de una sección SDP de ejemplo se muestran los campos que se traducen para la asignación de recursos.

Los mensajes SIP pueden contener más de un flujo de medios. 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 campos siguientes:

Junos OS admite hasta 6 canales SDP negociados para cada dirección, para un total de 12 canales por llamada.

Limitaciones de JUnos OS SIP ALG

Las siguientes limitaciones se aplican a la configuración del SIP ALG:

  • 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 mensajes de señalización para MS-MPC, pero se admite para los servicios de próxima generación.

  • No configure SIP ALG cuando utilice STUN. si los clientes usan STUN/TURN para detectar el firewall o los dispositivos TDR entre la persona que llama y el respondedor o proxy, el cliente intenta adivinar mejor el comportamiento del dispositivo TDR y actuar en consecuencia para realizar la llamada.

  • En MS-MPC, no use la opción agrupación de TDR de asignación independiente del punto de conexión junto con el ALG 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 se admiten para MS-MPC, pero sí para los servicios de próxima generación.

  • No se admite la autenticación.

  • No se admiten mensajes cifrados.

  • La fragmentación de SIP no es compatible con MS-MPC, pero sí para los servicios de próxima generación.

  • Se da por sentado que el tamaño máximo de paquete UDP que contiene un mensaje SIP es de 9 KB. No se admiten mensajes SIP más grandes que esto.

  • Se da por sentado que la cantidad máxima de canales de medios en un mensaje SIP es de seis.

  • Los nombres de dominio completos (FQDN) no se admiten en los campos críticos.

  • QoS no es compatible. SIP admite reescrituras de DSCP.

  • No se admite una alta disponibilidad, excepto en espera cálida.

  • No se admite una configuración de tiempo de espera de nunca en SIP o NAT.

  • No se admite la multidifusión (proxy de forking).