这个所谓“抨击”其实是微软的问题, “受到抨击”是“Deprecated” 的很蹩脚的中文翻译罢了。这个翻译真的很蹩脚,因为你完完全全无法从“受到抨击”联想到它的英文单词是“Deprecated”。 所以在计算机科学方面,英文的表达要比还是要比中文严谨一些。
按照 RFC 文档的规定 IPv6 地址有四种状态是分别是“Perferred”, "Valid","Deprecated", "Invalid". 当 IPv6 地址的在 Perferred Time 之内时 IPv6 地址状态是“Perferred”, 当 IPv6 地址的生命周期超过了 Preferred Time 但是没有超过 Valid Time 时 IPv6 地址的状态是“Deprecated”, 在 win7/win8 中这个英文单词被翻译成“受到抨击”。无论"Perferred"还是“Deprecated”, IPv6 地址都是“Valid”的, 当 IPv6 地址的生命周期超过 Valid Time 之后,IPv6 地址的状态是“Invalid”. 说以 Win7 出现某个 IPv6 地址显示“受到抨击”, 就是说这个 Ipv6 地址的 Lifetime 超过了 Preferred Time 却没有超过 Valid Lifetime 这种情形。
那么为什么会有 IPv6 临时地址呢?
临时地址的地址是随机生成的,主要作用是对外通讯使用,他最大的优点就是没有暴露本机 mac 地址。因为 linux 和 mac 系统在默认下是使用 EUI-64 来生成 IPv6 地址,而 windows 是默认随机生成(其实都可以改)
通俗易懂的说吧,临时地址是为了保证你安全而用到的,由于地址生成规则的统一性,也没有 NAT 规则来转换,本机 MAC 地址便赤裸裸的暴露在外面这样很不安全。
这里需要注意,如果两个 IPv6 地址(IPv6 和 IPv6 临时地址)都有时,对外通信时用的是临时的 IPv6 地址。
Windows XP 、Vista 、Windows 7 和 Windows 10 系统都会自动得到一个临时的 IPv6 地址。可通过以下命令禁止自动获取:netsh interface ipv6 setprivacy state=disable 重启网卡后再查看就没有那个临时的地址了,这时通信时用的是 IPv6 地址。
这个是 windows 由于 IPv6 地址不够匿名,而搞出来的地址随机化(后缀不同)……
windows 上两个临时 IPv6 地址会发生冲突,所以如上文所示,显示“受到抨击”,英文更准确是“ Deprecated ”,则会导致无法上网。
source:
https://www.zhihu.com/question/316884179