RTSP ALG
O protocolo de streaming em tempo real (RTSP) controla a entrega de dados com propriedades em tempo real, como áudio e vídeo. A mídia pode ser transmitida no mesmo fluxo de controle RTSP. Este é um protocolo baseado em texto semelhante a HTTP, mas cliente e servidor mantêm informações de sessão. Uma sessão é estabelecida usando a mensagem SETUP e encerrada usando a mensagem TEARDOWN. O transporte (o protocolo de mídia, endereço e números de porta) é negociado na configuração e na resposta à configuração.
O suporte para serviços de firewall e NAT stateful exige que você configure o RTSP ALG para a porta TCP 554. O ALG monitora a conexão de controle, abre fluxos dinamicamente para fluxos de mídia (RTP/RTSP) e executa reescritas de endereço e porta NAT.
Entender o RTSP ALG
Visão geral
RTSP (Protocolo de streaming em tempo real) é um protocolo de Camada de Aplicativo para controlar a entrega de dados com propriedades em tempo real. É semelhante em sintaxe e operação ao HTTP/1.1. Ao contrário do SIP e do H.323, o objetivo do RTSP é acessar arquivos de mídia existentes na rede e controlar a repetição da mídia. A comunicação típica é entre um cliente (executando o RealPlayer, por exemplo) e um servidor de mídia de streaming. Os comandos incluem a capacidade de pausar e reproduzir arquivos de mídia a partir do servidor remoto.
RTSP é um protocolo de canal de controle entre o cliente de mídia e o servidor de mídia. O canal de dados usa um protocolo diferente, geralmente protocolo de transporte em tempo real (RTP) ou protocolo de controle rtp (RTCP).
No modo padrão RTSP, o cliente configura três canais de rede com o servidor RTSP quando os dados de mídia são entregues usando RTP sobre UDP.
O RTSP passa por cima do TCP. RTP e RTCP atropelam UDP. As portas para pacotes RTP e RTCP são negociadas dinamicamente pelo cliente e servidor usando RTSP. Como as portas RTP e RTCP são dinâmicas, essas portas não podem ser permitidas por uma política estática. O principal objetivo de introduzir um ALG RTSP em um firewall é criar política dinâmica (pinhole) de acordo com o resultado da negociação cliente/servidor para que o tráfego RTP e RTCP possa passar.
Quando o cliente e o servidor residem em diferentes reinos, eles podem não ser capazes de determinar como rotear para o endereço da oferta RTP ou RTCP dada pelo peer. Nesse caso, a ALG precisa estar envolvida para fazer a tradução para o endereço de oferta RTP ou RTCP e modificá-lo no payload.
Depois que a conexão é estabelecida, o RTSP ALG monitora as mensagens trocadas entre o cliente e o servidor, monitora a mudança de status do diálogo e devolve todos os recursos que adquiriu para dar suporte a um diálogo RTSP de volta ao sistema após a conclusão ou falha do diálogo.
Modos RTSP
Modo padrão
No modo padrão RTSP, o cliente configura três canais de rede com o servidor RTSP quando os dados de mídia são entregues usando RTP sobre UDP.
Uma conexão TCP totalmente duplex é usada para controle e negociação. Um canal UDP completo é usado para a entrega de dados de mídia usando o formato de pacotes RTP. Na maioria dos casos, o RTP é iniciado a partir do servidor. Um canal UDP completo chamado RTCP é usado para fornecer informações de sincronização ao cliente e informações de perda de pacotes ao servidor.
A Figura 1 mostra o modo padrão RTSP ALG.

Modo interleave
No modo de interleave RTSP, os dados de mídia podem ser transformados em pacotes usando RTP ou RDT sobre TCP. Nesse cenário, uma única conexão TCP totalmente duplex é usada tanto para o controle quanto para a entrega de dados de mídia do servidor RTSP para o cliente. O fluxo de dados é intercalado com o fluxo de controle RTSP.
A Figura 2 mostra o modo de interleave RTSP ALG.

