Teredo Address - 2001:0::/32

Teredo is another transition technology designed to aid the deployment of IPv6.  It was developed by Christian Huitema at Microsoft which was accepted as RFC 4380.  Like 6to4, Teredo gives IPv6 connectivity for IPv6 enabled hosts to other IPv6 capable hosts through IPv4 tunnel but it also works from behind Network Address Translation devices.

Teredo provides IPv6 connectivity for its hosts by encapsulating the IPv6 datagram inside an IPv4 UDP packet then transmit it just like other native IPv4 packets thus enabling it to pass through NAT devices.

Teredo address has 32 bit prefix that can be identified as 2001:0::/32 followed by 32 bit Teredo server IPv4 address, 16 bit flags, 16 bit obfuscated UDP port and the client's public IPv4 address in the last 32 bit. Here's an illustration of a Teredo address:

  • 32 bitsPrefix
  • 32 bitsTeredo Server IPv4
  • 16 bitsFlags
  • 16 bitsUDP Port
  • 32 bitsTeredo Client IPv4
  • 2001:0000
  • 4136:E378
  • 8000
  • 63BF
  • 3FFF:FDD2

In the example above, 4136:E378 is the hexadecimal representation of the IPv4 address  With the high order bit of the Flags set to 1 (which yields 1000000000000000 in binary or 8000 in hexadecimal) indicating that it's behind firewall.  The next 16 bits, 63BF is the UDP port being used which is obfuscated by Xor itself with FFFF resulting 9C40 in hexadecimal or 40000 in decimal.  The last 32 bits are the host's public IPv4 address or 3FFFFDD2 in hexadecimal which is also obfuscated by Xor with FFFFFFFF resulting C000022D or in dotted decimal format.

Click on this link to examine this Teredo address using the Advanced Online IPv6 Subnet Calculator: 2001:0000:4136:E378:8000:63BF:3FFF:FDD2