Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Aplicativos ALG

Configuração de propriedades de aplicativos

Para configurar as propriedades do aplicativo, inclua a application declaração no nível de [edit applications] hierarquia:

Você pode agrupar objetos de aplicativo configurando a application-set declaração; para obter mais informações, veja Configurando conjuntos de aplicativos.

Esta seção inclui as seguintes tarefas para configurar aplicativos:

Configuração de um protocolo de aplicativo

A application-protocol declaração permite especificar qual dos protocolos de aplicativo (ALGs) suportados configuram e incluem em um conjunto de aplicativos para processamento de serviços. Para configurar protocolos de aplicativo, inclua a application-protocol declaração no nível de [edit applications application application-name] hierarquia:

A Tabela 1 mostra a lista de protocolos suportados. Para obter mais informações sobre protocolos específicos, veja descrições da ALG.

Tabela 1: Protocolos de aplicativos suportados por interfaces de serviços

Nome do protocolo

Valor de CLI

Comentários

Protocolo Bootstrap (BOOTP)

bootp

Oferece suporte ao BOOTP e ao protocolo dinâmico de configuração de host (DHCP).

Chamada de procedimento remoto de ambiente de computação distribuída (DCE) (RPC)

dce-rpc

Exige que a protocol declaração tenha o valor udp ou tcp. Requer um uuid valor. Você não pode especificar destination-port ou source-port valores.

Portamap de DCE RPC

dce-rpc-portmap

Exige que a protocol declaração tenha o valor udp ou tcp. Requer um destination-port valor.

Sistema de nomes de domínio (DNS)

dns

Exige que a protocol declaração tenha o valor udp. Este protocolo de aplicativo fecha o fluxo de DNS assim que a resposta de DNS é recebida.

Exec

exec

Exige que a protocol declaração tenha o valor tcp ou não seja especificada. Requer um destination-port valor.

FTP

ftp

Exige que a protocol declaração tenha o valor tcp ou não seja especificada. Requer um destination-port valor.

H.323

h323

IKE ALG

ike-esp-nat

Exige que a protocol declaração tenha o valor udp e exige que o destination-port valor seja de 500.

Protocolo de mensagem de controle de Internet (ICMP)

icmp

Exige que a protocol declaração tenha o valor icmp ou não seja especificada.

Protocolo Inter-ORB da Internet

iiop

IP

ip

Login

login

Netbios

netbios

Exige que a protocol declaração tenha o valor udp ou não seja especificada. Requer um destination-port valor.

Netshow

netshow

Exige que a protocol declaração tenha o valor tcp ou não seja especificada. Requer um destination-port valor.

Protocolo de tunelamento ponto a ponto

pptp

Realaudio

realaudio

Protocolo de streaming em tempo real (RTSP)

rtsp

Exige que a protocol declaração tenha o valor tcp ou não seja especificada. Requer um destination-port valor.

Protocolo de datagram do usuário RPC (UDP) ou TCP

rpc

Exige que a protocol declaração tenha o valor udp ou tcp. Requer um rpc-program-number valor. Você não pode especificar destination-port ou source-port valores.

Mapeamento de porta RPC

rpc-portmap

Exige que a protocol declaração tenha o valor udp ou tcp. Requer um destination-port valor.

Shell

shell

Exige que a protocol declaração tenha o valor tcp ou não seja especificada. Requer um destination-port valor.

Protocolo de iniciação de sessão

sip

SNMP

snmp

Exige que a protocol declaração tenha o valor udp ou não seja especificada. Requer um destination-port valor.

SQLNet

sqlnet

Exige que a protocol declaração tenha o valor tcp ou não seja especificada. Requer um destination-port ou source-port valor.

Talk Program

talk

Trace route

traceroute

Exige que a protocol declaração tenha o valor udp ou não seja especificada. Requer um destination-port valor.

FTP trivial (TFTP)

tftp

Exige que a protocol declaração tenha o valor udp ou não seja especificada. Requer um destination-port valor.

WinFrame

winframe

Nota:

Você pode configurar gateways de nível de aplicativo (ALGs) para ICMP e rastrear rotas sob regras stateful de firewall, NAT ou CoS quando duas vezes o NAT estiver configurado no mesmo conjunto de serviços. Essas ALGs não podem ser aplicadas a fluxos criados pelo Packet Gateway Controller Protocol (PGCP). O NAT duas vezes não oferece suporte a nenhuma outra ALGs. O NAT aplica apenas o endereço IP e os cabeçalhos TCP ou UDP, mas não a carga.

Para obter mais informações sobre a configuração de NAT duas vezes, consulte a visão geral do endereçamento da rede consciente do Junos Address Aware.

Configuração do protocolo de rede

A protocol declaração permite que você especifique qual dos protocolos de rede suportados corresponderá em uma definição de aplicativo. Para configurar protocolos de rede, inclua a protocol declaração no nível de [edit applications application application-name] hierarquia:

Você especifica o tipo de protocolo como um valor numérico; para os protocolos mais usados, os nomes de texto também são suportados na interface de linha de comando (CLI). A Tabela 2 mostra a lista dos protocolos suportados.

Tabela 2: Protocolos de rede suportados por interfaces de serviços

Tipo de protocolo de rede

Valor de CLI

Comentários

Cabeçalho de autenticação de segurança IP (IPsec) (AH)

ah

Protocolo de gateway externo (EGP)

egp

IPsec encapsulando a carga de segurança (ESP)

esp

