Você está na página 1de 27

STUN – Simple Traversal of

UDP Through NATs

Márcio Leal de Melo Dahia


Roteiro
 Introdução - NAT
 Tipos de NAT
 Problemas
 STUN
 Principios básicos
 Tipos de Mensagens
 Cenário
 STUN no mercado
 Conclusões
 Bibliografia
Introdução - NAT
 NAT (Network Adress Translator)
 Contornar limitação da quantidade de endereços IP
 Endereços IP “não roteáveis” usados na rede privada
 Intervalo 1: Classe A - 10.0.0.0 a 10.255.255.255
 Intervalo 2: Classe B - 172.16.0.0 a 172.31.255.255
 Intervalo 3: Classe C - 192.168.0.0 a 192.168.255.255
 IPs “roteáveis”, compartilhados por várias máquinas de
acordo com a necessidade
 NAT é o dispositivo capaz de fazer a tradução
bidirecional entre endereços privados e públicos
Funcionamento de um NAT
Tipos de NAT(1/3)
 Full Cone
 Requisições de um determinado endereço
interno são mapeados para o mesmo endereço
externos
 Acesso de fora para dentro via endereço externo
Tipos de NAT (2/3)
 Restricted Cone
 Semelhante ao Full Cone, porém
 Acesso externo apenas para máquinas para respostas a
requisições feitas previamente
 Port Restricted Cone
 Semelhante ao Restricted Cone, porém
 Acesso restrito a porta de requisição
Tipos de NAT (3/3)
 Symmetric
 O endereço e porta a serem recebidos dependem
do endereço externo a ser acessado
 Como o Port Restricted, o acesso externo é
permitido apenas para resposta
Problemas (1/5)
 Necessidade crescente de acesso
bidirecional nas bordas da rede
 Aplicações como:
 Voz sobre IP – receber ligação
 Instant Messengers – ser contatado por amigos
 Compartilhamento de arquivos – permitir
upload
 Etc. etc. etc.
Problemas (2/5)
 Grande parte soluções necessitam modificações na
middlebox...
 Port-forwarding
Problemas (3/5)
 Universal Plug-and-Play (UPnP)
 Cisco, Microsoft, Nokia
 Hardware upnp-habilitado pode ser configurado
pela aplicação
Problemas (4/5)
 Aplication Layer Gateway (ALG)
 Camada de software no NAT que permite a
“passagem” de protocolos previamente definidos
Problemas (5/5)
 ...Ou são muito pesadas (Uso de Relays)
 Servidor intermediando a comunicação entre os
pontos
STUN (1/2)
 RFC 3489 – Março de 2003
 Permite que entidades atrás de NAT
 Descubram a presença de NAT
 Descubram o tipo de NAT
 Descubram seu endereço público
 Quantidade arbitrária de NATs
 Não atravessa Symmetric NATs
STUN (2/2)
 Principio básico
 Servidor conectado diretamente à rede
 2 IPs e 2 portas
 Um dispositivo na rede pública conhece o
endereço externo do dispositivo atrás do NAT
 Características do protocolo UDP
 Magro e simples
 Servidor não precisa manter sessões com o cliente
 Ideal para altas demandas de pouco conteúdo
STUN – Configuração de
Análise
STUN – Tipos de mensagem
 Protocolo tipo cliente-servidor
 Shared Secret (Request, Response e Error)
 Requisita login/senha para as próximas
mensagens
 TCP (TLS)
 Expira (entre 10 e 30 min.)
 Binding (Request, Response e Error)
 Protocolo propriamente Dito (UDP)
 Diversos parâmetros
STUN – Binding
 Request
 RESPONSE-ADDRESS
 Indica para que endereço a resposta deve ser
enviada
 CHANGE-REQUEST
 Indica que o servidor deve enviar a resposta
com IP OU porta diferentes
STUN – Binding
 Response
 MAPPED-ADDRESS
 Indica qual o endereço público do cliente
 SOURCE-ADDRESS
 Indica IP do servidor
 CHANGED-ADDRESS
 Indica IP e porta para onde a resposta foi enviada
 REFLECTED-FROM
 IP e porta do cliente que fez o request
STUN – Binding
 Ambos
 USERNAME/PASSWORD
 Definidos pelo Shared Secret
 MESSAGE-INTEGRITY
 HMAC (Keyed-Hashing for Message
Authentication )
 Error
 ERROR-CODE
 UNKNOWN-ATTRIBUTES
STUN - Cenário
 Suponha uma aplicação multimídia que
necessite saber se
 Está na Internet diretamente
 Tem um Firewall que bloqueia UDP
 Tem um Firewall que permite UDP de saída
 Qual o tipo de NAT
Teste 1 Binding request simples Firewall de UDP
simétrico
(sem mudanças de IP)
Não

STUN - Cenário
Resp?
Sim
Mesmo IP?
Sim
Teste 2
Resp?

Não Não Sim

UDP bloqueado
Teste 2 IP público

Não Sim NAT


Teste 1 Resp? Full Cone

Binding request.
Mesmo IP?
Não Binding
NAT
Symmetric
request simples Mudança de IP e porta
usando o endereço e (CHANGE-ADDRESS)
Sim porta secundários do
servidor
Sim NAT
Teste 3 Resp? Restricted

Não
Binding request. Apenas mudança
de porta (CHANGE-ADDRESS)
NAT
Port Restricted
STUN no mercado
 Implementação Open Source disponível
 http://sourceforge.net/projects/stun/
STUN no mercado
 VoIP (OpenPhone)
 http://sourceforge.net/projects/openphone/
STUN no mercado
 XTunnels
 Solução OpenSource de conectividade
 Usa STUN, mas não exclusivamente
 http://xtunnels.org:3455/1/Home
Conclusão
 Deve ser visto como um Co-protocolo
 Não funciona com Symmetric NAT
 Máquina intermediária (Relay)
 Não faz milagres
 Servidor é um ponto de falha na rede
 Segurança, Tolerância a falha
Bibliografia
 IETF 2003. RFC 3489. STUN - Simple Traversal of User Datagram
Protocol (UDP) Through Network Address Translators (NATs).
http://www.ietf.org/rfc/rfc3489.txt
 IETF 1996. RFC1918. Address Allocation for Private Internets. h
ttp://www.ietf.org/rfc/rfc1918.txt
 Jeff Tyson. How Network Address Translation Works.
http://computer.howstuffworks.com/nat.htm
 Newport Networks. White paper: Solving the Firewall and NAT
Traversal Issues for Multimedia over IP Services. http://www.newport-
networks.com/whitepapers/nat-traversal.html
 UPnP Forum. http://www.upnp.org
 Implentaçao STUN. http://sourceforge.net/projects/stun/
 OpenVoIP. http://sourceforge.net/projects/openphone
 Xtunnels. http://xtunnels.org:3455/1/Home

Você também pode gostar