Download - STUN – Simple Traversal of UDP Through NATs
![Page 1: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/1.jpg)
STUN – Simple Traversal of UDP Through NATs
Márcio Leal de Melo Dahia
![Page 2: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/2.jpg)
Roteiro Introdução - NAT Tipos de NAT Problemas STUN
Principios básicos Tipos de Mensagens Cenário
STUN no mercado Conclusões Bibliografia
![Page 3: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/3.jpg)
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
![Page 4: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/4.jpg)
Funcionamento de um NAT
![Page 5: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/5.jpg)
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
![Page 6: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/6.jpg)
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
![Page 7: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/7.jpg)
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
![Page 8: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/8.jpg)
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.
![Page 9: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/9.jpg)
Problemas (2/5) Grande parte soluções necessitam
modificações na middlebox... Port-forwarding
![Page 10: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/10.jpg)
Problemas (3/5)
Universal Plug-and-Play (UPnP) Cisco, Microsoft, Nokia Hardware upnp-habilitado pode ser
configurado pela aplicação
![Page 11: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/11.jpg)
![Page 12: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/12.jpg)
Problemas (4/5)
Aplication Layer Gateway (ALG) Camada de software no NAT que permite a
“passagem” de protocolos previamente definidos
![Page 13: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/13.jpg)
Problemas (5/5) ...Ou são muito pesadas (Uso de Relays)
Servidor intermediando a comunicação entre os pontos
![Page 14: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/14.jpg)
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
![Page 15: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/15.jpg)
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
![Page 16: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/16.jpg)
STUN – Configuração de Análise
![Page 17: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/17.jpg)
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
![Page 18: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/18.jpg)
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
![Page 19: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/19.jpg)
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
![Page 20: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/20.jpg)
STUN – Binding Ambos
USERNAME/PASSWORD Definidos pelo Shared Secret
MESSAGE-INTEGRITY HMAC (Keyed-Hashing for Message
Authentication ) Error
ERROR-CODE UNKNOWN-ATTRIBUTES
![Page 21: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/21.jpg)
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
![Page 22: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/22.jpg)
STUN - Cenário
Sim
Sim
Não
Não
Não Sim
Não
SimSim
Não
Teste 1
Resp?
UDP bloqueadoIP público
Firewall de UDP simétrico
Mesmo IP?
Resp?
Teste 2
NAT Full Cone
NATSymmetric
NATRestricted
NATPort Restricted
Teste 2
Resp?
Teste 3
Teste 1
Resp?
Binding request simples (sem mudanças de IP)
Binding request. Mudança de IP e porta (CHANGE-ADDRESS)
Binding request. Apenas mudança de porta (CHANGE-ADDRESS)
Sim
Não
Binding request simples usando o endereço e porta secundários do servidor
Mesmo IP?
![Page 23: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/23.jpg)
STUN no mercado
Implementação Open Source disponível http://sourceforge.net/projects/stun/
![Page 24: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/24.jpg)
STUN no mercado
VoIP (OpenPhone) http://sourceforge.net/projects/
openphone/
![Page 25: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/25.jpg)
STUN no mercado
XTunnels Solução OpenSource de conectividade
Usa STUN, mas não exclusivamente http://xtunnels.org:3455/1/Home
![Page 26: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/26.jpg)
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
![Page 27: STUN – Simple Traversal of UDP Through NATs](https://reader034.vdocuments.mx/reader034/viewer/2022051401/56814958550346895db6ad3b/html5/thumbnails/27.jpg)
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. http://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