270 likes | 451 Views
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 ( N etwork A dress T ranslator )
E N D
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
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 – 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
Mesmo IP? Mesmo IP? STUN - Cenário Firewall de UDP simétrico Binding request simples (sem mudanças de IP) Teste 1 Não Sim Sim Resp? Resp? Teste 2 Não Não Sim UDP bloqueado IP público Teste 2 NAT Full Cone Não Sim Resp? Teste 1 Binding request. Mudança de IP e porta (CHANGE-ADDRESS) Binding request simples usando o endereço e porta secundários do servidor NAT Symmetric Não Sim NAT Restricted Sim Resp? Teste 3 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.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