Os clientes Teredo basicamente envolvem um pacote IPv6 em um pacote IPv4 UDP e o encaminham para um servidor Teredo.
- O servidor Teredo está executando um endereço IPv4 acessível publicamente.
- O servidor encaminha o pacote IPv6 encapsulado para o destino pretendido.
- O cliente Teredo usa o tráfego "keep alive" com o servidor.
- Isso mantém o mapeamento de NAT entre a porta de origem do cliente e o endereço IP público (o IP público do "cliente" ou do roteador).
- Existe um intervalo de "atualização" no qual o cliente verifica se a porta de origem ainda é válida.
- Esse intervalo é aleatoriamente variado pelo serviço Teredo.
- As portas de origem podem sofrer alterações e é importante que o servidor Teredo saiba como chegar até o cliente.
- O Teredo age quase como um serviço de encaminhamento de porta dinâmico que rastreia o endereço IP público e a porta de origem do cliente.
- Ao acompanhar a porta de origem e o IP, isso permite que o servidor Teredo atinja diretamente o cliente, essencialmente ignorando o NAT sem a necessidade de configuração.
O Teredo não parece jogar muito bem com o NAT simétrico.
- NAT simétrico altera aleatoriamente a porta de origem "externa" por sessão
- Primeiro, o endereço IP é alterado do endereço não roteável da fonte para o endereço IP público.
-
Próximo a porta de origem é alterada aleatoriamente, com o mapeamento existente apenas na memória do roteador.
- Quando a comunicação é concluída, a porta de origem não está mais em uso
- Uma nova porta de origem aleatória é escolhida para a próxima sessão.
De alguma forma, Teredo no Windows Vista e mais recente supera isso, mas ainda não encontrei uma explicação clara de como.
Por favor, leia o RFC da IETF em Teredo para mais detalhes.
Nota: percebo que este tópico é bastante antigo, mas atualmente é o maior hit na pesquisa interna do SuperUser por "What is Teredo Tunneling". Eu queria fornecer uma resposta mais genérica, pois era isso que eu procurava quando cheguei aqui.