1 导言
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的双向通讯。