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


SOURCE-ADDRESS


Indica IP do servidor
CHANGED-ADDRESS


Indica qual o endereço público do cliente
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


MESSAGE-INTEGRITY


Definidos pelo Shared Secret
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
Binding request simples
Teste 1
Firewall de UDP
simétrico
(sem mudanças de IP)
STUN - Cenário
Sim
Sim
Mesmo IP?
Resp?
Não
Não
Teste 2
Resp?
Não
UDP bloqueado
Sim
IP público
Teste 2
Não
Teste 1
NAT
Full Cone
Sim
Resp?
Mesmo IP?
Sim
Teste 3
Não
NAT
Binding
request simples
Symmetric
usando o endereço e
porta secundários do
servidor
Sim
Resp?
Não
Binding request. Apenas mudança
NAT
de porta (CHANGE-ADDRESS)
Port Restricted
Binding request.
Mudança de IP e porta
(CHANGE-ADDRESS)
NAT
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.

Jeff Tyson. How Network Address Translation Works.

Newport Networks. White paper: Solving the Firewall and NAT
Traversal Issues for Multimedia over IP Services. http://www.newport-




http://www.ietf.org/rfc/rfc1918.txt
http://computer.howstuffworks.com/nat.htm
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
Download

STUN – Simple Traversal of UDP Throw NATs