Encapsulamento de roteamento genérico (GR)

gre

ICMP

icmp

Requer um application-protocol valor de icmp.

ICMPv6

icmp6

Requer um application-protocol valor de icmp.

Protocolo de gerenciamento de grupos de Internet (IGMP)

igmp

IP em IP

ipip

OSPF

ospf

Protocolo independente multicast (PIM)

pim

Protocolo de reserva de recursos (RSVP)

rsvp

TCP

tcp

Requer um destination-port ou source-port valor a menos que você especifique application-protocol rcp ou dce-rcp.

UDP

udp

Requer um destination-port ou source-port valor a menos que você especifique application-protocol rcp ou dce-rcp.

Para obter uma lista completa de possíveis valores numéricos, consulte RFC 1700, Números atribuídos (para o Pacote de protocolo de Internet).

Nota:

A versão IP 6 (IPv6) não é suportada como um protocolo de rede em definições de aplicativos.

Por padrão, o recurso nat duas vezes pode afetar cabeçalhos IP, TCP e UDP incorporados na carga de mensagens de erro do ICMP. Você pode incluir as declarações e protocol udp as protocol tcp declarações com a declaração do aplicativo para duas configurações de NAT. Para obter mais informações sobre a configuração de NAT duas vezes, consulte a visão geral do endereçamento da rede consciente do Junos Address Aware.

Configurando o código e o tipo do ICMP

O código e o tipo do ICMP fornecem especificação adicional, em conjunto com o protocolo de rede, para correspondência de pacotes em uma definição de aplicativo. Para configurar as configurações do ICMP, inclua as declarações e icmp-type as icmp-code declarações no nível de [edit applications application application-name] hierarquia:

Você pode incluir apenas um código ICMP e um valor de tipo. A application-protocol declaração deve ter o valor icmp. A Tabela 3 mostra a lista de valores de ICMP suportados.

Tabela 3: Códigos e tipos de ICMP suportados por interfaces de serviços

Declaração da CLI

Descrição

icmp-code

Esse valor ou palavra-chave fornece informações mais específicas do que icmp-type. Como o significado do valor depende do valor associado icmp-type , você deve especificar icmp-type junto com icmp-code. Para obter mais informações, veja as políticas de roteamento, filtros de firewall e guia de usuários de policiais de tráfego.

No lugar do valor numérico, você pode especificar um dos seguintes sinônimos de texto (os valores de campo também estão listados). As palavras-chave são agrupadas pelo tipo ICMP com as quais estão associadas:

problema de parâmetro: ip-header-bad (0), required-option-missing (1)

redirecionamento: redirect-for-host (1), redirect-for-network (0), redirect-for-tos-and-host (3), redirect-for-tos-and-net (2)

tempo excedido: ttl-eq-zero-during-reassembly (1) ttl-eq-zero-during-transit (0)

inalcançável: communication-prohibited-by-filtering (13), destination-host-prohibited (10), destination-host-unknown (7), destination-network-prohibited (9), destination-network-unknown (6), (4), fragmentation-needed host-precedence-violation (14), host-unreachable (1), host-unreachable-for-TOS (12), (0), network-unreachable-for-TOS network-unreachable (11), port-unreachable (3), (15), precedence-cutoff-in-effect protocol-unreachable (2), source-host-isolated (8), source-route-failed (5)

icmp-type

Normalmente, você especifica esta correspondência em conjunto com a declaração de protocol correspondência para determinar qual protocolo está sendo usado na porta. Para obter mais informações, veja as políticas de roteamento, filtros de firewall e guia de usuários de policiais de tráfego.

No lugar do valor numérico, você pode especificar um dos seguintes sinônimos de texto (os valores de campo também estão listados): echo-reply (0), echo-request (8), info-reply (16), info-request (15), (17), mask-request (18), mask-reply (12), parameter-problem (5), redirect router-advertisement (9), router-solicit (10), source-quench (4), time-exceeded (11), timestamp (13), timestamp-reply (14) ou unreachable (3).

Nota:

Se você configurar uma interface com um filtro de firewall de entrada que inclua uma ação de rejeição e com um conjunto de serviços que inclui regras de firewall stateful, o roteador executa o filtro de firewall de entrada antes que as regras de firewall stateful sejam executadas no pacote. Como resultado, quando o Mecanismo de encaminhamento de pacotes envia uma mensagem de erro do ICMP pela interface, as regras de firewall stateful podem soltar o pacote porque ele não foi visto na direção de entrada.

Possíveis soluções alternativas devem incluir um filtro de tabela de encaminhamento para realizar a ação de rejeição, porque esse tipo de filtro é executado após o firewall stateful na direção de entrada, ou incluir um filtro de serviço de saída para evitar que os pacotes ICMP gerados localmente vão para o serviço de firewall stateful.

Configuração de portas de origem e destino

A porta de origem e destino TCP ou UDP fornece especificação adicional, em conjunto com o protocolo de rede, para correspondência de pacotes em uma definição de aplicativo. Para configurar portas, inclua as declarações e source-port as destination-port declarações no nível de [edit applications application application-name] hierarquia:

Você deve definir uma única porta de origem ou destino. Normalmente, você especifica esta correspondência em conjunto com a declaração de protocol correspondência para determinar qual protocolo está sendo usado na porta; para restrições, veja Tabela 1.

Você pode especificar um valor numérico ou um dos sinônimos de texto listados na Tabela 4.

