DNS-ALG则对应答返回的IPv4地址进行修改,在IPv4地址前面加上IPv6前缀,变为:

  1. 主机B AAAA 200 1:250:2000:3::202.1 1 5.8.3  
  2. 或 主机B A6 2001:250:2000:3::202.115.8.3 

如果IPv6DNS服务器中没有缓存IPv4主机的名字解析表,则DNS-ALG将把该“AAAA"或“A6"请求记录修改为“A"记录,并将转换后的名字解析请求转发给IPv4网络的DNS服务器,则IPv4网络的DNS服务器返回如下应答:

  1. 主机B A 202.115.8.3  
  2. DNS-ALG截获此应答,并将其修改为:  
  3. 主机B AAAA 2001:250:2000:3::202.1 15.8.3  
  4. 或 主机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的双向通信。


相关内容