论文部分内容阅读
随着互联网迅速发展,其核心协议IPv4的缺陷也逐渐的暴露出来,主要表现为IP地址紧缺、路由表项目爆炸和不能满足新应用的要求,而下一代互联网核心协议IPv6在地址空间、可扩展性、路由及安全性等方面都有很大的改进,且易于配置,可靠性高。但是IPv6与IPv4不兼容,使用一个协议的设备不能和使用另一种协议的设备进行通信。使用IPv6,就意味着要对所有的IPv4设备进行升级,但目前的Internet几乎全是IPv4设备,全部升级不可能也没有必要,而且升级应该是一个长期的、渐近的过程。在过渡时期内,IPv6网络与IPv4网络将长期共存,怎样实现两种网络的互操作是目前网络研究的热点之一。在不改变目前现有网络设备的情况下,利用软件的方法解决IPv4与IPv6互操作,具有重要的理论和实践意义。
全文首先介绍IPv6的关键技术,包括IPv6的地址表示方法,IPv6基本报头和扩展的格式、ICMPv6报头的格式。阐述了IPv4向IPv6的三种过渡技术:双协议栈技术、隧道技术、翻译技术,并分析了这几种过渡技术的应用场合。
翻译技术NAT-PT是解决纯IPv6网络和纯IPv4网络通信的一种过渡机制,在这种过渡机制中,既要执行地址转换,还要进行协议翻译,其中NAT是进行地址转换,PT是进行协议翻译。
Linux操作系统的源代码开放,其2.2以后的版本支持IPv6,并且具有内核模块加载方便等方面的优势,所以系统的研究和设计都选择在Linux系统下进行。按照翻译网关功能要求,NAT-PT翻译网关整体结构分成五部分:数据包的截获和生成模块、控制模块、地址翻译模块、协议翻译模块和应用网关模块,数据包截获/生成模块主要利用Linux中Libpcap和Libnet函数库进行设计;地址翻译模块主要使用Has链表方式构造地址池结构;协议翻译主要包括IPv6/IPv4报头的转换和ICMPv6/ICMPv4报文的翻译;控制模块主要是控制各个模块之间的有效的工作。
应用层网关(Application Layer Gateway,ALG)就是根据在IPv4和IPv6两种网络中,应用层的协议的不同进行翻译的一种技术,应用层网关是本文的研究的重点。IPv4和IPv6的应用层的协议大部分都相同,可以直接通信,但也有一些应用层的协议因为其控制指令或返回信息中包含有IP地址信息,因而协议的内容也就不同,所以必须进行翻译。常用的是域名服务协议DNS和文件传输协议FTP,这两个协议在IPv4和IPv6两种网络中的控制指令格式或返回的信息格式不同。在文中重点分析和研究DNS-ALG和FTP-ALG两种网关的设计和实现的方法。
DNSv4与DNSv6的消息结构大部分相同,但是携带IPv6地址信息的部分不同,DNS-ALG对DNS消息体翻译,对DNS息结构体中相同部分,做简单的校验之后,全部拷贝作为翻译后的DNS消息结构体中。不同的部分,翻译后进行复制。DNS-ALG中需要对DNS段中翻译的部分有:Question、Answer、Authority、Additional。
FTPv4和FTPv6的指令格式以及指令执行后返回的结果有的部分不同,FTP-ALG主要完成其翻译工作,对于FTPv4和FTPv6指令和消息不同地方进行翻译,然后进行拷贝新的FTP指令和信息中,对于相同的部分直接进行拷贝到新的FTP中。不同的部分,翻译后进行复制。FTP-ALG必须对下面消息进行翻译处理:PORT、PASV、EPRT、EPSV、150、200、227、229。
过去翻译技术主要集中在网络层进行,仅对IP和ICMP报文的转换,但是这不能满足所有的IPv4和IPv6互操作的要求。本文尝试对部分应用层协议进行转换,使翻译网关具有更好的适用性。
最后构建实验环境,在构建环境下对系统进行测试,并对结果进行分析和论证,对进一步工作提出要求。通过本课题的研究,对IPv4/IPv6之间的平滑互操作了有益的尝试,弥补了过去翻译网关设计中的不足。