您现在的位置: 通信界 >> 数据通信 >> 技术正文  
 
NAT-PT的设计与实现
[ 通信界 / 专网通信世界-中国电力通信网 / www.cntxj.net / 2006/7/2 11:16:48 ]
 

一、概述

  新的IPv6网络的部署已经在全球范围内展开,在此过程中我们不可能立即放弃原有的已经成熟的IPv4网络。在将来很长一段时间之内,两种网络必然是共存的,我们现在需要考虑的就是我们如何能够平稳地从IPv4网络过渡到IPv6网络。

网络地址和协议转换(NAT-PT)就是我们的选择之一,它能够解决我们在过渡过程中所能碰到的一些问题。

二、NAT-PT介绍

  NAT-PT是一种纯IPv6节点和IPv4节点间的互通方式,所有包括地址、协议在内的转换工作都由网络设备来完成。支持NAT-PT的网关路由器应具有IPv4地址池,在从IPv6向IPv4域中转发包时使用,地址池中的地址是用来转换IPv6报文中的源地址的。此外网关路由器需要DNS-ALG和FTP-ALG这两种常用的应用层网关的支持,在IPv6节点访问IPv4节点时发挥作用。如果没有DNS-ALG的支持,只能实现由IPv6节点发起的与IPv4节点之间的通信,反之则不行。如果没有FTP-ALG的支持,IPv4网络中的主机将不能用FTP软件从IPv6网络中的服务器上下载文件或者上传文件,反之亦然。

  采用NAT-PT方式进行过渡的优点是不需要进行IPv4,IPv6节点的升级改造,缺点是IPv4节点访问IPv6节点的实现方法比较复杂,网络设备进行协议转换、地址转换的处理开销较大,一般在其他互通方式无法使用的情况下使用。

三、SIIT介绍

  在NAT-PT的实现中最重要的一部分就是协议部分的转换算法,也就是无状态IP/ICMP转换算法(SIIT)。转换方法包括如下几个大的方面:

  IPv4->IPv6:
  ¨ IPv4头部到IPv6头部的转换
  ¨ IPv4 UDP头部的转换
  ¨ IPv4的ICMP头部转换为IPv6的ICMP头部
  ¨ IPv4的ICMP错误消息转换为IPv6的ICMP错误消息

  IPv6->IPv4:
  ¨ IPv6头部到IPv4头部的转换
  ¨ IPv4的ICMP头部转换为IPv6的ICMP头部
  ¨ IPv4的ICMP错误消息转换为IPv6的ICMP错误消息

  上述转换中,IPv4头部和IPv6头部的相互转换比较简单,请参看RFC2765。下面重点描述一下IPv4->IPv6转换过程中UDP头部的转换以及ICMP报文的转换。

3.1、IPv4报文中UDP头部的转换

  在IPv4报文中,UDP头部校验和可以不填写,即UDP头部校验和可以是0。但是在IPv6协议中,IPv6头部没有校验和,为了保证UDP数据包的正确性,UDP头部中校验和字段必须填写。

  如果一个UDP包被分片,但是UDP头部的校验和为0,作为一个无状态的转换设备来说,它不可能计算出一个有效的校验和。不过,我们认为这种情况是恶意的攻击。当转换设备收到这种报文的时候,转换设备应该丢弃该报文并生成一个系统相关事件(事件至少需要记录IP地址和端口号)。

  如果转换设备收到一个未分片的IPv4 UDP报文并且校验和为0,转换设备必须计算UDP校验和,而且转换设备应该记录有多少个这样的UDP校验和被计算。

3.2、ICMP头部的转换

  在IPv6中,ICMP的校验和计算包含一个伪头部(源地址,目的地址,协议号,ICMP包长度),而在IPv4中,ICMP的头部校验和的计算不包含伪头部。所以,所有经过转换设备的ICMP的校验和都需要重新计算。

  说到ICMP头部的转换,除了校验和之外,剩下的就是ICMP的Type值和Code值需要转换,下面给出一个转换表(表一),请大家参考。


