IPv4/IPv6转换网关的设计与实现

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:liongliong590
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:详细介绍了IPv4IPv6转换网关的设计与实现过程;首先介绍转换网关的工作流程,其次介绍地址转换和协议转换设计,最后分析了DNS ALG设计。
  关键词:IPv6;IPv4;转换网关
  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)23-883-02
  Design and Implementation of IPv4/IPv6 Translation Gateway
  HAN Yin-feng
  (Xi'an Aeronautical Polytechnic Institute, Xi'an 710089, China)
  Abstract:In this thesis, a translation gateway is introduced, both the design and implementation. First, the flow of translation gateway is introduced, secondly, address Translation and protocol Translation Are described, In the end of this thesis, DNS ALG is analyzed.
  Key words: IPv6; IPv4; Translation Gateway
  随着Internet的迅猛发展,现有的IP协议(IPv4协议)在应用中出现了很多问题,如地址资源即将耗尽,不能适应新的网络应用以及对安全性无法保证等。下一代Internet协议(IPv6)不仅解决了IPv4遇到的问题,而且还给IP带来了一些新特性,它取代IPv4成为必然。
  然而,现有的IPv4网路已发展了很多年,它不可能在短时间内都过渡到IPv6网络,在相当长的一段时期内,IPv6网络将和IPv4网络共存。如何实现IPv4节点和IPv6节点之间相互通信是目前Internet急切解决的问题。
  
  1 转换网关的工作流程
  
  本系统设计的转换网关的主要功能是通过IPv4和IPv6分组头的地址和语义转换、DNS ALG设计、TCP层校验和修改以及ICMPv4和ICMPv6的类型、代码转换,以实现IPv4节点和IPv6节点之间相互通信。转换网关的工作流程如图1所示。
  1)IPv4主机要与ipv6主机sipv6.com建立连接,但是不知道该ipv6主机的ipv4地址。于是发出DNS Request问sipv6.com的IPv4地址,DNS request传给IPv4 DNS,若在IPv4 DNS中找到ipv6主机的记录(IPv4是A,而IPv6的报文类型是A6或AAAA),则转到7),否则转到2)。
  2)IPv4 DNS将DNS Request转发到DNS-ALG。
  3)DNS-ALG将Request中的A改为A6或AAAA,转发到IPv6网络。
  4)IPv6 DNS接收到此Request,回复IPv6主机的address为3FFE:3600::140.115.78.8。
  5)DNS-ALG接收到address后,在address上减去前缀,变成IPv4地址140.115.78.8。
  6)DNS-ALG将A6或AAAA改为A之后继续把DNS Reply送回给IPv4 DNS再传给IPv4主机。
  7)IPv4主机认为Sipv6.com的地址为3FFE:3600::140.115.78.8,所以发出源地址为"202.115.64.5",目的地址为140.115.78.8的IPv4分组。
  8)当分组经过转换网关时,其首先查找其地址映射表中是否有源地址为“202.115.64.5”的表项,如果有则直接使用之,如果没有,从可用的地址池中分配一个IPv6地址给此Ipv4主机,假设分配的IPv6地址是3FFE:3600:B::203.79.65.7,同时在地址映射表中添加一个表项:3FFE:3600:B::203.79.65.7——202.115.64.5,从而建立起IPv4主机与IPv6主机间的地址映射。
  9)转换网关根据建立的地址映射关系,进行地址和语义转换,把IPv4的分组头转换成IPv6的分组头,分组头中的源地址为“3FFE:3600:B::203.79.65.7”,目的地址为"3FFE:3600:B::140.115.78.8",然后向IPv6网络发出分组。
  反方向建立连接的过程与上述情况类似,不再详述。
  从转换网关工作流程可以看出,转换网关的设计主要包括地址转换、协议转换和DNS-ALG设计。
  
  2 地址转换设计
  
  地址转换是对IPv6地址端口对和IPv4地址端口对进行转换。当IPv6主机要访问IPv4的网络时,必须有一个合法的IPv4地址,在该模块设计中,合法的IPv4地址端口对存放在一个地址池中,同时包括一个分配状况信息的链表。在协议转换时,通过查询这个地址转换表,将相应的转换后的地址端口对写入新的IP数据报口。
  2.1 表的设计
  地址转换表是地址转换的过程中最重要的一个数据结构,整个模块要实现的功能都是通过对这个转换表的操作实现。数据转换表用于存放所有经过转换的IPv4和IPv6地址端口对的映射关系。综合考虑查询速度和数据存储空间,决定采用了Hash表+链表的数据结构。
  2.2 表的建立
  在Hash表建立之前,首先向地址池进行查询,查找可用的IPv6地址端口对;接着,建立IPv4和IPv6地址端口对的对应关系,并分别计算Hash值,根据Hash值,把IPv4和IPv6地址端口对的信息分别插入到Hash表头所指向的相应链表的表头;最后,要给这两个记录设置互相指向的指针,表明它们之间的映射关系。
  2.3 表的搜索
  表的搜索主要是根据IPv4和IPv6地址端口对进行检索。首先根据地址端口对计算出Hash值;然后找到该值对应的链表,之后根据关键字进行匹配,顺序搜索;最后,将搜索到的记录移至Hash表头后的第一个记录。
  2.4 表的修改
  当地址映射关系发生变化时,要对地址转换表的记录进行相应的修改。修改的过程就是先搜索,后修改,即先根据表的搜索算法找到要修改的记录,之后再改动记录里面的内容。
  2.5 表的删除
  随着转换网关工作的日趋频繁,地址转换表的记录会越来越多。所以,一定要有一个表的维护策略,定期将无用或很久没用用到的记录删除,以释放空间。
  
  3 协议转换设计
  
  IPv4-IPv6(IPv6-IPv4)转换是根据一定的转换算法,把IPv4(IPv6)的报头转化为IPv6(IPv4)的报头。而IPv6-IPv4的转换和IPv4-IPv6转换类似,但转换方向相反。下面重点介绍IPv4-IPv6转换。
  IPv4-IPv6转换是根据一定的转换算法,把IPv4的报头转化为IPv6的报头。
  1)IP协议转换算法
  IPv6报头各字段的内容填写规则如下:
  Version:6
  Priority:全0。
  Flow Label:全0。
  Payload Length:IPv4 报头中的 Total length-IPv4 报头的Header Length×4。
  Next Header:填入 IPv4 报头中的 Protocol 域的值。如果协议号是 1(ICMPv4),则应替换成为 58(ICMPv6)。
  Hop Limit:IPv4 的 TTL -1。如果结果已经为 0,则提示“TTL Exceeded”。
  Source Address 和 Destination Address:填入经转换后的IPv6地址。如果数据报是一个分片的话,还要增加一个分片扩展头。此时,各域的设置基本上与不分片相同,只有以下的差别:
  Payload Length:在上述计算结果的基础上再加 8。
  Next Header:44。
  分片扩展头的设置如下:
  Next Header:填入IPv4中的Protocol域的值。如果协议号是1(ICMPv4),则应替换为58(ICMPv6)。
  Reserved:0
  Fragment Offset:用IPv4的分片偏移量替换。
  MF 标志位:用IPv4的MF标志位替换。
  Identification:低16位用IPv4中的标识符替换;高16位置0。
  2)ICMP4-ICMP6协议转换算法
  在ICMPv6中对部分代码(Code)的含义进行了改变,因此必须进行相应得代码转换。ICMP4-ICMP6协议转换算法如表1所示:
  
  4 应用层(DNS ALG)设计
  
  纯IPv4主机和纯IPv6主机之间无法直接通过IP地址进行连接通信。但由于IPv4和IPv6具有相同的域名结构,IPv4和IPv6可以使用相同的域名空间,因此可以通过DNS-ALG进行IPv4地址与IPv6地址之间的映像,实现纯IPv4主机和纯IPv6主机之间的连接通信。该模块主要的函数如下:
  1)DNS数据报转换函数
  这是DNS数据报转换的主函数,输入原来伪DNS数据报指针,输出转换后的DNS数据报指针。在这个函数中,对DNS报文中各个不同的字段,调用不同的转换函数进行相应的转换。
  2)查询问题转换函数
  查询问题转换函数用来转换DNS数据报中的查询问题部分,根据查询问题数循环修改其中的查询名、查询类型字段。查询类通常是1,表示互联网地址,在这里不需要修改。若查询类型是"AAAA",就要将其改为"A";若为"A",则改为"AAAA"。如果查询类型是"PTR"的话,则请求获得一个IP地址对应的域名。
  3)资源记录转换函数
  不同的字段在进行转换的时候,输入不同的指针。与查询问题转换函数一样,根据资源记录数对资源记录部分进行循环转换。域名和类的内容不需要改变,类型的转换与查询问题转换函数相同。生存时间设置为Q。转换之后,更新数据长度和数据的内容。
  4)反向转换函数
  该函数用于将PTR类型的查询名和资源记录名进行转换。转换过程中,首先查找地址转换表,若有待转换的IPv4/IPv6地址映射记录,则取出记录中的值作为返回值:若没有,则采取加上或去掉IP地址的前缀的方法进行地址转换。
  
  5 小结
  
  IPv6协议是下一代Internet通信协议,它取代IPv4成为了发展的必然。如何实现纯IPv4节点和纯IPv6节点之间相互通信是IPv6发展急需解决的关键问题。本文对IPv4和IPv6协议之间的相互转换进行了深入的研究,基本实现了IPv4和IPv6协议之间的数据通信,达到了预期的效果。
  
  参考文献:
  [1] 伍海桑.IPv6原理与实践[M].北京:人民邮电出版社,2000.
  [2] RFC 2766:Network Address Translation-Protocol Translation(NAT-PT)[S],2000.
  [3] 李津生,洪佩琳.下一代Internet网络技术[M].北京:人民邮电出版社,2001.
  [4] Loshin P. IPv6详解[M].机械工业出版社,2000.
