NAT-PT完成IPv4与IPv6协议的结合

网络 网络管理
如果能够让IPv4与IPv6协议更好地融合,我们肯定会不择手段的。那么接下来我们将要介绍一下NAT-PT的通信方式来完成这个任务的过程。

IPv4与IPv6协议的相互融合使用,是我们现在所期盼的结果。那么现在已经有了多种手段实现这个目的。那么现在再来介绍一种比较特别的方式——NAT-PT的通信过程。

(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与IPv6协议主机进行通信。对于在此映射表项生存期内的后续通信,将继续利用此表项,映射表项超时后将被删除,映射表项超时机制的引入一是为了释放地址资源和内存,另外还可以减少拒绝服务攻击(DoS)的风险。

(2)从IPv6到IPv4的通信IPv6主机可以从IPv4网络中的DNS服务器获得:IPv4主机的名字解析,但如果在IPv6DNS服务器中缓存适当的。IPv4主机的名字解析表,则可以提高通信的效率,这样,IPv6主机就可以从本地的IPv6DNS服务器获得关于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 如果IPv6DNS服务器中没有缓存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 至此,名字解析成功。仅仅这样IPv4与IPv6协议的主机无法建立通信,还须将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通信。映射表项生存期内的后续通信,将继续利用此表项,映射表项超时后删除。

结束语

由于IPv4资源丰富,而IPvr6资源很少,如果能实现IPv6/IPv4网络的互操作,使 IPv6网络中的主机能够访问IPv4网络资源,从而减小网络升级成本,加快IPv6的推广普及,因此必须研发IPv4/IPv6转换网关。NAT-PT 方案可实现IPv4与IPv6协议的双向通信功能。利用NAT-PT技术设计IPv4/IPv6转换网关,并对其测试,从而实现IPv4与IPv6协议的双向通信。

责任编辑:佟健 来源: csdn.net
相关推荐

2010-06-01 16:50:23

2010-05-26 17:50:40

IPv4与IPv6协议转换

2018-11-23 09:11:18

IPV4IPV6头部

2010-06-02 10:57:40

IPv6协议网络

2010-06-29 10:38:52

2010-05-26 15:17:54

IPv6协议

2010-06-07 15:25:58

IPv4与IPv6

2010-06-08 17:38:17

IPv4与IPv6翻译策略

2018-08-15 09:21:31

IPv6IPv4协议

2010-06-09 17:07:46

IPv6与IPv4

2019-07-01 10:09:09

IPv6IPv4运营商

2019-09-23 11:03:55

IPv6IPv4网络

2010-06-13 16:57:58

IPv4协议网络

2010-05-27 13:23:43

IPv4与IPv6

2010-06-07 13:14:03

IPv4向IPv6过渡

2010-06-07 14:07:18

IPv4与IPv6

2010-04-13 19:45:31

IPv6IPv4

2013-07-24 09:56:48

IPv4IPv6

2010-05-28 17:24:38

IPv4与IPv6

2010-06-07 13:20:34

IPv6与IPv4
点赞
收藏

51CTO技术栈公众号