3.3、ICMP错误消息的转换

  对于ICMP错误消息,它头部中的Type值和Code值的转换也需要参照(表一)进行转换。

  ICMP错误消息中包含了IP头部,错误消息中的IP头部也需要被转换,就像普通的IP头部被转换一样。转换错误消息中的IP头部可能导致数据包的长度变化,那么正常的IPv6头部的有效载荷长度也需要更新。如图一所示:
  ICMP错误消息中的IP头部的转换能够第归调用转换外部IP头部的转换函数。只不过转换之前,内部的IP头部中,源地址、目的地址和上层协议(TCP,UDP)的源端口号、目的端口号需要互换。只有这样才能保证ICMP ERROR报文的正确转换。

四、应用层网关(ALG)

4.1、DNS-ALG

  在组网的时候,如果处于V6网络的主机需要连接到V4网络中的主机,V6主机可以认为V4主机的所对应的IPv6地址为NATPT前缀+IPv4主机地址。如:V4主机地址为10.18.34.1,NATPT设备设定的前缀为2222::/64,则V4主机对应的IPv6地址就是2222::10.18.34.1或2222::0a12:2201。

  但是当V4网络中的主机需要访问V6网络中的主机的时候就不能按照这种方法来做,V4主机可以按照V6主机所对应的域名来访问,这就需要用到DNS-ALG功能。如(图二)所示:
  V4端主机10.18.34.117需要访问V6端主机2000::1,V4主机所对应的域名为www.ipv4.com.cn,V6主机所对应的域名为www.ipv6.com.cn

  首先V4主机发送DNS请求1给它的DNS服务器,请求www.ipv6.com.cn这个域名所对应的IPv4地址,V4的DNS服务器发现没有这个资源记录,于是它转发这个DNS请求给V6的DNS服务器。需要注意到,NATPT设备上必须配置两个DNS服务器的地址映射关系,如:10.18.34.252 => 2000::2,即V6的DNS服务器所对应的IPv4地址为10.18.34.252。

  NATPT发送经过转换的DNS请求2给V6的DNS服务器。

  V6的DNS服务器收到经过NATPT设备转换之后的DNS请求之后,它作出响应,发送DNS应答3给V4的DNS服务器。NATPT在收到应答3之后,对之进行转换。因为www.ipv6.com.cn这个域名对应的IPv6地址为2000::1,所以应答报文中的资源记录为AAAA,地址为2000::1,经过转换之后,资源记录变为A,2000::1这个IPv6地址所对应的IPv4地址就从地址池中获取。假如获取的IPv4地址为10.18.34.11,则在地址映射表中增加了一条新的地址映射表项2000::1=>10.18.34.11,此记录为一动态记录,超时之后将被自动删除。

  NATPT设备发送经过转换之后的DNS应答报文给V4的DNS服务器。

  V4的DNS服务器收到应答报文之后在它的DNS缓存中增加一条记录,表明www.ipv6.com.cn这个域名所对应的IPv4地址为10.18.34.11。在此之后,IPv4主机要和IPv6主机进行通信,只需要访问IPv6主机的域名即可。

  从V6端访问V4端主机的域名也按照同样的步骤。

