Teredo
termA last-resort IPv6 transition method that tunnels IPv6 in UDP so hosts behind IPv4 NATs can still reach IPv6.
Teredo (RFC 4380) was designed as IPv6 access of last resort, for hosts behind a NAT that can use no other transition scheme. Its addresses live in 2001::/32 and its servers listen on UDP port 3544; RFC 6724 gives it precedence 5, far below native IPv6 at 40 and IPv4 at 35.
A Teredo address packs the NAT traversal into 128 bits: the 2001::/32 prefix, the Teredo server's IPv4 address, 16 bits of flags, then the client's mapped UDP port and public IPv4 address, both with every bit inverted. Illustratively, with server 192.0.2.45 and a mapping of 203.0.113.20:40000, the address is 2001:0:c000:22d:3c5a:63bf:34ff:8eeb, where 63bf is 40000 (9c40) XOR ffff and 34ff:8eeb is cb00:7114 XOR ffffffff.
Hosts assume a 1280-byte link MTU on Teredo, the IPv6 minimum. In December 2010 Geoff Huston measured Teredo connection failures at 1 to 2%, against some 13% for 6to4, yet carrier-grade NAT tests the same year found Teredo and 6to4 failing outright or badly degraded behind a CGN.
Python's ipaddress decodes the server and client addresses with the teredo property; the IPv6 Toolkit does not recognise the prefix and reports a Teredo address as ordinary global unicast.
Also known as: teredo tunneling, teredo tunnelling, 2001::/32, udp 3544, rfc 4380
Sources
- RFC 4380, Teredo: Tunneling IPv6 over UDP through Network Address Translations (NATs), February 2006: sections 1, 2.6, 2.7, 3.2, 4 and 5.1.2 (read 2026-10-18)
- RFC 6724, Default Address Selection for Internet Protocol Version 6 (IPv6), September 2012: section 2.1 (read 2026-10-18)
- Geoff Huston, Flailing IPv6, The ISP Column, December 2010: Observations (read 2026-10-18)
- RFC 7021, Assessing the Impact of Carrier-Grade NAT on Network Applications, September 2013: sections 3 and 5.1 (read 2026-10-19)