徐贵宝
一、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地址。
五、DSTM服务器要求
DSTM服务器负责为节点分配临时的IPv4地址,并且只需要在一定时间内保证该地址的唯一性。为了减少对IPv4地址的需要,有些应用还包括了一个端口范围作为分配过程的一部分,这样不同节点就可以同时使用同一IPv4地址了。
DTSM服务器必须要记录申请地址的节点的IPv6地址和临时分配给它的IPv4地址之间的对应关系。服务器分配出去的地址都有一个使用期限,服务器把这个期限包含在回复给节点的应答中。如果客户机需要长时间使用IPv4地址,就得申请地址续租了。
DSTM服务器负责IPv4地址池分配。系统管理员要确定地址池。隧道端点(TEP) IPv6地址的配置必须在DSTM服务器上进行。
在IPv4的路由方面,必须保证DSTM服务器所管理的IPv4全球地址池,能被路由到一个或多个此DSTM域中的TEP。当分配一个地址给DSTM节点时,服务器消息应该包括TEP的IPv6地址。并且当TEP不能动态建立映射或者因为安全原因取消动态映射,DSTM服务器可以负责配置TEP中的IPv4/IPv6映射表。
DSTM的客户端和服务器的通信必须是IPv6方式。DSTM服务器也可以在没有客户端请求的情况下分配临时IPv4地址。DTSM服务器应该能够对DTSM客户端进行认证。
六、DSTM的优点
DSTM适用于IPv6域内的节点需要与域外IPv4节点通信的情况。如果应用层网关被适当的运用,IPv4的连通性需求将大大降低。常规的服务,比如HTTP、smtp就可以利用这个特点。DSTM在没有其他的解决方案(如:应用层网关)时就可以布署使用。DSTM允许双栈节点获得IPv4地址并且提供一个缺省路由(通过4over6隧道)到IPv4网关。如果采用上述机制,并且DSTM被配置成能分配公有IPv4地址,那么任何纯IPv4应用都可以在IPv6网络上运行,在域内的主机将能与Internet上任何其他的主机通信。
DSTM核心设想是对应用层透明,应用可以继续使用IPv4地址;而且对于承载网络也是透明的IPv6的包。能保证一些在净核中包含IPv4地址的应用包能够继续正确地被传送(如IPsec 和H.323等)。
使用DSTM有如下几种好处:
1.纯IPv6主机可以到达全球Internet上的相应的纯IPv4节点。虽然是纯IPv6环境,但是主机并没有游离在Internet之外。
2.还没有支持IPv6的应用可以直接运行在纯IPv6的主机和网络上。所有IPv4流量都通过隧道(IPv4 over IPv6)发往DSTM网关。
3.网络只需要配置IPv6。不需要配置IPv4的地址和路由。因为网络管理员不再需要关心IPv4,网络配置只需要IPv6的就可以了,所以网络监控工作就变得容易得多了。
4.减少了IPv4全球地址的需要。只有在需要地址时才分配一个临时的地址使用。
5.任何类型的协议和应用都被透明地转发。无需采用NAT技术即可实现IPv6节点与IPv4节点的互通。
七、安全策略
DSTM机制可以使用所有已经定义的安全规范。对于DNS,可以使用DNS安全扩展/更新。而在地址分配方面,当连接是由DSTM节点触发时,因为DSTM是一个Intranet环境,所以对地址池的DOS危险是也很有限。Intranet DSTM中,如果布署了DHCPv6,则可以使用DHCPv6认证消息,而且由于TEP都位于Intranet中,他们不作为开放的中继。最后,对于DSTM节点的IPv4通信,一旦节点具有IPv4地址,IPsec就能被使用,因此DSTM不会破坏在任何点的端到端的通信安全。
1控制有权接入业务的人
·在 DSTM服务器上过滤
对网络管理员来说,确保使用DSTM服务器的主机允许控制有权接入该业务的人非常重要。下面的过滤策略就应该应用到DSTM服务器上:
allow ipv6 tunnel_request from allowed_hosts to DSTM_server
allow ipv6 tunnel_request from DSTM_server to TEP
allow ipv6 tunnel_reply from DSTM_server to allowed_hosts
allow ipv6 tunnel_delete from DSTM_server to allowed hosts
allow ipv6 tunnel_delete from DSTM_server to TEP
deny ipv6 from any to any
·认证
现在还没有使用认证,因为基于RCP的应用不支持认证。将来计划使用隧道配置协议 (TSP)和DHCPv6 的应用应该支持认证。
2 DTI问题
目前,ENST提供的DSTM应用需要DSTM服务器和TEP在同一台机器上来保证TEP上的隧道与服务器的分配相一致。这些DSTM应用主要是基于RPC的。现在,已经有了一些用于服务器和TEP之间建立隧道的通信协议的实际应用,虽然有些只是预见性的想法(TSP and DHCPv6)。
如果TEP与DSTM服务器在物理上不是安装在同一台主机上,那么它就使用动态隧道接口(DTI)来建立隧道。这个机制很简单:当TEP收到有协议4的IPv6包时(也就是携带IPv4包的数据),它就自动使用包内携带的信息(IPv6和IPv4源和目的地址)创建一个IPv4 in IPv6隧道。注意,这种情况下还没有方法检查TEP所建立的隧道与DSTM服务器的分配的对应关系,这一点非常重要。可能会出现下面的情况: 一个主机(A)被分给一个IPv4地址与IPv4网络通信使用用TEP的DTI创建的IPv4 over IPv6隧道,如果另一个主机(B)使用与A相同的IPv4源地址发了一个IPv4 in IPv6的包,TEP和A之间的隧道就会被破坏掉了而备TEP和B之间的隧道所代替。这个弱点可能会被用于地址欺骗攻击。不过目前正在考虑是否可以通过使用认证头(AH)协议来解决这个问题。
3网络中的过滤策略
支持DSTM业务的IPv6网络中的所有设备都必须允许IPv4按照IPv4 in IPv6隧道方式传输。
4监控
为了监控一个DSTM激活的网络,系统管理员应该监测在TEP上创建的隧道和DSTM服务器所做的分配。系统应该能检查与DSTM服务器所做分配相对应的隧道,并在出现错误时发出警告消息。
八、结论
虽然目前DSTM还处于IETF草案阶段,技术还远远没有成熟,尤其是在安全方面还有许多问题值得探讨,但是通过使用DSTM技术,可以明显地减少对IPv4地址的需要、可以使IPv4的应用不需要进行修改就能直接运行在IPv6主机上、不需要对IPv4进行任何管理、可以透明地转发任何类型的协议和应用。也正是由于这种方法有着诸多的优点,所以它才日益引人注目。随着DSTM技术的日益成熟,相信它能够IPv4/IPv6过渡方面发挥更大的作用。
摘自 泰尔网