论文部分内容阅读
下一代互联网协议IPv6彻底解决了IP地址资源危机,但在大规模的应用前,必需经过长时间的实验验证,从IPv4到IPv6的过渡必定是一个漫长的过程。在这期间,网络地址翻译NAT(Network Address Translation)技术极大缓解了全球对IPv4地址的需求,为IPv6的完善赢得了宝贵的时间。在IPv4到IPv6的过渡阶段,沟通IPv6“孤岛”最普遍的技术是把IPv6数据包封装在IPv4协议中(即IPv6-in-IPv4隧道),从而实现在现有的网络中传输,但这种隧道只能应用于端到端模式,不允许中间存在NAT网关,这就使NAT域内的主机很难接入IPv6网。在NAT广泛使用的今天,无疑增加了IPv4到IPv6的过渡难度。 本文讨论了NAT技术及过渡阶段隧道技术的工作原理,仔细研究NAT技术,特别是NAPT(Network Address Port Translation)对IPv6-in—IPv4数据包的处理方式,深入分析了IPv6-in-IPv4隧道机制与NAT不兼容的原因。在此基础上,本文引入了双6to4域的概念,每台主机在微6to4域中具有一个内部局部地址,在宏6to4域中具有一个内部全局地址,然后在宏边界路由器上对6to4数据包进行网络地址翻译,把报头中内部局部地址翻译成内部全局地址,使NAT域内主机能以6to4隧道技术方便地访问外部IPv6网。 在方案设计时,本文定义了一种新的6to4地址扩展格式,在标准6to4地址的最后32位再嵌入一个IPv4地址,这样就可以把内部局部地址到内部全局地址的映射关系保存在6to4数据包的源地址中,降低了方案实现的复杂度。在方案实现时,本文利用Linux下的netfilter/iptables框架把数据包排队到用户空间,然后在用户空间进行程序开发,完成数据包的地址翻译工作。最后,在我校校园网中对本方案进行实际应用与测试,比较、分析了它与iptables实现的NAT在地址翻译时间和吞吐量上的差异,讨论了下一步的改进的方向。