Tabela 4: Nomes de portas suportados por interfaces de serviços

Nome da porta

Número de porta correspondente

afs

1483

bgp

179

biff

512

bootpc

68

bootps

67

cmd

514

cvspserver

2401

dhcp

67

domain

53

eklogin

2105

ekshell

2106

exec

512

finger

79

ftp

21

ftp-data

20

http

80

https

443

ident

113

imap

143

kerberos-sec

88

klogin

543

kpasswd

761

krb-prop

754

krbupdate

760

kshell

544

ldap

389

login

513

mobileip-agent

434

mobilip-mn

435

msdp

639

netbios-dgm

138

netbios-ns

137

netbios-ssn

139

nfsd

2049

nntp

119

ntalk

518

ntp

123

pop3

110

pptp

1723

printer

515

radacct

1813

radius

1812

rip

520

rkinit

2108

smtp

25

snmp

161

snmptrap

162

snpp

444

socks

1080

ssh

22

sunrpc

111

syslog

514

tacacs-ds

65

talk

517

telnet

23

tftp

69

timed

525

who

513

xdmcp

177

zephyr-clt

2103

zephyr-hm

2104

Para obter mais informações sobre critérios de correspondência, consulte as políticas de roteamento, filtros de firewall e guia de usuário de policiais de tráfego.

Configurando o período de inatividade

Você pode especificar um período de tempo limite para a inatividade do aplicativo. Se o software não tiver detectado nenhuma atividade durante a duração, o fluxo se tornará inválido quando o temporizador expirar. Para configurar um período de tempo limite, inclua a inactivity-timeout declaração no nível de [edit applications application application-name] hierarquia:

O valor padrão é de 30 segundos. O valor que você configura para um aplicativo substitui qualquer valor global configurado no nível de [edit interfaces interface-name service-options] hierarquia; para obter mais informações, veja Configurações de tempo limite padrão para interfaces de serviços.

Configuração de um aplicativo IKE ALG

Antes do lançamento do Junos OS 17.4R1, o Network Address Translation-Traversal (NAT-T) não é compatível com o pacote Junos VPN Site Secure de recursos IPsec nos roteadores da Série MX. O IKE ALG permite a passagem de pacotes IKEv1 e IPsec por filtros NAPT-44 e NAT64 entre pares IPsec que não estão em conformidade com o NAT-T. Essa ALG oferece suporte apenas ao modo de túnel ESP. Você pode usar o aplicativo junos-ikeIKE ALG predefinido, que tem valores predefinidos para a porta de destino (500), tempo limite de inatividade (30 segundos), tempo limite do portão (120 segundos) e tempo de sessão esp ocioso (800 segundos). Se você quiser usar o IKE ALG com valores diferentes do aplicativo predefinido junos-ike , você precisa configurar um novo aplicativo IKE ALG.

Para configurar um aplicativo IKE ALG:

  1. Especifique um nome para o aplicativo.

  2. Especifique o IKE ALG.

  3. Especifique o protocolo UDP.

  4. Especifique o 500 para a porta de destino.

  5. Especifique o número de segundos em que a sessão de IKE está inativa antes de ser excluída. O padrão é de 30 segundos.

  6. Especifique o número de segundos que podem ser passados após o IKE estabelecer a associação de segurança entre o cliente e o servidor IPsec e antes que o tráfego ESP comece em ambas as direções. Se o tráfego ESP não tiver começado antes desse valor de intervalo, os portões ESP serão excluídos e o tráfego ESP será bloqueado. O padrão é de 120 segundos.

  7. Especifique o tempo de inatividade da sessão esp (tráfego de dados IPsec) em segundos. Se nenhum tráfego de dados IPsec for transmitido na sessão esp neste momento, a sessão será excluída. O padrão é de 800 segundos.

Configuração do SIP

O Protocolo de Iniciação de Sessão (SIP) é um protocolo generalizado de comunicação entre endpoints envolvidos em serviços de Internet, como telefonia, fax, videoconferência, mensagens instantâneas e troca de arquivos.

O Junos OS fornece serviços ALG de acordo com o padrão descrito na RFC 3261, SIP: Session Initiation Protocol. Os fluxos SIP sob o Junos OS são descritos na RFC 3665, exemplos básicos de fluxo de chamadas do Protocolo de Iniciação de Sessão (SIP).

Nota:

Antes de implementar o Junos OS SIP ALG, você deve estar familiarizado com certas limitações, discutidas nas limitações do Junos OS SIP ALG

O uso de NAT em conjunto com o SIP ALG resulta em mudanças nos campos de cabeçalho SIP devido à tradução de endereços. Para obter uma explicação dessas tradução, consulte a interação do SIP ALG com a tradução de endereços de rede.

