NAT-PT技术在IPv4和IPv6互联中的实现

nat-pt技术在ipv4和ipv6互联中的实现
ipv6推广应用初期网络资源相当匮乏,使用者主要是研究ipv6的科研工作者。ipv6的推广普及需吸引大量普通网络用户,仅靠ipv6网络的优异性能是不够的,还需建立大量的可用资源,在短时间内是不可能的。而ipv4网络具有丰富的资源。如能通过转换网关实现ipv6与ipv4网络的无缝连接,实现ipv4与ipv6网络的资源共享,这不仅增加了ipv6网络对用户的吸引力,并具有较高的经济和应用价值。
2 nat-pt转换网关方案
2.1 nat-pt的位置位置和功能结构
nat-pt在linux协议栈中所处的位置如图1所示,整个nat-pt模块由3部分构成,nat维护映射表和地址池,其中dns-alg处于应用层,而nat和pt处于ip层,工作在linux内核,但nat和pt只是在一个linux内核模块工作,整个nat-pt网关是一个包含nat-pt功能的 linux系统。
图2为nat-pt的功能结构图。nat负责ipv4和ipv6地址的映射转换,如存储并维护ipv4地址池;为将要建立的连接选择合适的地址;保持同一通信期间ipv4到ipv6地址的映射、维护。pt负责在两种版本的协议之间进行转换,主要工作是在ip报头的对应字段,根据ipv4和ipv6在语义上的不同定义进行转换,并对上层协议进行适当的转换(如tcp、udp及icmp),从而构建新的数据包。应用级网关alg负责转换负载中包含ip地址的典型应用,其中dns-alg是双向nat-pt必须具备的功能。
2.2 nat.pt的通信过程
下面分析nat-pt在网络中的通信过程,图3为通信模型及其基本配置。
(1)从ipv4到ipv6的通信当ipv4主机b初次与ipv6主机a通信时,首先向本地网络的dns服务器发送一个对a名字的查询请求,此请求记录是“a”,本地dns服务器无此名字记录,此查询通过nat-pt转交,则被dns-alg截获,然后将“a”记录改为“aaaa”记录,并直接将转换后的查询记录递交给ipv6网络的 dns服务器,ipv6的dns服务器返回:
主机a aaaa 200 1:250:2000:3::3
dns-alg将该应答截获,并将“aaaa”记录改为“a”记录,同时在地址映射表中查找此ipv6地址的映射地址,如果有,则直接用映射的ipv4地址替换dns应答中的ipv6地址,并返回应答给ipv4主机b;如果没有,则向nat模块请求分配一个映射地址给此ipv6地址,nat确认映射表中没有关于此ipv6地址的映射表项后,在地址池中分配一个空闲的ipv4地址(比如202.115.9.249)映射给该ipv6地址,并在映射表中添加此绑定表项,最后把分配的ipv4地址返回给dns-alg,这时候dns应答变为:
主机a a 202.115.9.249
dns-alg将此dns应答返回给ipv4主机b。ipv4主机b此时就可以建立与ipv6主机a的通信,这里假定ipv4主机b发起的是tcp通信,则:源地址=202.115.8.3,源tcp端口=1 025;目的地址=202.115.9.249,目的tcp端口=80。
此数据包被路由器转发给nat-pt,协议翻译模块pt转换源包的ip报头和tcp校验,在源地址前添加ipv6前缀,转换为ipv4映射的ipv6地址,并根据nat地址映射表中202.115.9.249与2001:250:2000:3::3的映射关系,将包翻译为:源地址=2001:250: 2000:3::202.1 15.8.3,源tcp端口=1 025;目的地址=2001:250:2000:3::3,目的tcp端口=80。
这样,ipv4主机b可以与ipv6主机进行通信。对于在此映射表项生存期内的后续通信,将继续利用此表项,映射表项超时后将被删除,映射表项超时机制的引入一是为了释放地址资源和内存,另外还可以减少拒绝服务攻击(dos)的风险。
(2)从ipv6到ipv4的通信ipv6主机可以从ipv4网络中的dns服务器获得:ipv4主机的名字解析,但如果在ipv6dns服务器中缓存适当的。ipv4主机的名字解析表,则可以提高通信的效率,这样,ipv6主机就可以从本地的ipv6 dns服务器获得关于ipv4主机的名字解析。如果ipv6dns服务器采用上述方案,则:在图3中,若ipv6主机a试图与ipv4主机b建立通信,则 a首先发送一个对ipv4主机b的名字查询请求到本地ipv6网络的dns服务器,这个请求记录为“aaaa”或“a6'’记录,由于主机b可能在本地 dns有ipv4地址或ipv6地址映射,dns-alg将把此“aaaa”或“a6”查询不加修改地转交给本地dns,若本地dns应答返回的是一个 “aaaa”或“a6”记录,那么dns-alg将把此应答不作修改地返回给ipv6主机a。若dns返回一个“a”记录,即:
主机b a 202.115.8.3
dns-alg则对应答返回的ipv4地址进行修改,在ipv4地址前面加上ipv6前缀,变为:
主机b aaaa 200 1:250:2000:3::202.1 1 5.8.3
或 主机b a6 2001:250:2000:3::202.115.8.3
如果ipv6 dns服务器中没有缓存ipv4主机的名字解析表,则dns-alg将把该“aaaa”或“a6”请求记录修改为“a”记录,并将转换后的名字解析请求转发给ipv4网络的dns服务器,则ipv4网络的dns服务器返回如下应答:
主机b a 202.115.8.3
dns-alg截获此应答,并将其修改为:
主机b aaaa 2001:250:2000:3::202.1 15.8.3
或 主机b a6 2001:250:2000:3::202.115.8.3
至此,名字解析成功。仅仅这样ipv6主机还无法与ipv4主机建立通信,还须将ipv6主机源地址修改为ipv4地址,nat-pt的pt模块截获了主机a的名字查询请求后将在地址映射表中查询是否有与该ipv6地址匹配的ipv4地址绑定,若没有,nat将在ipv4地址池中分配一个空闲的ipv4地址(比如202.115.9.249)映射给该ipv6地址,并在映射表中添加此绑定表项,此时,ipv6主机a就可以与ipv4主机b建立通信。
ipv4节点同ipv6节点通信类似,这里假定a与b进行tcp通信:源地址=2001:250:2000:3::3,源tcp端口=1 025;目的地址=2001:250:2000:3::202.115.8.3;目的tcp端口=80。
ipv6主机a发送的数据包被路由器转发给nat-pt,协议翻译模块pt转换源包的ipv6报头和tcp校验,并根据nat地址映射表中202. 115.9.249与2001:250:2000:3::3的映射关系,将数据包翻译成:源地址=202.115.9.249,源tcp端口=1 025;目的地址=202.115.8.3.目的tcp端口=80。这样,ipv6主机a可与ipv4主机b通信。映射表项生存期内的后续通信,将继续利用此表项,映射表项超时后删除。
3 结束语
由于ipv4资源丰富,而ipvr6资源很少,如果能实现ipv6/ipv4网络的互操作,使 ipv6网络中的主机能够访问ipv4网络资源,从而减小网络升级成本,加快ipv6的推广普及,因此必须研发ipv4/ipv6转换网关。nat-pt 方案可实现ipv4与ipv6的双向通信功能。利用nat-pt技术设计ipv4/ipv6转换网关,并对其测试,从而实现ipv4与ipv6的双向通信。

