STUN – Simple Traversal of
UDP Through NATs
Márcio Leal de Melo Dahia
Roteiro




Introdução - NAT
Tipos de NAT
Problemas
STUN
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 interna





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”, em menor quantidade,
compartilhados por várias máquinas de acordo com a
necessidade
NAT é o dispositivo capaz de fazer a tradução
bidirecional entre endereços internos e externos
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/2)

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/2)

Grande parte soluções necessitam
modificações na middlebox

Universal Plug-and-Play (UPnP)



Cisco, Microsoft, Nokia
Hardware upnp-habilitado pode ser configurado
pela aplicação
Aplication Layer Gateway (ALG)

Camada de software na middlebox que permite
a “passagem” de alguns protocolos
previamente definidos
STUN


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

Principio básico

Servidor conectado diretamente à rede


2 IPs e 2 portas
Tratamento dispensado a pacotes UDP

Grande parte dos NATs aceita pacotes UDP de
entrada


????
Um dispositivo na rede pública conhece o
endereço externo do dispositivo atrás do
NAT
STUN - Configuração
STUN – Tipos de mensagem

Protocolo tipo cliente-servidor

Shared Secret Request (Response)




Requisita login/senha para as próximas
mensagens
TCP (TLS)
Expira (entre 10 e 30 min.)
Binding Request (response)


Protocolo propriamente Dito (UDP)
Diversos parâmetros
STUN – Binding Request
(Response)

RESPONSE-ADDRESS


CHANGE-REQUEST





Indica IP e porta para onde a resposta foi enviada (response)
REFLECTED-FROM


Indica IP do servidor (response)
CHANGED-ADDRESS


Indica qual o endereço público do cliente (response)
SOURCE-ADDRESS


Indica que o servidor deve enviar a resposta com IP OU porta diferentes (request)
MAPPED-ADDRESS


Indica para que endereço a resposta deve ser enviada (request)
IP e porta do cliente que fez o request (response)
USERNAME/PASSWORD
MESSAGE-INTEGRITY
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
Binding request
simples (sem
mudanças de IP)
STUN - Cenário
Binding request requisitando
apenas mudança de porta
(CHANGE-ADDRESS)
Binding request
requisitando mudança
de IP e porta
(CHANGE-ADDRESS)
Observações


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
Download

STUN – Simple Traversal of UDP Throw NATs