APP下载

隧道技术与协议转换相融合的IPv6过渡技术研究

2018-08-15吴海博韩康

数据与计算发展前沿 2018年1期
关键词:智能网服务器隧道

吴海博,韩康

1. 中国科学院计算机网络信息中心,北京 100190

2. 中国数字信息科技股份有限公司,北京 100077

引言

随着互联网的蓬勃发展,特别是物联网等新型应用和需求的出现,终端形态和数量呈现出爆炸式增长,目前 IPv4 地址已分配完毕[1]。IPv6 应运而生,通过增加地址空间的长度,可有效应对地址短缺的问题,同时相比于 IPv4 在网络安全、服务类型、传输效率、灵活性等方面也有优化和改进。IPv6 作为下一代互联网的重要发展方向,得到广泛应用,在广电网络中亦是如此。考虑到 IPv4 的部署的广泛性和影响的深远性,以及兼顾成本和动机等方面,从 IPv4 到IPv6 的过渡是一个长期的过程,IPv4 和 IPv6 会长期共存。因此,研究 IPv6 过渡技术显得尤为重要。

从 IPv4 向 IPv6 过渡的代表性技术主要分为以下几种:

(1) 双栈技术:主机和网络设备同时维护 IPv4、IPv6 两套协议栈,是一种最直接、简单的过渡技术。在必要时使用 IPv4 或 IPv6 协议,这些节点既可以与IPv4 节点通信,也可以与 IPv6 节点通信。此种方法是实现其他两种过渡技术的基础,但并不能解决 IPv4地址短缺的问题[2]。

(2) 隧道技术:将一种协议的报文封装在另一种协议报文中,作为负荷传输。即将 IPv4 封装在 IPv6 报文中,或将 IPv6 封装在 IPv4 中传输。实现隧道技术,需要两端设备的相互协作,同时协议头的封装和解封装也会引入一定开销。目前,较为成功的代表性隧道技术是 DS-Lite 技术[3]。

(3) 协议转换技术:代表性的NAT 技术,通过在 IPv4 与 IPv6 网络之间进行地址转换,大大缓解了 IPv4 地址紧缺的问题。除需要完成地址映射功能外,还需要完成 IPv4 和 IPv6 报文格式的转换。目前,NAT64/DNS64 是一种较为成功的代表性协议转换技术[4]。

在广电网络环境中,为加快 IPv6 的过渡进程,前期已部署大规模纯 IPv6 骨干网。需要优先使用IPv6 网络,同时对于仅有 IPv4 协议栈的老用户,也同时需要保证其对 IPv6 资源的无缝访问。针对上述问题,结合隧道技术和协议转换技术的各自特点,我们提出一种两种技术相融合的过渡方案,通过将 DSLite 和 NAT64/DNS64 相结合,有效推动了广电网络向 IPv6 的平滑过渡。

本文的主要贡献有如下几个方面:

(1) 针对广电网络的具体需求,提出一种隧道技术和协议转换相融合的系统架构,通过将两者优势相结合,有利推动了广电网络的IPv6 化进程。

(2) 该方案可保证用户优先使用 IPv6 网络,同时根据用户协议栈和访问资源情况,灵活选择相应的技术方案,实现用户对 IPv4/IPv6 资源的透明访问。

(3) 开展基于广电现网的真实实验,通过实际用户行为,验证了该方案的可行性和有效性。

本文在第二部分对现有 IPv6 过渡技术进行介绍,并分析各自特点和优劣。第三部分对广电网络现有问题进行分析和描述,第四部分给出隧道结合和协议转换的结合方案,第五部分对该方案进行实验验证,最后第六部分总结全文。

1 主要过渡技术概述

由于 DS-Lite 和 NAT64/DNS64 是两种重要的过渡技术方案,本文方案与其息息相关,因此本节首先对两种技术进行介绍,并对其特点进行分析。

1.1 DS-Lite 技术

DS-lite 技术非常适用于双栈用户。当用户访问IPv4 资源时,借助 IPv4-in-IPv6 隧道,实现内容的访问。当用户访问 IPv6 资源时,直接透传。

DS-Lite 方案包括三个网络部件:B4 (Basic Bridging Broadband,基本桥接宽带单元) 功能的家庭网关;AFTR (Address Family Transition Router,地址族过渡路由器) 功能的网络设备;位于 B4 和 AFTR 间的隧道 (由 DHCP 服务器辅助将 AFTR 隧道出口地址通过 DHCPv6 Option64 发送给 B4 家庭网关)。AFTR负责执行隧道封装/解封装和 IPv4 私网-公网地址翻译,提供多个用户对 IPv4 公网地址池的复用。因为采用 IPv6 源地址作为隧道标识,终端私网地址可重叠使用。

