DNS ALG
O serviço de gateway de camada de aplicativo (ALG) do Domain Name System (DNS) lida com dados associados à localização e tradução de nomes de domínio em endereços IP. A ALG normalmente funciona na porta 53. A ALG monitora pacotes de consulta e resposta de DNS e oferece suporte apenas ao tráfego UDP.
Use o Feature Explorer para confirmar o suporte de plataforma e versão para recursos específicos.
Analise a seçãode comportamento de DNS ALG específica da plataforma para obter notas relacionadas à sua plataforma.
Visão geral da DNS ALG
O serviço DNS Application Layer Gateway (ALG) oferece um gateway de nível de aplicativo para uso com clientes DNS. O serviço DNS ALG permite que um cliente acesse vários servidores DNS em diferentes redes e fornece roteamento de e para esses servidores. Ele também oferece suporte à tradução flexível de endereços dos pacotes de consulta e resposta DNS. Essas funções permitem que o cliente de DNS consulta muitos domínios diferentes de uma única instância de servidor DNS no lado cliente da rede.
O servidor DNS ouve a porta UDP 53 para consultas recebidas de resolver DNS. Um resolver se comunica com servidores DNS enviando consultas de DNS e lidando com respostas de DNS.
A porta padrão para DNS ALG é a porta 53.
A DNS ALG executa as seguintes funções:
Monitora os pacotes de consulta e resposta de DNS e fecha a sessão quando a resposta de DNS é recebida
Realiza doutorado em DNS
Realiza as transformações de endereço IPv4 e IPv6
O sistema de nomes de domínio (DNS) foi originalmente projetado para oferecer suporte a consultas de um banco de dados estático configurado e esperava-se que os dados mudassem.
O suporte dinâmico de DNS (DDNS) já está disponível, além do padrão de DNS. A principal diferença entre DNS e DDNS está no formato de mensagem da seção de cabeçalho e na mensagem de atualização.
As mensagens DDNS são processadas de forma diferente quando comparadas às mensagens de DNS. A análise de mensagens é reescrita para DDNS. A DDNS faz NAT e NAT-PT na parte de consulta da mensagem e o DNS faz NAT e NAT-PT na parte de resposta da mensagem.
Veja também
Exemplo: Configuração do DNS ALG
Este exemplo mostra como configurar o DNS ALG para passar pelo tráfego de DNS com um pool de NAT estático em dispositivos Juniper Networks.
Requisitos
Antes de começar:
Configure o pool de NAT estático para todos os endereços IP.
Entenda os conceitos por trás da ALG para DNS. Veja a visão geral da DNS ALG.
Visão geral
Neste exemplo, a ALG para DNS está configurada para monitorar e permitir que o tráfego de DNS seja trocado entre os clientes e o servidor localizado em lados opostos de um dispositivo da Juniper Networks.
Este exemplo mostra como configurar um pool de NAT estático e um conjunto de regras, e associar o DNS ALG a uma política.
Configuração
- Configuração de um grupo estático de NAT e conjunto de regras
- Configuração e impressão do rastreamento de DNS
Configuração de um grupo estático de NAT e conjunto de regras
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 quaisquer detalhes necessários para combinar com a configuração da sua rede, copiar e colar os comandos no CLI no nível de hierarquia e, em seguida, entrar no [edit]
commit
modo de configuração.
set security nat static rule-set rs1 from zone untrust set security nat static rule-set rs1 rule r1 match destination-address 203.0.113.100 set security nat static rule-set rs1 rule r1 then static-nat prefix 192.0.2.100 set security policies from-zone untrust to-zone trust policy u2t match source-address any set security policies from-zone untrust to-zone trust policy u2t match destination-address any set security policies from-zone untrust to-zone trust policy u2t match application junos-dns-udp set security policies from-zone untrust to-zone trust policy u2t then permit
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, veja Usando o Editor de CLI no modo de configuração no Guia do usuário da CLI.
Para configurar um pool de NAT estático:
Crie um conjunto de regras estáticas de NAT.
[edit] user@host# set security nat static rule-set rs1 from zone untrust user@host# set security nat static rule-set rs1 rule r1 match destination-address 203.0.113.100 user@host# set security nat static rule-set rs1 rule r1 then static-nat prefix 192.0.2.100
Associe o aplicativo de DNS usando uma política.
[edit] user@host# set security policies from-zone untrust to-zone trust policy u2t match source-address any user@host# set security policies from-zone untrust to-zone trust policy u2t match destination-address any user@host# set security policies from-zone untrust to-zone trust policy u2t match application junos-dns-udp user@host# set security policies from-zone untrust to-zone trust policy u2t then permit
Resultados
A partir do modo de configuração, confirme sua configuração entrando no show security nat
comando. Se a saída não exibir a configuração pretendida, repita as instruções de configuração neste exemplo para corrigi-la.
user@host# show security nat static { rule-set rs1 { from zone untrust; rule r1 { match { destination-address 203.0.113.100; } then { static-nat { prefix { 192.0.2.100; } } } } } }
[edit] user@host# show security policies from-zone untrust to-zone trust { policy u2t { match { source-address any; destination-address any; application [ junos-dns-udp]; } then { permit; } } } default-policy { permit-all; }
Se você terminar de configurar o dispositivo, entre no commit
modo de configuração.
Configuração e impressão do rastreamento de DNS
Propósito
Imprima o arquivo de rastreamento de DNS.
Ação
A partir do modo de configuração, insira o seguinte comando.
set security alg traceoptions file alglog set security alg traceoptions file size 1g set security alg traceoptions level verbose set security alg dns traceoptions flag all
Verificação
Para confirmar que a configuração está funcionando corretamente, execute essas tarefas:
Verificação da DNS ALG
Propósito
Verifique se o DNS ALG está habilitado.
Ação
A partir do modo operacional, entre no show security alg status
comando.
user@host> show security alg status ALG Status : DNS : Enabled FTP : Enabled H323 : Disabled MGCP : Disabled MSRPC : Enabled PPTP : Enabled RSH : Disabled RTSP : Disabled SCCP : Disabled SIP : Disabled SQL : Disabled SUNRPC : Enabled TALK : Enabled TFTP : Enabled IKE-ESP : Disabled
Significado
A saída mostra que o DNS ALG está habilitado.
Verificação da sessão de fluxo de segurança de DNS ALG
Propósito
Verifique se a sessão de fluxo de segurança da ALG está habilitada.
Ação
A partir do modo operacional, entre no show security flow session application dns extensive
comando.
user@host> show security flow session application dns extensive Session ID: 24088, Status: Normal Flags: 0x40/0x0/0x2/0x2000103 Policy name: unt2tru/6 Source NAT pool: Null, Application: junos-dns-udp/16 Dynamic application: junos:UNKNOWN, Encryption: Unknown Application traffic control rule-set: INVALID, Rule: INVALID Maximum timeout: 60, Current timeout: 56 Session State: Valid Start time: 658866, Duration: 10 In: 192.0.2.0/38926 --> 198.51.100.0/53;udp, Conn Tag: 0x0, Interface: ge-0/0/3.0, Session token: 0xa, Flag: 0x621 Route: 0x110010, Gateway: 192.0.2.0, Tunnel: 0 Port sequence: 0, FIN sequence: 0, FIN state: 0, Pkts: 2, Bytes: 116 Out: 198.51.100.0/53 --> 192.0.2.0/38926;udp, Conn Tag: 0x0, Interface: ge-0/0/2.0, Session token: 0x9, Flag: 0x620 Route: 0x100010, Gateway: 198.51.100.0, Tunnel: 0 Port sequence: 0, FIN sequence: 0,
Significado
A saída mostra que há um fluxo ativo utilizando o DNS ALG.
Entendendo o DNS e o DDNS Doctoring
O Junos OS oferece suporte ao Sistema de Nomes de Domínio (DNS) para ALGs. A DNS ALG monitora pacotes de consulta e resposta de DNS e fecha a sessão se a bandeira DNS indicar que o pacote é uma mensagem de resposta. Para configurar o DNS ALG, use a edit security alg dns
declaração no nível de [edit security alg]
hierarquia.
A DNS fornece mapeamento de nome para endereço em uma classe de roteamento, enquanto a Network Address Translation (NAT) tenta fornecer roteamento transparente entre hosts em diferentes reinos de endereço da mesma classe de roteamento. Como resultado, o NAT pode causar alguns problemas de DNS que o DNG ALG deve resolver através de um processo chamado doctoring de DNS .
O mesmo recurso de doctoring se aplica ao sistema dinâmico de nomes de domínio (DDNS). Para DDNS no modo NAT, você também pode fazer a tradução de IP na atualização de DDNS.
Para resolver os problemas introduzidos pela funcionalidade DE ALG de NAT, DNS e DDNS foi estendido para oferecer suporte a NAT estática, permitindo que os problemas sejam resolvidos por meio do doctoring de DNS.
O processo de restauração e doctoring é realizado em duas partes:
-
Packet sanity check
Para o pacote DNS, os campos de verificação de ALG de DNS são perguntas, respostas, autoridade e informações adicionais. O DNS ALG derruba o pacote se o número de perguntas for superior a 1, o nome de domínio for superior a 255 bytes ou o comprimento do rótulo for superior a 63 bytes.
Para o pacote DDNS, os campos de verificação de DNS ALG são zona, pré-requisitos, atualização e dados adicionais. O DNS ALG derruba o pacote se o número de zonas for superior a 1, o nome de domínio for superior a 255 bytes ou o comprimento do rótulo for superior a 63 bytes.
Tanto para DNS quanto para DDNS, o DNS ALG derruba o pacote que não está em conformidade com as normas.
-
NAT
A Figura 2 mostra como o DNS traduz um endereço privado para um endereço público.

