APP下载

结合DNS-ALG的NAT-PT技术研究与实现

2012-08-10王子龙陈光武

通信技术 2012年11期
关键词:网路网关报文

王子龙,陈光武

(兰州交通大学 光电技术与智能控制教育部重点实验室,甘肃 兰州 730070)

0 引言

随着IPv4局限性的日益突出,IPv6技术应运而生,IPv6技术不仅解决了IPv4地址空间不足、路由拥塞、安全性不足等多种问题,而且还在其基础上增加了一些新的特性。现有的网路中很大一部分仍然使用的是IPv4,要在短时间内将其取代是不可能的,所以采取一些必要的过渡措施在所难免,这个过渡期也将是长期而复杂的。然而如何去实现IPv4网路平稳过渡到IPv6网路,这将是人们所要思考的问题。本文结合当前IPv4/IPv6过渡的需求,在GNS3下模拟了 IPv6与 IPv4网络通信的过程,并借助wireshark抓包工具对实验结果进行了详细的解析,为NAT-PT技术的可行性研究提供依据。

1 仿真软件和NAT-PT简介

1.1 GNS3介绍

GNS3是一款具有图形化界面并支持多平台的网络虚拟软件。可以通过它来完成相关的网络实验模拟,同时它也可以用于虚拟体验Cisco网路操作系统IOS或者是检验将要在真实的路由器上部署的相关配置。本文采用Cisco7200型号的路由器作为NAT-PT网关,DNS服务器采用Simple DNS Plus软件实现。

1.2 NAT-PT简介

NAT-PT(网路地址转换-协议转换)是一种附带协议转换器的网路地址转换器,它在IPv4/IPv6地址转换的同时也在IPv4分组和IPv6分组间进行包头和语义的翻译。它把SIIT(无状态IP/ICMP转换)技术和IPv4网路中动态NAT技术结合起来,很好地解决了SIIT中全局IPv4地址池规模有限的问题。另外,NAT-PT还使用了一些特定的应用层网关为一些需要在上层协议中内嵌IP地址的应运提供了协议转化[1]。NAT-PT主要用于在没有IPv6服务器为IPv6主机服务,或者其他不适合使用隧道技术的场景。NAT-PT可分为静态、动态和结合DNS-ALG的动态NAT-PT,但静态技术需要在路由器上配置的 IPv6和IPv4地址一一对应,其配置复杂,维护不便,更重要的是需要消耗大量的IPv4地址,所以并不是一个较好过渡方案。

动态NAT-PT使用一个IPv4地址池为IPv6节点动态的在每个回话跨越网路边界时分配一个IPv4地址,NAT-PT网关绑定并记录这一对IPv4与IPv6地址和端口的映射关系(称为会话信息)[2],为后续报文提供透明路由。如图1所示,当IPv6节点PC2想与IPv4节点PC1通信时,节点PC2会创建一个源地址为 2000::2,目的地址为 2002::c0a8:2(即地址2002::192.168.0.2)的数据包,此报文被发送到NAT-PT网关时,路由器查看其目的地址的地址前缀 2002::与配置的前缀是否相同,相同则对此报文进行转换然后再转发,否则丢弃[3]。但是动态NAT-PT技术仍然存在不足,下面就其缺点和改进方案进行分析。

图1 网路拓扑

2 结合DNS-ALG的NAT-PT实现

动态 NAT-PT技术虽然从技术上解决了节省IPv4地址的问题,但它只能实现IPv6节点与IPv4节点的单向通信,而且某些应用在净载荷中是含有IP地址的,此时只能通过 ALG对报文净载荷中的IP地址进行格式转换,通过 DNS-ALG的动态NAT-PT,不但可以做到IPv4和IPv6网路中任何一方主动发起连接,而且还可以做到基于DNS名称访问对方主机。实验中将名称与IPv4地址的映射称为A记录,把名称与IPv6地址的映射称为AAAA记录[4]。结合图1所示拓扑,下面以节点PC2与节点PC1通信进行详细分析。

2.1 实验解析

1)首先PC2要向IPv4区域中的DNS服务器发出请求对PC1进行名称解析,请求报文的源地址为2000::2,目的地址为 2002::c0a8:102(即地址2002::192.168.1.2)。