如图1 所示,DS-Lite 分为访问 IPv4 资源和IPv6 资源两种情况。当用户访问 IPv4 是借助隧道穿越 IPv6 网络;当用户访问 IPv6 资源时,直接透传访问。(1) 当用户访问 IPv4 资源时,家庭网关 B4 会将 IPv4 请求封装在 IPv6 包中,借助 IPv4-in-IPv6 隧道通过 IPv6 网络。在 IPv6 与 IPv4 的网络交汇处,AFTR 服务器会实现解封装,并借助 NAT 转换将私网 IPv4 地址转换为公网 IPv4 地址,从而使请求到达IPv4 内容源。数据返回采用相反的方式返回,先经过NAT,再借助隧道经过 IPv6 网络,再返回给用户。(2) 当用户访问 IPv6 资源时,直接通过透传方式经过IPv6 网络访问 IPv6 资源。

DS-Lite 同时解决了运营商面临的IPv4 地址短缺和 IPv6 应用溃乏问题。由于在接入网采用地址充裕的IPv6 地址,同时回程流量基于三元组 (IPv6 源地址、NAT 后 IPv4 源地址、源端口号) 进行标识,具有唯一性,因此不用担心用户私有 IPv4 地址重叠,使得管理成本降低。

1.2 NAT64/DNS64 技术

NAT64 和 DNS64 是有状态地址转换协议,分别由 RFC6146 和 RFC 6147 定义。在该场景中,城域网路由器或 DHCP 服务器为 CPE 分配 IPv6 前缀,CPE为 PC 分配 IPv6 地址;IPv6 报文通过 CPE、城域网路由器等直接转发;对于需要访问 IPv4 网络的报文,CPE 发送 IPv6 报文到 NAT64 设备,NAT64 设备转换为 IPv4 报文后转发到 IPv4 网络 (图2)。

图1 DS-Lite 工作原理图Fig.1 The working principle of DS-Lite

图2 NAT64/DNS64 原理图Fig.2 The working principle of NAT64/DNS64

在该场景中,DNS 服务器需要支持 DNS64 功能:对于 IPv6 用户而言,用户有可能访问 IPv4-only 服务器,也有可能访问 IPv6 服务器,对于访问 IPv6 服务器的DNS AAAA 请求,DNS64 服务器会直接返回 IPv6 地址;对于访问 IPv4-only 服务器的DNS AAAA 请求,DNS6 服务器没有记录,需要首先将 AAAA 的请求转换 A 的请求发送到 DNS4 上进行解析,然后在通过 DNS64 模块进行地址合成 (采用 RFC6052 规定的算法在 IPv4 地址前增加特定的IPv6-prefix 以组成 AAAA IPv6地址)。

在众多 IPv6 过渡技术中,DS-Lite 和 NAT64是较为成熟的部分,但又存在着各自的缺点,首先DS-Lite 满足所有设备的访问,IPv4 与 IPv6 网络各自使用各自的网络进行访问,但是其仅仅实现了IPv6 跨越 IPv4 网络访问,IPv4 网络跨越 IPv6 网络进行访问,其仅仅实现了网络的互联,不能实现IPv6 网络的推广,对于 NAT64 来说其通过 IPv6 访问 IPv4 与 IPv6 网络,大大促进了 IPv6 的推广,但是其也存在着相应的问题,就是对于老的依然在使用的单 IPv4 栈老设备并不友好,其不能使用该技术进行访问,本文将 DS-Lite 与 NAT64 结合起来,实现根据用户的实际情况使用相应的技术来进行访问,实现了 IPv4 向 IPv6 的透明过渡并对老用户提供支持。

2 问题描述

为了加快向 IPv6 网络的过渡,广电网络目前已建有纯 IPv6 广域网。如图3 所示,目前实际场景是,用户通过机顶盒接入,经过纯 IPv6 广域网,访问 IPv4 或 IPv6 资源。

一方面,采用传统的DS-Lite 隧道技术,当用户访问 IPv4 资源时,双栈用户会优先采用 IPv4 协议栈,通过 IPv4-in-IPv6 隧道访问资源,而不会使用IPv6 协议栈;另一方面,采用 NAT64/DNS64 协议转换技术时,当 IPv6 单栈用户访问网络时,虽然可以使用 IPv6 协议,但对于老的依然在使用的单 IPv4 栈设备并不友好 (广电存在一些用户仍然使用 Windows XP 之前的版本,操作系统没有 IPv6 协议栈),无法直接实现对 IPv6 的支持。

本文将 DS-Lite 与 NAT64 结合起来,实现根据用户的实际情况使用相应的技术来进行访问,实现了IPv4 向 IPv6 的透明过渡并对老用户提供支持。

图3 广电网络过渡场景Fig.3 The transition scenario of radio & television network

图4 系统架构图Fig.4 The system architecture

3 方案设计

3.1 系统总体架构