4.2、FTP-ALG

  当IPv4网络中的用户需要访问IPv6网络中的FTP服务器的时候,对应的FTP请求报文和相应报文需要进行转换,FTP-ALG就是解决此问题的。一般来说,我们只需要对目的端口或源端口为21的TCP报文进行转换,因为这些报文属于FTP的控制报文,只有FTP控制报文中包含了地址和端口的信息。我们只需要转换这些地址和端口。

  FTP的请求分很多类型,如PORT 、PASV、EPRT、EPSV等等。对于大多数支持IPv4的FTP客户端来说,它们一般都只支持PORT和PASV请求模式,经过升级之后可能支持EPRT和EPSV请求模式。但是现在支持IPv6的FTP客户端一般是支持EPRT和EPSV这两种请求模式。

  从上面的描述中我们可以知道,对于IPv4网络中的FTP客户端来说,它们即可以支持PORT和PASV请求模式也可以支持EPRT和EPSV请求模式。对于IPv6网络中的FTP客户端来说,它们肯定都支持EPRT和EPSV请求模式。但是,这时将会出现一个问题,如(图三)所示:
  IPv4的FTP请求转换成IPv6的FTP请求是二对一的关系,反之是一对二的关系。也就是说,我们现在需要考虑,在转换IPv6侧的FTP请求的时候我们应该怎么转换呢?两种都可以!但是两种都有不足的地方。

  1、EPRT->PORT EPSV->PASV
  这种转换中,FTP-ALG不能转换“ EPSVALL“这种指令。这样将导致FTP Server返回一个错误信息

  2、EPRT->EPRT EPSV->EPSV
  这种转换要求IPv4侧的主机升级FTP软件以支持EPRT和EPSV两种请求模式。

  鉴于这种情况,我们建议在缺省情况下采用第一种转换方式,因为第一种转换方式不需要IPv4侧的主机进行升级,虽然有个指令不能转换,但是我们认为该指令出现的几率不是很频繁,就算出现该指令,大多数情况下我们的FTP连接还是能够建立起来,不影响文件的传输。我们还建议在NATPT转换设备上设置一条命令,把IPv6侧的FTP请求的转换方式当作可配置的。

  在经过FTP-ALG模块转换之后FTP报文的数据部分长度可能发生变化,此时TCP头部的校验和需要重新计算,同时TCP包中的Seq Number和Ack Number需要调整。

六、NATPT设备应用范围的考虑

  NATPT只是作为IPv4网络向IPv6网络过渡的时候采用的一种手段,NATPT自身有一定的局限性,由于转换相当耗费系统资源和时间,所以NATPT设备注定不能作为核心的设备,只能用于边缘协议和地址的转换。而且NATPT对于系统安全不能够很好的支持,而系统安全这一点对于下一代网络来将非常重要。所以网络中采用NATPT设备只能暂时作为一种解决问题的方案。

七、总结
  本文简单地描述了NAT-PT转换中所需要注意的几个方面,但要从真正实现NAT-PT协议的角度来讲,这些远远不够。武汉邮科院烽火网络公司的Fengine系列路由器已经实现了NATPT转换,包括DNS-ALG、FTP-ALG、SIP-ALG等。能够为用户提供从IPv4到IPv6网络平滑进行过渡的解决方案。众所周知,在进行NATPT转换之后,系统的性能将大大降低,但是烽火网络公司的R8000系列路由器能够实现硬件的转换,大大提高了NATPT的转换性能和可靠性。

参考资料:
[FTP-IPV6] Allman, M., Ostermann, S. and C. Metz, "FTP Extensions for IPv6 and NATs", RFC 2428, September 1998.
[DNS-ALG] Srisuresh, P., Tsirtsis, G., Akkiraju, P. and A. Heffernan, "DNS extensions to Network Address Translators (DNS_ALG)", RFC 2694, September 1999.
[NAT-PT] George Tsirtsis., "Network Address Translation - Protocol Translation", RFC 2766, February 2000.
[SIIT] Nordmark, E., "Stateless IP/ICMP Translator (SIIT)", RFC 2765, February 2000.
[ICMPv4] Postel, J., "Internet Control Message Protocol", STD 5, RFC 792, September 1981.
[ICMPv6] Conta, A. and S. Deering, "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6)", RFC 2463, December 1998.

 

作者:专网通信世界-中国电力通信网 合作媒体:专网通信世界-中国电力通信网 编辑:顾北

 

 

 
 热点技术
