27
STUN – Simple Traversal of UDP Through NATs Márcio Leal de Melo Dahia

STUN – Simple Traversal of UDP Through NATs

  • Upload
    eliot

  • View
    48

  • Download
    0

Embed Size (px)

DESCRIPTION

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 ) - PowerPoint PPT Presentation

Citation preview

Page 1: STUN – Simple Traversal of UDP Through NATs

STUN – Simple Traversal of UDP Through NATs

Márcio Leal de Melo Dahia

Page 2: STUN – Simple Traversal of UDP Through NATs

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

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

Funcionamento de um NAT

Page 5: STUN – Simple Traversal of UDP Through NATs

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

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

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

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

Problemas (2/5) Grande parte soluções necessitam

modificações na middlebox... Port-forwarding

Page 10: STUN – Simple Traversal of UDP Through NATs

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
Page 12: STUN – Simple Traversal of UDP Through NATs

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

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

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

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

STUN – Configuração de Análise

Page 17: STUN – Simple Traversal of UDP Through NATs

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

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

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

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

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

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

STUN no mercado

Implementação Open Source disponível http://sourceforge.net/projects/stun/

Page 24: STUN – Simple Traversal of UDP Through NATs

STUN no mercado

VoIP (OpenPhone) http://sourceforge.net/projects/

openphone/

Page 25: STUN – Simple Traversal of UDP Through NATs

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

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

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