版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、NGI中IPv4与IPv6问题初探0920980022周勇关键字:下一代互联网 IPv6 隧道机制目前,大多数隧道机制都集中在解决IPv6 边缘网络通过IPv4 主干网互通的问题,而关于IPv4网络如何通过IPv6主干网互通问题的解决方案却很少提及。而且,由于当前IPv6网络还处于起步阶段,IPv6业务的大规模部署还有待时日,造成IPv6骨干网中的大量带宽闲置,利用隧道穿越IPv6骨干网来传输现有IPv4业务的数据也可以实现IPv6 带宽资源的充分利用。因此大量的 IPv4 网络通过IPv6骨干网实现互联是目前研究的一个热点。本文对4over6隧道驱动进展了编程实现4over6隧道驱动,跨越校
2、园IPv6网络的两个IPv4主机之间实现 WEB、 Mail 等网络应用。IPv4 地址面临地址枯竭问题数据说明, 2010年 1-3 月份我国互联网网民新增 2000万人,网民总数到达4.04亿,普及率为30.2%。据估算,1-3月份电子商务、网络广告、网络游戏、搜索引擎等市场规模同比增长均超过20%, 成为互联网产业主要增长领域。 祝军称,互联网加速向传统产业渗透, 网络动漫、 网络音乐等将成为互联网产业中新的增 长领域。 现有互联网,IPv4地址只有约40亿个,全世界地址分配很不均衡。我国IPv4地 址资源紧缺,今后2-3年或面临地址枯竭问题。而IPv6是怎样的概念?下一代互联网的IP地
3、址数量大概可以写成 3.14 x 1 11次方个Hella科学人士用Hella 代表 10 的 27次方,以解决巨量数学计算中单位不够大的问题。有人诗意地形容,在下一代互联网中,地球上每一粒沙子都可以拥有一个IP 地址。在现有互联网 IP 地址资源几近枯竭的情况下,未来以 IPv6 为核心协议的下一代互联网,激发了人们无限的热情和想象。物联网的兴起也成为 IPv6 新的催化剂。中国电信2009年在 XXXX 实施了 ?基于 IPv6 物联网技术的农业信息化监控平台?工程,首次在国内开发部署了基于IPv6 的物联网应用农作物温室综合监控系统, 并成功应用于XX 农科院良种果茶培育繁殖中心。我国将
4、加快部署IPv6。在2010全球IPv6下一代互联网顶峰会议上,多位业界专家表示,目前国内运营商部署IPv6的时机已经成熟。IPv6论坛主席LatifLadid在此次大会上表示,IPv6将会有大规模的应用。亚太互联网络信息中心 (APNIC) 在一个IPv6调研中显示出,在受调查的 429个ISP中,考虑推动IPv6的比例为52%,也许会推动IPv6的ISP为35%,总数已到达87%。其中有考虑IPvV6的分配或指派的比例到达71%。从 2008年开场,中国电信就在XXXX 率先开场了向IPv6网络演进的探索,先后完成了 IPv4向IPv6过渡的技术调研、方案制定、设备终端测试等各项工作, 最
5、终采用双栈技术于 2009年完成了 IPv6 网络的商用部署。由于在XX进展的IPv6试商用比拟成功,中国电信今年年初已在内部已经召开下一代互联网(IPv6)部署试点工作启动会,方案在国内主城市展开IPv6商用 部署。网络产品技术开展现状。 我国自主研发的网络产品支持主流的双栈、 隧道及转换等IPv6演进策略,可以帮助运营商将现有的IPv4网络平滑过渡到IPv6网络。由于Internet的规模以及目前网络中数量庞大的IPv4用户和设备,IPv4到 v6 的过渡不可能一次性实现。而且,目前许多企业和用户的日常工作越来越依赖于Internet,它们无法容忍在协议过渡过程中出现的问题。所以 IPv4
6、到v6的过渡必须是一个循序渐进的过程,在体验IPv6 带来的好处的同时仍能与网络中其余的IPv4用户通信。由于IPv6和IPv4协议不兼容,实际上建成的相当于两 X网。对用户来讲, IPv4 网的资源非常丰富, IPv6 网的内容却很少,所以上面没有真正的流量,有的只是一些网络工程师的测试流量。能否顺利地实现从IPv4到IPv6的过渡也是IPv6能否取得成功的一个重要因素。未来 23年是向IPv6 过渡的关键时期。实际上,IPv6在设计的过程中就已经考虑到了 IPv4到IPv6的过渡问题,并 提供了一些特性使过渡过程简化。例如,IPv6地址可以使用IPv4兼容地址,自 动由 IPv4 地址产生
7、; 也可以在 IPv4 的网络上构建隧道, 连接 IPv6 孤岛。 目前针 对IPv4-v6过渡问题已经提出了许多机制,它们的实现原理和应用环境各有侧重, 这一局部里将对IPv4-v6过渡的根本策略和机制做一个系统性的介绍。在IPv4-v6过渡的过程中,必须遵循如下的原那么和目标:保证IPv4和IPv6主机之间的互通;在更新过程中防止设备之间的依赖性即某个设备的更新不依赖于其它设 备的更新;对于网络管理者和终端用户来说,过渡过程易于理解和实现;过渡可以逐个进展;用户、运营商可以自己决定何时过渡以及如何过渡。主要分三个方面:IP层的过渡策略与技术、链路层对IPv6的支持、IPv6对 上层的影响对
8、于IPv4向IPv6技术的演进策略,业界提出了许多解决方案。特别是IETF 组织专门成立了一个研究此演变的研究小组NGTRANS , 已提交了各种演进策略草案,并力图使之成为标准。纵观各种演进策略,主流技术大致可分如下几类:双栈策略实现IPv6结点与IPv4结点互通的最直接的方式是在IPv6结点中参加IPv4协议栈。具有双协议栈的结点称作“ IPv6/v4 ,这些结点既可以收发IPv4分组,也可以收发IPv6分组。它们可以使用IPv4与IPv4结点互通,也可以直接使用IPv6与IPv6结点互通。双栈技术不需要构造隧道,但后文介绍的隧道技术中要用到双栈。 IPv6/v4 结点可以只支持手工配置隧
9、道, 也可以既支持手工配置 也支持自动隧道。隧道技术在IPv6开展初期,必然有许多局部的纯IPv6网络,这些IPv6网络被IPv4 骨干网络隔离开来,为了使这些孤立的“IPv6互通,就采取隧道技术的方式来解决。利用穿越现存IPv4因特网的隧道技术将许多个“ 脓描连接起来, 逐步扩大IPv6的实现X围,这就是目前国际IPv6试验床6Bone的方案工作机理: 在 IPv6 网络与 IPv4 网络间的隧道入口处, 路由器将 IPv6 的数据分组封装入IPv4中,IPv4分组的源地址和目的地址分别是隧道入口和出口的IPv4地址。在隧道的出口处再将IPv6分组取出转发给目的节点。隧道技术在实践中有四种具
10、体形式: 构造隧道、 自动配置隧道、 组播隧道以及 6to4。TBTunnel Broker,隧道代理对于独立的v6用户,要通过现有的IPv4网络连接IPv6网络上,必须使用隧道技术。但是手工配置隧道的扩展性很差, TB 的主要目的就是简化隧道的配置,提供自动的配置手段。对于已经建立起IPv6的ISP来说,使用TB技术为网络用户的扩展提供了一个方便的手段。从这个意义上说, TB 可以看作是一个虚拟的IPv6 ISP, 它为已经连接到IPv4 网络上的用户提供连接到 IPv6 网络的手段,而连接到 IPv4 网络上的用户就是TB 的客户。双栈转换机制 DSTM DSTM 的目标是实现新的 IPv
11、6 网络与现有的 IPv4 网络之间的互通。使用DSTM, IPv6网络中的双栈结点与一个IPv4网络中的IPv4主机可以互相通信。DSTM 的根本组成局部包括:DHCPv6效劳器,为IPv6网络中的双栈主机分配一个临时的IPv4全网唯一地址,同时保存这个临时分配的 IPv4 地址与主机IPv6 永久地址之间的映射关系,此外提供IPv6隧道的隧道末端TEP信息;动态隧道端口 DTI :每个DSTM主机上都有一个IPv4端口,用于将IPv4 报文打包到IPv6报文里;DSTM Deamon:与DHCPv6客户端协同工作,实现IPv6地址与IPv4地 址之间的解析。协议转换技术其主要思想是在 V6
12、 节点与 V4 节点的通信时需借助于中间的协议转换效劳器,此协议转换效劳器的主要功能是把网络层协议头进展V6/V4 间的转换,以适应对端的协议类型。优点:能有效解决V4 节点与 V6 节点互通的问题。缺点:不能支持所有的应用。这些应用层程序包括:应用层协议中如果包含有IP地址、端口等信息的应用程序,如果不将高层报文中的IP地址进展变换,那么这些应用程序就无法工作,如 FTP、STMP等。 含有在应用层进展 认证、加密的应用程序无法在此协议转换中工作。SOCKS64一个是在客户端里引入SOCKS库,这个过程称为“ sockssocksifyin , 它处在应用层和socket之间,对应用层的so
13、cket API和DNS名字解析API进展 替换;另一个是 SOCKS 网关,它安装在IPv6/v4 双栈结点上,是一个增强型的SOCKS效劳器,能实现客户端C和目的端D之间任何协议组合的中继。当C上 的SOCKS库发起一个请求后,由网关产生一个相应的线程负责对连接进展中继。SOCKS库与网关之间通过SOCKSSOCKSv5协议通信,因此它们之间的连接 是“ SOCKST的连接,不仅包括业务数据也包括控制信息;而G和D之间的连接未作改动,属于正常连接。 D 上的应用程序并不知道C 的存在,它认为通信对端是 G 。传输层中继Transport Relay与SOCKS64的工作机理相似,只不过是在
14、传输层中继器进展传输层的“协 议翻译,而SOCKS64是在网络层进展协议翻译。它相对于SOCKS64,可以防 止“ IP分组分片和“ICMP文转换带来的问题,因为每个连接都是真正的IPv4或IPv6连接。但同样无法解决网络应用程序数据中含有网络地址信息所带 来的地址无法转换的问题。应用层代理网关 ALG ALG是Application Level Gateway勺简称,与SOCKS64传输层中继等技术 一样,都是在V4 与 V6 间提供一个双栈网关,提供“协议翻译的功能,只不过 ALG 是在应用层级进展协议翻译。这样可以有效解决应用程序中带有网络地 址的问题, 但 ALG 必须针对每个业务编写
15、单独的 ALG 代理, 同时还需要客户端 应用也在不同程序上支持ALG 代理,灵活性很差。显然,此技术必须与其它过渡技术综合使用,才有推广意义。过渡策略总结双栈、隧道是主流所有的过渡技术都是基于双栈实现的不同的过渡策略各有优劣、应用环境不同网络的演进过程中将是多种过渡技术的综合目前,大多数隧道机制都集中在解决IPv6边缘网络通过IPv4主干网互通的问题, 而关于IPv4网络如何通过IPv6主干网互通问题的解决方案却很少提及。而且, 由于当前IPv6网络还处于起步阶段,IPv6业务的大规模部署还有待时日,造成IPv6骨干网中的大量带宽闲置,利用隧道穿越IPv6骨干网来传输现有IPv4业务 的数据
16、也可以实现IPv6 带宽资源的充分利用。因此大量的 IPv4 网络通过 IPv6骨干网实现互联是目前研究的一个热点。4over6隧道就是一种用于解决现存的IPv4网络通过IPv6主干网互联互通的 机制。4over6隧道机制4over6 隧道机制主要包括两方面的功能:控制平面和数据平面。 控制平面解决的问题是如何通过隧道端点发现机制来建立4over6 隧道,而数据平面那么主要关注包括封装和解封装的分组转发处理,如图 1 所示。4over6控制平面处理4over6机制中,控制平面主要解决隧道端点发现和网络可达性信息传输的问题。4over6控制平面通过对边界网关协议多协议扩展MP-BGP,再进展4o
17、ver6扩展来实现。当4over6路由器的IPv4路由信息发生变化时,路由管理模块通知 BGP协议,启动了 4over6功能的BGP协议发送Update分组到其他对端路由器。对端4over6路由器收到Update分组后,在更新本地维护的封装表的同时,更新本地IPv4路由表,把相应目的IPv4地址的出接口设置为本地4over6虚接口。控 制平面的数据流动方向见图1的Control flow方向挂向平面匚 ilffwikqMrcijil匚rfOT-DCOlF且工 iTuUFf EiblCb.wpi.Wl a ft k & 二 I P?*cdD; FE1* mtSqiiM . Ntact Ih*D-
18、 m | i PCI l U | k 段 I pen图1 4over6机制4over6数据平面处理4over6数据平面主要包括3个局部:1.入口 PE路由器将接收到的IPv4分组 用IPv6头部进展封装;2.封装后的分组在IPv6骨干网中进展传输;3.出口 PE路 由器将分组解封装为原IPv4分组格式。基于4over6分组传输的特点,数据分组 的封装和解封装在边界路由器 PE(双栈路由器)上进展。在实现时,每个4over6 PE 路由器维护一个4over6虚接口,该虚接口通过维护4over6封装表来处理分组的 封装和解封装。该封装表的每个表项中包含了目的IPv4网络的地址和掩码,以及需要转发到
19、的出口 PE路由器的4over6虚接口的IPv6地址。当IPv4数据分组到达入口边界路由器 PE1时,PE1通过查找转发表,发现 并进入本地虚接口进展处理。在 4over6虚接口处理中,通过查找4over6封装表 对分组进展封装,封装的目的IPv6地址是出口边界路由器PE2的虚接口 IPv6地址, 源地址为 PE1 的虚接口 IPv6 地址。 经过封装后的分组通过IPv6 骨干网络传 输到出口边界路由器PE2。在收到分组后,PE2对分组进展解封装,再通过查找IPv4 转发表将原始分组转发给相应的 IPv4 网络。数据平面的数据流动方向见图1 的 Data flow 方向。基于 Linux 的
20、4over6 隧道驱动Linux中的设备分为字符设备、块设备和网络设备。4over6隧道设备是一种软件设备, 同时也是一种网络设备。 作为一个模块, 它既可被动态地连接到正在运行的内核,也可以动态地解除连接。图 2 为 4over6 隧道虚拟设备内核驱动的构造。从图中可以看到,4over6 隧道虚拟设备内核驱动主要包括根本隧道、隧道协议以及特定隧道。内核模块加载与内核模块卸载这两个功能模块是让整个隧道正常工作的前提,前者进展一些隧道虚拟设备的初始化工作,后者进展与之对应的清理工作。隧道协议注册模块产生的隧道协议实体是报文解封装模块的根底, 根本隧道实体注册模块产生的根本隧道实体是隧道创立模块的
21、根底, 而由隧道创立模块产生的特定隧道是隧道错误处理、报文封装及解封装等模块的共同根底。隧道实体的内核定义4over6隧道设备实质上是一种IPv6隧道,在Linux Kernel 2.4.20中,将IP隧道用构造ip_tunnel来表示,但是该构造的定义无法满足IPv6隧道的需求。参考struct ip_tunnel的定义,本文将IPv6隧道在内核中用构造ip6_tnl来定义,其定义如下:struct ip6_tnl struct ip6_tnl *next;struct net_device *dev;int recursion;struct ip6_tnl_parm parms;其中nex
22、t为指向下一个IPv6隧道实体的指针,dev指向该隧道实体所包含的虚拟设备对象,recursion为数据报递归封装的深度,parms那么是隧道实体的属性对象,包括隧道名称、下一报头、隧道起始地址以及流标签等属性的IPv6隧道报头图2 4over6隧道虚拟设备内核驱动的构造4over6隧道协议实体定义为:struct inet6_protocol tunnel46_protocol = .handler = ip46_rcv,.err_handler = ip46_err,.flags = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL;其中,ip46_rcv是隧道
23、报文的接收处理函数,专门负责将收到的IPv6数据包进展重组(如果数据包在进入隧道端点时进展了分段处理),并解封装复原成为IPv4数据包后转交给上层模块来处理;ip46_err是隧道报文传输过程中的错误处理函数。在隧道设备的初始化的过程中,调用 inet6_add_protocol函数,将该协议实体注册到 Linux IPv6 内核协议栈中。由于在隧道设备实际运行时, 隧道实体的定位与查找比拟频繁, 为了提高访问速度,将隧道实体以哈希表的形式进展组织。其中哈希表大小(HASHSIZE) 为32,哈希函数以128位的IPv6 地址为参数,将其划分为 4个局部(每一局部为32位),HASH(IPv6
24、 地址)=Parti A Part2 A Part3 A Part4 & (HASHSIZE - 1)当一个起始地址被分别定位为 local 和 remote 的隧道时,通过TUNNEL(HASH(local)AHASH(Remote) 便能确定其所在的桶。隧道实体的配置接口隧道实体为内核中的数据构造, 而管理员在用户态下对其进展配置, 因此需要一种用户态与内核态信息交互的机制。 由于内核态和用户态使用不同的内存定义,所以二者之间不能直接访问对方的内存。而应该使用 Linux 中的用户和内核态内存交互函数:unsigned long copy_from_user(void *to, const
25、 void *from, unsigned long n);unsigned long copy_to_user (void * to, void * from, unsigned long len);这两个函数均返回不能被复制的字节数, 因此, 如果完全复制成功, 那么返回值为0。 4over6 隧道实体在内核中主要表达为虚拟网络设备,因此配置程序采用传统网络设备的配置方法, 即用 ioctl 系统调用来配置隧道。 ioctl 系统调用为设备驱动程序执行“命令提供了一个设备特定的入口点。在用户空间内调用的ioctl 函数一般具有如下原型:int ioctl(int fd, int cmd,)通常原型中的“代表可变数目的参数表,cmd为命令字。在实际系统中,系统调用不会真正使用可变数目的参数, 而是必须有准确定义的参数个数。每一个设备都可以定义自己的 ioctl 命令字, 命令编号的 X 围是由 SIOCDEVPRIVATE到 SIOCDEVPRIVATE + 15 。 如果是上述这些命令, 那么会调用相关接口驱动程序的dev-do_ioctl。该函数接收和通用ioctl函数一样的struct ifreq号旨针,其原 型如下:int (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 你信不?性格可决定运气
- 新型数据基础设施发展研究报告-推动全闪存数据中心建设助力数字经济高质量发展
- 吉首大学《国际商务谈判》2021-2022学年第一学期期末试卷
- 吉林艺术学院《字体设计》2021-2022学年第一学期期末试卷
- 吉林艺术学院《文化政策法规》2021-2022学年第一学期期末试卷
- 吉林艺术学院《乐理Ⅱ》2021-2022学年第一学期期末试卷
- 2024年供应商付款优惠协议书模板
- 小型汽车租用协议书范文范本
- 吉林师范大学《音频处理与视频剪辑》2021-2022学年第一学期期末试卷
- 河道洗砂承包协议书范文模板
- GB/T 39086-2020电动汽车用电池管理系统功能安全要求及试验方法
- GB/T 25840-2010规定电气设备部件(特别是接线端子)允许温升的导则
- GB/T 25146-2010工业设备化学清洗质量验收规范
- GB/T 20934-2007钢拉杆
- GB/T 12239-2008工业阀门金属隔膜阀
- GB/T 10822-2003一般用途织物芯阻燃输送带
- 学生辩论稿 强将手下无弱兵
- 微生物实验室管理培训考核试题含
- 招投标管理培训课件
- 社会责任程序
- SY∕T 7338-2016 石油天然气钻井工程 套管螺纹连接气密封现场检测作业规程
评论
0/150
提交评论