论文部分内容阅读
NAT-PT(Network Address Translation-protocol Translation,网络地址转换-协议转换)是IPv4网络与IPv6网络过渡期间实现两网通信的一个解决方案。作者参与了H3C公司的“NAT-PT支持多核分布式开发项目”,该项目现已在多款路由器设备上测试通过并验收成功,实现了产品化并投入商用。期间,作者负责NATPT的协议转换(Protocol Translation,PT)的设计与实现。结合该项目,本课题研究NATPT的协议转换过程及应用层网关(Application Layer Gateway,ALG)的设计与实现。
NATPT中协议转换包括IPv4网络与IPv6网络通信中报文的IP头、TCPAJDP/ICMP头部的转换;某些应用层协议为实现一些特定功能,将IP地址和TCPA]DP端口等信息放在了应用层负载中,那么协议转换还包括对应用层数据的转换。考虑到各种报文的IP头、TCP/UDP头的格式一致,而各种应用层协议的格式和功能都相差较大,且应用层数据的转换会影响传输层中的内容(如校验和字段)。为使协议转换简单而高效,我们采用模块化的设计:1)将报文的转换工作分为PT模块和ALG适配层模块。在PT模块只实现NATPT的基本功能,即完成对IP网络层和TCP/UDP传输层的翻译转换;把各应用协议的转换从协议转换中分离出来,放在ALG模块处理。2)先处理内部的应用层数据,再转换IP头及传输层头。因此NATPT必须结合ALG对应用层数据的转换,才能完整实现IPv4与IPv6互通的功能。
在PT模块,着重研究层次化的、高效的转换顺序及转换算法;提出有效的校验和调整算法。在ALG模块完成各应用协议的初始化注册,并为其提供各应用协议处理的接口,在各应用协议子模块做具体处理。这样的“总-分”结构设计便以今后ALG模块对其它应用协议的扩展。另外,初始化注册某应用协议时需要查找判断该协议是否已注册过,我们采用HASH计算端口索引值的方法来查找,有利于其它应用协议的扩展。本课题还研究现已实现ALG功能的三种应用协议(FTP、DNS、ICMP)的具体转换。现已实现ALG的应用协议都是采用固定的知名端口,为使应用协议能使用非知名端口,提出尚未现实的NATPT支持“端口到应用的映射”(Port to Application Mapping,PAM)的构想。最后,在组建的真实网络环境中构造各种协议的报文,利用H3C专用的报文构造及捕获工具Netwizard,验证协议转换和各种应用协议的ALG处理的正确性。