数字孪生将加快工业虚拟化和AI时代的到来
如何查找PCB失效的原因呢?
华为mate9之后又一款经典即将发布华为mate10即将来袭6G+128G+全面2K屏+麒麟970
双晶探头的正确使用方法及射频方式检测表面缺陷
Socionext通信芯片助力打造智慧城市再添新亮点!
NAT-PT技术在IPv4和IPv6互联中的实现
一加3秒刷ios系统?这样的iPhone你喜欢吗?网友教程没毛病
看博拉网络的大数据技术及产品如何造福企业
空客开展A321XLR测试和系统集成活动
在中国,纯电动汽车技术路线成功案例介绍
英特尔1.4亿美元收购Cray超级计算资产
十八大报告:光伏产业前景光明
小米5C怎么样?小米5C测评:八核处理器3+64GB售价仅1499的这款手机你买不买?
各种传感机制在温室气体检测中的意义
高密度互连PCB布线及PTH Via直径规格
NTN技术是什么?5G NTN技术助力终端直连卫星构建星地融合网络
山东移动:打造自主核心能力,实现计费系统全栈国产化替换
深入探讨对PNPN四层结构的晶闸管正向阻断过程的机理
江苏两箱移动式冷热冲击试验机
自主可控,2020年中国IGBT超180亿元