其他文献
摘要:该文介绍了网络登陆与普通系统登陆的功能区别,提出了实现网络登陆的实现解决措施,并通过UML对网络登陆系统进行建模,保证了系统的完善性和可靠性。  关键词:网络登陆;UML;系统建模  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)23-954-02  UML Design for Network Login System   XIA Zhong-hua, ZHA
期刊
摘要:文章探讨了VPN 及其具体实现技术——隧道技术。首先介绍了VPN的概念,接着探讨了VPN的工作原理,最后详细分析了VPN的隧道技术,特别是L2TP隧道协议。  关键词:VPN;隧道技术;L2TP  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)23-879-02  VPN and It's Tunneling Technology Research  CHEN
期刊
摘要:该文以湖南交通职业学院的校园网为背景,从校园网内网安全威胁的特点和攻击原理入手,解析了如何利用VLAN技术保障校园网内网安全。  关键词:VLAN技术;校园网;内网安全  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)23-913-02  How to Support Campus Net the Net Security Use VLAN Technical 
期刊
摘要:探讨了软件逆向工程的基本原理,基于OnTrac平台设计了一个针对 Python源代码的逆向分析系统,并简要介绍ReverseUML系统以及核心模块。  关键词:逆向工程;Python;UML;类图;序列图  中图分类号:TP391文献标识码:A文章编号:1009-3044(2008)23-969-02  Design of Reverse Analysis System Based on O
期刊
摘要:当前,网络信息资源呈现爆炸式增长趋势,用户对信息查询的要求也越来越高,传统的各种信息查询技术已经很难满足这种要求。未来的因特网作为人类的信息库、知识库,应该支持用户以自然语言的方式来完成信息查询,并具备理解语义,进行自动扩展、联想的智能化查询系统。该文提出一个基于Ontology的信息查询系统模型,实现支持自然语言的理解和语义层面的智能化查询功能。  关键词:本体;信息查询;自然语言理解  
期刊
摘要:分析了基于Web服务的Acegi安全框架的构架和实现原理,以Web服务中的HTTPForm为例,详细阐述了Acegi提供的认证和授权机制,并进一步探讨了Acegi安全框架的权限管理,以满足复杂的企业安全需求,从而提高了Web系统的安全性和稳定性。  关键词:Web服务;认证;授权;权限管理  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)23-897-03  R
期刊
摘要:首先给出了SOA概念,然后分析了Web服务体系结构,最后讨论了Web服务的开发方式。  关键词:SOA;Web服务  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)23-958-02  Research about Web Service Based on SOA  PENG Bo1,2  (1.School of Computer and Informatio
期刊
摘要:为了方便教学,让学生尽快掌握汇编语言程序设计的方法,开发了基于VC++的Windows下MASM集成汇编系统,该系统集成了微机汇编语言主要调试工具,实现了编程、编译、联接和动态调试等功能的一体化。实践证明:MASM集成汇编系统界面友好、操作方便,有较好的应用价值。  关键词:汇编语言;微机;教学;Visual C++;Windows  中图分类号:G640文献标识码:A文章编号:1009-3
期刊
摘要:无线自组织网络由不需要任何基础设施的一组具有动态组网能力的节点组成,因此网络可以通过节点路由发现机制转发分组,并进行路由维护。这种网络适应了军事和商用中对网络和设备移动性的要求,而引起了人们的关注,并在20世纪90年代以后获得了广泛的研究和发展。文章对DSR(动态源路由协议)的路由发现过程进行了优化,并采用OPNET仿真软件对基于DSR协议的Ad Hoc网络的路由开销和时延等关键参数进行了仿
期刊
摘要:函数的应用是Excel2003的精华部分,针对大学生计算机文化基础教学过程中经常遇到的情况,以大部分教材中没有讲述的RANK函数和SUMIF函数为例,详细分析了Excel2003中函数的应用过程及需要引起注意的问题,具有重要的实际应用价值。  关键词:Excel2003 ;函数 ;应用  中图分类号:TP317文献标识码:A文章编号:1009-3044(2008)23-999-03  Det
期刊