![Windows 7 が IPv6 ルーターとして自身を宣言しているのはなぜですか?](https://rvso.com/image/1317539/Windows%207%20%E3%81%8C%20IPv6%20%E3%83%AB%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%A8%E3%81%97%E3%81%A6%E8%87%AA%E8%BA%AB%E3%82%92%E5%AE%A3%E8%A8%80%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
Linux ボックスからブローカーへの 6in4 ipv6 接続があります。gogoc
ブローカーへの接続を確立し、radvd
ネットワーク上のクライアントにルートをアドバタイズするために使用します。
これらはすべて機能しているように見えますが、問題は同じネットワーク上に Windows 7 マシンがあり、それが IPv6 ルーターとしてアドバタイズしていることです。実際はそうではありません。
これは radvdump からの出力です:
#
# radvd configuration generated by radvdump 1.8.5
# based on Router Advertisement from [snip]:ea2
# received by interface eth0
#
interface eth0
{
AdvSendAdvert on;
# Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump
AdvManagedFlag on;
AdvOtherConfigFlag on;
AdvReachableTime 0;
AdvRetransTimer 0;
AdvCurHopLimit 0;
AdvDefaultLifetime 1800;
AdvHomeAgentFlag off;
AdvDefaultPreference medium;
AdvSourceLLAddress on;
AdvLinkMTU 1500;
}; # End of interface definition
#
# radvd configuration generated by radvdump 1.8.5
# based on Router Advertisement from [snip]:1121
# received by interface eth0
#
interface eth0
{
AdvSendAdvert on;
# Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump
AdvManagedFlag off;
AdvOtherConfigFlag off;
AdvReachableTime 0;
AdvRetransTimer 0;
AdvCurHopLimit 64;
AdvDefaultLifetime 1800;
AdvHomeAgentFlag off;
AdvDefaultPreference medium;
AdvLinkMTU 1280;
AdvSourceLLAddress on;
prefix [snip]::/64
{
AdvValidLifetime 86400;
AdvPreferredLifetime 14400;
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
}; # End of prefix definition
}; # End of interface definition
そして、最終的に 2 つのルートが考えられます。
$ ip -6 route
[snip]::/64 dev eth0 proto kernel metric 256 expires 86117sec
fe80::/64 dev eth0 proto kernel metric 256
default via [snip]:ea2 dev eth0 proto kernel metric 1024 expires 1492sec
default via [snip]:1121 dev eth0 proto kernel metric 1024 expires 1506sec
ルートea2
は Windows7 ボックスです。ルーターはインストールされておらず、tun/tap インターフェイスもありません。なぜこのようなことが起こるのかわかりません。
IPv6 を無効にすることもできますが、ルーターではなくクライアントとして使用したいです。
アップデート:IP Helper
サービス ( Provides tunnel connectivity using IPv6 transition technologies (6to4, ISATAP, Port Proxy, and Teredo), and IP-HTTPS. If this service is stopped, the computer will not have the enhanced connectivity benefits that these technologies offer.
) が原因のようです。サービスが停止すると、ルートが通知されません。したがって、私の質問は、より具体的には「なぜ IP Helper がルートを通知するのか」です。
答え1
管理者権限で実行し
netsh
、 に移動しますinterface ipv6
。show route
リストに何かあるか確認する出版されたルート。そうなった場合は、 を使用して非公開にします
set route ::/0 "Local Area Connection" publish=no
。
ただし、出力によるとradvdump
、Windows ボックスはプレフィックスをアドバタイズしていないため、Linux がそれを介してデフォルト ルートを追加する理由がわかりません。
show interface verbose
ネットワーク インターフェイスを一覧表示するために使用します。「Sends Router Advertisements」または同様の値を探します。set interface "Local Area Connection forward=disable advertise=disable
IPv6 転送とルーター広告を無効にするために使用します。
答え2
Windows 7 マシンにデフォルト ルートの場所を知らせたり、ルーターから不良ルートを削除したりしてみましたか? ICS をオンにしていない限り、これは純粋にクライアントであるはずです。