Charter 6rd IPV6 Tunnel on DD-WRT
Posted on 2017-1-8 (æ¥) at 6:51 pm
I have a Linksys EA6500v1 at this house with Charter internet. This particular router doesn't have a good version of Tomato or OpenWRT available for it, so I was stuck with DD-WRT. And Charter does not have native IPV6 support, only a 6rd tunnel.
I will describe here how to configure DD-WRT for a 6rd tunnel such as the one Charter has.
Setup -> IPV6
Set IPV6 to Enabled, choose "Native IPV6 from ISP" (even though this is a lie) and add Google's IPV6 DNS servers for Static DNS 1 and 2, which are:
2001:4860:4860::8888 2001:4860:4860::8844
Leave everything else disabled.
Services -> Services
Under DNSMasq options, in "Additional DNSMasq Options", paste this block:
server=2001:4860:4860::8888 server=2001:4860:4860::8844 server=8.8.8.8 server=8.8.4.4 enable-ra dhcp-range=::1, ::400, constructor:br0, ra-stateless, ra-names, 12h dhcp-option=option6:dns-server,[::] dhcp-option=vendor:MSFT,2,1i
This uses Google's public DNS for both IPV6 and IPV4. Local DNS will work (make sure you have that enabled.)
Administration -> Commands
In the "Commands" box, paste this script:
HOST6RD=6rd.charter.com PREFIX=2602:100 ROUTER_LAN_IP=192.168.1.1 insmod /lib/modules/`uname -r`/ipv6.ko 2>/dev/null insmod /lib/modules/`uname -r`/kernel/net/ipv6/sit.ko 2>/dev/null WANIP="$(ifconfig vlan2 | sed -n '/inet /{s/.*addr://;s/ .*//;p}')" IP6RD=$(nslookup $HOST6RD 2>/dev/null | grep "Address" | awk '{ print $3 }'|\ grep -v $ROUTER_LAN_IP) if [ -n "$WANIP" ]; then V6PREFIX=$(printf $PREFIX':%02x%02x:%02x%02x' $(echo $WANIP | tr . ' ')) ip tunnel add tun6rd mode sit local $WANIP ttl 255 ip tunnel 6rd dev tun6rd 6rd-prefix $PREFIX::/32 ip addr add $V6PREFIX::1/32 dev tun6rd ip addr add $V6PREFIX::1/64 dev br0 ip link set tun6rd mtu 1476 ip link set tun6rd up ip route add ::/0 via ::$IP6RD dev tun6rd kill -HUP $(cat /var/run/radvd.pid) 2>/dev/null fi
Edit the three variables at the top for your 6rd tunnel configuration and router LAN IP.
Now click "Save Startup".
Now paste this script in the "Commands" box:
ip6tables -F FORWARD ip6tables -F OUTPUT
And click "Save Firewall".
Administration -> Management -> Reboot Router
Reboot the router and IPV6 should now work on all clients.
Go to http://test-ipv6.com/ to check, your score should be 10/10.
References
- https://www.dd-wrt.com/wiki/index.php/IPv6#6rd
-
I started with the script here, which no longer works, and uses radvd.
- http://kdwink.blogspot.com/2013/05/ipv6-with-charter-communications.html
-
Got charter specific info like the tunnel host and prefix from here.
- http://www.litech.org/6rd/
-
Modified the script using this guide and got it to work, still using radvd which doesn't support DNS for Windows hosts.
- https://www.dd-wrt.com/phpBB2/viewtopic.php?t=290486&postdays=0&postorder=asc&start=0
-
Used the discussion here to replace radvd with dnsmasq, which supports windows hosts correctly.
Last modified: 2017-1-10 (ç«) at 4:07 pm