Quando o host X em external.com deseja resolver o endereço do host A por meio de DNS e se o DNS ALG não oferece suporte ao NAT, ele leva um endereço privado, como o 172.19.1.10, que é inválido para hospedar X. O endereço privado é traduzido para endereço público 10.131.108.10 por meio do DNS ALG.
A Figura 3 mostra como o DNS traduz um endereço público para um endereço privado.

Quando o host A em private.com quer resolver o endereço do host B por meio de DNS e se o DNS ALG não oferece suporte ao NAT, ele leva um endereço público do servidor DNS em external.com, como 10.131.108.8. Se o Host A enviar tráfego para o host B com endereço público 10.131.108.8, que é inválido para hospedar B no domínio privado. Assim, o endereço público no registro A de consulta de DNS é traduzido para endereço privado 172.19.2.1 por meio do DNS ALG.
A DNS ALG pode traduzir os primeiros 32 registros A em uma única resposta de DNS. Registros A após os primeiros 32 registros não são tratados. Observe também que o DNS ALG oferece suporte a endereços IPv4 e IPv6 e não oferece suporte a túneis VPN.
Desativação de DNS e doctoring de DDNS
O DNS ALG deve ser habilitado nos dispositivos para realizar o doutorado em DNS e DDNS. Com o DNS ALG habilitado no dispositivo, o recurso de doutorado de DNS e DDNS é habilitado por padrão. Você pode desativar o doutorado em DNS e DDNS com a CLI.
Para desativar o doutorado em DNS e DDNS:
-
Desativar todos os recursos de doctoring especificando a opção
none
de configuração.Esse comando desativa todos os recursos de doctoring.
user@host#
set security alg dns doctoring none
-
Desativar o recurso NAT e reter o recurso de verificação de sanidade especificando a opção
sanity-check
de configuração.Essa opção desativa o recurso NAT e retém o recurso de verificação de sanidade.
user@host#
set security alg dns doctoring sanity-check
-
Se você terminar de configurar o dispositivo, confirme a configuração.
-
Para verificar a configuração, use o comando show usp algs dns statsvty.
Comportamento de ALG de DNS específica da plataforma
Use o Feature Explorer para confirmar o suporte de plataforma e versão para recursos específicos.
Use a tabela a seguir para revisar comportamentos específicos da plataforma para sua plataforma:
Plataforma |
Diferença |
---|---|
Série SRX |
|