Networking/Computing Tips/Tricks

Teredo Tunnels are a way to create a tunnel between two IPv6 end points (your computer and a web server) across the IPv4 network (your home or business and the Internet).  In Windows 7 (and I believe Vista as well) you do not have to worry about using this if your home or business does not yet support IPv6.  This should be alarming to all network administrators, because it probably means that people inside their network can tunnel out of their network flying through all firewalls!  The good news here is that Teredo tunnels are not "automatic"; in other words, Microsoft has configured the protocol stack so that no connection is attempted to the IPv6 DNS.  Teredo has been implemented as a "static" configuration, requiring us to statically configure the tunnel to specific destinations rather than simply use it in a web browser.

First, we need to examine the configuration of the system you are using.

  1. Since most of the steps require us to use the CMD Prompts in Administrator mode, begin by creating a shortcut to the CMD window on your desktop (right click on the desktop, select "New", select "Shortcut", enter "cmd" in the dialogue), then right click on that shortcut, and select "Run as Administrator".
  2. Enter "route print" at the command line.  It may scroll off the screen, but look for the "Teredo Tunneling Pseudo-Interface" at the top part of the output.  You can see below that mine was #29. routeprintcap
  3. Now, let's check the status of your Teredo Tunnel.  This is done using the "netsh" command (you can read more about netsh here).  At the command line, enter "netsh".
    netsh_tool
  4. You will be at the netsh prompt as shown.  Now enter "interface ipv6". Note the prompt changes.
    netshintipv6
  5. Now, lets display your ipv6 information.  At this new prompt enter "show interfaces".  Your output may differ, but you should see a couple of interesting things.  Note your matching interface number for the Teredo Tunnel (mine was 29), note the smaller minimum IPv6 MTU of 1280, and note that you may have a default 6TO4 adapter.  Also note the IPv6 loopback interface has a default MTU of 4 gigabytes!
    netshshowint
  6. Now, let's examine the status of the Teredo Tunnel.  At the same netsh interface ipv6 prompt, enter "show teredo".  You will see there is a default server configured and the state should be dormant.
    netshshteredo
  7. Next, let's create a default route to send all IPv6 traffic down the Teredo interface.    At the command prompt enter "add route ::/0 interface=##" replacing the ## with your interface number. You will get an "Ok" response.
    netshaddroute
  8. Great!  Let's see if it works.  The only way to test this is to now attempt to contact an IPv6 server.  First open a second CMD window (does not have to be Run as Administrator).  Try "ping -6 ipv6.google.com".  Two things will happen:
    1. 1st the ipv6.google.com will be resolved by the AAAA IPv6 DNS.  You will see the IPv6 address.
    2. 2nd you should get valid responses from the IPv6 site.
      ipv6ping
    3. You can also check back in your first CMD window to look at the change in state of the Teredo configuration.  Re-enter "show teredo" and you will see that Windows has enabled the interface and it will display the PAT (Port Address Translation) information.
      netshshteredoop

Congratulations!  You have successfully built and used an IPv6 Teredo Tunnel!

To remove this static route, from the netsh interface ipv6 prompt, enter "delete route ::/0 interface=29".  You will get an "Ok"

Also, if you have been playing a little too much and want to reset the ntesh configurations to default, simply type "netsh interface ipv6 reset", and then reboot.

Comments powered by CComment

Find by Tag

4G Networks 5G Networks 6LoWLAN 6LoWPAN 802.11 802.11ah 802.11ax 802.11ay 802.11az Ad-Hoc Addressing Analysis Ansible Architecture ARP Assessment AToM Automation Baseline BGP Bloom's Taxonomy Cable cat CellStream Cellular Central Office Cheat Sheet Chrome Cisco Cloud CMD Computer Consulting Data Center Data Networking Dependencies DHCPv6 DNS Docker Documentation Dublin-Traceroute dumpcap Earth Earthquakes ECMP Ethernet Ethics Etiquette Evaluation Field Operations Fragmentation G-MPLS Gauge GeoIP GNS3 Google GQUIC Hands-On History Home Network ICMP ICMPv6 IEEE 802.11p IEEE 802.15.4 India Internet IoT IPsec IPv4 IPv6 IRINN IS-IS L2VPN L3VPN LDP LifeNet Linux LLN LoL M-BGP MAC Macro Microsoft mininet Monitoring MPLS mtr MTU Multicast Murphy Name Resolution Netcat NetMon netsh Networking nmap NSE Observations Online School OpenFlow OSPF OSPFv2 OSPFv3 OSX OTT Paris-Traceroute Parrot PIM PMTU Policy POTS POTS to Pipes PPP Profile Project Management PW3E QoS QUIC Railroad Remote Desktop Requirements Resume Review RIP Routing RPL RSVP Rural SDN Security Service Provider Small Business SONET Speed SSH SSL Status Storms Subnetting SYSCTL T-Shark TCP TCP/IP Telco Telecom 101 Telecommunications Telephone Testing TLS Tools Traceroute Traffic Engineering Training Travel Tunnel Ubuntu Utility Video Virtualbox Virtualization VoIP VRF VXLAN Wi-Fi Wi-Fi 4 Wi-Fi 5 Wi-Fi 6 Windows Wireless Wireless 5G Wireshark WLAN Writing Zenmap ZigBee

Twitter Feed