系统总体架构主要有 DS-Lite 与 NAT64/DNS64的相关组件共同构成,具体结构如图4 所示。DHCP服务器负责给用户分配 IP 地址和 DNS 服务器地址(包括 DNS64)。电视机智能网关具有 DS-Lite 中 B4的作用。在 IPv6 与 IPv4 交界处部署有 NAT64 和AFTR 服务器。

(1) 对于 IPv4/IPv6 双栈用户,访问 IPv4 时,DHCP对其下发 DNS44 地址,通过该 DNS 可以获取 IP 地址使用 DS-Lite 访问网络。当访问 IPv6 资源时,通过透传直接访问。

(2) 对于 IPv6 单栈用户,可以使用 NAT64/DNS64组件访问 IPv4 资源,并且可直接访问 IPv6 资源。

(3) 对于 IPv4 单栈用户,使用 DS-Lite 进行访问IPv4 资源。改系统既保证优先对 IPv6 资源的访问,同时又能满足多种场景下的用户访问需求。

3.2 系统功能模块

3.2.1 家庭智能网关

家庭网关与普通网关不同的是其含有隧道建立模块,家庭智能网关公网侧只分配 IPv6 的地址,在访问 IPv6 资源时可以通过实际网络的路由信息进行而访问。而当终端请求 IPv4 数据包时,需要建立 IPv4-in-IPv6 隧道进行通信,隧道的一端是家庭智能网关,而另一端是 AFTR 处理程序。

在家庭智能网关中需要嵌入隧道建立的模块,对于 IPv4 的协议包,需要将其发入 wan 口只绑定了IPv6 地址的网卡,并对 IPv4 协议包封装 IPv6 包头,目的地址为加入的对端 AFTR 分配的虚拟地址,这样可以通过虚拟地址将指定的IPv4 协议包转化并发往AFTR 服务器,这是其收到 IPv4 数据包时的数据流程,在家庭智能网关 (B4) 加电时需要将 IPv4-in-IPv6隧道建立好,隧道的起始地址为 wan 口地址,对端地址需要为 AFTR 的虚拟地址,这两个地址都需要外部搭建的DHCPv6 服务器进行下发,只要建立好了该隧道,并且能够将 IPv4 数据包路由至 wan 口 IPv6 网卡,IPv4 数据包就可以添加好 IPv6 报头并不断发往AFTR 服务器。因为家庭智能网关对 IPv6 地址是透传的,所以也支持 NAT64/DNS64 的访问方式。

3.2.2 DHCPv6 及 DHCPv4 模块

作为由 IPv4 向 IPv6 过渡的方案,DHCPv6 或者 DHCPv4 的形式向客户端的PC 机和移动设备下发 IPv4、IPv6 地址和 DNS 服务器地址。对于 IPv4 地址,其会下发私网地址,一定程度上缓解地址紧缺的问题。对于 IPv6 模块,其下发 IPv6 公网的地址,这是对于 IPv4 和 IPv6 双栈设备以及 IPv6 单栈设备。对于使用较早操作系统 (windows xp 及之前版本) 的用户,由于系统仅支持 IPv4 单栈,家庭智能网关也要兼容,加入 DHCPv4 的地址下发模块,只下发 IPv4的私网地址和 IPv4 的DNS 服务器,这种情况下终端机器将不能访问 IPv6 的资源,所有的IPv4 数据包都通过 IPv4-in-IPv6 隧道进行发送。

3.2.3 DNS 服务器

本地 DNS 服务器与 DNS44、DNS66、DNS64 是互通的,收到用户请求后,并且尽量保证 IPv6 顺序在前,具体解析顺序参见表1 中的算法,从而优先使用 IPv6 网络。

3.2.4 NAT64 与 AFTR 功能模块

NAT64 与 AFTR 两个功能模块的部署可以灵活实现,既可以分别部署在不同的服务器中,也可以集中部署在同一服务器中。如图4 所示,可以部署在一个服务器中。通过将隧道和协议转换技术相结合,用户既可以选用 NAT64 访问,也可以使用 DS-Lite 进行访问,既减轻了各自的负载,又实现了对所用用户需求的覆盖。

表1 DNS 服务器域名解析算法Table 1 Domain name resolution for DNS server

表2 用户端算法Table 2 Algorithm at user side

4.2.5 用户端算法

用户端算法如表2 所示。当用户发出 IPv4 地址请求时,采用 DS-Lite 方式访问资源。当用户发出IPv6 请求时,借助 NAT64/DNS64 访问资源。当发出URL 请求时,根据 DNS 返回的不同地址采用不同的方式访问。当 DNS64 查询成功时,通过 NAT64 访问资源。当 DNS44 查询成功时,采用 DS-Lite 方式访问资源。

