一、DSTM概述
IPv4/IPv6过渡问题是一个相当复杂的问题,现在已经提出了许多种不同的方法来解决这个问题,包括双栈、SIIT、NAT-PT、SOCKS64、BIA、Tunnel Broker、6to4和BIS等等,这些方法各自适用于过渡过程中的不同情况。
DSTM(Dual Stack Transition Mechanism)的目标在于解决纯IPv6网络中的主机与其他IPv4主机或应用的连接问题,它的出发点是提供IPv6节点一个获得IPv4地址的方式,从而使之能够与纯IPv4节点或者IPv4应用程序通信。DSTM技术通过使用IPv4-over-IPv6隧道,实现了IPv4流量在纯IPv6网上的传输,同时也提供一个为IPv6/IPv4双栈节点分配临时IPv4地址的方法。DSTM目前还处于IETF草案阶段。使用DSTM机制的节点必须是双栈节点,而且这种机制还必须要结合隧道技术进行应用。
二、DSTM体系结构
DSTM的体系结构(如图1所示)中包括三个主要组成部分:DSTM服务器、网关和DSTM节点。其中,DSTM服务器负责为客户机节点分配IPv4地址,它只需要保证在一定的时间内IPv4地址的唯一性;网关作为隧道端点承担纯IPv6域和外部的IPv4 Internet或Intranet的边界路由器的角色;DSTM节点执行封装/解封装数据包,完成收发过程。这里有两点需要注意。一是DSTM节点必须是双栈节点,纯IPv6的节点不能使用DSTM;二是在只有网关需要直接与IPv4连接并需要一个永久IPv4地址。
图1 DSTM的体系结构
DSTM模型假定如下:
1.DSTM域在Intranet而不是Internet中。
2.IPv6节点平时不维护IPv4地址(除非是与纯IPv4节点通信或使用IPv4应用而临时分配地址)。
3.临时IPv4地址由DSTM服务器负责分配,分配的协议有多种选择(DHCPv6就是一个不错的选择)。由于服务器和客户机是都是在同一个纯IPv6网络中,所以地址分配协议要考虑这个限制。
4.作为地址分配功能的扩展,DSTM服务器还可以提供一个端口范围供客户机使用。这样就可以允许几个不同的DSTM节点同时使用相同的IPv4地址,从而大大减小了所需的IPv4地址池。
5.在DSTM域内,IPv4路由表保留到最小,从而减少了过渡时期所需要的IPv4网管工作。
6.一旦IPv6节点获得一个IPv4地址(也可能是一个端口范围),就会使用4over6隧道将包从该节点转发到一个DSTM TEP,在那里拆封后再使用IPv4转发。DSTM服务器应为客户机提供所需TEP的IPv6地址,这也是地址分配过程的一部分工作。
7.现有的IPv4应用不需任何修改就可以在DSTM节点上运行。
8.只要目的地址是TEP可达的纯IPv4主机,DSTM节点就可以与它进行通信。
三、DSTM通信过程
DSTM节点与IPv4通信的过程如下:
·DSTM节点向DSTM服务器请求一个临时的IPv4地址。
·DSTM服务器在地址池中为该DSTM节点保留一个IPv4地址,并在应答消息中将该地址和地址的有效时间以及有关DSTM网关(也就是TEP)的信息发送给DSTM节点。
·DSTM节点使用申请来的地址配置其IPv4堆栈,并将所有IPv4包都通过IPv4 over IPv6隧道送到DSTM网关。
·DSTM网关将包拆封成IPv4包发送出去。DSTM网关保留一个含有intranet主机IPv4和IPv6地址的映射表,并利用此映射表来执行IPv4包的封装和拆封。为保证双向通信,IPv4路由必须要确保目的地为A的任何包都经过C。
四、DSTM节点要求
网络上的每个主机都需要有一个DSTM主机应用。现在,已经有支持FreeBSD、Linux和Microsoft Windows 2000的DSTM主机应用。主机有IPv6连接能力,因此在不需要进行IPv4通信时也可以有纯IPv6应用。例如,在DSTM网络中,一些内部应用就可以使用纯IPv6的而不再需要支持IPv4。每个需要通过IPv4通信的应用都必须支持IPv6-IPv4双栈。FreeBSD中ENST提供的主机应用需要一个“gif”(隧道)接口来支持IPv4 over IPv6隧道。
1 IPv4协议栈的配置
只要通信是在本地IPv6中发生的,DSTM节点就不需要使用IPv4地址。主机只有在以下情况时才需要IPv4地址:
·DNS解析的结果表明目的地址是一个IPv4地址时;
·当应用打开一个IPv4 socket时;
·一个IPv4数据包发往内核而又没有接口准备转发此包时。
当第一个IPv4包需要发送时,DSTM客户机不管通过什么方式,必须与DSTM服务器取得联系。随后,客户机从服务器那里获得一个临时的IPv4地址以及一个TEP的IPv6地址。如果允许的话,服务器还可以提供所使用的端口范围。这些信息都用来进行4over6接口的配置。只有4over6的隧道接口配置后,IPv4协议栈的配置才宣告完成。
2 IPv4包转发
由于没有IPv4路由设施,DSTM节点不能直接在网络上发送IPv4包,所以DSTM节点必须能建立与隧道端点TEP之间的4over6隧道。DSTM节点将IPv4包封装进IPv6包后,再通过该隧道发给隧道端点TEP(TEP可以看作是一个特殊的DSTM节点),TEP完成拆封工作后再将它们转发到IPv4网络上。
在DSTM节点上,封装工作是由4over6接口完成的。所有的IPv4流量都可以通过一个IPv4路由表项指向这个接口。具体的4over6接口和有关路由表项要视应用而定。
3 DSTM节点中IPv4包的处理
为了保证IPv4的连通性,在纯IPv6域中的节点必须能动态配置他们的IPv4栈(通过向服务器请求临时地址)。
当需要发送IPv4包时,DSTM节点会把包交给4over6接口。如果4over6接口还没有配置(也就是还没有IPv4地址),处理过程就暂时停在这里,然后节点与DSTM服务器联系请求获得一个临时地址。一旦得到IPv4地址,所有通过该4over6接口转发的包都以这个临时地址作为IPv4源地址,IPv4包的其他域正常处理。
4 IPv6数据包结构
当4over6接口将IPv4包封装到IPv6包中,它必须确定IPv6包的目的地址。通常这个地址是TEP地址。在DSTM节点处,TEP地址可以是静态配置的,也可以是节点获得IPv4地址时从DSTM服务器动态获得的。
TEP的IPv6地址必须在DSTM节点接受临时IPv4地址时由DSTM服务器提供。不过在使用DSTM早期,也可以手工配置DSTM节点的TEP,这种方法不宜推广使用,也不推荐作为长期解决方案。
封装IPv4的包时,Next header type域填4。当隧道包到达IPv6终点,IPv6包头被去掉,由IPv4栈来处理解封后的包。然后TEP将使用普通IPv4的方法来转发拆封后得到的IPv4包。TEP应该缓存这种IPv4和IPv6源地址的对应关系。
一个封装包的IPv6源地址应该是发送该IPv6包的物理接口的IPv6地址。转载保留:http://www.qqread.com/erp/26/q626157004.html
更多内容请看路由安全配置专题、网络管理实用手册、系统安全设置专题,或进入讨论组讨论。
相关专题
- 警惕企业的“破窗”危机 (0次浏览)
- 不能说的秘密 IT企业为守护技术机密而战 (0次浏览)




