网络应用解决方案 IPv6过渡技术简介(4)

【作者】   2008年1月21日    阅读次数:532
本文关键字 NGI知识库

4 、 IPv6 与 IPv4 互通技术
         IPv6 穿越 IPv4 技术是为了实现 IPv6 节点之间的互通,而 IPv6/IPv4 互通技术是为了实现不同协议之间的互通。也就是使 IPv6 主机可以访问 IPv4 主机, IPv4 主机可以访问 IPv6 主机。相关的技术有:
         SIIT ( Stateless IP/ICMP Translation )
         NAT-PT
4.1 SIIT
        SIIT ( Stateless IP/ICMP Translation ),无状态 IP/ICMP 翻译技术用于对 IP 和 ICMP 报文进行协议转换,这种转换不记录流的状态,只根据单个报文将一个 IPv6 报文头转换为 IPv4 报文头,或将 IPv4 报文头转换为 IPv6 报文头。 SIIT 不需要 IPv6 主机获取一个 IPv4 地址,但对于 SIIT 设备来说,每一个 IPv6 主机有一个虚拟的临时 IPv4 地址。
         在 SIIT 中,有以下几种地址类型:
        IPv4-mapped :地址的形式为“ 0::FFFF:a.b.c.d ”,表示不支持 IPv6 能力的节点,这种地址是 IPv4 节点在 IPv6 侧的映射地址。
        IPv4-translated :地址的形式为“ 0::FFFF:0:a.b.c.d ”,表示一个支持 IPv6 的节点。该地址在发送到 IPv4 侧时需要翻译为 IPv4 地址。
        SIIT 技术使用特定的地址空间来完成 IPv4 地址与 IPv6 地址的转换。因为 SIIT 无法进行地址复用,所以地址池的空间限制了 IPv6 节点的数量。在通讯过程中,当 SIIT 中 IPv4 地址池中地址分配完时,如果有新的 IPv6 节点需要同 IPv4 节点通信,就会因为没有剩余的 IPv4 地址空间而导致 SIIT 无法进行协议转换,造成通信失败。所以 SIIT 技术所能应用的网络规模不能很大。另外,由于无状态,所以,不能很好地支持应用层数据中内嵌地址的应用。
