Charter 6rd IPV6 Tunnel on DD-WRT

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:


Leave everything else disabled.

Services -> Services

Under DNSMasq options, in "Additional DNSMasq Options", paste this block:


dhcp-range=::1, ::400, constructor:br0, ra-stateless, ra-names, 12h 

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:

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/ 2>/dev/null

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 to check, your score should be 10/10.


I started with the script here, which no longer works, and uses radvd.

Got charter specific info like the tunnel host and prefix from here.

Modified the script using this guide and got it to work, still using radvd which doesn't support DNS for Windows hosts.

Used the discussion here to replace radvd with dnsmasq, which supports windows hosts correctly.

Last modified: 2017-1-10 (火) at 4:07 pm