Charter IPv6 6rd and Debian Linux

    If you are like me, you always want the latest technology. IPv6 is the next BIG step up for the internet. It is a replacement protocol for the current IPv4 addressing system that is currently close to depletion.

    What does this mean? Well with IPv4 the max amount of addresses possible is 4,294,967,296. Problem is they have all been handed out to ISP’s and companies. This is where IPv6 comes in. the IPv4 format is, where xxx = 0,9.

    Well, with IPv6 the address format is xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx where xxxx= 0-9 and a-f. This means there are 340,282,366,920,938,463,463,374,607,431,770,000,000 possible IPv6 addresses! With ipv6, address depletion will be a thing of the past.

    So to stay with the game, I decided to deploy IPv6 on my servers. The only issue with it though is that my ISP seems to only offer it through a tunnel, or a IPv6 6rd tunnel to be exact. So after spending awhile with trial and error, here is how I access charters IPv6 network.

    The first thing you need to do is convert your IPv4 address to a IPv6 address block. Why is this? Well charters IPv6 server hands out address based on your CURRENT IPv4, so if you don’t have a static IP, you will probably need to use a different tunnel system such as Tunnel Broker So to do the conversion go to the following site:

So, lets say your WAN IP is – Charters IPv6 gateway IP

You should get the following for a IPv6


Well, we need to format it to work with charters IPv6 prefix, so the new address becomes


And for proper addressing, we need to define it as a IP, not a multicast, so we throw a 1 at the end


Congrats! You now have your systems calculated IPv6 Address!

Now all we need to do is add this to a virtual tunnel in /etc/network/interfaces. Here is the configuration that I use:

auto charterv6
iface charterv6 inet6 v4tunnel
address *Your calculated IPv6 address*
netmask 32
ttl 64
gateway ::
local *your WAN IPV4 address here*
up ip link set mtu 1280 dev $IFACE

DON’T FORGET to change the local to Your IPv4 Address and address to the new Calculated IPv6 address. This is critical.

Now for one last step. After having lots of trouble with the IPv6 tunnel closing after a select period of time, I found the cause of the issue to be my firewall blocking the 6rd tunnels requests. To fix this, just add the following to your iptables file.

-A INPUT –protocol 41 -j ACCEPT

Also, don’t forget to create a ip6tables firewall configuration! You don’t want to leave your system open for attacks.

Now, there are probably many other ways to do this, and possibly better ways, but this is what works for me.

Known Issues:
Currently this setup has 1 big issue, and that is that other Charter IPv6 users can’t access the server from the IPv6 address, while other providers can. From what I can tell, this is because IPv6 within the Charter network directly connects to the IPv6 address, and does not go through the 6rd tunnel causing a routing issue. I have yet to figure out a fix for that one.


Leave a Reply

Your email address will not be published. Required fields are marked *