Para implementar o SIP em interfaces de serviços adaptativos, você configura a application-protocol declaração no nível de [edit applications application application-name] hierarquia com o valor sip. Para obter mais informações sobre essa declaração, consulte Configurando um protocolo de aplicativo. Além disso, existem outras duas declarações que você pode configurar para modificar a forma como o SIP é implementado:

  • Você pode permitir que o roteador aceite quaisquer chamadas SIP de entrada para os dispositivos de endpoint que estão por trás do firewall NAT. Quando um dispositivo por trás do firewall se registra com o proxy que está fora do firewall, o AS ou o PIC de multisserviços mantém o estado de registro. Quando a learn-sip-register declaração é habilitada, o roteador pode usar essas informações para aceitar chamadas de entrada. Se essa declaração não estiver configurada, nenhuma chamada de entrada será aceita; apenas os dispositivos por trás do firewall podem chamar dispositivos fora do firewall.

    Para configurar o registro do SIP, inclua a learn-sip-register declaração no nível de [edit applications application application-name] hierarquia:

    Nota:

    A learn-sip-register declaração não é aplicável ao MX-SPC3 de serviços de próxima geração.

    Você também pode inspecionar manualmente o registro do SIP emitindo o show services stateful-firewall sip-register comando; para obter mais informações, consulte a referência de comando de comando do sistema Junos OS. O show services stateful-firewall sip-register comando não é suportado pelos Serviços de próxima geração.

  • Você pode especificar um período de tempo limite para a duração das chamadas SIP que são colocadas em espera. Quando uma chamada é colocada em espera, não há atividade e os fluxos podem sair depois que o período configurado inactivity-timeout expirar, resultando em um rompimento do estado de chamada. Para evitar isso, quando uma chamada é colocada em espera, o temporizador de fluxo é reiniciado no sip-call-hold-timeout ciclo para preservar o estado de chamada e os fluxos por mais tempo do que o inactivity-timeout período.

    Nota:

    A sip-call-hold-timeout declaração não é aplicável ao MX-SPC3 de serviços de próxima geração.

    Para configurar um período de tempo limite, inclua a sip-call-hold-timeout declaração no nível de [edit applications application application-name] hierarquia:

    O valor padrão é de 7200 segundos e o intervalo é de 0 a 36.000 segundos (10 horas).

Interação do SIP ALG com a tradução de endereços de rede

O protocolo Network Address Translation (NAT) permite que vários hosts em uma sub-rede privada compartilhem um único endereço IP público para acessar a Internet. Para tráfego de saída, o NAT substitui o endereço IP privado do host na sub-rede privada pelo endereço IP público. Para tráfego de entrada, o endereço IP público é convertido de volta no endereço privado, e a mensagem é roteada para o host apropriado na sub-rede privada.

Usar o NAT com o serviço Session Initiation Protocol (SIP) é mais complicado porque as mensagens SIP contêm endereços IP nos cabeçalhos SIP, bem como no corpo sip. Ao usar o NAT com o serviço SIP, os cabeçalhos SIP contêm informações sobre o chamador e o receptor, e o dispositivo traduz essas informações para escondê-la da rede externa. O corpo SIP contém as informações do Protocolo de Descrição de Sessão (SDP), que inclui endereços IP e números de porta para transmissão da mídia. O dispositivo traduz informações de SDP para alocar recursos para enviar e receber a mídia.

A forma como os endereços IP e os números de porta nas mensagens SIP são substituídos depende da direção da mensagem. Para uma mensagem de saída, o endereço IP privado e o número de porta do cliente são substituídos pelo endereço IP público e o número de porta do firewall Juniper Networks. Para uma mensagem de entrada, o endereço público do firewall é substituído pelo endereço privado do cliente.

Quando uma mensagem DE CONVITE é enviada por todo o firewall, o GATEWAY de camada de aplicativo SIP (ALG) coleta informações do cabeçalho da mensagem em uma tabela de chamadas, que ela usa para encaminhar mensagens subseqüentes ao endpoint correto. Quando uma nova mensagem chega, por exemplo, uma ACK ou 200 OK, a ALG compara os campos "From:, to:, and Call-ID:" em relação à tabela de chamadas para identificar o contexto de chamada da mensagem. Se chegar uma nova mensagem INVITE que corresponda à chamada existente, a ALG a processa como uma REINVITE.

Quando uma mensagem contendo informações de SDP chega, a ALG aloca portas e cria um mapeamento de NAT entre elas e as portas do SDP. Como o SDP requer portas sequenciais para os canais de protocolo de transporte em tempo real (RTP) e protocolo de controle em tempo real (RTCP), o ALG oferece portas uniformes consecutivas. Se não conseguir encontrar um par de portas, ele descarta a mensagem SIP.

Este tópico contém as seguintes seções:

Chamadas de saída

Quando uma chamada SIP é iniciada com uma mensagem de solicitação de SIP do interno para a rede externa, o NAT substitui os endereços IP e os números de porta no SDP e vincula os endereços IP e os números de porta ao firewall Juniper Networks. Os campos de cabeçalhos SIP via contato, rota e rota de registro, se presentes, também estão vinculados ao endereço IP do firewall. A ALG armazena esses mapeamentos para uso em retransmissões e para mensagens de resposta SIP.

O SIP ALG então abre buracos no firewall para permitir a mídia através do dispositivo nas portas dinamicamente atribuídas negociadas com base em informações nos campos de cabeçalho via, contato e rota de registro. Os pinholes também permitem que os pacotes de entrada cheguem aos endereços e portas IP de contato, via e registro de rota. Ao processar o tráfego de retorno, a ALG insere os campos SIP originais de contato, via, rota e rota de registro de volta em pacotes.

Chamadas recebidas

As chamadas recebidas são iniciadas da rede pública para endereços NAT estáticos públicos ou para interface de endereços IP no dispositivo. NATs estáticos são endereços IP configurados estaticamente que apontam para hosts internos; os endereços IP da interface são registrados dinamicamente pela ALG enquanto monitora as mensagens REGISTER enviadas por hosts internos ao registrador SIP. Quando o dispositivo recebe um pacote SIP de entrada, ele configura uma sessão e encaminha a carga do pacote para o SIP ALG.

