NAT-PT是附带协议转换的网络地址转换器,通过修改协议报头来转换网络地址,使IPv4节点和IPv6节点互通。与一些隧道技术不同,NAT-PT只要求在IPv4和IPv6之间互联的网络转换设备上启用,协议转换的目的是实现IPv4和头之间的转换,地址转换则是为了让IPv4和IPv6网络中的主机互相识别对方。另外,NAT-PT通过与应用层网关(ALG)相结合,实现了只安装IPv6的主机和只安装了IPv4主机的大部分应用的相互通信。
同时,NAT-PT将SIIT(Stateless IP/ICMP Translation)协议转换技术和IPv4网络中动态地址翻译技术(NAT)相结合。它利用了SIIT技术的工作机制,同时又利用了传统的IPv4下的NAT技术,动态地访问IPv4节点的IPv6节点分配IPv4地址,很好地解决了SIIT技术中的全局IPv4地址池规模有限的问题。
SIIT技术
无状态IP/ICMP翻译技术(Stateless IP/ICMP Translation,SIIT)是对IP/ICMP报文进行协议转换的技术,它并不记录一个流的状态(无状态)。在SIIT网络中,IPv6节点需要配置成格式为::FFFF:0:W.X.Y.Z的IPv4翻译地址,其中W.X.Y.Z是IPv4节点认为IPv6节点在IPv4网络中的地址,IPv6节点访问IPv4节点则通过映射地址::FFFF:0:W.X.Y.Z来表示IPv4节点。
图1 SIIT原理示意图
设IPv4主机A(IPv4地址为100.0.0.1),IPv6主机B的地址是::FFFF:0:W.X.Y.Z的IPv4翻译地址,并且W.X.Y.Z是全局IPv4单播地址(设为1.1.1.1)。
1.SIIT原理分析
(1)IPv4到IPv6的地址头转换
现假设A要访问B:当A发出的访问B的报文到达SIIT协议转换器时,报文的目的地址是B的低32位(这里是1.1.1.1),SIIT判断出此地址属于其管理的IPV6-Only节点的IPv4地址空间(设为1.1.1.1~1.1.1.254),就进行IPv4→IPv6的协议报文头转换,把源地址转换成IPv4的映射地址,目的地址转换为IPv4的翻译地址::FFFF:0:W.X.Y.Z,再把此报文传给主机B。即源地址100.0.0.1→::FFFF:0:100.0.0.1,目的地址1.1.1.1→::FFFF:0:1.1.1.1。
(2)IPv6到IPv4的地址头转换
现在假设B要访问A:当B发出的访问A的报文到达SIIT协议转换器时,报文的源地址是B的翻译地址(::FFFF:0:1.1.1.1),目的地址是A的映射地址(::FFFF:0:100.0.0.1),若 SIIT判断出目的地址是IPv4的映射地址,就进行IPv6→IPv4的协议报文头转换,转换的结果为:源地址::FFFF:0:1.1.1.1→1.1.1.1,目的地址::FFFF:0:100.0.0.1→100.0.0.1。