Teredo (informática)

De Wikipedia, la enciclopedia libre

Teredo es una tecnología de transición que proporciona conectividad IPv6 a hosts que soportan IPv6 pero que se encuentran conectados a Internet mediante una red IPv4.[1]​ Comparado con otros protocolos similares, la característica que lo distingue es que es capaz de realizar su función incluso detrás de dispositivos NAT, como los routers domésticos.[1]

Teredo opera usando un protocolo de túneles independiente de la plataforma diseñado para proporcionar conectividad IPv6 encapsulando los datagramas IPv6 dentro de datagramas UDP IPv4. Estos datagramas pueden ser encaminados en Internet IPv4 y a través de dispositivos NAT. Otros nodos Teredo, también llamados Teredo relays, que tienen acceso a la red IPv6, reciben los paquetes, los desencapsulan y los encaminan.

Teredo está diseñado como una tecnología de transición con el objetivo de ser una medida temporal. En el largo plazo, todos los hosts IPv6 deberían usar la conectividad IPv6 nativa y desactivar Teredo cuando la conectividad IPv6 esté disponible.

Historia[editar]

Teredo fue desarrollado en febrero de 2006 por Christian Huitema en Microsoft y fue normalizado por la IETF en RFC 4380. En septiembre de 2010 se establecieron unas mejoras en aras de la seguridad (RFC 5991), manteniendo su retrocompatibilidad. Bajo la norma RFC 6081 se establecieron unos complementos para mejorar su eficiencia y compatibilidad con varios tipos de NAT.

Objetivo[editar]

El protocolo de túneles IPv6 sobre IPv4 más común, 6to4, requiere que el final del túnel tenga una dirección IPv4 pública. Sin embargo, actualmente muchos hosts se conectan a Internet IPv4 a través de uno o varios dispositivos NAT, por lo general por el agotamiento de las direcciones IPv4. En esta situación, la única dirección IPv4 pública se asigna al dispositivo NAT y es necesario que el protocolo 6to4 esté implementado en este dispositivo. Muchos de los dispositivos NAT usados actualmente no pueden ser actualizados para implementar 6to4 por razones técnicas o económicas.

Teredo soluciona este problema encapsulando paquetes IPv6 dentro de datagramas UDP IPv4, los cuales pueden ser reenviados correctamente por NATs. Por lo tanto los hosts IPv6 que se encuentran detrás de dispositivos NAT pueden usar los túneles Teredo incluso si no disponen de una dirección IPv4 pública. Un host que implemente Teredo puede tener conectividad IPv6 sin cooperación por parte de la red local o del dispositivo NAT. Un servidor Teredo escucha en el puerto UDP 3544 y sus direcciones IPv6 ostentan el prefijo 2001:0::/32.[2]

Teredo pretende ser una medida temporal. En el largo plazo todos los hosts deberían usar la conectividad nativa IPv6. El protocolo Teredo incluye una disposición para el proceso de extinción del protocolo: "Una implementación Teredo debería proporcionar una forma para dejar de usar la conectividad Teredo cuando IPv6 haya madurado y la conectividad esté disponible usando un mecanismo menos frágil".

Véase también[editar]

Referencias[editar]

  1. a b «Teredo Overview» [Resumen de Teredo] (html). Blog técnico de Microsoft Corporation (en inglés). 15 de enero de 2007. Archivado desde el original el 22 de mayo de 2018. Consultado el 8 de junio de 2020. «Teredo is an IPv6 transition technology that provides address assignment and host-to-host automatic tunneling for unicast IPv6 traffic when IPv6/IPv4 hosts are located behind one or multiple IPv4 network address translators (NATs). To traverse IPv4 NATs, IPv6 packets are sent as IPv4-based User Datagram Protocol (UDP) messages.» 
  2. Huston, Geoff (19 de abril de 2011). «Testing Teredo» [Probando Teredo] (html). RIPE NCC (en inglés). Archivado desde el original el 24 de abril de 2011. Consultado el 8 de junio de 2020. «Teredo, like 6to4, is an auto-tunnelling protocol coupled with an addressing structure. Like 6to4, Teredo uses its own address prefix, and all Teredo addresses share a common IPv6 /32 address prefix, namely 2001:0::/32. The next 32 bits are used to hold the IPv4 address of the Teredo server.» 

Enlaces externos[editar]