A ALG examina a mensagem de solicitação de SIP (inicialmente um CONVITE) e, com base em informações no SDP, abre portões para a mídia de saída. Quando uma mensagem de resposta 200 OK chega, o SIP ALG executa NAT nos endereços e portas IP e abre buracos na direção de saída. (Os portões abertos têm pouco tempo de vida, e eles saem se uma mensagem de resposta 200 OK não for recebida rapidamente.)

Quando uma resposta de 200 OK chega, o proxy SIP examina as informações do SDP e lê os endereços IP e os números de porta para cada sessão de mídia. O SIP ALG no dispositivo executa NAT nos endereços e números de porta, abre buracos para tráfego de saída e atualiza o tempo limite para portões na direção de entrada.

Quando o ACK chega para o 200 OK, ele também passa pelo SIP ALG. Se a mensagem contém informações de SDP, o SIP ALG garante que os endereços IP e os números de porta não sejam alterados em relação ao CONVITE anterior — se forem, o ALG apaga pinholes antigos e cria novos pinholes para permitir que a mídia passe. A ALG também monitora os campos DE VIA, contato e rota de registro e abre novos pinholes se determinar que esses campos mudaram.

Chamadas encaminhadas

Uma chamada encaminhada é quando, por exemplo, o usuário A fora da rede chama o usuário B dentro da rede, e o usuário B encaminha a chamada para o usuário C fora da rede. O SIP ALG processa o CONVITE do usuário A como uma chamada de entrada normal. Mas quando a ALG examina a chamada encaminhada de B para C fora da rede e percebe que B e C são alcançados usando a mesma interface, ele não abre buracos no firewall, porque a mídia fluirá diretamente entre o usuário A e o usuário C.

Rescisão de chamadas

A mensagem BYE encerra uma chamada. Quando o dispositivo recebe uma mensagem BYE, ele traduz os campos de cabeçalho da maneira como faz para qualquer outra mensagem. Mas como uma mensagem BYE deve ser reconhecida pelo receptor com um 200 OK, a ALG atrasa a desativação da chamada por cinco segundos para dar tempo de transmissão do 200 OK.

Mensagens de revidamento de chamadas

As mensagens de re-CONVITE adicionam novas sessões de mídia a uma chamada e removem as sessões de mídia existentes. Quando novas sessões de mídia são adicionadas a uma chamada, novos pinholes são abertos no firewall e novas ligações de endereços são criadas. O processo é idêntico à configuração de chamada original. Quando uma ou mais sessões de mídia são removidas de uma chamada, os pinholes são fechados e as ligações são liberadas da maneira como acontece com uma mensagem BYE.

Ligue para os Session Timers

O SIP ALG usa o valor da Sessão expira para cronometrar uma sessão se uma mensagem de revidamento ou atualização não for recebida. A ALG recebe o valor da Sessão expira, se presente, da resposta de 200 OK ao INVITE e usa esse valor para sinalização de tempo limite. Se a ALG receber outro CONVITE antes do intervalo da sessão, ele redefinirá todos os valores de tempo limite para este novo CONVITE ou para valores padrão, e o processo se repete.

Como medida de precaução, o SIP ALG usa valores de tempo limite difíceis para definir o tempo máximo que uma chamada pode existir. Isso garante que o dispositivo esteja protegido caso ocorra um dos seguintes eventos:

  • Os sistemas finais falham durante uma chamada e uma mensagem BYE não é recebida.

  • Usuários maliciosos nunca enviam um BYE na tentativa de atacar um SIP ALG.

  • Implementações ruins do proxy SIP não processam a Rota de registro e nunca enviam uma mensagem BYE.

  • Falhas de rede impedem que uma mensagem BYE seja recebida.

Cancelamento de chamadas

Qualquer uma das partes pode cancelar uma ligação enviando uma mensagem CANCEL. Ao receber uma mensagem CANCEL, o SIP ALG fecha os pinholes através do firewall — se tiver aberto algum — e libera as vinculações de endereços. Antes de liberar os recursos, a ALG atrasa a saída do canal de controle por aproximadamente cinco segundos para dar tempo para a aprovação final de 200 OK. A chamada é terminada quando o intervalo de cinco segundos expira, independentemente de uma resposta 487 ou não-200 chegar.

Bifurcação

A forking permite que um proxy SIP envie uma única mensagem DE CONVITE para vários destinos simultaneamente. Quando as várias mensagens de resposta OK chegam para a chamada única, o SIP ALG analisa, mas atualiza as informações de chamadas com as primeiras 200 mensagens OK que recebe.

Mensagens SIP

O formato de mensagem SIP consiste em uma seção de cabeçalho SIP e o corpo SIP. Nas mensagens de solicitação, a primeira linha da seção de cabeçalho é a linha de solicitação, que inclui o tipo de método, a solicitação-URI e a versão de protocolo. Em mensagens de resposta, a primeira linha é a linha de status, que contém um código de status. Os cabeçalhos SIP contêm endereços IP e números de porta usados para sinalização. O corpo do SIP, separado da seção de cabeçalho por uma linha em branco, está reservado para informações de descrição da sessão, o que é opcional. Atualmente, o Junos OS oferece suporte apenas ao SDP. O corpo SIP contém endereços IP e números de porta usados para transportar a mídia.

Cabeçalhos SIP

Na mensagem de solicitação de SIP da amostra a seguir, o NAT substitui os endereços IP nos campos de cabeçalho para escondê-los da rede externa.