Entender as mensagens DE ALG RTSP
Formato de mensagem RTSP
O RTSP é baseado em texto e usa o conjunto de caracteres ISO 10646 na codificação UTF-8. As linhas são terminadas pelo CRLF, e uma linha vazia é o separador da mensagem e do corpo.
A primeira linha é chamada de linha de partida. Para solicitar mensagens do cliente ao servidor, a linha de partida representa o método RTSP. Para a mensagem de resposta do servidor ao cliente, a linha de partida representa o código de status RTSP como a resposta do método. O elemento de código de status é um código de resultado de inteiro de 3 dígitos.
Métodos RTSP
Existem nove tipos de métodos durante uma transação.
OPTION— Representa uma solicitação de informações sobre as opções de comunicação disponíveis na cadeia de solicitação/resposta identificada pelo Request-URL. Esse método permite que o cliente determine as opções, requisitos ou ambos associados a um recurso ou aos recursos de um servidor, sem implicar uma ação de recursos ou iniciar uma recuperação de recursos.
DESCRIBE— Recupera a descrição de uma apresentação ou objeto de mídia identificado pela URL de solicitação de um servidor. Esse método pode usar o cabeçalho Aceitar para especificar os formatos de descrição que o cliente interpreta.
ANNOUNCE— Solicitação enviada do cliente ao servidor, esse método posta a descrição de uma apresentação ou objeto de mídia identificado pela URL de solicitação a um servidor. Quando solicitação enviada do servidor ao cliente, este método atualiza a descrição da sessão em tempo real.
SETUP— Solicita uma URI e especifica o mecanismo de transporte a ser usado para a mídia transmitida.
PLAY— Informa o servidor para começar a enviar dados usando o mecanismo especificado na CONFIGURAÇÃO.
PAUSE— Solicita que a entrega do fluxo seja interrompida temporariamente.
TEARDOWN— Interrompe a entrega de fluxo para o determinado URI, liberando o recurso associado a ele.
GET_PARAMETER— Recupera o valor de um parâmetro de uma apresentação ou fluxo especificado no URI.
SET_PARAMETER— Define o valor de um parâmetro para uma apresentação ou fluxo especificado pelo URI.
Código de status RTSP
O primeiro dígito do código de status define a classe de resposta.
1**: Informações — Solicitação recebida, processo contínuo.
2**: Sucesso
3**: Redirecionamento — outras medidas devem ser tomadas para concluir a solicitação.
4**: Erro do cliente — A solicitação contém sintaxe ruim ou não pode ser atendida.
5**: Erro do servidor — o servidor não conseguiu atender a uma solicitação aparentemente válida.
Cabeçalho RTSP
O cabeçalho RTSP consiste nos seguintes campos:
CSeq— especifica o número da sequência para um par de resposta à solicitação RTSP. Para cada solicitação RTSP contendo o número de sequência, haverá uma resposta correspondente com o mesmo número.
Content-Length— Contém o comprimento do conteúdo do método, ou seja, após o CRLF duplo após o último cabeçalho.
TRANSPORT— Indica qual protocolo de transporte deve ser usado e configura seus parâmetros.
SESSION— Identifica uma sessão RTSP iniciada pelo servidor de mídia em uma resposta setup e concluída pelo TEARDOWN na URL de apresentação.
Entender a conversa com o RTSP ALG e o NAT
Este tópico fornece detalhes sobre a conversa típica do RTSP ALG.
Em geral, os pacotes RTP e RTCP são bidirecionais, o que significa que o cliente ou o servidor podem iniciar uma sessão RTP ou RTCP.
A Figura 3 descreve um exemplo de captura de pacotes de amostra em uma conversa RTSP padrão.