4.2 NAT-PT
         NAT-PT ( Network Address Translation-Protocol Translation ),允许只支持 IPv6 协议的主机与只支持 IPv4 协议的主机进行互联,一个位于 IPv4 和 IPv6 网络边界的设备负责在 IPv4 报文与 IPv6 报文之间进行翻译转换。 NAT-PT 把 SIIT 协议转换技术和 IPv4 网络中动态地址转换技术( NAT )结合在一起,它利用了 SIIT 技术的工作机制,同时又利用传统的 IPv4 下的 NAT 技术来动态地给访问 IPv4 节点的 IPv6 节点分配 IPv4 地址,很好地解决了 SIIT 技术中全局 IPv4 地址池规模有限的问题。同时,通过传输层端口转换技术使多个 IPv6 主机共用一个 IPv4 地址。
         NAT-PT 设备上需要设置 IPv4 主机的转换规则、 IPv6 主机的转换规则、 IPv6 主机使用的 IPv4 地址。报文经过 NAT-PT 设备时,根据 NAT-PT 的转换规则对报文进行协议转换。转换规则分为如下几种:
         IPv4 主机的静态规则:一个 IPv4 主机对应一个虚拟的 IPv6 地址。
         IPv4 主机的动态规则:一组 IPv4 主机的地址如何映射成 IPv6 地址。通常是指定一个 96 位的前缀添加在原 IPv4 地址前面组成一个 IPv6 地址。
         IPv6 主机的静态转换规则:一个 IPv6 主机对应一个虚拟 IPv4 地址。
         IPv6 主机的动态转换规则:一组 IPv6 主机与 IPv4 地址的对应关系, IPv4 地址是多个 IPv6 主机共享的资源。
         静态 NAT-PT 是由 NAT-PT 网关静态配置 v6 和 v4 地址绑定关系。当 v4 主机与 v6 主机之间互通时,其报文在经过 NAT-PT 网关时,由网关根据配置的绑定关系进行转换。不管是 IPv6 主机还是 IPv4 主机,如果配置了静态绑定关系,则另外一侧的主机可以主动向其发起连接。
         静态配置对那些经常在线,或需要能提供稳定连接的主机比较适合。对于那些不经常使用的主机,可以采用动态配置的方法,这样可以配置简单。
        如下图所示, IPv4 侧主机采用了静态映射,而 IPv6 侧主机采用动态映射。当 PC1 向 PC2 发送报文时,其源地址为 1::3 ,目的地址 1234::9 。此报文在到达 NAT-PT 网关,目的地址符合 IPv4 静态规则, IPv4 报文的目的地址为 1.2.2 .9 。而 IPv6 报文的源地址符合 IPv6 主机的动态规则,则从规则的地址池中选择一个未使用的地址,假设是 1.4.2.8 ,作为 IPv4 报文的源地址。那么转换后的 IPv4 报文就是源 1.4.2.8 ,目的地址为 1.2.2.9 。


                                                           图 4-1 动态 NAT-PT 示意图
         在动态 NAT-PT 中, IPv4 地址池中的地址可以复用,也就是若干个 IPv6 地址可以转换为一个 IPv4 地址,它利用了上层协议( UDP/TCP 的端口)映射的方法。
         动态 NAT-PT 改进了静态 NAT-PT 配置复杂,消耗大量 IPv4 地址的缺点。由于它采用了上层协议映射的方法,所以只用很少的 IPv4 地址就可以支持大量的 IPv6 到 IPv4 的转换。但是,由于 IPv6 侧的映射是动态的,如果 IPv4 侧向 IPv6 发起连接,由于不知道 IPv6 主机应用映射后的结果,所以无法直接向 IPv6 主机连接。这需要结合 DNS ALG 来实现。
        ALG ( Application Level Gateway ),是应用层网关的含义。有些应用,比如 DNS 、 FTP 等,在应用层载荷中包含 IP 地址、端口等信息,需要对报文中的某些 IP 地址进行转换。通过 DNS ALG ,可以做到 IPv4 与 IPv6 网络中任一方均可主动发起连接,只需要配置一个 DNS 服务器的静态映射即可。
        IPv4 主机要访问 IPv6 主机 www.a.com ,首先向 IPv6 网络中的 DNS 发出名字解析请求,报文类型为“ A ”类查询报文。这个请求到达 NAT-PT 后, NAT-PT 对报文头部按普通报文进行转换。同时,由于 DNS 报文需要进行 ALG 处理,把“ A ”类查询请求转换成“ AAAA ”或“ A 6 ” 类型,然后将此报文转发给 IPv6 网络内的 DNS 。
IPv6 网络中的 DNS 服务器收到报文后,查询自己的记录表,解析出主机 www.a.com 的 IPv6 地址是 1::3 ,回应查询结果。此报文被 NAT-PT 对报文头进行转换后,同时, DNS ALG 将其中的 DNS 应答部分也进行修改,把“ AAAA ”或“ A 6 ” 类转成“ A ”类应答,并从 IPv4 地址池中分配一个地址 1.4.2 .6 ,替换应答中的 IPv6 地址 1::3 ,并记录二者之间的映射信息。

                                                            图 4-2 NAT-PT DNS ALG 示意图
         IPv4 主机在收到此 DNS 应答之后,就知道了主机 www.a.com 的 IPv4 地址是 1.4.2 .6 。于是发起到主机 www.a.com 的连接。由于在 NAT-PT 中已经记录了 IPv4 地址 1.4.2.6 与 IPv6 地址 1::3 之间的映射信息,因此可以对地址进行转换。
          NAT-PT 不必修改已存在的 IPv4 网络就可实现内部网络 IPv4 主机对外部网络 IPv6 主机的访问,且通过上层协议映射使大量的 IPv6 主机使用同一个 IPv4 地址,节省了宝贵的 IPv4 地址。所以是一个很优秀的 IPv4 与 IPv6 网络之间的过渡技术。但 NAT-PT 也有它的缺点,属于同一会话的请求和响应都要通过同一 NAT-PT 设备,对 NAT-PT 设备的性能要求很高。
                                                                     来源:赛迪网-技术社区

 


来源:来源:赛迪网-技术社区