A forma como a tradução de endereço IP é realizada depende do tipo e direção da mensagem. Uma mensagem pode ser qualquer uma das seguintes:

  • Solicitação de entrada

  • Resposta de saída

  • Solicitação de saída

  • Resposta de entrada

A Tabela 5 mostra como o NAT é executado em cada um desses casos. Observe que para vários dos campos de cabeçalho a ALG determina mais do que apenas se as mensagens vêm de dentro ou fora da rede. Ele também deve determinar qual cliente iniciou a chamada e se a mensagem é uma solicitação ou resposta.

Tabela 5: Mensagens de solicitação com a tabela NAT

Solicitação de entrada

(do público ao privado)

Para:

Substitua o domínio por endereço local

De:

Nenhum

ID de chamada:

Nenhum

Via:

Nenhum

Request-URI:

Substitua o endereço ALG por endereço local

Contato:

Nenhum

Rota de registro:

Nenhum

Rota:

Nenhum

Resposta de saída

(do privado ao público)

Para:

Substitua o endereço ALG por endereço local

De:

Nenhum

ID de chamada:

Nenhum

Via:

Nenhum

Request-URI:

N/A

Contato:

Substitua o endereço local por endereço ALG

Rota de registro:

Substitua o endereço local por endereço ALG

Rota:

Nenhum

Solicitação de saída

(do privado ao público)

Para:

Nenhum

De:

Substitua o endereço local por endereço ALG

ID de chamada:

Nenhum

Via:

Substitua o endereço local por endereço ALG

Request-URI:

Nenhum

Contato:

Substitua o endereço local por endereço ALG

Rota de registro:

Substitua o endereço local por endereço ALG

Rota:

Substitua o endereço ALG por endereço local

Resposta de saída

(do público ao privado)

Para:

Nenhum

De:

Substitua o endereço ALG por endereço local

ID de chamada:

Nenhum

Via:

Substitua o endereço ALG por endereço local

Request-URI:

N/A

Contato:

Nenhum

Rota de registro:

Substitua o endereço ALG por endereço local

Rota:

Substitua o endereço ALG por endereço local

Corpo de SIP

As informações de SDP no órgão SIP incluem endereços IP que a ALG usa para criar canais para o fluxo de mídia. A tradução da seção SDP também aloca recursos, ou seja, números de porta para enviar e receber a mídia.

O trecho a seguir de uma seção de SDP de amostra mostra os campos que são traduzidos para alocação de recursos.

As mensagens SIP podem conter mais de um fluxo de mídia. O conceito é semelhante à anexação de vários arquivos a uma mensagem de e-mail. Por exemplo, uma mensagem DE CONVITE enviada de um cliente SIP para um servidor SIP pode ter os seguintes campos:

O Junos OS oferece suporte a até 6 canais SDP negociados para cada direção, para um total de 12 canais por chamada.

Limitações do Junos OS SIP ALG

As seguintes limitações se aplicam à configuração do SIP ALG:

  • Apenas os métodos descritos na RFC 3261 são suportados.

  • Apenas o SIP versão 2 é compatível.

  • O TCP não é suportado como um mecanismo de transporte para sinalizar mensagens para MS-MPCs, mas é suportado pelos Serviços de próxima geração.

  • Não configure o SIP ALG ao usar o TASER. se os clientes usarem o FIREWALL/TURN para detectar o firewall ou os dispositivos NAT entre o chamador e o respondente ou proxy, o cliente tenta adivinhar melhor o comportamento do dispositivo NAT e agir de acordo para fazer a chamada.

  • No MS-MPCs, não use a opção de pool de mapeamento independente de endpoint em conjunto com o SIP ALG. Os erros resultarão. Isso não se aplica aos Serviços de Próxima Geração.

  • Os dados de sinalização IPv6 não são suportados para MS-MPCs, mas são suportados para serviços de próxima geração.

  • A autenticação não é suportada.

  • Mensagens criptografadas não são suportadas.

  • A fragmentação de SIP não é suportada para MS-MPCs, mas é suportada para serviços de próxima geração.

  • Assume-se que o tamanho máximo de pacote UDP contendo uma mensagem SIP é de 9 KB. Mensagens SIP maiores do que essas não são suportadas.

  • Assume-se que o número máximo de canais de mídia em uma mensagem SIP seja de seis.

  • Os nomes de domínio totalmente qualificados (FQDNs) não são suportados em campos críticos.

  • O QoS não é compatível. O SIP oferece suporte a reescritas de DSCP.

  • A alta disponibilidade não é suportada, exceto para um espera quente.

  • Uma configuração de tempo limite de nunca é suportada no SIP ou NAT.

  • O multicast (proxy de fornução) não é suportado.

Configuração de um comando SNMP para correspondência de pacotes

Você pode especificar uma configuração de comando SNMP para correspondência de pacotes. Para configurar o SNMP, inclua a snmp-command declaração no nível de [edit applications application application-name] hierarquia:

Os valores suportados sãoget, get-nextesettrap. Você pode configurar apenas um valor para a correspondência. A application-protocol declaração no nível hierárquica [edit applications application application-name] deve ter o valorsnmp. Para obter informações sobre como especificar o protocolo do aplicativo, consulte Configurando um protocolo de aplicativo.

Configuração de um número de programa de RPC

Você pode especificar um número do programa RPC para correspondência de pacotes. Para configurar um número de programa RPC, inclua a rpc-program-number declaração no nível de [edit applications application application-name] hierarquia:

