RSS订阅
RSS订阅TT网络

基于SOCKS地IPv4向IPv6过渡技术(二)

2008-6-18  选择字号:  | |
打印本文章

导读:基于SOCKS的IPv4向IPv6过渡技术主要有BIA与SOCKS64两种,它们都采用双栈主机和IPv4预留地址思想,使IPv4应用在不作任何修改的情况下与IPv6主机通信。

关键词:BIA技术 SOCKS64技术 IPv6 IPv4

正在加载数据...

    在SOCKS5中规定,IPv4地址、IPv6地址和域名的全限定域名(FQDN)信息可以用在SOCKS协议格式的地址类型(ATYP)域。SOCKS64技术就是利用这一点,通过DNS域名解析代表将FQDN信息用在ATYP域中从客户机C传到网关G来指出目的地D的位置。为此,SOCKS64技术也和BIA技术一样使用了IPv4中未使用的保留地址(称之为伪IP地址),并在*SocksLib*(客户机C处)中引入一个映射表来管理伪IP地址和FQDN之间的映射。

    客户机C[IPvX]使用SOCKS64技术通过双栈网关G[IPvX|IPvY]与目的主机D[IPvY]通信的过程如下:

  •     源节点(客户机C)上的应用尽力通过调用DNS域名解析函数来获得目的节点(目的地D)的IP地址信息。这时,目的地D的逻辑主机名(即FQDN)信息被作为被调用的API的一个参数传递给应用的*SocksLib*。
  •     FQDN信息被注册到*SocksLib*中的一个映射表内。*SocksLib*选择一个伪IP地址回复给应用。
  •     应用利用收到的伪IP地址信息组织一个socket,并将socket用作API的一个参数来调用socketAPI启动通信。
  •     由于*SocksLib*已经取代了这些socketAPI,真正的socket函数将不再调用,而是先检查socket的IP地址信息。如果该地址是伪IP地址,则从映射表中获取与该伪IP地址相匹配的登记过的FQDN信息。通过使用与调用的socketAPI相匹配的SOCKS命令(例如与conNECt()对应的CONNECT命令),FQDN信息被传送到中继服务器(网关G)上的*Gateway*。
  •     *Gateway*通过接收到的FQDN信息调用真正的DNS域名解析API从一个DNS服务器处获得一个真IP地址,并利用真IP地址信息创建一个socket。*Gateway*再将socket用作API的一个参数来调用socketAPI与目的地D通信。

    四、技术比较分析

    虽然BIA与SOCKS64都是为了使IPv4能够顺利过渡到IPv6的技术,都是基于SOCKS的技术,都是采用双栈主机思想,都需要使用伪IP地址,但是它们的出发点却各有侧重,也各有优缺点。

    1.适用性

    BIA与SOCKS64都可以使IPv4应用在不作任何修改的情况下与IPv6主机通信。BIA技术提供的是具有IPv4和IPv6协议的双栈主机直接与IPv6主机通信的解决方案,SOCKS64技术是提供了IPv4主机通过双栈网关与IPv6主机通信的解决方案。

    2.预留IP地址的使用

    BIA与SOCKS64都使用预留IP地址。虽然BIA技术中的地址池可以在节点中以不同的粒度来实现,然而如果大量的IPv4应用和IPv6的主机通信时,可能耗尽可用地址,导致IPv4应用不能和IPv6的主机通信,所以需要对地址池内的地址进行有效管理。SOCKS64技术由于主要使用FQDN信息、通过DNS域名解析代表在*SocksLib*处负责域名管理工作,伪地址必须被作为临时值来处理,所以不需要为地址映射预留很大的地址空间,也不需要复杂的地址申请和垃圾收集机制。

    3.对应用的支持

    BIA与SOCKS64的初衷都是不需要修改IPv4应用而与IPv6主机通信。但是它们对应用的支持都不能达到尽善尽美。对于BIA来说,由于需要转换嵌在应用层协议中的IP地址(例如FTP),所以这种机制可能不适用于那些其负载中包含地址的新应用。BIA仅支持单播通信,如果要支持组播通信,还需要在函数映射模块中增加新的功能。BIA只是从语义上将IPv4SocketAPI函数转换成相应的IPv6Socket API函数,如果在API函数中转换内嵌于应用层协议的IP地址,其实现有赖于操作系统。由于IPv6的API具有新的高级参数,转换带有这种参数的IPv6 API是很困难的,因此接收到的带有高级参数的IPv6数据包会被丢弃。对于SOCKS64来说,虽然它是直接继承SOCKS机制的技术,但是在使用时仍有一定的问题。SOCKSv5协议由三个命令(CONNECT、BIND和UDP ASSOCIATE)组成,所有这三个命令在SOCKS64中都能使用。其中,主要的命令也是使用最频繁的命令CONNECT没有明确的弱点,可以不加考虑地随意使用它。而BIND命令基本上是为支持FTP类型应用的反向通道聚合而设计的,所以通常的BIND命令的使用可能会导致一些问题。UDP ASSOCIATE命令基本上是为简单UDP应用(如archie)而设计的,所以在支持同时使用TCP和UDP的一大类应用时通用性还不够。另外,如果有些应用使用了非常灵活的、特别的方式创建连接,SOCKS64技术就无能为力了。

    4.DNS查询结果与另一端应用程序版本不匹配问题

    对于BIA,若正在使用的服务器端应用不支持IPv6,但是它又运行在一台支持其他IPv6服务的主机上,而且这台主机还在DNS中以AAAA型记录出现,在DNS的查询结果和服务器应用的版本之间就出现了不匹配的情况。这时,使用BIA的IPv4客户端应用可能连接不到这个服务器端应用上。解决方法是尝试所有在DNS中列出的地址,而不应只尝试一次即宣告失败。但是对于UDPsocket,即便可能,BIA也很难发现可工作的IP地址,因此应用必须重复尝试各种可能的地址,直到发现一个可用地址为止。另一种避免这种问题的方法是仅当通信对端的A型记录不存在时,BIA才发生作用。这样,一台采用BIA的双栈主机上的应用到另一台双栈主机的数据流只使用IPv4协议。对于SOCKS64则不存在这个问题。

    5.安全性

    对于BIA,由于它采用了API翻译器,很难实现端到端的安全性,而且传输层和应用层的安全也同样无法实现。但是,由于翻译机制发生在socketAPI层,采用BIA机制运行IPv4应用的主机和其他IPv6主机通信时,可以利用网络层的安全策略(如IPsec)。另外,由于预留IP地址的使用,有地址耗尽的可能,这就使得使用这种机制的主机易于遭到拒绝服务攻击。对于SOCKS64,由于它是直接建立在SOCKSv5协议基础上的,其安全方面的特点与SOCKSv5相一致。它同样不提供从原始源节点到最终目的节点的整体端到端的安全保证。但是由于它建立了应用层两个“分开的”连接的中继,所以端到端的安全就由这两个被中继的链接来提供保证。

    五、结语

    基于SOCKS的IPv4向IPv6过渡技术主要有BIA与SOCKS64两种,它们都采用双栈主机和IPv4预留地址思想,使IPv4应用在不作任何修改的情况下与IPv6主机通信。BIA技术提供的是具有IPv4和IPv6协议的双栈主机直接与IPv6主机通信的解决方案,SOCKS64技术是提供了IPv4主机通过双栈网关与IPv6主机通信的解决方案。也正由于它们是两种不同的解决方案,才使得它们分别具有各自的优点和缺点。在实际应用时,可以根据具体情况确定采用哪种技术,并根据需要对它们加以改进。


