由于现在整个互联网的规模太大,因此“规定一个日期,从这一天起所有的路由器一律都改用IPv6”,显然是不可行的。这样,向IPv6过渡只能采用逐步演进的办法,同时,还必须使新安装的IPv6系统能够向后兼容,即IPv6系统必须能够接收和转发IPv4分组,并且能够为IPv4分组选择路由。
下面介绍两种向IPv6过渡的策略,即使用双协议栈和使用隧道技术[RFC2473,RFC2529,RFC3056,RFC4038,RFC4213]。
1.双协议栈
双协议栈(Dual Stack)是指在完全过渡到IPv6之前,使一部分主机(或路由器)装有双协议栈:一个IPv4和一个IPv6。因此双协议栈主机(或路由器)既能够和IPv6的系统通信,又能够和IPv4的系统通信。双协议栈的主机(或路由器)记为IPv6/IPv4,表明它同时具有两种IP地址:一个IPv6地址和一个IPv4地址。
双协议栈主机在和IPv6主机通信时采用IPv6地址,而和IPv4主机通信时则采用IPv4地址。但双协议栈主机怎样知道目的主机是采用哪一种地址呢?它是使用域名系统DNS来查询的。若DNS返回的是IPv4地址,双协议栈的源主机就使用IPv4地址,但当DNS返回的是IPv6地址,源主机就使用IPv6地址。
图4-53所示的情况是源主机A和目的主机F都使用IPv6,所以A向F发送IPv6数据报,路径是A→B→C→D→E→F。中间B到E这段路径是IPv4网络,路由器B不能向C转发IPv6数据报,因为C只使用IPv4。B是IPv6/Pv4路由器,它把IPv6数据报首部转换为IPv4数据报首部后发送给C。C再转发到D。当D转发到IPv4网络的出口路由器E(E也是IPv6/IPv4路由器)时,再恢复成原来的IPv6数据报。需要注意的是:IPv6首部中的某些字段却无法恢复。例如,原来IPv6首部中的流标号X在最后恢复出的IPv6数据报中只能变为空缺。这种信息的损失是使用首部转换方法不可避免的。
2.隧道技术(www.xing528.com)
图4-53 使用双协议栈进行从IPv4到IPv6的过渡
向IPv6过渡的另一种方法是隧道技术。图4-54给出了隧道技术的工作原理。这种方法的要点就是在IPv6数据报要进入IPv4网络时,把IPv6数据报封装成为IPv4数据报。现在整个的IPv6数据报变成了IPv4数据报的数据部分。这样,IPv4数据报从路由器B经过路由器C和D,传送到E,而原来的IPv6数据报就好像在IPv4网络的隧道中传输,什么都没有变化。当IPv4数据报离开IPv4网络中的隧道时,再把数据部分(即原来的IPv6数据报)交给主机的IPv6协议栈。图4-54所示中的一条粗线表示在IPv4网络中好像有一个从B到E的“IPv6隧道”,路由器B是隧道的入口,而E是出口。请注意,在隧道中传送的数据报的源地址是B,而目的地址是E。
图4-54 使用隧道技术进行从IPv4到IPv6的过渡
若要使双协议栈的主机知道IPv4数据报里面封装的数据是一个IPv6数据报,就必须把IPv4首部的协议字段的值设置为41(41表示数据报的数据部分是IPv6数据报)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。