A gama de valores usados para DCE ou RPC é de 100.000 a 400.000. A application-protocol declaração no nível hierárquica [edit applications application application-name] deve ter o valor rpc. Para obter informações sobre como especificar o protocolo do aplicativo, consulte Configurando um protocolo de aplicativo.

Configuração do limite de TTL

Você pode especificar um valor de limiar de tempo de rota para a vida (TTL), que controla o nível aceitável de penetração de rede para roteamento de vestígios. Para configurar um valor TTL, inclua a ttl-threshold declaração no nível de [edit applications application application-name] hierarquia:

A application-protocol declaração no nível hierárquica [edit applications application application-name] deve ter o valor traceroute. Para obter informações sobre como especificar o protocolo do aplicativo, consulte Configurando um protocolo de aplicativo.

Configurando um identificador único universal

Você pode especificar um Identificador Único Universal (UUID) para objetos DCE RPC. Para configurar um valor UUID, inclua a uuid declaração no nível de [edit applications application application-name] hierarquia:

O uuid valor está na notação hexadimamal. A application-protocol declaração no nível hierárquica [edit applications application application-name deve ter o valor dce-rpc. Para obter informações sobre como especificar o protocolo do aplicativo, consulte Configurando um protocolo de aplicativo. Para obter mais informações sobre os números de UUID, veja http://www.opengroup.org/onlinepubs/9629399/apdxa.htm.

Configuração de conjuntos de aplicativos

Você pode agrupar os aplicativos que definiu em um objeto nomeado, incluindo a application-set declaração no nível de [edit applications] hierarquia com uma declaração application para cada aplicativo:

Para um exemplo de um conjunto típico de aplicativos, veja Exemplos: Configuração de protocolos de aplicativos.

Exemplos: Configuração de protocolos de aplicativos

O exemplo a seguir mostra uma definição de protocolo de aplicativo descrevendo um aplicativo FTP especial em execução na porta 78:

O exemplo a seguir mostra um protocolo ICMP especial (application-protocol icmp) do tipo 8 (eco ICMP):

O exemplo a seguir mostra um possível conjunto de aplicativos:

O software inclui um conjunto predefinido de protocolos de aplicativos bem conhecidos. O conjunto inclui aplicativos para os quais as portas de destino TCP e UDP já são reconhecidas por filtros de firewall stateless.

Verificando a saída das sessões alg

Esta seção contém exemplos de saída bem-sucedida de sessões alg e informações sobre a configuração de log do sistema. Você pode comparar os resultados de suas sessões para verificar se as configurações estão funcionando corretamente.

Exemplo de FTP

Este exemplo analisa a saída durante uma sessão ftp ativa. Consiste em quatro fluxos diferentes; dois são fluxos de controle e dois são fluxos de dados. O exemplo consiste nas seguintes partes:

Saída de amostra

Placa MS-MPC

Para MS-MPCs, o seguinte é uma saída de amostra completa do comando do show services stateful-firewall conversations application-protocol ftp modo operacional:

Para cada fluxo, a primeira linha mostra informações de fluxo, incluindo protocolo (TCP), endereço fonte, porta fonte, endereço de destino, porta de destino, estado do fluxo, direção e contagem de quadros.

  • O estado de um fluxo pode ser Watch, Forwardou Drop:

    • Um Watch estado de fluxo indica que o fluxo de controle é monitorado pela ALG para obter informações na carga. O processamento de NAT é realizado no cabeçalho e carga, conforme necessário.

    • Um Forward fluxo encaminha os pacotes sem monitorar a carga. O NAT é executado no cabeçalho conforme necessário.

    • Um Drop fluxo derruba qualquer pacote que corresponda ao 5 tuple.

  • A contagem de quadros (Frm count) mostra o número de pacotes que foram processados nesse fluxo.

A segunda linha mostra as informações de NAT.

  • source indica NAT de origem.

  • dest indica NAT de destino.

  • O primeiro endereço e a porta da linha NAT são o endereço e a porta originais que estão sendo traduzidos para esse fluxo.

  • O segundo endereço e a porta da linha NAT são o endereço e a porta traduzidos para esse fluxo.

Placa MX-SPC3

Na placa de serviços MX-SPC3, o seguinte é uma saída de amostra completa do comando do show services sessions application-protocol ftp modo operacional:

Para cada sessão:

  • A primeira linha mostra informações de fluxo, incluindo ID de sessão, nome do conjunto de serviços, nome da política, tempo limite de sessão, nome lógico do sistema e seu estado.

  • A segunda linha indica Resource informationque a sessão é criada pela ALG, incluindo o nome ALG (FTP ALG) e a id do grupo ASL, que é 1e a ID de recursos ASL, que é 0 para sessão de controle e 1 para sessão de dados.

  • A terceira linha In é o fluxo avançado e a quarta linha Out é o fluxo reverso, incluindo o endereço de origem, porta de origem, endereço de destino, porta de destino, protocolo (TCP), conn-tag de sessão, entrada e saída para InOut interface, contagem de quadros recebidos e bytes. O NAT é executado no cabeçalho conforme necessário.

Mensagens de log do sistema FTP

As mensagens de log do sistema são geradas durante uma sessão de FTP. Para obter mais informações sobre logs do sistema, veja Mensagens de log do sistema.

Placa MS-MPC

As seguintes mensagens de log do sistema são geradas durante a criação do fluxo de controle FTP:

  • Log de sistema de aceitação de regras:

  • Crie o log do sistema Aceite o fluxo:

  • Log de sistema para criação de fluxo de dados:

Placa de placa MX-SPC3

As seguintes mensagens de log do sistema são geradas durante a criação do fluxo de controle FTP:

  • Log de sistema para criação de sessão de controle FTP:

  • Log de sistema para criação de sessão de dados FTP:

  • O log do sistema para sessão de dados FTP destrói:

  • Log de sistema para sessão de controle FTP destruir:

Análise

Fluxos de controle
Placa MS-MPC

Os fluxos de controle são estabelecidos após o aperto de mão de três vias estar completo.

  • Fluxo de controle do cliente FTP para o servidor FTP. A porta de destino TCP é 21.

  • Controle o fluxo do servidor FTP para o cliente FTP. A porta de origem do TCP é 21.

Placa MX-SPC3

Os fluxos de controle são estabelecidos após o aperto de mão de três vias estar completo.

  • Sessão de controle de cliente FTP para servidor FTP, porta de destino TCP é 21.

  • Sessão de dados do cliente FTP ao servidor FTP, é para o modo passivo DEP.

  • Sessão de dados do servidor FTP ao cliente FTP, é para o modo ativo FTP:

Fluxos de dados

Uma porta de dados de 20 é negociada para transferência de dados durante o protocolo de controle ftp. Esses dois fluxos são fluxos de dados entre o cliente FTP e o servidor FTP:

Questões de solução de problemas

  1. Como sei se o FTP ALG está ativo?

    • O campo de protocolo ALG na conversa deve ser exibido ftp.

    • Deve haver uma contagem de quadros (Frm count) válida nos fluxos de controle.

    • Uma contagem válida de quadros nos fluxos de dados indica que a transferência de dados ocorreu.

  2. O que preciso para verificar se a conexão FTP está estabelecida, mas a transferência de dados não ocorre?

    • Provavelmente, a conexão de controle está ativa, mas a conexão de dados está baixa.

    • Verifique a saída das conversas para determinar se o controle e os fluxos de dados estão presentes.

  3. Como interpreto cada fluxo? O que significa cada fluxo?

    • Fluxo iniciador de fluxo de controle FTP — Fluxo com porta de destino 21

    • Fluxo de fluxo de controle de FTP — Fluxo com porta de origem ; 21

    • Fluxo de dados FTP iniciador de dados — Fluxo com porta de destino 20

    • Fluxo de respondente de fluxo de dados FTP — Fluxo com porta de origem 20

Exemplo de RTSP ALG

O exemplo a seguir é uma conversa com o RTSP. O aplicativo usa o protocolo RTSP para conexão de controle. Assim que a conexão é configurada, a mídia é enviada usando o protocolo UDP (RTP).

Este exemplo consiste no seguinte:

Saída de amostra para MS-MPCs

Aqui está a saída do comando do show services stateful-firewall conversations modo operacional:

Saída de amostra para placa de serviços MX-SPC3

Aqui está a saída do comando do show services sessions application-protocol rtsp modo operacional:

Análise

Uma conversa de RTSP deve consistir em fluxos de TCP correspondentes à conexão de controle RTSP. Deve haver dois fluxos, um em cada direção, do cliente ao servidor e do servidor ao cliente:

  • A conexão de controle RTSP para o fluxo de iniciação é enviada da porta de destino 554.

  • A conexão de controle RTSP para o fluxo de resposta é enviada da porta de origem 554.

Os fluxos de UDP correspondem à mídia RTP enviada pela conexão RTSP.

Questões de solução de problemas

  1. A mídia não funciona quando o RTSP ALG está configurado. O que eu faço?

    • Verifique as conversas de RTSP para ver se existem fluxos de TCP e UDP.

    • O protocolo ALG deve ser exibido como rtsp.

    Nota:

    O estado do fluxo é exibido como Watch, porque o processamento alg está ocorrendo e o cliente está essencialmente "observando" ou processando cargas correspondentes ao aplicativo. Para fluxos DEP e RTSP ALG, as conexões de controle são sempre Watch fluxos.

  2. Como verificar se há erros de ALG?

    • Você pode verificar se há erros emitindo o seguinte comando. Cada ALG tem um campo separado para erros de pacote ALG.

Mensagens de log do sistema

Habilitar a geração de log do sistema e verificar o log do sistema também são úteis para a análise de fluxo alg. Esta seção contém o seguinte:

Configuração de log do sistema

Você pode configurar a habilitação de mensagens de log do sistema em vários níveis diferentes no Junos OS CLI. Conforme mostrado nas seguintes configurações de amostra, a escolha do nível depende de quão específico você deseja que o registro do evento seja e quais opções você deseja incluir. Para obter mais informações sobre as opções de configuração, consulte a Biblioteca de Administração do Junos OS para dispositivos de roteamento (nível de sistema) ou a Biblioteca de interfaces de serviços do Junos OS para dispositivos de roteamento (todos os outros níveis).

  1. No nível mais alto do mundo:

  2. No nível de conjunto de serviços:

  3. No nível de regra de serviço:

Saída de log do sistema

As mensagens de log do sistema são geradas durante a criação de fluxos, conforme mostrado nos seguintes exemplos:

A mensagem de log do sistema a seguir indica que o ASP correspondia a uma regra de aceitação:

Para obter uma lista completa de mensagens de log do sistema, consulte o System Log Explorer.