IPv6 vs. IPv4
 IPv4与IPv6包头结构比较
 IPv6报头结构与IPv4的比较
 浅谈IPv6相对于IPv4在安全方面改进
 IPv4/IPv6过渡技术和方案分析(一)
 IPv4/IPv6过渡技术和方案分析(二)
 IPv4与IPv6协议的比较(一)
 IPv4与IPv6协议的比较(二)
 基于SOCKS地IPv4向IPv6过渡技术(一)
 基于SOCKS地IPv4向IPv6过渡技术(二)
 IPv4向IPv6过渡技术研究(一)
 IPv4向IPv6过渡技术研究(二)
 IPv4-IPv6组播过渡技术(一)
 IPv4-IPv6组播过渡技术(二)
 IPv4/IPv6双栈方法
 IPv6相对于IPv4在安全方面的改进
 综合组网:如何选择IPv4或IPv6
 IPv4/IPv6过渡时期的DSL宽带接入
 Pv4网络和IPv6网络互连技术
 如何在IPv4骨干网中应用IPv6
 IPv4与IPv6的集成网络原则说明

来源:巧巧读书    
相关的白皮书
在ipv4协议中我们通常应用一个/24子网掩码在255台主机上设计我们的子网。那么,在ipv6中,在LAN和VLAN上创建子网的思维过程是怎样的呢?
近日,由中国互联网络信息中心(CNNIC)等主办的2008IP地址资源研讨会在天河软件园召开,据会议透露出的消息,IPv4地址资源按照目前的分派速度只剩下830多天……
思科的研究员Fred Baker说:到关键时刻,NAT也许是我们把IPv6添加到互联网的惟一办法。如果我们拥有纯IPv4网络和纯IPv6网络,NAT是两种网络相互连接的惟一途径。
思科的研究员Fred Baker说:到关键时刻,NAT也许是我们把IPv6添加到互联网的惟一办法。如果我们拥有纯IPv4网络和纯IPv6网络,NAT是两种网络相互连接的惟一途径。
现在大多数考虑采用IPv6协议并且提出实施解决方案的人都考虑了IPv4/IPv6共存。但IPv6的迅速发展将IPv4的推向了终结的边缘。

如果你曾经有过处理HTTP错误码的经历,你肯定知道这个过程是很让人头痛的。往往,这些神秘的代码有多种意思而让你摸不着头脑。

随着无线网络的广泛应用,网络管理者在进行无线网络的监控、分析和测试的过程中需要应用到多种工具,如iPerf、频谱分析器和Pilot等。本专题对这些工具的应用进行了总结,供大家参考。

在这一专题中我们将按OSI分层角度探讨网络安全。我们将深入研究OSI堆栈,从物理层开始直到应用层。从分析每一层的漏洞出发,假想攻击这些漏洞的各种可能性。
最新更新
专家答疑
技巧
Lisa Phifer
问:在不同的无线技术中,分别在什么时候应用WLAN、Wi-Fi和WiMax?Wi-Fi和WLAN的最主要的不同是什么?
chris Partsenidis
因特网网络连接中经常会遇到两种连接方式:因特网连接共享(ICS)与XP中两个网络适配器(NIC)间桥接,这两种连接有什么区别?
Michael Gregg
问:我在工作中应用遗传算法(genetic algorithm)来进行入侵监控。我是这个领域的新手,我想请教专家为了进行算法工作,我该怎样进行编码?