普通技术 “5G”,真的来了!牛在哪里?
普通技术 5G,是伪命题吗?
普通技术 云视频会议关键技术浅析
普通技术 运营商语音能力开放集中管理方案分析
普通技术 5G网络商用需要“无忧”心
普通技术 面向5G应运而生的边缘计算
普通技术 简析5G时代四大关键趋势
普通技术 国家网信办就《数据安全管理办法》公开征求意见
普通技术 《车联网(智能网联汽车)直连通信使用5905-5925MHz频段管理规定(
普通技术 中兴通讯混合云解决方案,满足5G多元业务需求
普通技术 大规模MIMO将带来更多无线信道,但也使无线信道易受攻击
普通技术 蜂窝车联网的标准及关键技术及网络架构的研究
普通技术 4G与5G融合组网及互操作技术研究
普通技术 5G中CU-DU架构、设备实现及应用探讨
普通技术 无源光网络承载5G前传信号可行性的研究概述
普通技术 面向5G中传和回传网络承载解决方案
普通技术 数据中心布线系统可靠性探讨
普通技术 家庭互联网终端价值研究
普通技术 鎏信科技CEO刘舟:从连接层构建IoT云生态,聚焦CMP是关键
普通技术 SCEF引入需求分析及部署应用
  版权与免责声明: ① 凡本网注明“合作媒体:通信界”的所有作品,版权均属于通信界,未经本网授权不得转载、摘编或利用其它方式使用。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:通信界”。违反上述声明者,本网将追究其相关法律责任。 ② 凡本网注明“合作媒体:XXX(非通信界)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。 ③ 如因作品内容、版权和其它问题需要同本网联系的,请在一月内进行。
通信视界
华为余承东:Mate30总体销量将会超过两千万部
赵随意:媒体融合需积极求变
普通对话 苗圩:建设新一代信息基础设施 加快制造业数字
普通对话 华为余承东:Mate30总体销量将会超过两千万部
普通对话 赵随意:媒体融合需积极求变
普通对话 韦乐平:5G给光纤、光模块、WDM光器件带来新机
普通对话 安筱鹏:工业互联网——通向知识分工2.0之路
普通对话 库克:苹果不是垄断者
普通对话 华为何刚:挑战越大,成就越大
普通对话 华为董事长梁华:尽管遇到外部压力,5G在商业
普通对话 网易董事局主席丁磊:中国正在引领全球消费趋
普通对话 李彦宏:无人乘用车时代即将到来 智能交通前景
普通对话 中国联通研究院院长张云勇:双轮驱动下,工业
普通对话 “段子手”杨元庆:人工智能金句频出,他能否
普通对话 高通任命克里斯蒂安诺·阿蒙为公司总裁
普通对话 保利威视谢晓昉:深耕视频技术 助力在线教育
普通对话 九州云副总裁李开:帮助客户构建自己的云平台
通信前瞻
杨元庆:中国制造高质量发展的未来是智能制造
对话亚信科技CTO欧阳晔博士:甘为桥梁,携"电
普通对话 杨元庆:中国制造高质量发展的未来是智能制造
普通对话 对话亚信科技CTO欧阳晔博士:甘为桥梁,携"电
普通对话 对话倪光南:“中国芯”突围要发挥综合优势
普通对话 黄宇红:5G给运营商带来新价值
普通对话 雷军:小米所有OLED屏幕手机均已支持息屏显示
普通对话 马云:我挑战失败心服口服,他们才是双11背后
普通对话 2018年大数据产业发展试点示范项目名单出炉 2
普通对话 陈志刚:提速又降费,中国移动的两面精彩
普通对话 专访华为终端何刚:第三代nova已成为争夺全球
普通对话 中国普天陶雄强:物联网等新经济是最大机遇
普通对话 人人车李健:今年发力金融 拓展汽车后市场
普通对话 华为万飚:三代出贵族,PC产品已走在正确道路
普通对话 共享退潮单车入冬 智享单车却走向盈利
普通对话 Achronix发布新品单元块 推动eFPGA升级
普通对话 金柚网COO邱燕:天吴系统2.0真正形成了社保管