论文部分内容阅读
2011年3月国际互联网名称和编号分配公司(ICANN)官方宣布最后一批IPv4地址被分配完毕,表明IPv6取代IPv4迫在眉睫。由于目前大多数Intranet网络基础设施都是基于IPv4协议的,所以IPv4过渡到IPv6需要一个很长的阶段。在此期间,IPv4将与IPv6共存,必须研究一种适合于Intranet的IPv6过渡策略,用以保证IPv4网络与IPv6网络能够进行正常的通信。本文首先对双栈、隧道、翻译等几种常用的过渡技术进行了探讨,并对IVI翻译机制的原理及通信过程进行了详细研究。在此基础上提出了以Netfilter扩展模块形式实现IVI机制的方案,然后对该方案中的IVI匹配模块和IVI目标模块进行了详细分析与具体实现。最后对IVI过渡方案的域名解析模块进行了优化,以适用于在复杂网络环境中进行部署。本文开展的工作主要包括以下几方面:1、对目前最典型的三种过渡技术,包括双栈技术、隧道技术以及翻译技术进行了深入研究与对比,分析了它们各自的优缺点及适用场景。2、设计了IVI机制在Linux内核中的整体实现方案。其主要思路是在Linux内核防火墙Netfilter框架上添加IVI扩展模块,该模块主要由IVI匹配子模块、IVI目标子模块及其相关的头文件组成。在添加IVI扩展模块具体采用的方法上,采用了最新的xtables-addons插件方法用于取代过时的patch-o-matic方法,新方法具有简单省时且成功率高的优点,并且插件编译是置于内核外的,这为今后对扩展模块进行不断优化拓展提供了良好的便捷性。3、设计与实现了IVI匹配模块。IVI匹配模块又细分为IVI用户空间匹配模块和IVI内核空间匹配模块,其中IVI用户空间匹配模块负责接受用户传入的匹配信息并将其置于内核数据结构中,而IVI内核空间匹配模块是真正执行匹配功能的模块,它可以根据传入的匹配信息对相应的数据包进行匹配,主要包括IP地址信息、地址前缀等,被匹配上的数据包则交由IVI目标模块进行处理。4、设计与实现了IVI目标模块。IVI目标模块主要负责IPv4与IPv6两种协议族之间的转换,其中最主要的包括IPv4与IPv6地址转换算法以及协议翻译算法、ICMPv4与ICMPv6不同类型间的相互转换算法等。针对运输层协议UDP和TCP在翻译过程中产生的伪首部变化的情况,本文设计实现了一种新的检验和更新算法,该算法在进行检验和计算时不是通过重新计算整个检验和字段获得,而只是在原检验和基础上针对改变区域进行相应更新,可以有效地提高其计算效率。5、就现有IVI过渡方案中域名解析模块在复杂条件下暴露出的问题,包括IVI6(i)主机无法访问双栈服务器以及IPv6环境中双栈节点对IPv4的A类型DNS查询报文得不到正确回复的问题进行了深入分析。最后提出了一个改进后的域名解析方案,可以有效地解决现有域名解析模块中存在的缺陷,从而完善IVI过渡方案中域名解析模块的部署机制。IVI翻译机制可以有效地解决在IPv4与IPv6网络共存时期IPv4主机与IPv6主机相互通信的问题,由于IVI网关是无状态翻译的,具有良好的翻译性能。同时IVI扩展模块在内核调用时是作为一个可加载的模块使用,可以十分方便地集成于现有内核中,具有很大的灵活性。本文所研究的IVI网关适合于在中大规模Intranet中使用,为广泛部署Intranet过渡网络提供了实际应用参考。