IPv4/IPv6(精选六篇)
IPv4/IPv6 篇1
随着IPv4地址的耗尽, 世界各国都加快了基于IPv6协议的下一代网络的部署进程。IPv6网络技术从根本上解决了IPv4地址即将枯竭的致命缺陷, 并且在地址分类、报头格式、安全性、Qo S、Plug&Play功能、移动性、寻径效率、ICMP等诸多方面进行了协议优化和更新, 使之更加适应未来网络运行的发展需要。然而包括美国在内的一些国家, IPv6网络的部署也只限于教学和部分企业试用, 在IPV4网络环境下部署IPv6网络, 其过渡过程是复杂和困难的, 因此过渡机制具有很高的研究价值。
2 IPv6过渡机制概述
国际上IETF组建了专门的NGTRANS工作组开展对于IPv4/IPv6过渡问题和高效无缝互通问题的研究。目前已经出现了多种过渡技术和互通方案, 这些技术用于解决不同过渡时期、不同环境的通信问题, 但是最终各种网络过渡技术要解决的问题主要有三种:
(1) 基于IPv4的IPv6网络互连, 解决IPv6网络和节点如何通过IPv4网络互连互通的问题, 主要的技术有隧道技术;
(2) IPv4、IPv6透明互通, 解决IPv4网络和节点如何通过IPv6网络和节点互连互通的问题, 目前主要的技术有4over6过渡机制、网络层协议转换、传输层协议转换、应用程序接口协议转换和应用层协议转换等;
(3) 基于IPv6的IPv4网络互连, 解决IPv4网络和节点如何与IPv6网络和节点互连互通。目前主要的技术有4over6过渡机制、IPv6通用分组隧道标准、GRE和DSTM等
3 IPv6过渡技术
IPv6过渡技术经过多年的发展, 部分过渡技术已经逐渐成熟, 目前国际上常用的过渡技术主要有三种:双协议栈技术、隧道技术和协议转换技术。
3.1 双协议栈技术 (Dual Stack)
采用该技术的网络节点上同时运行IPv4和IPv6两套协议栈。这是使IPv6节点保持与纯IPv4节点兼容最直接的方式, 针对的对象是通信端节点。这种转换方式的特点是:对IPv4和IPv6提供了完全的兼容, 适合IPv4网络节点之间或者IPv6节点之间通信, 是所有过渡技术的基础, 是一种最简单的过渡机制, 然而由于需要双路由基础设施, 增加了网络的复杂度, 同时对IPv4地址耗尽的问题没有改善, 所以实用性受到限制。
3.2 隧道技术
隧道技术是IPv6分组在进入IPv4网络时, 将IPv6分组封装为IPv4分组, 整个IPv6分组变成了IPv4分组的数据部分。当IPv4分组离开IPv4网络时, 再将其数据分交给主机的IPv6协议。就好像在IPv4网络中打通了一个隧道来传输IP6数据分组。
3.2.1 配置隧道技术
配置隧道:隧道尾节点的IPv4地址是由隧道首节点的配置信息所决定的。这种传输适用于路由器至路由器和主机至路由器的隧道环境。在这两种情况下, 隧道尾节点是IPv6分组传输路径上的一个中间路由器, 而非IPv6分组的最终目的地。当原IPv6分组到达隧道首节点时, 隧道首节点无法从IPv6分组的目的地址中导出隧道尾节点的IPv4地址, 所以必须进行人工配置。这种类型的隧道称作配置隧道。配置隧道技术又细分为:IPv6配置隧道 (如图1所示) 、GRE over IPv4隧道。
配置隧道技术带来了许多复杂的隧道管理工作, 此技术最大的弊端在于人为的干预了路由, 导致路由效率不是很高, 有时甚至会产生路由环路等问题, 而这些问题在6to4自动隧道技术中都得到了解决。
3.2.2 自动隧道技术6to4
6to4隧道技术采用特殊的IPv6地址, 使在IPv4海洋中的IPv6孤岛能相互连接。6to4隧道技术的核心思想是在站点的地址前缀中蕴含了IPV4隧道的端点地址。其关键是在站点边界路由器的IPv4地址和站点内主机的IPv6地址之间建立了一种映射, 直接将边界路由器的IPv4地址作为站内主机IPv6地址前缀的一部分。
6to4隧道技术常常在两种场景下使用: (1) 孤立的6to4站点之间的通信 (2) 孤立的6to4站点和IPv6主干网 (6bone) 内部站点的通信。另外6to4隧道技术又可细分为:自动IPv4兼容隧道、自动6to4隧道、ISATAP隧道、6over4隧道、Teredo/Silkroad隧道等技术。
3.3 协议转换技术
隧道技术和双协议栈技术都能够提供IPv6端到端透明的通信。然而存在IPv4、IPv6节点或网络之间的互连互通的需要, IPv4、IPv6透明互通主要通过协议翻译转换来实现。按照协议翻译转换实现的方式的不同可以分为网络层、传输层、应用层和应用程序接口的协议转换四大类。下面对其中的两种协议转换进行阐述。
3.3.1 网络层协议转换技术
网络层协议转换技术有三种:SIIT技术、BIS技术和NAT-PT技术。NAT-PT是比较常用的技术, NAT-PT技术就是在做IPv4/IPv6地址转换 (NAT) 的同时, 在IPv4分组和IPv6分组之间进行报头和语义的协议翻译 (PT) 。
3.3.2 传输层协议转换技术
传输层协议转换技术同NAT-PT类似, 在纯IPv6主机和纯IPv4主机之间加入一个传输中继转换器, 只不过它是在传输层实现IPv4的TCP或UDP与IPv6的TCP或UDP数据的对译。这也是本机制的缺陷, 仅仅支持TCP/UDP传输。
3.4 IPv6过渡技术小结
4 IPv6过渡方案
不同的网络环境在建设IPv6网络时所考虑的问题不同, 所面临的状况也不同。如何将前面提到的过渡技术和实际的网络环境有效地结合起来, 实现IPv4向IPv6网络的平滑过渡, 这是建设IPv6网络最关键的问题。下面我们讨论三种网络模式下所采取的网络过渡技术方案。
4.1 IPv4/IPv6混杂网络模式
这种模式是指网络中没有明显的区域划分, 很难分清楚哪个区域属于IPv4网络, 哪个区域属于IPv6网络。对于这种模式可以采用双栈加隧道技术的方式来完成。双栈技术的实施需要升级终端用户设备和网络层设备。安装了双栈协议的站点, 接入到IPv4/Pv6双栈网络, 就是可以直接和两个网络的站点进行通信了。对于不能进行升级设备的网络区域, 可以通过隧道方式来完成区域网络或主机的接入。
4.2 单区域IPv4、单区域IPv6网络模式
这种模式是指根据不同的网络协议将网络从物理上划分为两大区域, 一个区域运行IPv4协议, 另一个区域运行IPv6协议。
对于这种网络模式, 采用转换网关技术比较简单有效。在IPv4和IPv6网络边界加入NAT-PT转换网关, 实现两种协议数据报的转换。采用NAT-PT转换技术, IPv4网络用户不需要对站点做任何的升级操作, IPv4站点和IPv6站点的通信是通过转换网关来完成的。
4.3 单区域IPv4、多区域IPv6网络模式
对于多个IPv6网络区域的情况, 如果设置多个转换网关, 会造成同种协议不同区域主机通信时, 需要经过两次转换网关的转换, 通信过程复杂, 可以采用隧道技术来解决这个问题。首先在多个IPv6区域网络中选取一个主区域, 在其它IPv6子区域同IPv4网络连接处设置一台双栈服务器, 通过隧道技术实现同IPv6主区域的互联, 形成一个单逻辑区域的IPv6网络。然后在IPv6主区域和IPv4网络的边界处设置转换网关, 实现IPv4站点和IPv6站点的通信。
5 总结
本文首先介绍了IPv6网络过渡的背景, 随后对过渡阶段内技术层面的挑战进行了分析, 并着眼于适用不同场景的过渡技术, 对双协议栈转换技术、隧道技术以及协议转换技术等不同种类的过渡技术进行了分析与对比。同时还指出了IPv6过渡过程所遵守的原则以及不同网络模式下所采取的网络过渡方案。
目前过渡技术及其相关的问题仍然是开放的问题, 还面临许多的挑战, 如加强网络的安全性、合理性和可扩展性, 降低成本等。
参考文献
[1]吴功宜.计算机网络高级教程.北京.清华大学出版社.2007.
[2]王晓峰, 吴建平, 崔勇.互联网IPv6过渡技术综述[期刊论文]-小型微型计算机系统.2006 (03) .
[3]李淼, 杨家海, 王会.IPv6过渡技术分析与评述[期刊论文]-广西大学学报.2011.
[4]闵亮.IPv6应用前景及技术过渡浅析[期刊论文]-今传媒.2012 (1) .
IPv4/IPv6 篇2
关键词:IPv6,过渡机制,互联网
引言
迄今为止, 因特网的主要协议IPv4已经获得了巨大的成功, 为互联网的发展做出了无可替代的贡献。但是, 随着互联网技术的不断发展, IPv4的许多缺陷逐渐暴露出来。其中最突出的是随着网络主机数量和应用的急剧膨胀, IP地址变得越来越匾乏。面临被耗尽的危险;路由表也变得越来越大, 导致数据报的处理延迟以及安全性差等问题, 为了解决地址短缺和路由表膨胀问题, IETF制订了用来替代现行的IPv4新协议IPv6。IPv6提供长达128位的地址空间, 还采用分级地址模式、高效IP包头、服务质量、主机地址自动配置、认证和加密等多项技术。它能够彻底解决目前IPv4遇到的问题并对未来的应用提供更好的支持。
1 IPv6的新特性
IPv6 (Internet Protocol Version 6) , 称作下一代互联网协议, 是由IETF (Internet Engineering Task Force, 互联网工程任务组) 设计的一种新的IP协议, 并不是对IPv4的简单改进。从本质说IPv6能更好更快的建立路由以及具有较好的服务质量和可加密特点, 具有与IPv4良好的向后兼容性。IPv6采用良好的层次结构公布地址, 减少地址混乱以简化路由, 降低复杂度;使用全新的数据报首部, 代替IPv4中固定格式的数据报首部, 提供最灵活性, 预分配网络资源的机制, 取代IPv4的服务类型说明。IPv6最大的变化是允许新增特性, 这新协议就能从需要全面描述所有细节的善中摆脱。这种扩展的能力合IP协议具有适应底层网络硬件或新应用的改变的潜力。相对于IPv4, IPv6具有以下优越的技术特性:
地址空间巨大IPv6地址空间由IPv4和32位扩大到128位, 这样IPv6的地址总数就有2128, 大约3.4×1038个, 相当于地球上每平方米能分配6.5×1023个IP地址。
自动地址配置在IPv4中主机IP地址及其相关配置的自动设置, 是通过动态主机配置协议DHCP (Dynamic Host Configuration Protocol) 实现的。IPv6通过一系列的自动发现和自动配置功能快速建立用户与互联网之间的连接, 这样主机和移动用户可以在任何时间任何地方接入到Internet, 网络管理工作变得更加简单。地址层次分配合理128位IP地址中的高64位表示网络前缀, 低64位表示主机, 为支持更多的地址层次, 网络前缀又可以分成多个层次的网络。
报头格式简化IPv6的报头大大简化, 因此简化了路由器的操作和管理, 降低了路由处理分组的开销。此外, 在IPv6中引入扩展头标的概念, 用扩展头标代替了IPv4头标中存在的可变长度的选项, 进一步提高了路由器的性能。
强大的安全功能IPv6要求强制实施因特网安全协议IPSec (Internet protocol Security) , 并将其标准化。IPSec协议用于提供IP层上可互操作的、高质量和基于密码的性, 它的安全业务包括接入控制、无连接的完整性、数据来源认证、加密等。他们为IP层及基以上层提供安全机制。
QOS (Quality of Service) 功能IPv4没有对服务质量提高保障, 而IPv6利用头标中的8比特业务量等级和20比特的流标记域可以确保带宽, 提供高质量音频、视频服务。
另外, IPv6还具有移动支持、实现多播功能乖技术优势。
2 IPv6的应用
IPv6最大的技术优势是其巨大的地址空间, 应用IPv6后。大量的非计算机终端可以方便地获得IP地址以独立地连接到Internet, 人类将生活在一个真正的网络世界中。IPv6的应用主要在移动IP网络、信息家电网络、自动控制等方面。
移动IP网络现有的移动通讯系统设备, 如手机采用GPRS和WAP只能发送短消息来访问WEB服务器。移动终端拥有IP地址后才能得到所有的IP服务。
信息家电网络一种是以冰箱、空调和洗衣机为代表的白色家电网络, 另一种是以电视机、录像机和电脑等设备构成的黑色家电网络。这两种网络上的设备通过网关接入互联网, 实现家电的信息化和异地控制操作。
自动控制IPv6的一个基本特征是扶持无状态和有状态两种地址自动配置的方式, 有状态地址配置机制需要一个额外的服务器。而无状态地址自动配置方式是完全自动完成控制的, 是获得IP地址的关键。
3 过渡机制
目前, IPv4网络的应用相当广泛, 不可能立即抛弃而完全转向IPv6。因此由IPv4向IPv6的转换和互通是IPv6能否成功应用的关键之一。这需要经历一个渐进的平滑过渡的过程。IETF提出平滑过渡应遵循两个原则:保证IPv4和IPv6具有互操作性;过渡应与顺序无关, 既可以先对主机升级。过渡方法虽然很多, 但概括起来可分为三类;双协议栈机制、隧道机制和网络地址-协议转换机制。
3.1 双协议栈机制:
这是处理过渡问题最简单的方式。其原理是在一台设备上同时运行IPv4和IPv6协议栈, 使得其能够处理两种类型的网络协议。与IPv4的主机通信使用IPv4地址, 与IPv6的主机通信使用IPv6地址。双协议栈方法虽然实现简单, 可以使IPv6设备与IPv4设备之间直接通信。但必须给每个运行IPv6协议的网络设备分配IPv4地址。这有悖于使用IPv6解决IPv4地址不够的初衷。此外, 使用双协议栈会增加主机的负担, 降低系统性能。
3.2 遂道机制:
随着IPv6网络的发展, 出现了许多局部的IPv6网络, 这些网络就像IPv4海洋中的小岛。隧道是指连接这些小岛的通道。所谓隧道机制, 就是在发送端将IPv6的数据报封装在IPv4数据中, 然后在目的地将其解封, 重新得到IPv6数据报。实现过程分为三个步骤:封装、解锁和通道管理。封装是指在隧道入口创建一个IPv4报头, 将IPv6数据报完全装入IPv4数据报中;解封是指到达隧道的另一端后去除IPv4的报头, 以IPv6的方式继续传送;通道管理是指对通道配置信息的维护。
3.3 网络地址-协议转换机制:
这种机制直接在协议IPv6、IPv4之间进行相应的转换, 用于解决互通问题, 简称为NAT-PT机制, 包括两部分:地址转换部分NAT (Network Address Translation) 和协议转换部分PT (Protocol Translation) 。NAT维护一个IPv4/IPv6地址映射;PT负责在两种协议间的相互转换, 主要工作是在IP数据报头部的对应字段根据IPv4和IPv6在语义上的不同定义进行转换。从而构建新的数据报。
这种机制是在IPv4和IPv6两类网络之间的交接点设置NAT-PT服务器, 通过服务器完成地址和协议的转换, 其模型如下图所示。
结束语
要彻底解决IP地址资源的不中, 发展IPv6是安全可靠的方案。因为IPv4自身的局限性注定了以IPv4支撑的Internet将平稳地过渡到以IPv6为核心的Internet2但这需要经过一个相当长的过渡时期, 并需要选用合适的过渡机制实现IPv4、IPv6的共存。尽管如此, 但是IPv6的步伐正在向前推进, 最终实现IPv6全球Internet。
参考文献
[1]Joseph Davies (美) 著.理解IP[M].北京:清华大学出版社, 2004.
[2]谢琼, 夏宇.IP地址资源不中的解决方法[J].贵州工业大学学报, 2001, 2.
[3]倪受春.IPv6及其演进[J].安徽大学学报自然科学版, 2003, 25, 1.
[4]王静, 鲍可进.向下一代IP过渡的策略[J].通讯技术, 2003 (10) .
[5]L EI Zhen-zhou;The transition from IPv4to IPv6[J].Modern Science and Technology of Telecommuni-cations, 2002, 10 (10) :74277.
[6]陶涛;我国IPv6网络市场发展综述[J].广播电视信息, 2005, 4
[7]钱雁斌, 陈性元.基于IPsec的隧道动态交换机制研究[J].计算机工程与应用, 2006, 34.
IPv4/IPv6 篇3
关键词:IPv4/IPv6协议,地址体系结构,数据报格式,双栈技术,隧道技术,转换技术
1 背景
2011年2月3日,全球互联网数字分配机构(IANA)正式宣布已经将IPv4地址库剩余的5个A类地址平均分配给包括APNIC在内的五个地区性互联网注册管理机构(RIR),标志全球现有的IPv4地址资源已经分配完毕。APNIC(亚太互联网络信息中心)在2011年4月宣告其最后一个IPv4地址块已分配。全球互联网必须过渡到下一代版本的IP地址协议即IPv6地址,然而IPv4协议已经成功使用了近30年,基于IPv4网络的应用程序和设备已经相当成熟且数量庞大,不可能在较短时间内完成全球范围IPv4网络向IPv6网络升级变更。因此,IPv4向IPv6过渡将是一个长期过程。本文在对IPv4与IPv6地址体系结构、数据报格式进行详细的分析比较基础上,进一步讨论IPv4向IPv6过渡的主要技术,细致分析了各种技术的实现原理、优缺点及适应场景,并对过渡中的主要问题及前景进行了分析和展望,以促使国内IPv6网络能够可持续快速发展。
2 IPv4与IPv6比较分析
IP地址是Internet上为了区分数以亿计的主机或接口而给每台主机或接口分配的一个专门的地址,通过IP地址一台主机就可以访问另一台主机,每个Internet包都必须带有IP地址。
2.1 IPv4与IPv6地址体系结构比较分析
IPv4与IPv6协议地址体系结构主要规范了IPv4地址与IPv6地址的表示形式和地址的类别,不同类别的IP地址其用途是不同的。
Ipv4地址用32位二进制数表示,前M位是网络地址,后32-M位是主机地址,一般将每8位二进制数分为一组,每组之间用点分隔开的对应十进制数表示,如192.0.1.1。IANA将IPv4地址分为A,B,C,D,E 5类,A类网络126个,每个网络能容纳1677214个主机。B类网络16384个,每个网络能容纳65534主机。C类网络可达2097152个,每个网络能容纳254个主机。D类IP地址是保留的地址,目前被用在多点广播中。E类IP地址为将来使用保留,仅作实验和开发用。全“0”地址指任意网络。全“1”的IP地址是当前子网的广播地址。
IPv6地址用128位二进制数表示,前N位是子网前缀,后128-N位是接口标识号,一般将128位的长度地址平分为8段来表示,每段长度为16位,每四位用一位对应16进制数表示,每段之间用冒号隔开,如2000::1:2345:6789:A5C8。一般有四种表示形式:(1)优先选用形式X:X:X:X:X:X:X:X,X是1个16位地址段的十六进制值;(2)前导零压缩法或双冒号压缩法表示形式;(3)混合表示形式X:X:X:X:X:X:d.d.d.d,X代表地址中的16bit,用十六进制表示。d代表地址中的8 bit,用十进制表示;(4)IPv6地址/前缀长度表示形式,前缀长度是一个十进制数,表示该地址的前多少位是地址前缀。IPv6地址是独立接口的标识符,所有IPv6地址都被分配到接口而非节点。
RFC2373定义了三种IPv6地址类型:1)单播IPv6地址,一个单独接口的标识。主要包括是可聚合的全球单播地址、链路本地地址、站点本地地址、唯一的本地单播地址、未指定地址、回环地址、兼容IPv4的地址、IPv4映射地址、6over4地址、6to4地址。2)多播IPv6地址,标识一组接口(一般属于不同节点)。当数据报的目的地址是多播地址时,网络尽量将其发送到该组的所有接口上。3)任播IPv6地址,标识一组接口,向任播地址发送的数据报将被发往该地址标识的“最近的”那个接口。
2.2 IPv4与IPv6数据报格式比较分析
相对IPv4协议,IPv6协议对IP数据报格式进行了全新的设计。IPv4与IPv6数据报首部及数据报格式对比如图1。
IPv6基本首部包含8个字段,而IPv4首部包含有12个字段。IPv6地址长度是IPv4地址长度4倍,但IPv6基本首部只有IPv4首部长度的2倍,且长度固定。IPv6增加了优先级、流标记和下一个首部,去掉了IPv4中的片偏移、首部校验等字段。等等这些变化不仅根本上解决IPv4的地址枯竭和路由表庞大问题,同时让IPv6在地址利用率、服务质量、移动性和安全性等方面得以全面提升。
3 IPv4向IPv6过渡的主要技术分析
由于IPv4向IPv6网络过渡的重要性和长期性,NGTranS已经提出一系列过渡策略和技术,概括起来主要有双协议栈技术、隧道技术和转换技术。前两者需要主机做相应的修改,第三种实际上是一种网关技术,最大优点是不需要改动通信主机就能实现纯IPv4与纯IPv6主机之间的“透明”通信。
3.1 双协议栈(Dual-Stack)技术分析
双协议栈技术不仅可用于建设双协议栈网络,还是所有过渡技术的基础,适合IPv4网络/节点之间或者IPv6网络/节点之间通信,这是一种最简单直接的过渡技术。
3.1.1 双协议栈技术的实现原理
双协议栈是指在单个节点同时支持IPv4和IPv6两种协议栈。由于IPv6和IPv4协议是功能相近的网络层协议,两者都基于相同的物理平台,而且加载于其上的传输层协议TCP和UDP也没有区别,最多是针对IPv6的改进版本,因而支持双协议栈的节点既可与支持IPv4的节点通信,也可与支持IPv6的节点通信。双协议栈技术实现原理如图2所示。
双协议栈的工作方式有三种:(l)如果应用程序使用的目的地址是IPv4地址,则使用IPv4协议栈。(2)如果应用程序使用的目的地址是兼容IPv4的IPv6地址(::w.x.y.z),那么仍然使用IPv4协议,只是将IPv6封装到IPv4中。(3)如果应用程序使用的目的地址不是IPv4兼容的IPv6地址,则必须使用IPv6协议。然而,当应用程序使用域作为目的地址时,就必须进行DNS解析,如果DNS解析服务器同时存在A、AAAA或A6记录,则可能返回三种类型IP地址:只返回IPv6地址、只返回其IPv4地址、同时返回IPv6和IPv4地址。返回不同的地址类型以及地址返回的次序将决定最终确定选择何种协议。
3.1.2 双协议栈技术的优缺点分析
双栈技术易于理解,容易实现,是使IPv6节点保持与纯IPv4节点兼容最直接的方式,这种方式对IPv4和IPv6提供了完全的兼容。但需要给每个节点同时配置IPv4地址,这不能解决IPv4地址紧缺的问题。为此,还存在一种有限双协议栈模型,在该情况下服务器和路由器仍然是双栈的,但非服务器的主机就只需支持IPv6。这样就可以节省大量的IPv4地址,但要实现纯IPv6与纯IPv4之间的通信需要结合采用其他技术,如协议转换技术。同时,双协议栈技术要维护两种网络协议,运行两套路由器软件,这将增加路由器的负荷和系统运行的复杂性。
3.1.3 双协议栈技术的安全性分析
双栈技术在IPv4网络安全方面已经有很多的办法加以保护,但要在IPv6网络安全方面也要求达到现有IPv4的过渡水平还需要不断提高。比如IPv6地址一般由系统管理员分配,这就使IPv6地址范围较小,外部用户通过地址扫描可以较易发现重要服务器的IPv6地址,如果基本过滤功能没有加载,恶意用户就可能轻易把IPv6作为一个入口点去访问私有网络,并危及网络安全。此外,当双栈路由器使用隧道机制在IPv4网络中路由IPv6包时,如果入侵者成功侵入IPv4设备就可激活IPv6 in IPv4隧道,从而可以绕过过滤和入侵监测系统。可见双栈技术给网络带来一定安全隐患,实现时必须针对这些问题采取相应措施。
3.2 隧道(Tunneling)技术比较分析
3.2.1 隧道技术的实现原理
隧道技术是指将一种协议的数据包封装在另一种协议中,实现了一种协议在另一种协议上的操作,隧道技术是实现海洋中两个孤岛之间通信的主要手段。隧道技术要求隧道端点支持双栈。在过渡初期IPv4网络占据主导地位,隧道技术主要解决IPv6小岛之间通过IPv4海洋进行通信的问题,实现原理如图3所示。在过渡中后期该技术主要解决IPv4小岛之间通过IPv6海洋进行通信的问题。
隧道技术只要求在隧道的入口和出口处进行修改,对其它部分没有要求。确定入口点是直接的,它出现在IPv4基础结构的边界。确定隧道的终点要复杂一些,根据隧道终点地址的获得方式不同,可将隧道分为配置隧道和自动隧道。根据数据分组的封装解封装位置的不同,隧道又可分为路由器-路由器隧道,主机-路由器隧道,主机-主机隧道,路由器-主机隧道。
3.2.2 隧道技术的比较分析
隧道技术的优点在于隧道的透明性,IPv6主机不需关心隧道的存在。由于充分利用IPv4网络,不需要大量的IPv6专用路由器和专用链路,可以明显的减少投资。但在IPv4网络上配置IPv6隧道是一个比较麻烦的过程,而且有些隧道技术实现起来比较复杂且不能实现IPv4主机和IPv6主机之间的通信。各种主要隧道技术比较分析如表1所示。
GRE over IPv4隧道与IPv6配置隧道基本相同,只是额外增加了GRE包头信息,具有更广泛的通用性。同时,也可以实现GRE over IPv6的GRE隧道;ISATAP、6to4隧道技术比自动的IPv4兼容隧道技术有更多的优点,因此IETF不推荐使用该技术;6over4隧道相对于6to4和ISATAP并没有太多的优势,实际中6over4极少使用;Teredo和Silkroad隧道都以穿过NAT设备,但Silkroad方案相对Teredo隧道有更多优点,只是Silkroad路由优化要比Teredo更复杂。这些隧道的实现原理和技术细节都不尽相同,相应的其应用场景也就不同。
3.2.3 隧道技术的安全性分析
隧道机制的引入不仅增加了网络的复杂性,同时也使网络安全问题更复杂,给攻击者提供了更多的攻击途径。如隧道代理存在认证问题、隧道自动切断问题、过滤和统计问题等;6to4隧道存在IPv4地址被欺骗、伪接口的攻击、本地定向广播攻击(只针对中继)以及业务盗用等问题;ISATAP隧道技术存在过滤和站内的IPv6地址欺诈攻击等问题。全球范围的自动隧道机制限制问题,防止恶意报文借助IPv4隧道进入IPv6网络内部的安全隐患。
3.3 转换技术(Network Address Translation-Protocol Translation)
3.3.1 转换技术的实现原理
转换技术包括网络地址转换(NAT)和协议转换(PT)。其中网络地址转换是指通过使用NAT网关将一种IP网络的地址转换为另一种IP网络的地址。最初通过NAT把内网专用IP地址转换为外网公用IP地址。在过渡中使用的网络地址转换(NAT)主要完成IPv6地址与IPv4地址的映射;协议转换就是将发往IPv6节点的IPv4报头按字段逐一翻译成IPv6报头,或者将发往IPv4的IPv6报头按字段逐一翻译成IPv4报头,使之可以被目的节点正确接收和识别。这种转换对上层协议是透明的,利用转换机制可以在纯IPv6节点和纯IPv4节点之间建立通信,而无需修改应用软件。
根据转换在TCP/IP协议栈中发生位置的不同,可以分为网络层协议转换SIIT、NAT-PT、BIS,传输层协议转换TRT,应用层协议转换SOCKS64、ALG和应用程序接口层转换BIA。不同的转换技术实现的原理有一定差别,SOCKS64协议转换技术实现原理如图4所示。
3.3.2 转换技术比较分析
转换技术的最大特点是不需要双栈支持或隧道支持,原有各种协议可以不加改动就能与新的协议互通,但该技术要求一次会话中双向数据包的转换都在同一个路由器上完成,因此地址/协议转换方法较适用于只有一个路由器出口的网络。此外,在实现时需要转换数据报的头标,破坏了端到端的服务(如端到端的IPSec),而且NAT/PT可能成为网络性能的瓶颈,有可能限制业务提供平台的容量和扩展性。各种主要转换技术比较分析如表2所示。
3.3.3 转换技术的安全性分析
地址转换中所要面对的主要安全威胁是IPv4网络和IPv6网络对安全性的控制不同。在IPv6网络中IPSec是强制实施的,而IPv4网络中则是可选的,在此情况下,如何解决认证与加密等安全问题值得深入研究。协议转换也存在安全漏洞,发自IPv4网络的DoS攻击会很快地耗尽IPv6网络有限的公有IPv4地址,无法获得IPv4地址的IPv6节点便不能与外部的IPv4节点通信。这些安全性问题可以通过使用双层安全机制、限制服务范围及增加备份设备等方式解决。除了IPv4网络的传统安全问题会威胁转换路由器,认证加密等方面的要求也给路由器提出了很高的要求,甚至带来沉重的工作负荷。
然而随着向IPv6网络过渡的不断深入,近年来各方在基于以上三种主要过渡技术基础上又在IETF中提出了PNAT(PrefixNAT)、NAT444、DNS-ALG、NAT64/DNS64、DNS46、IVI/DIVI、PNAT、SAVI、A+P、DS-lite(Dual-Stack Lite)、6rd(IPv6 Rapid Deploymenton IPv4 Infrastructures)等过渡技术。这些新过渡技术的出现,将积极促进并加快IPv4网络向IPv6网络的过渡。
4 结束语
综上所述,IPv6的优点显而易见,由IPv4向IPv6全面升级是互联网发展的必然要求。然而,已有的应用和服务仍然存在于IPv4网络中,将如此大量的应用和服务移植到IPv6上必定是渐进的分阶段的。IPv4向IPv6过渡的各种技术都是针对不同的网络状况提出的,任何一种过渡技术都不能解决所有网络问题。在满足过渡要求的基础上按照安全、简单、可靠、适用、性能好、可管理、低成本等原则慎重选择适用的过渡技术,避免过渡技术的过度使用给网络带来管理、维护和安全漏洞。
IPv6网络演进不仅是一个网络技术问题,还涉及网络设备、终端、IT系统、业务系统以及应用程序、应用与市场需求,商业利益等多方面的因素。当前,我国政府部门在积极推动IPv6商业部署,已明确公布IPv6的商用时间表,必将加快IPv6的推广使用。展望未来,在网络扩容、网络实名、网络安全和物联网等各个方面定将发挥越来越关键的作用。
参考文献
[1]何世明.IPv4/IPv6主机之间强制隧道的设计[J].计算机工程,2006,32(3):143-145.
[2]王晓峰,吴建平,崔勇.互联网IPv6过渡技术综述[J].小型微型计算机系统,2006,27(3):390-395.
[3]Wiljakka J.Analysis on IPv6 Transition in Third Generation Partnership Project(3GPP)Networks[S].IETF RFC 4215,October2005.
[4]张宁,纪越峰.IPv6技术与中国下一代互联网发展[J].北京联合大学学报:自然科学版,2006,20(1):5-7.
[5]张池军,赵洪波.基于IPv4网络的IPv6过渡解决方案[J].长春工业大学学报:自然科学版,200627(3):222-225.
[6]尹韶峰.Ipv4与Ipv6双栈网络设计[J].微计算机信息,2010,26(11-3):90-92.
IPv4/IPv6 篇4
隧道技术是IPv4过渡到IPv6的一种重要过渡技术[1], 采用隧道技术的设备大部分情况下将整个IPv6包封装入IPv4包中, 利用建立的隧道实现IPv6数据在IPv4网络上的传输。
使用隧道技术的隧道端口必须接收来自隧道另一端发送的数据, 这就暗示了一定程度上的信任要求;可是网络安全设备只需保证隧道包的IPv4源地址是隧道另一端的IPv4地址、IPv4包头中的协议字段值为41就认为是数据包安全的, 这使得IPv6-in-IPv4隧道的安全机制非常薄弱。若攻击者已知IPv6-in-IPv4隧道两个端点的IPv4地址, 就可以自由建立IPv6-in-IPv4隧道, 从而绕过IPv4防火墙的检查, 通过地址欺骗将大量协议类型为41的隧道包注入到隧道链路中[2], 对内网的IPv6主机或隧道端口造成恶性攻击。
而防火墙作为网络的第一层防护, 应当识别并且能够分析隧道数据包中的IPv4包头以及IPv6负载, 从而利用设定的过渡规则对隧道包进行过滤。同时, 由于Linux提供的Netfilter防火墙框架[3], 具有强大的通用性和灵活性, 为开发不同功能的防火墙技术, 提供了一个良好的平台。基于这些安全需求, 本文设计和实现了基于Netfilter框架的过渡阶段防火墙——Trans防火墙。
1 Trans防火墙设计分析
1.1 Trans防火墙的功能分析
由于普通防火墙无法检查IPv6-in-IPv4隧道包中IPv6数据包, 它只会调用IPv4安全策略对隧道包进行过滤, 因此攻击者就可以利用这个漏洞, 避过防火墙对隧道包中IPv6包的检查, 对网络进行各种攻击。所以, 要保证网络的安全, 就必须要求过渡阶段的防火墙在过滤IPv4包头的同时[4], 也能够检查隐藏在后面的IPv6数据包。基于这样的需求, 本文实现了基于Netfilter框架的Trans防火墙。它的主要功能有以下几点:
(1) 能够对进出防火墙的IPv4和IPv6-in-IPv4数据包进行过滤;
(2) 实现用户和防火墙之间的动态交互;
(3) 实现了日志记录功能;
(4) 利用proc虚拟文件能够对防火墙进行基本的配置。
1.2 Trans防火墙的框架设计
Trans防火墙的设计分为用户空间和内核空间[5]两部分。在用户空间用户输入命令, 通过解析函数把命令解析成防火墙能够识别的规则, 然后通过系统调用Netlink把数据传递到内核空间, 在内核空间形成注册在钩子函数上的规则, 由于Trans防火墙属于包过滤型防火墙, 所以只选择了INPUT, OUTPUT, FORWARD三条规则链;防火墙的日志文件对规则链中的情况进行记录;虚拟文件系统实现了对防火墙的基本配置。Trans防火墙的总体构架如图1所示。
2 Trans防火墙的具体实现
2.1 命令行选项及命令解析
Trans防火墙属于包过滤型防火墙, 能够对TCP, UDP, ICMP协议类型的数据包进行过滤, 同时也可以对IPv6-in-IPv4隧道包进行过滤;由于隧道包IPv4协议字段值为41, 在Linux系统中用宏IPPROTO_IPv6表示该协议, 所以本文使用“Tran”来命名隧道数据包的协议类型, Trans防火墙的命令行格式定义如下:
./Trans + <command> + chain + <matching criteria> + <-j action>
各个命令选项如表1所示。
Trans防火墙的命令解析通过调用C库函数的getopt_long函数完成。定义函数:
while ( (cmd = getopt_long (argc, argv, opts_short, longopts, NULL) ) != -1)
while循环用来处理用户输入的所有命令, 对于每种规则选项选择不同的处理方式, 通过switch (cmd) 结构判断输入的选项并调用相应的函数处理选项后的字符串, 把处理后的参数存储到规则结构中。
2.2 用户空间与内核空间的交互
由于Netlink socket比其他的数据传递方式具有明显的优势, 所以Trans防火墙选择使用Netlink socket实现用户空间和内核空间数据的传递。
用户空间的Netlink设计与通用的socket套接字一致, 主要流程如下:
(1) 建立Netlink类型的套接字:int nls=socket (int domain, int type, int protocol) ;
(2) 将Netlink套接字与Netlink地址类型进行绑定, 绑定过程如下:
bind (nls, (struct sockaddr*) &nladdr, sizeof (nladdr) ) ;
(3) 把解析后的规则填充到消息中, 并调用sendto () 将消息发送到内核。其中nl_pid和nl_groups属性设为0;
(4) 接收程序首先申请足够大的空间来存储Netlink消息头和消息的负载部分。然后使用标准函数接口recvfrom () 来接收内核发送的Netlink消息;
当不使用Netlink与内核交互的时候使用close (nls) 关闭套接字。
内核空间Netlink主要完成以下三步工作:
① 通过netlink_kernel_create () 创建Netlink套接字, 同时注册回调函数input () , 用于处理接收的数据。
② 当内核接收到用户空间发送的数据后, 调用回调函数input () , 使用套接字缓存队列中的skb_dequeue () 操作函数, 从消息队列中删除最顶端的报文并且返回一个指向它的指针, 获取消息的头部和负载, 然后做进一步的处理。内核在发送Netlink消息时也需要设置源和目的Netlink地址。然后内核调用netlink_unicast () 函数向用户空间进行单播发送数据。
③ 调用sock_release () 函数释放套接字。
2.3 防火墙过滤模块的实现
Trans防火墙数据包过滤模块主要是通过访问控制规则实现数据包过滤, 它提供了数据包过滤的方式和依据。Trans防火墙能够对tcp, udp, icmp, tran四种协议的数据包过滤。其中注册在FORWARD链上函数模块的数据过滤流程如图2所示, 当数据包流经Trans防火墙时, 首先被ip_forward () 函数进行处理, 该函数调用FORWARD规则链上注册的钩子函数, 对数据包进行过滤;针对不同协议类型的IPv4数据包采用不同的过滤策略。
2.4 proc虚拟文件模块设计
Linux操作系统的虚拟文件系统位于/proc目录下[6]。Trans防火墙的proc虚拟文件系统向用户提供了基本的配置信息, 并由此可对防火墙进行简单的设置。Linux/proc_fs.h文件中定义了proc文件系统的核心结构proc_dir_entry () , 并且由此定义了创建虚拟文件目录和文件的函数:
struct proc_dir_entry *proc_mkdir () ; /*目录创建函数*/
struct proc_dir_entry *create_proc_entry () ; /*文件创建函数*/
Trans防火墙系统在/proc/net/目录下定义了一个trans目录, 在trans目录下定义了三个虚拟文件, 分别为information, default, invalid文件。其中default文件创建过程如下:
trans_proc_dir=proc_mkdir (″trans″, proc_net) ; /*在/proc/net下建立trans目录*/
create_proc_entry (″default″, 0755, trans_proc_dir) ; /*在/proc/net/trans目录下创建文件default*/
该文件对防火墙的默认策略进行设置, “1”表示ACCEPT, “0”表示DROP。
2.5 防火墙日志文件
Trans防火墙在内核空间对日志文件进行操作, 需要使用Linux/fs.h文件中定义的一组围绕内核中file文件进行操作的函数。打开文件函数原型如下:
struct file *filp_open (const char *filename, int flags, int mode) ;
filp_open () 打开filename指定的文件, 如/etc/Trans.log, 表示日志文件为Trans.log, 存放在etc/目录下。
在file文件结构中, 使用file_operations文件操作结构的写函数对日志文件进行写操作。
file->f_op->write (struct file *filp, const char __user *buff, size_t len, loff_t *pos) ;
filp为filp_open () 返回的值, 即buff中的数据被写入/etc/Trans.log文件中, 以实现日志的记录功能。
3 防火墙功能测试
实验环境搭建如下:路由器R2, R3均支持双栈, Trans防火墙部署在路由器R1, R3之间。路由器R2与R3之间建立了IPv6-in-IPv4隧道, IPv6主机PC A与PC B通过隧道能够通信。如图3所示。
3.1 防火墙测试要求
(1) 丢弃防火墙发往自身的ICMP协议数据包;
(2) 拒绝转发24.86.119.228主机发送的TCP协议的数据包;
(3) 拒绝转发24.86.119.228发送的IPv6-in-IPv4隧道包;
(4) 拒绝转发去往24.86.119.228主机, 并且被封装的IPv6数据包源地址为20:01:02:50:ff:ff:00:00:00:00:00:00:00:00:00:01的IPv6-in-IPv4隧道包;
Trans防火墙配置如下所示:
./Trans -A INPUT -s 127.0.0.1 -p icmp -j DROP
./Trans -A FORWARD -s 24.86.119.228 -p tcp -j DROP
./Trans -A FORWARD -s 24.86.119.228 -p tran -j DROP
./Trans -A FORWARD -d 24.86.119.228 -p tran -v 20:01:02:50:ff:ff:00:00:00:00:00:00:00:00:00:01 -j ACCEPT
查看规则如下:
[root@local host Tran]#./Trans -L
CHAIN INPUT Rules
TARGET SOURCE SPORT DeST DPORT PROTOCOL
DROP 127.0.0.1 0 0.0.0.0 0 1
CHAIN FORWARD Rules
TARGET SOURCE SPORT DEST DPORT PROTOCOL
DROP 24.86.119.228 0 0.0.0.0 0 6
DROP 24.86.119.228 0 0.0.0.0 0 41
DROP 0.0.0.0.0 24.86.119.228 0 41
[root@local host Tran]#
这时, 主机PC A ping主机PC B, 是ping不通的, 查看日志记录如下:
[root@local host Tran]# cat /etc/Trans.log
Time:2010-12-25 21:51:40 From 127.0.0.0 To 127.0.0.1 icmp PROTOCOL was DROPed
Time:2010-12-25 21:51:41 From 127.0.0.0 To 127.0.0.1 icmp PROTOCOL was DROPed
Time:2010-12-25 21:52:37 From 24.86.119.228 To 24.86.118.228 tran PROTOCOL was DROPed
Time:2010-12-25 21:52:41 From 24.86.119.228 To 24.86.118.228 tran PROTOCOL was DROPed
3.2 使用proc虚拟文件设置防火墙
可以通过proc虚拟文件动态地对Trans防火墙简单的配置。如echo “1” >/proc/net/trans/default, 表示设置防火墙的默认策略是ACCEPT。
4 结 语
特殊的网络环境对防火墙技术提出了更高的要求, 防火墙技术只有随着网络变化而不断提高, 才能成为有力的防护工具。本文设计的Trans防火墙不仅能够对普通IPv4数据包进行安全控制, 而且实现了对IPv6-in-IPv4数据包的检查, 通过配置较为安全的防护策略, 有效阻止利用隧道封装技术进行网络攻击的行为, 为IPv4/IPv6过渡阶段网络的安全性提供了一定的保证。Trans防火墙功能比较完善, 操作简单。但仍存在很多不足, 如没有实现规则冲突检测机制等, 这也是下一步工作要考虑的问题。
摘要:针对IPv4向IPv6过渡阶段网络的特殊性, 分析了IPv6-in-IPv4隧道技术给网络带来的安全威胁。通过需求分析及防火墙框架设计, 实现了基于Netfilter框架的Trans防火墙, Trans防火墙功能较为完善, 不仅能够过滤普通的IPv4数据包, 而且能够检查和过滤IPv6-in-IPv4封装数据包, 并实现了过滤规则的动态配置以及日志记录等。最后, 对Trans防火墙进行测试, 结果表明Trans防火墙能够很好地对不同协议类型的数据包进行检查及过滤, 从而为有效地防止隧道攻击提供了安全保证。
关键词:IPv4,IPv6,隧道,IPv6-in-IPv4数据包
参考文献
[1]徐宇杰.IPv6深入分析[M].北京:清华大学出版社, 2008.
[2]DAVIES E, SAVOLA P.RFC4942 IPv6 transition/coexis-tence security considerations[S].2007.
[3][美]SUEHRING S, ZIEGLER R L.Linux防火墙[M].北京:机械工业出版社, 2006.
[4]戴晓苗.IPv4/IPv6过渡阶段下的防火墙技术研究与实现[D].北京:北京交通大学, 2007.
[5]倪继利.Linux安全体系结构分析与编程[M].北京:电子工业出版社, 2007.
[6]谢进忠, 谢进益.Linux Kernel Module及TCP/IP程序设计[M].北京:人民邮电出版社, 2007.
[7]陈鹏.IPv6技术与IPv4的比较及过渡方案分析[J].现代电子技术, 2009, 32 (11) :58-60.
IPv4/IPv6 篇5
随着网络信息化的飞速发展,IPv4向IPv6过渡的趋势日渐明显。双栈技术可以很好地解决过渡过程中IPv4和IPv6的兼容性问题,因此在通信设备上得到了广泛支持。然而,在当前网络环境下,要开发出好的设备产品,仅是对双栈技术的支持还不够,解决好网络协议在双栈环境下的兼容性与稳定性才是关键。
在现代互联网络中,主机地址的DHCP[1]功能是必不可少的。随着IPv6网络的出现,IETF在2003年重新制定了针对IPv6的DHCP协议,即DHCPv6[2]。本文首先对企业网关系统结构的设计进行了简单介绍,然后对IPv4,IPv6环境下的DHCP协议展开了研究,最后结合两者的异同点,设计开发了一种适用于双栈网关的DHCP协议软件,最后经过实验与工程应用验证了该软件模块具有良好的稳定性和兼容性[3]。
1 系统的功能与结构
1.1 系统结构
图1所示为本企业网关的结构图,主芯片采用Marvel公司出产的88F6560ARM芯片,产品具备3G接入、WiFi接入、GPON/EPON/以太网光口上行功能、GE口接入功能。
1.2 系统功能
本系统采用以下3种控制方式,可以灵活方便地实现与用户的交流。
1) TR069软件平台:
用户在局端通过自动配置的服务器对终端设备进行远程管理,提供了自动配置和动态服务、软固件管理、状态性能统计监控、诊断等功能。
2) CLI命令行:
通过串口连接设备,允许用户使用命令行对设备进行管理,提供了监控、诊断等功能。
3) Web网管平台:
用户可通过Web浏览器登录管理平台,对企业网关系统进行远程监控、软固件升级和诊断。
2 IPv4/IPv6双栈环境下企业网关的DHCP实现机制
IPv4和IPv6环境下的DHCP协议类似,两者都是基于C/S的动态地址分配协议,为了便于区别,本文将IPv4环境下的DHCP命名为DHCPv4。在研究了DHCPv4和DHCPv6的消息机制后,从以下两个方面对协议进行了深一步的研究:一是地址状态的迁移,二是C/S的交互。
2.1 IPv4/IPv6双栈环境下DHCP地址状态的设计
根据前期对DHCPv4和DHCPv6协议的分析,从地址活动的角度来看,可以将DHCP地址状态归纳为以下5种(见图2):1) 绑定状态(Bound);2) 更新状态(Renewing);3) 重绑定状态(Rebinding);4) 超时状态(Expired);5) 失效状态(Invalid)。
从图2可知,在IPv4/IPv6的DHCP机制下,地址的动态迁移是以租约T为时间单位进行的。当地址租用时间到达T1(首选生命期的1/2)时,客户端向服务器发送租期更新消息;当地址租用时间到达T2(首选生命期的0.8)时,客户端向服务器发送重绑定消息,或等待租期满约直接进入超时状态;当客户端向服务器发送重绑定消息超时未响应后,客户端地址失效,客户端将重开始申请IP绑定。
2.2 IPv4/IPv6双栈环境下DHCP客户端/服务器交互机制的实现
图3所示DHCPv4/DHCPv6的结构主要分为Server,Client和Relay三部分,三者通过各种UDP消息进行交互。
2.2.1 DHCPv4的Client/Server交互过程
DHCPv4的Client/Server交互过程如图4所示。
1) DHCPv4 Server请求
DHCPv4 Client申请IP地址前,先发广播报文DISCOVER,DHCPv4 Server接收到请求报文后,回应OFFER报文。
2) IP址地请求
DHCP Client收到OFFER报文后,然后发出广播报文REQUEST,收到Server回应的ACK后,就可以得到IP地址。得到Server分配的IP后,Client会对地址进行有效性检测,若该地址不可用,则回到初始状态重新开始地址申请。
3) 地址租期更新
被分配的地址使用达到T1后,DHCPv4 Client发单播报文REQUEST请求,DHCPv4 Server给出ACK响应或NAK响应报文,DHCPv4 Client若收到ACK则更新租约,若收到NAK则重新发起申请。
4) 地址重绑
若DHCPv4 Client一直都没有收到ACK报文,当到达T2后,DHCPv4 Client 会发出广播的DHCP续约报文请求地址重绑。若一直未收到ACK响应报文,则租期满后DHCPv4 Client分配到的IP自动失效。
5) 客户端重启后的地址分配
DHCPv4 Client重启后不会回到初始状态重新申请IP,而是直接广播一个REQUEST报文给DHCPv4 Server。DHCPv4 Server 收到报文后,检查该报文Requested IP address字段填入的客户端IP是否已被其他客户端使用,若未被使用则直接将该IP地址重分配给该客户端,否则回复一个NAK响应报文。DHCPv4 Client收到报文后,回到初始状态重新申请IP。
2.2.2 DHCPv6的Client/Server交互过程
DHCPv6的Client/Server交互过程如图5所示。
1) DHCPv6 Server请求
DHCPv6 Client申请IP地址前,先向所有中继代理和服务器组播(组播地址FF02::1:2) 发送SOLICIT报文,DHCPv6 Server接收到请求报文后,回应ADVERTISE报文。若DHCPv6 Client收到多份ADVERTISE报文,则根据消息接收的先后顺序、服务器优先级等,选定其中一个Server。
2) IP址地请求
DHCPv6 Client向选定的Server发送地址请求报文REQUEST,当收到Server回应的REPLY报文后,就可以得到由Server分配的IPv6地址/前缀和网络配置参数了。
3) 地址租期更新
当地址/前缀租借时间到达T1后,DHCPv6 Client向Server单播发送RENEW报文,若当前的地址/前缀可用,则Serve回复给DHCPv6 Client 一个续约成功的REPLY报文,否则回复一个续约失败的REPLY报文。DHCPv4 Client若收到续约成功的REPLY报文则更新租约,否则不进行更新。
4) 地址重绑
若DHCPv6 Client一直都没有收到REPLY报文,则当到达T2后,DHCPv6 Client会组播(组播地址为FF05::1:3)发送REBIND报文请求地址重绑。若一直未收到重绑成功的REPLY响应报文,则租期满后DHCPv6 Client分配到的地址/前缀自动失效,并向服务器发送RELEASE消息请求服务器收完分配的地址信息。
5) 客户端重启后的地址分配
DHCPv6 Client重启后,首先会直接向服务器发送一个CONFIRM报文,确认当前所分配地址/前缀是否还有效,当收到Server回复的REPLY报文后,若确认有效则继续使用,否则重新申请地址/前缀。
3 双栈环境下企业网关的DHCP协议软件的设计
3.1 双栈环境下DHCP Server的设计与实现
DHCP Server模块主要分为3个部分:1) 初始化函数(地址信息的初始化);2) 主循环程序(循环等待服务请求);3) 消息处理函数(消息处理、生成与发送)。
双栈环境下DHCP Server流程如图6所示。
初始化函数为所有可分配的地址(其数量由dhcp.db中地址池的开始地址和结束地址计算出)创建地址信息结构体(Addr_Info_Str)对象,每个结构体对象都携带IP类型、地址/前缀、状态、租用期及分配该地址的Client等信息。
主循环程序的主要功能是:1) 定时清理超时的绑定信息,并及时更新绑定信息,同时写入到数据库中。2) 维护已绑定地址信息。3) 监听UDP端口(547 和67),随时接收来自客户端的DHCP报文,并将接收到的报文分类后发送给消息处理函数。
消息处理函数根据IP协议栈的类型分为DHCPv4 的消息处理函数和DHCPv6的消息处理函数两类,分别对来自不同客户端的DHCP消息进行响应与处理。
3.2 双栈环境下DHCP Client的设计与实现
DHCP Client模块由初始化、Server请求、IP请求、IP有效性检测和IP维护部分组成,其主要功能是负责客户端的地址申请、维护与释放。
如图7所示,当DHCP Client启动后,首先初始化配置信息,若本机已有有效配置参数,则向Server发送一个确认报文,确认已有配置参数是否有效;若本机配置参数为空,则进行Server 请求和IP请求。
当从Server获得配置参数后,DHCP Client会检测该配置参数的有效性。若有效则调用地址维护函数进行下一步处理;若无效则向服务器发送拒绝请求,重新开始请求IP。
地址维护函数的功能是完成对客户端地址绑定、更新租期、地址信息释放等操作。在地址使用租约达到0.5个首选生命期时,向Server发送租期更新请求报文接收应答报文以完成地址租期更新;达到0.8个首选生命期时,向Server发送地址重绑请求报文接收应答报文完成地址重绑。当租约超期或满足地址释放条件时,主动请求释放地址信息 (Local_family=AF_INET6)或不做任何操作(Local_family=AF_INET)。
3.3 双栈环境下DHCP Relay的设计与实现
DHCP Relay 模块主要分为初始化、代理服务器设置和中继报文处理3部分。
如图8所示,当DHCP Relay 启动后首先会初始化中继相关的变量,如UDP端口的设置、IP地址族的设置等。初始化结束后,开始设置代理服务器,若代理服务器列表为空,则使用广播地址作为代理服务器地址(DHCPv6情况下使用FF02::1:2作为目标地址)[2]。初始化和代理服务器设置结束后,DHCP Relay开始监听UDP端口,接收并处理中继报文。
4 测试结果
用4台装有Windows XP的PC机作为客户端,两台使用了上述DHCP协议软件模块的企业网关分别做中继端和服务端。
两台安装好IPv6 协议的PC机作为DHCPv6 客户端连接到网络中,经反复测试,两台客户端均可以迅速分配到一个有效的 IPv6 地址/前缀,作为DHCP 服务器和中继器的企业网关都运行正常。DHCPv6获取IPv6地址过程如图9所示。
两台未安装IPv6协议的客户端接入到网络中, 经反复测试,两台客户端都可以有效获取IPv4地址,作为DHCP 服务器和中继器的企业网关也都运行正常。DHCP获取IP地址过程如图10所示。
5 结束语
在双栈环境下的DHCP功能,可有效地解决IPv4向IPv6过渡过程中客户端所需要的IPv4/IPv6地址自动分配功能。本文通过对IPv4,IPv6环境下的DHCP协议的深入研究,结合两者的异同点设计开发了一种适用于基于双栈环境的企业网关的DHCP协议软件,最后经过实验与工程应用验证了该软件模块所具有良好的稳定性和兼容性,具有较大的实用价值。
摘要:首先对企业网关系统结构的设计进行了简单的介绍,然后分别对IPv4,IPv6环境下DHCP协议的地址状态迁移与C/S交互过程进行了研究,最后结合两者的异同点,设计开发了一种适用于双栈网关的DHCP协议软件模块,经过实验与工程应用验证了该模块具有良好的稳定性和兼容性,拥有较大的实用价值。
关键词:IPv6,双栈,DHCPv6,企业网关
参考文献
[1]RFC2131,Dynamic host configuration protocol(DHCP)[S].1997.
[2]RFC3315,Dynamic host configuration protocol for IPv6(DHCPv6)[S].2003.
IPv4/IPv6 篇6
关键词:教育信息化,双栈技术,IPv6过渡方式
1出口路由解决方案
1.1设备选择
最常见的设备为路由器和防火墙。路由器由ASIC实现, NAT、策略路由功能强, 安全性高, 能更好地处理多媒体信息, 负载共享和最优路径, 且对IPv6的支持非常好, 其路由协议支持最完善, 采用线速转发, 接口类型丰富, 支持多种线路, 但其不支持非路由协议, 价格比较高。防火墙能强化安全策略, 有效记录Internet上的活动, 但其NAT多采用CPU或NP实现, 性能不如ASIC路由器, 在一些新功能方面 (如IPv6) 开发慢于路由器, 路由协议的支持相比路由器支持的协议类型少、容量少、网络接口类型少。其功能和性能各有侧重, 因此, 选择共同组网能够得到最佳的效果。
路由器采用RSR-08E和RSR-04E高端多业务路由器, 他们都采用全冗余硬件架构, 且具备自动故障切换及联机软件升级 (ISSU) 等特性。RSR-08E支持硬件加速的 NAT、MPLS、QoS、组播、状态防火墙及大型过滤表等丰富特性, 是构建安全可信新网络的基石。RSR这款路由器是基于可编程ASIC系统平台, 具有可扩展业务特性;其全球领先的模块化操作系统平台, 也在可靠软件和可扩展业务方面得到了保证;同时, 还有极具特色的平面分离设计和多种优秀的网络稳定技术保障, 全球领先的IPV6应用和支持, 也可以满足下一代互联网的要求。
1.2出口类型和数量安排
现共设计有4个出口, 分别为ChinaNET1、ChinaNET2、CERNET和CERNET2。其中, ChinaNET1和ChinaNET2是由中国电信提供的中国公用计算机互联网的2个出口, CERNET和CERNET2是中国教育和科研计算机网, 而CERNET2主要为下一代互联网进入校园做准备。在前3个出口, 分别使用高端防火墙1及防火墙2分成两条链路和高端路由器1组合, 后一个出口直接通过高端路由器2到CERNET2。具体情况如图1。
1.3出口设备分工协作
路由器主要负责网络层按帧传输数据, 防火墙主要是保护数据和资源的安全。在本校园网络出口中, 是这样分工协作的:路由器是启用基于源和目的强大的策略路由 (ASIC硬件实现) , 启用NAT (ASIC硬件实现) 。防火墙启用包过滤和内容过滤等主要的安全功能, 启用外网口、内网口等。这样, 两台设备各司其职, 发挥各自功能和性能的优势, 最有效实现负载分担。
1.4负载均衡设计
负载均衡是由多台服务器以对称的方式组成的一个服务器集合, 每台服务器都具有等价的地位, 都可以单独对外提供服务而无须其它服务器的辅助。通过某种负载分担技术, 将外部发送来的请求均匀分配到对称结构中的某一台服务器上, 而接收到请求的服务器独立地回应客户的请求。
在针对校园网中出口设计中, 如果链备有一个好的负载均衡设计就能更好地保证校园网的可靠性。因此, 在本方案中, 充分考虑到了这一点。为了保证负载均衡, 当教学办公科研区用户和学生用户访问教育网资源时, 链路走由高端防火墙和高端路由器1到出口CERNET;当教学办公科研区用户访问非教育网资源时, 链路走高端防火墙和高端路由器1到出口ChinaNET1;当学生用户访问非教育网资源时, 链路走高端防火墙和高端路由器1到出口ChinaNET2;当所有用户访问CERNET2资源时, 链路走高端路由器2到出口CERNET2。
1.5冗余备份设计
可靠的网络都需要有效的传输数据、提供冗余、快速恢复故障的功能, 但由于网络中存在故障点, 即使是健壮的分层结构设计的网络也都存在。因此, 要采用冗余备份设计提供备份链接绕过那些故障点, 并且冗余还提供安全的方法以防止服务丢失。为了进行冗余设计而不破坏网络本身的稳定性, 遵守只有在正常路径断掉时, 才使用冗余路径, 除非冗余路径用作平衡负载之用, 且如果设备或链接不是为数据通信规划的, 就不要在上面传输数据。当ChinaNET1出故障时, 选择ChinaNET2路径;当CERNET出故障时, 也可以选择别的路径。
2校园网向IPv6过渡方式的设想
2.1过渡技术概述
随着网络的发展, IPv4的缺点越来越多地表现出来, 新的IPv6技术的推出给我们带来了希望, 现在IPv6的标准和产品已愈来愈成熟。目前各种IPv4/IPv6过渡技术, 从功能用途上可以分成两类:IPv4/IPv6业务共存技术和IPv4/IPv6互操作技术。主要的IPv4/IPv6业务共存技术又可分为双栈技术和隧道技术两类。IPv4/IPv6互操作技术通过对数据包的转换实现在网络过渡期中IPv4节点和IPv6节点之间的相互访问。目前主要的技术包括SIIT、NAT-PT、BIS、BIA、DSTM等。
双栈是指同时支持IPv4协议栈和IPv6协议栈。双栈节点同时支持与IPv4和IPv6节点的通信, 当和IPv4节点通信时需要采用IPv4协议栈, 当和IPv6节点通信时需要采用IPv6协议栈。隧道策略就是在网络的某一结点将IPv6的整个报文封装在IPv4报文中, 并将这个IPv6报文视作IPv4数据报的数据净负载, 然后在目的地将其解封, 得到IPv6报文。6to4机制实际上是将IPv4网络当作一个单播的点到点链路层。6over4是一种自动隧道技术, 使用6over4的IPv6主机将IPv4组播域作为虚拟的链路层, 通过IPv4的组播方式实现互联。BIS基本思想是, 当IPv4应用程序与纯IPv6节点通信时, 将节点的IPv6地址映射成一个备用IPv4地址池中的IPv4地址。NAT-PT使用网关设备连接IPv6和IPv4网络。当IPv4和IPv6节点互相访问时, NAT-PT网关实现两种协议的转换翻译和地址的映射。
2.2设备与操作系统对IPv6的支持
本方案中所采用核心交换设备是采用NP (Net Processor网络处理机) 支持IPv6的万兆核心路由交换机。选择用的路由器也是应用最广泛的IPv6核心路由器。
在操作系统方面, Windows 98和NT不提供IPv6功能;Windows 2000需要打补丁, 提供非常有限的IPv6功能, 并且不易使用;Windows XP需手工安装IPv6, 核心协议支持较好, 但功能不完善。Windows Vista默认安装IPv6, 功能全面。
2.3适合校园网的过渡技术
过渡的技术种类多种多样, 在校园网的应用中比较各种过渡技术的优缺点, 根据各自的实际需要选择双栈技术和隧道技术。
在校园网的过渡过程中, 双栈技术其实现简单、互通性好, 双栈节点可以同时与IPv6和IPv4互通, 对各种应用支持, 允许应用逐渐从IPv4过渡到IPv6。隧道技术充分利用现有设备组网、骨干设备无需升级, 但额外配置隧道使得效率有所降低, 是IPv4向IPv6过渡的初期最易于采用的技术。而NAT-PT转换方式其地址转换方式将使未来的IPv6网络部分地失去端到端的连接性, 无论转换在何处实现都会使网络的整体性能下降, 并且一些关键的应用还不能很好地支持, 因此不建议采用这种方式。
参考文献
[1]王保顺.校园网设计与远程教学系统开发[M].北京:人民邮电出版社, 2003.
[2]杨国良.IPv6技术、部署与业务应用[M].北京:人民邮电出版社, 2011.
[3]孟玲玲.校园网组建与维护 (21世纪教育技术学系列教材) [M].北京:中国人民大学出版社, 2011.