11章 IPv6过渡技术
在完成本章的学习之后,读者应该能够完成以下任务:
- 列举并描述IPv4到IPv6的过渡技术;
- 列举并描述不同类型的节点;
- 列举并描述不同类型过渡技术的使用;
- 描述IPv4与IPv6共存的机制;
- 列举并描述各类隧道技术的配置;
- 描述手工配置和自动配置的隧道技术;
- 描述Windows的PortProxy组建的目的与配置。
11.1 概述
协议之间的过渡并不容易实现,从IPv4到IPv6的过渡也不例外。通常来说,实现协议过渡的方法都是先网络的所有节点上安装并配置上新的协议,然后验证所有主机和路由器是否都能正常操作。这种做法在中小型机构中也许很容易实现,但是要想在大型机构中使用这种方法迅速地实现协议过渡则非常困难。进一步说,要通过这种方式在整个Internet的范围内对整个网络环境进行从IPv4到IPv6的快速协议过渡,则是一项不可能完成的任务。
IPv6的设计者认识到从IPv4到IPv6的过渡需要数年的时间,也知道到有些组织或组织内的节点要无限期地沿用IPv4环境。所以,既然实现网络迁移是个长远的目标,就要考虑IPv4和IPv6节点在此期间的共存。
IPv6的设计者在最初的“下一代IP协议的建议(The Recommendation for the IP Next Generation Protocol)”规范(RFC 1752)中定义了下列过渡原则:
任何时候都可升级已有的IPv4主机,且不受其他主机或路由器升级的影响;
任何时候都可加入纯IPv6的主机,且不受其他主机或路由器设备的影响;
已安装IPv6的IPv4主机可以继续使用它们的IPv4地址,无需添加额外的地址;
无论是升级已有的IPv4节点还是部署新的IPv6主机,都不需要进行太多的准备。
由于IPv4主机和IPv6主机之间、IPv4路由设备和IPv6路由设备之间缺少内在关系,因此就需要一种能够在它们之间实现无缝共存的机制。
11.1.1 节点类型
- RFC 4213,“Transition Mechanisms for IPv6 Hosts and Routers”中定义了下列类型的节点。
- 纯IPv4节点:仅实施IPv4且只分配到IPv4地址的节点。这种节点不支持IPv6。
- 纯IPv6节点:仅实施IPv6且只分配到IPv6地址的节点。纯IPv6节点只能与IPv6节点以及支持IPv6的应用进行通信。尽管这种节点现在还不多见,但随着一些只有IPv6协议栈的小型设备(如手机和手提电脑等设备)纷纷面世,这类节点会变得非常普遍。
- IPv6/IPv4节点:同时实施了IPv4和IPv6且同时分配到了IPv4和IPv6地址的节点。运行Windows Server 2012、Windows Server 2008 R2、Windows Server** 2008、Windows 8、Windows 7和Windows Vista的计算机默认就是IPv6/IPv4节点。这类节点目前非常常见,因为有很多充当客户端和服务器的计算机,以及很多网络设备目前都可以支持IPv6协议。
- IPv4节点:使用IPv4,可以发送和接收IPv4包的节点。IPv4节点既可以是纯IPv4节点,也可以是IPv6/IPv4节点。
- IPv6节点:使用IPv6,可以发送和接收IPv6包的节点。IPv6节点既可以是纯IPv6节点也可以是IPv6/IPv4节点。
- 由于可以实现共存,因此极大数量的IPv4和IPv6节点都可以通过IPv4架构、IPv6架构或两者的结合,来实现通信。当所有IPv4节点都转化为纯IPv6节点时,迁移才算真正完成。然而,在可以预见的将来,当尽可能多的纯IPv4节点转化为IPv6/IPv4节点时,迁移在实际上就已经完成了。纯IPv4节点无法直接与纯IPv6节点通信,但可以用IPv4-to-IPv6代理或转换网关,比如本章中要进行介绍的NAT64/DNS64。
11.1.2 IPv6过渡地址
- IPv4兼容地址:IPv4兼容地址是0:0:0:0:0:0:w.x.y.z或::w.x.y.z(这里的w.x.y.z是点分十进制表示的IPv4公有地址),这个地址的作用是使IPv6/IPv4节点可以通过纯IPv4架构实现IPv6通信。当一个IPv4兼容地址被用来充当IPv6目的地址时,IPv6流量会自动使用IPv4头部封装,然后通过纯IPv4架构发送到目的。但是,Windows Server 2012、Windows Server 2008 R2、Windows Server 2008、Windows 8、Windows 7和Windows Vista的IPv6协议不已经弃用了IPv4兼容地址,因此这些系统目前不支持IPv4兼容地址。
- Windows XP和Windows Server 2003的IPv6协议支持IPv4兼容地址,但默认是禁用的。如需启用IPv4兼容地址,可以使用命令netsh interface ipv6 set state v4compat=enabled。
- IPv4映射地址:IPv4映射地址0:0:0:0:0:FFFF:w.x.y.z或::FFFF:w.x.y.z用于从内部把IPv4节点表示为IPv6节点。IPv4映射地址从不会作为一个要发送出去或者接收到的IPv6数据包的源或目的地址。Windows Server 2012、Windows Server 2008 R2、Windows Server 2008、Windows 8、Windows 7和Windows Vista的IPv6协议支持IPv4映射地址。Windows XP和Windows Server 2003的IPv6协议不支持IPv4映射地址。
- 站点内自动隧道寻址协议(ISATAP)地址:RFC 5214定义的ISATAP地址通常由有效的64位单播地址前缀和接口标识符::0:5efe:w.x.y.z(w.x.y.z是分配给节点的内部IPv4地址)组成。链路本地ISATAP地址的如fe80::5efe:192.168.4.92。ISATAP主机会为它们的ISATAP隧道接口分配ISATAP地址。Windows的IPv6协议都支持ISATAP。如需进一步了解关于ISATAP的内容,请参阅第12章。
- 6to4地址:RFC 3056定义的6to4地址是一种基于前缀2002:WWXX:YYZZ:/48(这里WWXX:YYZZ是公共IPv4地址w.x.y.z的十六进制表示)的地址。6to4地址前缀用于为IPv4互联网上支持IPv6的站点创建全局地址前缀,以及为站点内的IPv6节点创建全局地址。6to4地址如2002:836b:1:25:2aa:ff:fe53:ba63。在这个例子中,836b:1是131.107.0.1的十六进制表示。Windows的IPv6协议都支持6to4。如需进一步了解相关内容,请参阅第13章。
- Teredo地址:Teredo地址定义在RFC4380中,它是一种基于前缀2001::/32的地址。Teredo地址前缀用于为连到IPv4互联网的IPv6/IPv4节点(即使它们位于NAT身后)创建全局IPv6地址。Teredo地址的一个例子是2001::ce49:7601:2cad:dfff:7c94:fffe。Windows系统的IPv6协议都支持Teredo。
时间: 2024-09-30 06:25:14