-   Linux - Networking (
-   -   6to4 ipv6 connectivity issues (

rbees 01-14-2011 11:59 AM

6to4 ipv6 connectivity issues
Ladies & Gents,

The goal: ipv6 connectivity using 6to4

The problem: no connectivity on some internal hosts (mixed win & debian) and no ipv6-web access on any host.

Let's start with my external box. It is headless debian lenny dhcp/local-dns & cache/firewall. It has the following interfaces after a reboot:

external ip dhcp
eth0      Link encap:Ethernet  HWaddr x:x:x:x:x:x 
          inet addr:x.x.x.x  Bcast:x.x.x.x  Mask:
          inet6 addr: fe80::2c0:f0ff:fe77:c8f6/64 Scope:Link

internal ip static
eth1      Link encap:Ethernet  HWaddr x:x:x:x:x:x 
          inet addr:x.x.x.x  Bcast:x.x.x.x  Mask:
          inet6 addr: fe80::2e0:29ff:fe46:976a/64 Scope:Link

tun6to4  Link encap:IPv6-in-IPv4 
          inet6 addr: 2002:x:x::1/16 Scope:Global
          inet6 addr: ::x.x.x.x/128 Scope:Compat
          UP RUNNING NOARP  MTU:1480  Metric:1

Ipv4 works flawlessly.

When I run traceroute to a 6to4 relay at


traceroute to (, 30 hops max, 60 byte packets
 1 (  6.130 ms  6.066 ms  6.020 ms
 2 (  7.292 ms  7.690 ms  7.724 ms
 3 (  7.620 ms  7.602 ms  15.062 ms
 4 (  20.601 ms  20.579 ms  20.435 ms
 5 (  20.236 ms  20.244 ms  20.216 ms
 6 (  24.081 ms  17.952 ms  17.825 ms
 7 (  17.665 ms  18.052 ms  17.804 ms
 8 (  22.109 ms  21.951 ms  21.866 ms
 9 (  21.517 ms  21.448 ms  21.422 ms

This also works from all internal hosts.

I have the following Kernel IPv6 routing table


Destination          Next Hop      Flag Met Ref Use If
::    ::                        U    1024 0    1 tun6to4
::/96                ::                        Un  256 0    0 tun6to4
2002::/16            ::                        U    256 0    0 tun6to4
fe80::/64            ::                        U    256 0    0 eth1
fe80::/64            ::                        U    256 0    0 eth0
fe80::/64            ::                        U    256 0    0 tun6to4
::/0                  ::              UG  1024 0    0 tun6to4
::/0                  ::                        !n  -1  1    2 lo
::1/128              ::                        Un  0  1    3 lo
::x.x.x.x/128    ::                        Un  0  1    0 lo
2002::/128            ::                        Un  0  1    0 lo
2002:18b4:630e::1/128 ::                        Un  0  1    0 lo
fe80::2c0:f0ff:fe77:c8f6/128  ::                        Un  0  1    0 lo
fe80::2e0:29ff:fe46:976a/128  ::                        Un  0  1    0 lo
ff00::/8              ::                        U    256 0    0 eth1
ff00::/8              ::                        U    256 0    0 eth0
ff00::/8              ::                        U    256 0    0 tun6to4
::/0                  ::                        !n  -1  1    2 lo

There were some issues with the ipv6 module not being loaded soon enough in the boot process, but I have applied the work around by placing ipv6 in the /etc/modules file.

This is the radvd.conf off the external box.


interface eth1                                                                                                                 
  AdvSendAdvert on;                                                                                                           
  prefix 2001:x:x::/64                                                                                                 
        AdvOnLink on;                                                                                                         
        AdvAutonomous on;                                                                                                     

The 6to4 tunnel is setup in /etc/network/interfaces with

auto tun6to4
iface tun6to4 inet6 v4tunnel
        address 2002:x:x::1
        netmask 16
        gateway ::
        endpoint any
        local x.x.x.x

Some of the symptoms are that some internal hosts can ping6 and others can't. None of the internal hosts have ipv6 web access through the tunnel. The issues don't seem to be related to the os installed on the internal host.

My understanding is that ipv6 will auto-configure itself and that the radvd file is all that is needed by the external host to give all the ipv6 enabled internal hosts ipv6 web access.

My question: How is my external host misconfigured? Or are the problems specific to the internal hosts?

I am assuming that I have issues on both the external and internal hosts since some of the internals have golobal ipv6 address and some don't. I do however wish to address the external host first.

Thanks for your help.

rbees 01-14-2011 12:19 PM

More info:

ping6 localhost works on the external host and an internal xp host but not on 2 internal debian hosts (1 lenny, 1 squeeze).

rbees 01-14-2011 12:32 PM

Another interesting note: In sysctl.conf ipv4 forwarding is NOT enabled, yet ipv4 is routed through this machine to the internal hosts and to the web.

rbees 01-15-2011 08:28 PM

k, it seems that my work around for the ipv6 module being loaded has not worked. because I unable no launch radvd because ipv6 is not running. That would explain why the clients are not grabbing an ipv6 address.

rbees 01-15-2011 08:50 PM

it takes this to get radvd to launch

echo "1" > /proc/sys/net/ipv6/conf/all/forwarding

it also appears that the routing table on the external is not being set up correctly

rbees 01-15-2011 09:06 PM

I am also not getting a global ip6 on the internal interface

Do I have to hard code that into the interfaces file?

rbees 01-15-2011 10:49 PM

well it seems not. Getting ipv6 forwarding tuned on and reloading the interfaces seems to have been the ticket.

I still have some firewall issues to deal with but overall I think I have the problem solved.

As for the ipv4 forwarding issue I think Arno-iptables-firewall scripts are setting that for me. It may be that when I update them for ipv6 they will take care of the ipv6 forwarding issue I have now.

Thanks to all. Hope this helps someone.

All times are GMT -5. The time now is 07:30 AM.