具体而言,根据用户栈和请求不同可分为几种情况:(1) 对于 IPv4/IPv6 双栈用户,当请求 IPv4 资源时,DNS 服务器会返回 NAT64 服务器的IPv6 地址 (在前) 以及目标 IPv4 地址。优先借助 NAT64 访问经过 IPv6 网络访问 IPv4 资源。如果不成功,再借助DS-Lite 的隧道技术访问 IPv4 资源。对于 IPv6 的资源访问,直接透传实现。(2) 对于 IPv4 单栈用户使用单DS-Lite 进行访问,既保证了其对原有 IPv4 资源的访问,又可以充分利用现在大量闲置的IPv6 网络。(3)对于 IPv6 单栈用户,访问 IPv4 资源时,DNS64 服务器返回 NAT64 服务器的IPv6 地址;当访问 IPv6 资源时,直接透传。

4 实验验证

4.1 实验平台搭建

借助广电现网我们搭建了一个接近真实的实验环境。DS-Lite 和 NAT64/DNS64 相结合的实验平台主要包括家庭智能网关、DNS 服务器系统、AFTR、NAT64 等模块。实验对三类用户多种访问需求进行了验证,这三类用户分别是单 IPv4 栈用户,单 IPv6栈用户,IPv4 与 IPv6 双栈用户。

图5 实验环境拓扑图Fig.5 Network topology of experiment

表3 实验对比情况Table 3 Experimental results

实验环境如图5 所示,用户与智能网关之间的网络使用 IPv4 与 IPv6 双栈,路由设备与资源服务器之间的网络为访问所请求资源的实际路由,有 IPv4 与IPv6 两种形式。其余网络均使用 IPv6 网络,这样在实际部署过程中也可以尽可能使用现在运营商所空置的IPv6 网络,智能网关与 AFTR 之间建供 DS-Lite 使用的IPv4-in-IPv6 隧道。

对于单 IPv4 栈用户,连入智能网关向 DHCP 组件发送获取配置信息的请求,获得 IPv4 私网地址与IPv4DNS 地址,即 DNS44 地址,该方式下不能访问IPv6 资源,访问 IPv4 资源通过 DS-Lite 形式进行访问,用户发出请求经由 AFTR 处理后取回资源。

对于单 IPv6 栈用户,其连入智能网关向 DHCP组件发送获取配置信息的请求,获得 IPv6 公网地址与 DNS64 服务器地址,该方式下可以透传访问 IPv6地址,对于 IPv4 资源的直接访问 IP 地址依然无法访问,对于根据 URL 进行 DNS 解析的情况,通过DNS64 服务器返回经过包装的IPv4 地址,然后跨越IPv6 网络使用 NAT64 服务器处理进行访问。

对于 IPv4 与 IPv6 双栈用户,其连入智能网关向DHCP 组件发送获取配置信息的请求,获得 IPv4 私网地址和 IPv6 公网地址,同时获得 DNS64 与 DNS44 服务器地址,当其通过 IPv4 地址访问资源时与单 IPv4 栈用户一致,使用 DS-Lite 方式进行访问,对于通过 IPv6 地址访问资源的情况直接透传,对于使用 URL 访问的情况,优先访问 DNS64 服务器访问 IPv6 资源,如果没有IPv6 资源,通过 NAT64 或者 DS-Lite 方式进行访问。

4.2 实验结果

根据用户单栈双栈情况,以及访问 IPv4 或 IPv6资源,我们在五种情况下将我们的方案与 DS-Lite 和NAT64/DNS64 方案进行将对比,实验结果如表3所示。使用 DS-Lite 时,IPv6 单栈用户无法访问 IPv4 资源。使用 NAT64/DNS64 时,IPv4 单栈用户也无法访问 IPv4 资源。只有我们的方案可以对各种情况都可以顺利访问,并能优先使用 IPv6 栈。当 IPv6 单栈用户访问 IPv4 资源时,NAT64/DNS64 和我们的方案都可以实现基于 URL 的访问,但无法实现基于地址的访问,说明我们的方案不亚于 NAT64/DNS64 方案。

5 结论

随着互联网的高速发展,IPv4 向 IPv6 过渡成为下一代互联网的重要趋势。隧道技术和协议转换技术,是当前两种重要的过渡技术,DS-Lite 和 NAT64/DNS64 分别是其典型代表。针对广电网络的实际问题和需求,本文提出了一种 DS-Lite 和 NAT64/DNS64相融合的方案,将隧道技术和协议转换有效结合,有利地推动了广电网络的IPv6 过渡进程。

猜你喜欢

智能网服务器隧道
5G赋能智能网联汽车
通信控制服务器(CCS)维护终端的设计与实现
预见2019:隧道的微光
神奇的泥巴山隧道
智能网联硬实力趋强
迎战智能网联大爆发
中国服务器市场份额出炉
得形忘意的服务器标准
黑乎乎的隧道好可怕
计算机网络安全服务器入侵与防御