2) 请求报文到达 NAT-PT网关之后,NAT-PT设备对报文头部进行转换,从IPv4地址池中分配一个地址192.168.2.2,替换请求报文中的IPv6源地址2000::2,其目的地址转换为 192.168.1.2,并记录其映射关系。同时对其内容进行修改,把AAAA类型请求转换成A类型[4],然后将此报文转发给IPv4网路中的DNS服务器。

3) IPv4侧的DNS服务器收到报文以后,查询自己的记录表,解析出 PC1的 IPv4地址是192.168.0.2,于是 IPv4服务器向 PC2以源地址为192.168.1.2,目的地址为192.168.2.2的报文进行回应,此报文被路由到NAT-PT设备中去。

4) 报文到达 NAT-PT设备以后,报文头部被NAT-PT设备进行转换,同时,DNS-ALG将其中的DNS应答部分也进行转换,把A记录转换成AAAA记录,PC2收到此 DNS应答之后,就知道了 PC1的标识 IPv4地址是 192.168.0.2,于是发起到 PC1的连接,报文的源地址为 2000::2,目的地址为2002::192.168.0.2。

5) 报文到达 NAT-PT设备后,由于在 NAT-PT设备中已经有 IPv4地址 192.168.2.2与 IPv6地址2000::2的会话记录,因此可以按照此会话记录对地址进行转换,转换后的报文源地址为 192.168.2.2,目的地址为192.168.0.2。

6) 报文到达PC1之后,PC1对此报文进行回复,应答报文的源地址为 192.168.0.2,目的地址为192.168.2.2。

7) 应答报文到达 NAT-PT设备以后,NAT-PT设备再按照原有的记录对此报文进行转换,转换后的报文源地址为 2002::192.168.0.2,目的地址为2000::2,并将报文路由到PC2,完成一次通信。

2.2 查看地址转换表

在NAT-PT网关上使用命令debug ipv6 nat 查看PC2 ping PC1 时在NAT-PT网关内部发生的地址转换,整个转换过程可分为PC2与IPv4_DNS服务器之间报文地址的转换和PC2与PC1之间报文地址的转换两部分。

2.3 测试结果

在IPv6主机上ping IPv4主机的域名pc1.cisco,会直接去访问DNS服务器,利用域名成功实现访问IPv4主机。上述实验实现了 IPv6主机通过域名访问IPv4主机,进一步实验参照图1在IPv6网络中添加一台IPv6_DNS服务器,让所有从IPv4域中发出的,目的是解析IPv6域中的主机的DNS解析请求被NAT-PT转发到IPv6_DNS服务器,从而实现全网域名的通信。

3 结语

重点论述了结合DNS-ALG的NAT-PT技术的工作机制和实现原理,解决了IPv6主机和IPv4主机通过域名的访问以及相关的地址转换和协议翻译,从而实现了IPv6主机和IPv4主机的透明通信,达到了预期的要求。NAT-PT技术通过上层协议的映射使大量的IPv6主机使用同一个IPv4地址,从而节省了宝贵的IPv4地址,为IPv4网路向IPv6网路的过渡提供了比较完整的解决方案。

[1] IETF RFC 2766. Network Address Translation-Protocol Translation(NAT-PT)[S].USA:[s.n.]:2000.

[2] 杨林,杨勇.基于IPv4过渡时期NAT技术应用研究[J].通信技术,2012,45(06):42-44.

[3] 周利利,张平,梁祖华.IPv4/IPv6过渡技术在校园网中的应用[J].通信技术,2009,42(02):212-214.

[4] IETF RFC 2694.DNS extensions to Network Address Translators(DNS-ALG)[S].USA:[s.n.]:1999.

[5] 马义涛,薛质,王轶骏.关于TCP穿越NAT技术的研究与分析[J].信息安全与通信保密,2008,35(04):47-49.

猜你喜欢

网路网关报文
基于J1939 协议多包报文的时序研究及应用
无线自组织网路由算法研究
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
基于桩网路堤简化分析方法的参数研究
信号系统网关设备的优化
基于ETC在线支付网关的停车场收费系统设计
ATS与列车通信报文分析
应对气候变化需要打通“网关”
一种实时高效的伺服控制网关设计