web-dev-qa-db-ja.com

Windowsのワイヤレスインターフェイスでradvdを使用してIPv6アドレスを取得できません。有線は正常に機能します

OpenWRTを使用するようにルーターを設定し、SixXsからのトンネルを使用してIPv6を使用するように設定しました。 radvdを使用したステートレス自動構成で問題が発生しています。私のコンピューターでは、有線接続でIPv6アドレスを正常に取得できますが、無線では取得できません。

OpenWRTフォーラムでしばらく過ごした後、ルーターが正常にセットアップされ、問題はWindowsの設定にあると確信しています。また、openSUSE11.3でIPv6アドレスを取得するのに問題はありません。

では、これを解決するにはどうすればよいですか、またどのような情報を投稿する必要がありますか?

有線インターフェースのradvdump出力は次のとおりです。

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

ワイヤレスインターフェイスのradvdump出力は次のとおりです。

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

更新:TP-LINK TL-WR1043NDv1.8ルーターとルーターでBackfire10.03.1-rc4ファームウェアを使用しています。

2
AndrejaKo

奇妙なことですが、SP1 for7をインストールすると問題が解決しました。

更新:そうではありません。それはしばらくの間しか機能しませんでした、そしてそれは今再び壊れています。

UPDATE2:私は問題を理解しました。 radvdでルーターアドバタイズ時間を短く設定する必要がありました。何らかの理由で、有線インターフェイスと無線インターフェイスの両方を接続していると、ワイヤレスインターフェイスが接続したときに送信されたアドバタイズメントがWindowsで処理されないことがわかりました。 Radvdの広告期間の設定はかなり保守的であるため、手作業で短い時間を設定する必要がありました。このように、ワイヤレスは最初のアドバタイズメントを見逃しますが、2番目のアドバタイズメントをキャッチしてIPv6アドレスを取得します。

2
AndrejaKo

最善の方法は、ネットワーク接続で、プロパティにTCP/IPv6が有効として表示され、パラメーターが適切であることを確認することです。また、レジストリキーで
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters
DisabledComponentsはゼロに設定する必要があります(これが1回機能した場合はおそらくそうです)。

すべてのチェックに正しく合格した場合、唯一の説明は、Windows7と使用しているOpenWRTバージョンとの非互換性です。 Microsoftは標準に固執しないことで知られており、ほとんどのルーターメーカーは(その逆ではなく)Windowsに適応しています。

OpenWRTがLinux(あなたの場合はopenSUSE)と互換性があることは論理的です。どちらもおそらく非常に類似したソフトウェアを使用しているからです。しかし、これはWindowsには当てはまりません。

あなたはあなたのルーターのメーカーについて言及していません。ただし、いずれにせよ、Windows 7またはVistaとの互換性があると宣伝されている場合は、製造元のWebサイトから最新のファームウェアをダウンロードすることをお勧めします。このファームウェアは、OpenWRTよりもWindows7で動作する可能性が高い可能性があります。

EDIT1

私はあなたのルーターモデルを見てきましたが、そのファームウェアはIPv6をサポートしていないとも思います。

少なくとも1つ person /etc/radvd.confに「AdvLinkMTU1440」を追加することで問題を解決しました。

さらに、Windows TCP/IP自動調整を無効にしようとするかもしれません:

netsh interface tcp set global autotuning=disabled

デフォルトの動作に戻すには:

netsh interface tcp set global autotuning=normal

EDIT2

いくつかの標準的なエラー修正コマンド(最初にシステムの復元ポイントを作成します):

WINSOCKエントリをインストールのデフォルトにリセットします。

netsh winsock reset catalog

IPv4 TCP/IPスタックをインストールのデフォルトにリセットします。

netsh int ipv4 reset reset.log

IPv6 TCP/IPスタックをインストールのデフォルトにリセットします。

netsh int ipv6 reset reset.log

マシンを再起動します。

2
harrymc