Nie można uzyskać adresu IPv6 za pomocą radvd na interfejsie bezprzewodowym w systemie Windows, przewodowe działa dobrze

2

Skonfigurowałem router do korzystania z OpenWRT i skonfigurowałem go do używania IPv6 przy użyciu tunelu SixXs. Mam problemy z bezstanową autokonfiguracją za pomocą radvd. Na moim komputerze połączenie przewodowe może mieć poprawny adres IPv6, ale połączenie bezprzewodowe nie.

Po spędzeniu czasu na forach OpenWRT jestem prawie pewien, że router jest dobrze skonfigurowany i że problem dotyczy moich ustawień systemu Windows. Nie mam też problemów z uzyskaniem adresu IPv6 w openSUSE 11.3.

Co więc powinienem zrobić, aby rozwiązać ten problem i jakie informacje powinienem opublikować?

Oto wyjście radvdump dla interfejsu przewodowego:

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

Oto wyjście radvdump dla interfejsu bezprzewodowego:

#
# 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

AKTUALIZACJA: Używam routera TP-LINK TL-WR1043ND v1.8 i oprogramowania wewnętrznego Backfire 10.03.1-rc4 na routerze.

AndrejaKo
źródło
Czy na tym interfejsie bezprzewodowym jest zainstalowany protokół IPv6?
Olli
1
@Olli Powinno tam być domyślnie w Windows 7. Mogę używać IPv6, jeśli ręcznie skonfiguruję adres, więc myślę, że tak.
AndrejaKo
Czy system odbiera reklamy routera przez interfejs bezprzewodowy?
grawitacja
@grawity Tak to robi. Widzę także aktywność na routerze za pomocą radvdump, gdy interfejs bezprzewodowy łączy się z routerem.
AndrejaKo
@Andreja: Czy są jakieś różnice między reklamami routera, które radvdprzesyłają interfejsy przewodowe i bezprzewodowe? Czy zawierają te same prefiksy, z tymi samymi flagami?
grawity

Odpowiedzi:

2

Najlepsze, co możesz zrobić, to upewnić się, że w twoim połączeniu sieciowym Właściwości pokazuje TCP / IPv6 jako włączony i że parametry mają sens. Ponadto w kluczu rejestru
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters
DisabledComponents należy ustawić na zero (co prawdopodobnie ma miejsce, jeśli zadziałało to raz).

Jeśli wszystkie testy przebiegną poprawnie, jedynym wyjaśnieniem jest niezgodność między Windows 7 a używaną wersją OpenWRT. Microsoft znany jest z tego, że nie przestrzega standardów, a większość producentów routerów dostosowuje się do systemu Windows (a nie odwrotnie).

Logiczne jest, że OpenWRT jest kompatybilny z Linuksem, w twoim przypadku openSUSE, ponieważ oba prawdopodobnie używają bardzo podobnego oprogramowania. Ale nie dotyczy to Windows.

Nie wspomniałeś o marce routera. Ale w każdym razie sugerowałbym próbę pobrania najnowszego oprogramowania dla niego ze strony producenta, jeśli jest reklamowane jako zgodne z Windows 7 lub Vista. To oprogramowanie może mieć większą szansę na pracę z Windows 7 niż OpenWRT.

EDYCJA 1

Przyjrzałem się twojemu modelowi routera i wierzę również, że jego oprogramowanie układowe nie obsługuje IPv6.

Przynajmniej jedna osoba rozwiązała swój problem, dodając „AdvLinkMTU 1440” do /etc/radvd.conf.

Ponadto możesz spróbować wyłączyć automatyczne dostrajanie TCP / IP systemu Windows:

netsh interface tcp set global autotuning=disabled

Aby przywrócić domyślne zachowanie:

netsh interface tcp set global autotuning=normal

EDYCJA 2

Niektóre standardowe polecenia naprawiania błędów (najpierw stwórz punkt przywracania systemu):

Zresetuj wpisy WINSOCK do domyślnych ustawień instalacji:

netsh winsock reset catalog

Zresetuj stos TCP / IP IPv4 do wartości domyślnych instalacji.

netsh int ipv4 reset reset.log

Zresetuj stos TCP / IP IPv6 do wartości domyślnych instalacji.

netsh int ipv6 reset reset.log

Uruchom ponownie maszynę.

harrymc
źródło
Mój problem polega na tym, że oryginalne oprogramowanie, o ile widziałem, nie obsługuje IPv6 i wielu innych funkcji, więc naprawdę potrzebuję OpenWRT. Zauważyłem również, że podczas łączenia się z routerem, jeśli najpierw połączę się bezprzewodowo, komputer otrzymuje adres IPv6 na Wi-Fi. Jeśli najpierw podłączę sieć przewodową, nie otrzymam adresu IPv6 dla sieci bezprzewodowej. W obu przypadkach połączenie przewodowe uzyskuje automatycznie adres IPv6.
AndrejaKo,
System Windows 7 łączy się tylko z jedną kartą naraz. Co dzieje się, gdy najpierw łączysz się przewodowo, a potem wyłączasz - czy sieć bezprzewodowa ma IPv6?
harrymc
Dodałem także więcej rzeczy powyżej.
harrymc
@AndrejaKo: Czy udało Ci się rozwiązać problem? Pamiętaj, że twój router jest również obsługiwany przez DD-WRT, który być może będzie działał lepiej w systemie Windows 7.
harrymc
@harrymc Gdy najpierw połączę się przewodowo, a następnie włączam bezprzewodowo i wyłączam przewodowy, bezprzewodowy wciąż nie ma adresu IPv6. Zauważyłem również, że reklama jest wysyłana tylko wtedy, gdy sieć bezprzewodowa po raz pierwszy łączy się z routerem i nic się nie dzieje po wyłączeniu interfejsu przewodowego. Jeśli chodzi o pomysł DD-WRT, poszedłem najpierw tą drogą, ale nie byłem w stanie skonfigurować IPv6 na obrazie dla mojego routera. Spróbuję z autotuningiem i raportuję wyniki. Jeśli chodzi o rozmiar MTU, największy MTU, który działa na moim połączeniu przez IPv6, to 1380. Mniejsze wartości nie pomogły w rozwiązaniu problemu z adresem.
AndrejaKo,
2

Dziwne, ale zainstalowanie dodatku SP1 dla wersji 7 rozwiązało problem.

AKTUALIZACJA: Niezupełnie. Działało to tylko przez jakiś czas i teraz jest znowu zepsute.

AKTUALIZACJA 2: Odkryłem problem. Musiałem ustawić krótsze czasy reklam routera w radvd. Okazuje się, że z jakiegoś powodu, gdy mam podłączone zarówno interfejsy przewodowe, jak i bezprzewodowe, system Windows nie przetwarza reklamy wysyłanej po połączeniu interfejsu bezprzewodowego. Ustawienia Radvd dotyczące okresów reklamowych są dość konserwatywne, więc musiałem ustawić krótkie czasy ręcznie. W ten sposób sieć bezprzewodowa omija pierwszą reklamę, ale łapie drugą i otrzymuje adres IPv6.

AndrejaKo
źródło