O RTSP ALG executa as seguintes ações para uma captura de pacotes de amostra RTSP em uma conversa rtsp padrão:
Monitora a CONFIGURAÇÃO e 200 mensagens OK.
Recebe portas negociadas (6543 e 8765 neste exemplo)
Abre um pinhole para dados de mídia UDP do servidor ao cliente.
Recebe o endereço IP no payload e traduz o endereço se o NAT for necessário.
A Tabela 1 descreve o IP NAT de carga RTSP.
Tabela 1: RTSP Payload IP NAT Encaminhamento (C->S)
Reverso (S->C)
Pinhole
Payload IP Translate
Tradução da porta de carga
Sem NAT
A/4321->B/554
A/4321<-B/554
B/9876->A/5678
A/5678->B/9876
N/A
N/A
NAT de origem (IPvx)
A/4321->B/554
A'/P'<-B/554
B/9876->A'/P''
A/5678->B/9876
N/A (*)
5678<->P''
NAT de destino (IPvx)
A/4321->B'/554
A/4321<-B/554
B/9876->A/5678
A/5678->B'/9876
B'-> B (**)
N/A
NAT64
A/4321->B''/554
A'/Q'<-B/554
B/9876->A''/Q''
A/5678->B''/9876
B''(IPv6)->B(IPv4)
5678<->Q''
NAT46
A/4321->B'''/554
A''/R'<-B/554
B/9876->A'''/R''
A/5678->B'''/9876
B'''(IPv4)->B(IPv6)
5678<->R''
Na Tabela 1, as seguintes letras e símbolos são usados:
A — endereço IP do cliente RTSP
A'— Endereço IPv4 ou IPv6 traduzido do cliente RTSP
A''— Endereço IPv4 traduzido
A''' — Endereço IPv6 traduzido
B — endereço IP do servidor RTSP
B'— endereço IP do servidor RTSP antes do NAT de destino
B''— Endereço IP do servidor RTSP no reino IPv6
B'''— Endereço IP do servidor RTSP no reino IPv4
P'— Porta traduzida(traduzida por 4321) do cliente RTSP
P''— Porta traduzida (traduzida de 5678 em carga de mensagem) do cliente RTSP
Q'— Porta traduzida (IPv6 para IPv4) (traduzida a partir de 4321) do cliente RTSP
Q''— Porta traduzida (IPv6 para IPv4) (traduzida de 5678 em carga de mensagem) do cliente RTSP
R'— Porta traduzida (IPv4 para IPv6) (traduzida a partir de 4321) do cliente RTSP
R''— Porta traduzida (IPv4 para IPv6) (traduzida de 5678 em carga de mensagem) do cliente RTSP
(*)— O endereço IP do servidor RTSP B aparece em mensagem de payload; não precisa traduzir
(**)— endereço IP B' aparece em mensagem de payload do cliente ao servidor; ela precisa se traduzir para B
Exemplo: configurar o RTSP ALG
Este exemplo mostra como configurar o RTSP ALG para passar pelo tráfego RTSP com um pool NAT de origem em dispositivos Juniper Networks.
Requisitos
Configure o ARP proxy para todos os endereços IP no pool NAT de origem.
Habilite o RTSP ALG.
Entenda os conceitos básicos do RTSP ALG. Veja como entender o RTSP ALG.
Visão geral
Neste exemplo, o RTSP ALG está configurado para monitorar e permitir a transferência de mídia de tráfego RTSP entre cliente e servidor localizado em lados opostos de um dispositivo Juniper Networks.
Configuração
- Habilitação do RTSP ALG
- Configuração de um pool de origem do NAT e conjunto de regras e uma política
- Configuração de opções de rastreamento RTSP ALG
Habilitação do RTSP ALG
Configuração rápida da CLI
Para configurar rapidamente esta seção do exemplo, copie os seguintes comandos, cole-os em um arquivo de texto, remova quaisquer quebras de linha, altere todos os detalhes necessários para combinar com sua configuração de rede, copiar e colar os comandos na CLI no nível de [edit]
hierarquia e, em seguida, entrar no commit
modo de configuração.
Configurar o ARP proxy para todos os endereços IP no pool NAT de origem e habilitar o RTSP ALG:
set security nat proxy-arp interface <interface-name> address 10.10.10.1/32 to 10.10.10.10/32 set security alg rtsp
Entre no commit
modo de configuração.
Configuração de um pool de origem do NAT e conjunto de regras e uma política
Configuração rápida da CLI
Para configurar rapidamente esta seção do exemplo, copie os seguintes comandos, cole-os em um arquivo de texto, remova quaisquer quebras de linha, altere todos os detalhes necessários para combinar com sua configuração de rede, copiar e colar os comandos na CLI no nível de [edit]
hierarquia e, em seguida, entrar no commit
modo de configuração.
set security nat source pool pool1 address 10.10.10.1/32 to 10.10.10.10/32 set security zones security-zone green address-book address sa1 1.1.1.0/24 set security zones security-zone red address-book address da1 2.2.2.0/24 set security nat source rule-set rs1 from zone green set security nat source rule-set rs1 to zone red set security nat source rule-set rs1 rule r1 match source-address 1.1.1.0/24 set security nat source rule-set rs1 rule r1 match destination-address 2.2.2.0/24 set security nat source rule-set rs1 rule r1 then source-nat pool pool1
set security policy from-zone green to-zone red policy pol1 match destination-address da1 set security policy from-zone green to-zone red policy pol1 match source-address sa1 set security policy from-zone green to-zone red policy pol1 match application junos-rtsp set security policy from-zone green to-zone red policy pol1 then permit
Entre no commit
modo de configuração.
Se você não tiver certeza do endereço IP do cliente e servidor RTSP, você pode substituir "da1" e "sa1" por "qualquer".
Procedimento passo a passo
O exemplo a seguir exige que você navegue por vários níveis na hierarquia de configuração. Para obter instruções sobre como fazer isso, consulte o uso do editor de CLI no modo de configuração no guia de usuário da CLI.
Para configurar um pool NAT de origem:
Crie um pool de origem NAT.
[edit security] user@host# set nat source pool pool1 address 10.10.10.1/32 to 10.10.10.10/32
Configure as entradas do livro de endereços da zona de segurança.
[edit security zones security-zone] user@host# set green address-book address sa1 1.1.1.0/24 user@host# set red address-book address da1 2.2.2.0/24
Crie um conjunto de regras de origem NAT.
[edit security nat source rule-set rs1] user@host# set from zone green user@host# set to zone red user@host# set rule r1 match source-address 1.1.1.0/24 user@host# set rule r1 match destination-address 2.2.2.0/24 user@host# set rule r1 then source-nat pool pool1
Configure uma política.
[edit security policies from-zone green to-zone red policy pol1] user@host# set match source-address sa1 user@host# set match destination-address da1 user@host# set match application junos-rtsp user@host# set then permit
Resultados
A partir do modo de configuração, confirme sua configuração inserindo os show security nat
comandos e show security policies
os comandos. Se a saída não exibir a configuração pretendida, repita as instruções de configuração neste exemplo para corrigi-la.
[edit ] user@host# show security nat source { pool pool1 { address { 10.10.10.1/32 to 10.10.10.10/32; } } rule-set rs1 { from zone green; to zone red; rule r1 { match { source-address 1.1.1.0/24; destination-address 2.2.2.0/24; } then { source-nat { pool { pool1; } } } } }
[edit] user@host# show security policies from-zone green to-zone red {policy pol1 { policy pol1 { match { source-address sa1; destination-address da1; application [junos-rtsp]; } then { permit; } } } default-policy { permit-all; }
Se você terminar de configurar o dispositivo, entre no commit
modo de configuração.
Configuração de opções de rastreamento RTSP ALG
Configuração rápida da CLI
Para configurar rapidamente este exemplo, copie os seguintes comandos, cole-os em um arquivo de texto, remova quaisquer quebras de linha, altere todos os detalhes necessários para combinar com sua configuração de rede, copiar e colar os comandos na CLI no nível de [edit]
hierarquia e, em seguida, entrar no commit
modo de configuração.
set security alg rtsp traceoptions flag all set security alg traceoptions file trace set security alg traceoptions file size 1g set security alg traceoptions level verbose
Procedimento passo a passo
Para configurar opções de rastreamento RTSP ALG:
Habilite opções de rastreamento RTSP ALG.
[edit security alg] user@host# set rtsp traceoptions flag all
Configure um nome de arquivo para receber saída da operação de rastreamento.
[edit security alg] user@host# set traceoptions file trace
Especifique o tamanho máximo do arquivo de rastreamento.
[edit security alg] user@host# set traceoptions file size 1g
Especifique o nível de saída de rastreamento.
[edit security alg] user@host# set traceoptions level verbose
Resultados
A partir do modo de configuração, confirme sua configuração entrando no show security alg
comando. Se a saída não exibir a configuração pretendida, repita as instruções de configuração neste exemplo para corrigi-la.
[edit] user@host# show security alg traceoptions { file trace size 1g; level verbose; } rtsp traceoptions flag all;
Se você terminar de configurar o dispositivo, entre no commit
modo de configuração.
Verificação
Confirme que a configuração está funcionando corretamente.
- Verificando o RTSP ALG
- Verificando a sessão de controle de ALG RTSP
- Verificando as informações do RTSP ALG Flow Gate
- Verificando o grupo de gerente de recursos RTSP
- Verificando as informações de recursos do RTSP
Verificando o RTSP ALG
Propósito
Verifique se o RTSP ALG está habilitado.
Ação
Do modo operacional, entre no show security alg status
comando.
user@host> show security alg status DNS : Enabled FTP : Enabled H323 : Enabled RTSP : Enabled
Significado
A saída mostra o status de ALG RTSP da seguinte forma:
Habilitado — mostra que o RTSP ALG está habilitado.
Desabilitado — mostra que o RTSP ALG está desativado.
Verificando a sessão de controle de ALG RTSP
Propósito
Verifique se a sessão de controle é criada e todas as sessões de controle e dados do RTSP são criadas.
Ação
Do modo operacional, entre no show security flow session
comando.
user@host>show security flow session Flow Sessions on FPC5 PIC0: Session ID: 100004087, Policy name: dns-alg/4, Timeout: 1798, Valid Resource information : RTSP ALG, 1, 0 In: 1.1.0.100/59889 --> 1.1.0.202/554;tcp, If: ge-0/0/1.0, Pkts: 28, Bytes: 7618 Out: 1.1.0.202/554 --> 1.1.0.100/59889;tcp, If: ge-0/0/2.0, Pkts: 27, Bytes: 24304 Session ID: 100004088, Policy name: dns-alg/4, Timeout: 120, Valid Resource information : RTSP ALG, 1, 1 In: 1.1.0.202/5004 --> 1.1.0.100/62092;udp, If: ge-0/0/2.0, Pkts: 19, Bytes: 17013 Out: 1.1.0.100/62092 --> 1.1.0.202/5004;udp, If: ge-0/0/1.0, Pkts: 0, Bytes: 0 Session ID: 100004089, Policy name: dns-alg/4, Timeout: 120, Valid Resource information : RTSP ALG, 1, 4 In: 1.1.0.202/5004 --> 1.1.0.100/62094;udp, If: ge-0/0/2.0, Pkts: 433, Bytes: 346183 Out: 1.1.0.100/62094 --> 1.1.0.202/5004;udp, If: ge-0/0/1.0, Pkts: 0, Bytes: 0 Session ID: 100004090, Policy name: dns-alg/4, Timeout: 120, Valid Resource information : RTSP ALG, 1, 3 In: 1.1.0.100/62093 --> 1.1.0.202/5005;udp, If: ge-0/0/1.0, Pkts: 2, Bytes: 260 Out: 1.1.0.202/5005 --> 1.1.0.100/62093;udp, If: ge-0/0/2.0, Pkts: 0, Bytes: 0 Total sessions: 4
Significado
Session ID— Número que identifica a sessão. Use este ID para obter mais informações sobre a sessão, como nome da política ou número de pacotes dentro e fora.
Policy name— Nome da política que permitiu o tráfego.
In— Fluxo de entrada (endereços IP de origem e destino com seus respectivos números de porta de origem e destino, a sessão é TCP, e a interface de origem para esta sessão é ge-0/0/1.0).
Out— Fluxo reverso (endereços IP de origem e destino com seus respectivos números de porta de origem e destino, a sessão é TCP, e a interface de destino para esta sessão é fe-0/0/2.0).
Verificando as informações do RTSP ALG Flow Gate
Propósito
Verifique se a porta de fluxo está aberta para conexão de canal de dados TCP.
Ação
Do modo operacional, entre no show security flow gate
comando.
user@host>show security flow gate Flow Gates on FPC5 PIC0: Hole: 1.1.0.202-1.1.0.202/5005-5005->1.1.0.100-1.1.0.100/62093-62093 Translated: 0.0.0.0/0->0.0.0.0/0 Protocol: udp Application: RTSP ALG/11 Age: 32 seconds Flags: 0x0080 Zone: untrust Reference count: 1 Resource: 4-1-2 Hole: 1.1.0.100-1.1.0.100/62093-62093->1.1.0.202-1.1.0.202/5005-5005 Translated: 0.0.0.0/0->0.0.0.0/0 Protocol: udp Application: RTSP ALG/11 Age: 32 seconds Flags: 0x0080 Zone: trust Reference count: 1 Resource: 4-1-3 Hole: 1.1.0.202-1.1.0.202/5004-5004->1.1.0.100-1.1.0.100/62094-62094 Translated: 0.0.0.0/0->0.0.0.0/0 Protocol: udp Application: RTSP ALG/11 Age: 32 seconds Flags: 0x0080 Zone: untrust Reference count: 1 Resource: 4-1-4 Hole: 1.1.0.100-1.1.0.100/62094-62094->1.1.0.202-1.1.0.202/5004-5004 Translated: 0.0.0.0/0->0.0.0.0/0 Protocol: udp Application: RTSP ALG/11 Age: 32 seconds Flags: 0x0080 Zone: trust Reference count: 1 Resource: 4-1-5 Valid gates: 4 Pending gates: 0 Invalidated gates: 0 Gates in other states: 0 Total gates: 4
Significado
A saída da amostra mostra que a porta de fluxo está aberta para conexão de canal de dados TCP.
Verificando o grupo de gerente de recursos RTSP
Propósito
Verifique o número total de grupos de gerentes de recursos e grupos ativos usados pelo RTSP ALG.
Ação
Do modo operacional, entre no show security resource-manager group active
comando.
user@host>show security resource-manager group active Group ID 1: Application - RTSP ALG Total groups 19763, active groups 1
Significado
A saída amostral mostra o número total de grupos de gerentes de recursos e grupos ativos que são usados pelo RTSP ALG.
Verificando as informações de recursos do RTSP
Propósito
Verifique o número total de recursos e recursos ativos usados pelo RTSP ALG.
Ação
Do modo operacional, entre no show security resource-manager resource active
comando.
user@host>show security resource-manager resource active Resource ID 2: Group ID - 1, Application - RTSP ALG Resource ID 1: Group ID - 1, Application - RTSP ALG Total Resources 93286, active resources 2
Significado
A saída amostral mostra o número total de recursos e recursos ativos usados pelo RTSP ALG.