Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I set up my router to use OpenWRT and set it up to use IPv6 using a tunnel form SixXs. I'm having problems with stateless autoconfiguration using radvd. On my computer, wired connection can get its IPv6 address fine, but wireless can't.

After spending some time on OpenWRT forums, I'm pretty much sure now that router is set up fine and that the problem is with my windows settings. Also, I do not have any problems getting IPv6 address on openSUSE 11.3.

So what should I do to solve this and what information should I post?

Here's radvdump output for wired interface:

interface br-lan
{
        AdvSendAdvert on;
        # Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump
        AdvManagedFlag on;
        AdvOtherConfigFlag on;
        AdvReachableTime 0;
        AdvRetransTimer 0;
        AdvCurHopLimit 64;
        AdvDefaultLifetime 1800;
        AdvHomeAgentFlag off;
        AdvDefaultPreference medium;
        AdvSourceLLAddress on;

        prefix 2001:15c0:67d0::/64
        {
                AdvValidLifetime 86400;
                AdvPreferredLifetime 14400;
                AdvOnLink on;
                AdvAutonomous on;
                AdvRouterAddr off;
        }; # End of prefix definition

}; # End of interface definition

Here's radvdump output for wireless interface:

#
# radvd configuration generated by radvdump 1.6
# based on Router Advertisement from fe80::a0b7:deff:fef0:5b34
# received by interface br-lan
#

interface br-lan
{
        AdvSendAdvert on;
        # Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump
        AdvManagedFlag on;
        AdvOtherConfigFlag on;
        AdvReachableTime 0;
        AdvRetransTimer 0;
        AdvCurHopLimit 64;
        AdvDefaultLifetime 1800;
        AdvHomeAgentFlag off;
        AdvDefaultPreference medium;
        AdvSourceLLAddress on;

        prefix 2001:15c0:67d0::/64
        {
                AdvValidLifetime 86400;
                AdvPreferredLifetime 14400;
                AdvOnLink on;
                AdvAutonomous on;
                AdvRouterAddr off;
        }; # End of prefix definition

}; # End of interface definition
#
# radvd configuration generated by radvdump 1.6
# based on Router Advertisement from fe80::a0b7:deff:fef0:5b34
# received by interface br-lan
#

interface br-lan
{
        AdvSendAdvert on;
        # Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump
        AdvManagedFlag on;
        AdvOtherConfigFlag on;
        AdvReachableTime 0;
        AdvRetransTimer 0;
        AdvCurHopLimit 64;
        AdvDefaultLifetime 1800;
        AdvHomeAgentFlag off;
        AdvDefaultPreference medium;
        AdvSourceLLAddress on;

        prefix 2001:15c0:67d0::/64
        {
                AdvValidLifetime 86400;
                AdvPreferredLifetime 14400;
                AdvOnLink on;
                AdvAutonomous on;
                AdvRouterAddr off;
        }; # End of prefix definition

}; # End of interface definition

UPDATE: I'm using TP-LINK TL-WR1043ND v1.8 router and Backfire 10.03.1-rc4 firmware on the router.

share|improve this question
    
Do you have IPv6 installed on that wireless interface? –  Olli Feb 23 '11 at 12:52
1  
@Olli It should be there by default on windows 7. I can use IPv6 if I set up address by hand, so I think that I do. –  AndrejaKo Feb 23 '11 at 13:00
    
Does the system receive router advertisements over the wireless interface? –  grawity Feb 23 '11 at 13:09
    
@grawity Yes it does. I can also see activity on router using radvdump when wireless interface connects to the router. –  AndrejaKo Feb 23 '11 at 13:24
    
@Andreja: Are there any differences between router adverts that radvd sends over wired and wireless interfaces? Do they contain the same prefixes, with same flags? –  grawity Feb 23 '11 at 13:33
show 1 more comment

2 Answers

up vote 1 down vote accepted

Its strange, but installing SP1 for 7 fixed the problem for me.

UPDATE: Not really. It only worked for some time and it's broken again now.

UPDATE2: I figured out the problem. I needed to set up shorter router advertisement times in radvd. It turns out that for some reason when I have both wired and wireless interfaces connected, windows doesn't process the advertisement sent out when wireless interface connects. Radvd's settings on advertisement periods are pretty conservative, so I had to set short times by hand. This way, wireless misses the first advertisement but catches the second and gets the IPv6 address.

share|improve this answer
add comment

The best you can do is ensure that in your network connection, Properties shows TCP/IPv6 as enabled and that the parameters make sense. Also, in the registry key
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters
DisabledComponents should be set to zero (which is probably the case if this worked once).

If all checks pass correctly, then the only explanation is an incompatibility between Windows 7 and the OpenWRT version that you are using. Microsoft is known for not sticking to the standards, and most router makers adapt to Windows (rather than vice-versa).

It is logical that OpenWRT is compatible with Linux, in your case openSUSE, since both are probably using very similar software. But this is not the case for Windows.

You have not mentioned the make of your router. But in any case I would suggest trying to download the latest firmware for it from the manufacturer's website, if advertised as compatible with Windows 7 or Vista. This firmware might have a better chance of working with Windows 7 than does OpenWRT.

EDIT1

I have looked at your router model, and I believe also that its firmware doesn't support IPv6.

At least one person solved his problem by adding "AdvLinkMTU 1440" to /etc/radvd.conf.

In addition, you might try to disable Windows TCP/IP auto-tuning :

netsh interface tcp set global autotuning=disabled

To set back to the default behavior:

netsh interface tcp set global autotuning=normal

EDIT2

Some standard error-fixing commands (create first a system restore point) :

Reset WINSOCK entries to installation defaults:

netsh winsock reset catalog

Reset IPv4 TCP/IP stack to installation defaults.

netsh int ipv4 reset reset.log

Reset IPv6 TCP/IP stack to installation defaults.

netsh int ipv6 reset reset.log

Reboot the machine.

share|improve this answer
    
My problem is that original firmware, as far as I've seen, does not support IPv6 and many other features, so I really need OpenWRT. I've also noticed that when connecting to the router, if I first connect via wireless, computer gets IPv6 address on WiFi. If I first connect wired network, I don't get IPv6 address for wireless. In both cases, wired connection gets its IPv6 address automagically. –  AndrejaKo Mar 2 '11 at 15:12
    
Windows 7 only connects to one adapter at a time. What happens when connecting first via wired then disable it - does wireless come up with IPv6 ? –  harrymc Mar 2 '11 at 15:49
    
I also added some more stuff above. –  harrymc Mar 2 '11 at 16:45
    
@AndrejaKo: Have you advanced with the problem? Please note that your router is also supported by DD-WRT, which maybe will work better with Windows 7. –  harrymc Mar 4 '11 at 7:15
    
@harrymc When I connect via wired first and then enable wireless and disable wired, wireless still doesn't have IPv6 address. I've also noticed that advertisement is only sent when wireless first connects to the router and nothing happens when I disable wired interface. As for DD-WRT idea, I went that way first, but I was unable to configure IPv6 on the image for my router. I'll try with autotuning and report results. As for MTU size, largest MTU which works on my connection over IPv6 is 1380. Smaller values didn't help with address problem. –  AndrejaKo Mar 4 '11 at 13:00
show 3 more comments

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.