This post describes how I enabled IPv6 on my home network (ISP is Charter Communications). After completing the steps described here the following is true:
- All computers on my network now have a public IPv6 address (though a firewall limits external access to only some of them).
- My locally hosted websites are now accessible over IPv6.
- My web browser can now reach IPv6-only web sites.
- My web browser now scores 10 out of 10 on IPv6 connectivity tests.
Charter provides an IPv6 border relay: Charter IPv6 6rd Page. Through the relay you get your own /64 of publicly routeable IPv6 addresses-- that's 2^64 = 18 quintillion IP address, an old internet squared, just for you.
Step 1: Install OpenWrt
My router is a Netgear wndr3700v1. The default firmware does not support 6rd. I replaced my router firmware with OpenWrt. I installed the latest version, "Barrier Breaker Release 14.07". After installation is complete set the root password:telnet 192.168.1.1
passwd <set new root password>
Now the router should only be accessible via ssh.
ssh root@192.168.1.1
Step 2: Install OpenWrt web interface
OpenWrt builds do not include a web interface by default (only command line), but it is easy to add one. After installing OpenWrt, I logged into my router (ssh root@192.168.1.1) and installed the LuCI web interface. Five easy LuCI installation commands here. There are also images with LuCI pre-installed.
opkg update
ppdk install luci
ppdk install luci-ssl
opkg install luci-theme-openwrt
/etc/init.d/uhttpd start
/etc/init.d/uhttpd enable
opkg update
ppdk install luci
ppdk install luci-ssl
opkg install luci-theme-openwrt
/etc/init.d/uhttpd start
/etc/init.d/uhttpd enable
Step 3: Install OpenWrt packages for IPv6 and 6rd
opkg install 6rdopkg install luci-proto-ipv6
Step 4: Create an interface for the 6rd tunnel
In Luci Navigate to Network -> Intefaces, then click "Add new Interface..." Add an interface named "WAN6":Default Advanced settings. The firewall tab should look like this:
That's it. Devices on your network will now be assigned IPv6 addresses in addition to IPv4 addresses. By default inbound IPv6 connections are blocked by the firewall. To allow traffic through to one or more IPv6 addresses Network -> Firewall.
I have been using this setup for more than a year now. At my house everything is dual stack (IPv4 + IPv6) Windows, Linux, phones, tablets, etc. I recently upgraded to Charter's 100Mb/sec service. According to IPv6 speed tests I also get close to 100Mb/sec over IPv6.
Relevant links
- Google IPv6 statistics: http://www.google.com/ipv6/statistics.html
- IPv4 exhaustion countdown: http://www.potaroo.net/tools/ipv4/index.html
- IPv6 test site: http://test-ipv6.com/
- OpenWRT: https://openwrt.org/
- OpenWRT installation: http://wiki.openwrt.org/doc/howto/generic.flashing
- OpenWRT table of hardware: http://wiki.openwrt.org/toh/start
- LuCI OpenWRT web interface site: http://luci.subsignal.org
- Charter IPv6 Info: http://www.myaccount.charter.com/customers/Support.aspx?SupportArticleID=2665#ipv6prep
Let me know
Let me know if this guide was helpful. Similarly if you find an omission or error let me know, and I'll make updates for the benefit of everyone.