手动解决Windows7对IPv6支持的瑕疵
11-25
和互联网息息相关的IPv4地址的“剩余油量指示灯”正闪烁着即将耗尽的警告,IPv4地址只剩下5%的数量可用了,预计到明年的秋天就将彻底耗尽。对微软的最新操作系统Windows 7来说,它现在是否已经能够完美的支持将取代IPv4的IPv6呢?要我说,某种程度,它确实已经实现了支持。
事实上,Windows 7已经在支持IPv6上做出了很好的工作。它当然要比以前的那些操作系统在IPv6上工作的更好,但是,仍然有一些瑕疵。
我首先想到的一个问题是在Windows Server 2008 和 Windows 7中配置IPv6地址时采用的都还是随机接口标识。虽然Windows 7应经证明为IPv6做好了准备,但是和预定的目标还是有那么点差别。
IPv6地址的设定是不应该采取这种方式的。事实上,一个IPv6设备应该应用NDP(邻居发现协议)来确定它的网络状况和接口标识并自动的配置出128位IPv6地址。关于IPv6地址分配的相关规定,在IETF(互联网工程任务组)给出的文件中有详细说明,文件包括IETF RFC 2373(架构)、IETF RFC 2464(传输)、RFC 4941(配置)。
微软在接口标识应该如何产生的问题上似乎有些混乱,尽管微软的工程师们在RFC 4941的书写过程中提供过帮助。当然,你仍然可以强迫你的Windows 7采用正确的IPv6地址配置方法,通过在DOS界面中运行如下的命令即可:
netsh interface ipv6 set global
randomizeidentifiers=disabled
建议你将这些命令放到批处理文件或登录文件中,以实现每次启动Windows 7时自动运行上面的命令。这么做能让你避免与其他的Windows 7系统或支持IPv6的网络设备如思科的Catalyst交换机等出现一些与IPv6相关的问题。
如果Windows 7能支持SEND安全邻居发现协议(RFC 3971),那情况就很不错了。SEND是NDP的更安全的版本。应用SEND,你可以验证在你局域网中的设备是否安全有效。
依然不幸的是,尽管微软也在书写SEND这一规范的过程中提供过帮助,微软的软件工程师们依旧没在系统中将其实现。而一些主要的网络设备供应商,如思科和Juniper网络公司,已经实现了对SEND的支持。希望微软能在下一次发布的服务补丁包中,在其所有的操作系统中实现对SEND的支持,同时也包括前面提到的正确的IPv6地址配置方法的实现。毕竟,面对IPv4上的危机,更早的消除和IPv6相关的潜在的实施问题和安全担忧,局面就会更好。