STUN
siglaSignifica: Session Traversal Utilities for NAT
Um protocolo com que um host atrás de NAT pergunta a um servidor de que endereço e porta públicos seus pacotes chegaram.
O Session Traversal Utilities for NAT (RFC 8489) atende aplicações de voz, vídeo e peer-to-peer: informa o mapeamento que um NAT criou, verifica a conectividade entre endpoints e mantém os mapeamentos vivos. Sozinho não resolve a travessia de NAT; é uma ferramenta que essas soluções usam.
O cliente envia um Binding request, por padrão para a porta 3478 sobre UDP ou TCP, ou 5349 sobre TLS ou DTLS. O servidor copia o endereço e a porta de origem que enxerga, o reflexive transport address criado pelo NAT mais próximo dele, num atributo XOR-MAPPED-ADDRESS da resposta.
O XOR é uma defesa contra middleboxes. Alguns NATs reescreviam qualquer campo binário que contivesse o próprio endereço público, um ALG genérico bem-intencionado e equivocado que quebrava o STUN e sua verificação de integridade, então a porta passa por XOR com os 16 bits mais altos do magic cookie 0x2112A442 e um endereço IPv4 com o cookie inteiro. Um mapeamento 203.0.113.1:51234 viaja como porta 0xE930 e endereço 0xEA12D543.
O que o STUN descobre só serve se o NAT reaproveitar o mapeamento para qualquer destino: a RFC 4787 torna o endpoint-independent mapping obrigatório para que esses métodos funcionem, e o UDP hole punching depende dele. Textos antigos classificam NATs com os nomes originais do STUN, cone e simétrico, que a RFC 4787 aposentou por causarem confusão. A RFC 8489 torna obsoleta a RFC 5389.
Também conhecido como: stun server, xor-mapped-address, reflexive transport address, rfc 8489, rfc 5389
Fontes
- RFC 8489, Session Traversal Utilities for NAT (STUN), February 2020: abstract and sections 2, 5, 8.1 and 14.2 (read 2026-10-19)
- RFC 4787, Network Address Translation (NAT) Behavioral Requirements for Unicast UDP, January 2007: sections 3 and 4.1 (read 2026-10-19)
- RFC 5128, State of Peer-to-Peer (P2P) Communication across Network Address Translators (NATs), March 2008: sections 3.3 and 5.1 (read 2026-10-19)