CN101931658A - 具有IPv4应用的IPv6主机进行通信的方法与装置 - Google Patents
具有IPv4应用的IPv6主机进行通信的方法与装置 Download PDFInfo
- Publication number
- CN101931658A CN101931658A CN2009100883511A CN200910088351A CN101931658A CN 101931658 A CN101931658 A CN 101931658A CN 2009100883511 A CN2009100883511 A CN 2009100883511A CN 200910088351 A CN200910088351 A CN 200910088351A CN 101931658 A CN101931658 A CN 101931658A
- Authority
- CN
- China
- Prior art keywords
- ipv6
- ipv4
- address
- packet header
- dns
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
本发明涉及移动通信领域,尤其涉及一种具有IPv4应用的IPv6主机进行通信方法,包括:由IPv4应用根据获取的IPv4地址及DNS地址,生成对应的IPv4DNS请求数据包;由IPv6主机将IPv4包头转换为IPv6包头,生成IPv6DNS请求数据包,通过IPv6网络发送到DNS服务器;所述IPv4应用根据接收的DNS回复消息数据包,确定出进行通信的IPv4通信对端的IPv4地址后,生成发送给所述IPv4通信对端的IPv4应用数据包;由IPv6主机进行包头转换后,通过IPv6网络发送到NAT设备;由NAT设备将IPv6包头转换为IPv4包头后,通过IPv4网络发送到所述IPv4通信对端。本发明实现了具有IPv4应用的IPv6主机与IPv4通信对端进行通信,且大大减少了系统的处理负担,使得单点失效发生的概率下降,并方便了原有IPv4应用向IPv6系统的平滑移植和过渡。
Description
技术领域
本发明涉及移动通信领域,尤其涉及具有IPv4应用的主机通过IPv6网络进行通信的技术。
背景技术
随着全球IPv4(Internet Protocol version 4,第4版本互联网协议)地址的耗尽和业务对终端“永远在线”的要求,IPv6(Internet Protocol version 6,第6版本互联网协议)技术的部署将成为必然。为了逐步引入IPv6网络的概念,IPv6网络以及IPv4/IPv6双栈网络的建设将成为IPv6技术部署的第一步。然而,目前的主机具有大量的IPv4应用,IPv6应用的数量与之相比却微乎其微,因此在IPv6过渡方案初期如何解决IPv6网络中主机间IPv4应用的访问与互通将成为IPv6过渡中需要考虑的一个重要问题。
在现有技术中,SIIT算法提供了IPv6应用(IPv6 Application)通过IPv6网络和IPv4网络与IPv4节点通信的方法。该方法中在数据包进出IPv6网络的网络拓扑路径上设置有SIIT翻译器,当网络中出现大量访问外部IPv4应用(IPv4 Application)的数据流时,SIIT翻译器需要对每个数据流进行翻译并保存其状态,这使得网络系统的处理负担很大,容易造成系统中单点失效。
此外,现有技术的BIS算法提供了一种IPv4应用访问IPv6网络中的IPv6节点的方法。在该方法中,在IPv4应用的主机中添加翻译模块,用于监测TCP/IP模块与网卡驱动程序之间的数据流,并进行相应IPv4与IPv6数据包之间的相互翻译。当与其他IPv6主机进行通信时,在这台主机内部给对应IPv6主机分配一些IPv4地址,这些地址只在这台主机内部使用。而且,这种分配过程是通过DNS协议自动来完成的。这样,IPv4应用的主机可以通过翻译模块将发送给对端IPv6节点的数据包转换为IPv6数据包,或者将接收的IPv6数据包转换为IPv4数据包传递给IPv4应用,实现与IPv6网络中IPv6节点的通信。但是,在实际应用的场景中,有可能出现IPv4应用需要通过IPv6网络访问另一个IPv4应用,那么BIS算法并没有针对这种场景给出解决方案。
现有技术的另一个方案中,提出在IPv4和IPv6网络边缘上部署边界转换网关设备,边界转换网关设备将从IPv6网络发送到IPv4网络的数据包转换为IPv4数据包,将从IPv4网络发送到IPv6网络的数据包转换为IPv6数据包。那么,结合该方案与上述的BIS算法则可以解决IPv4应用通过IPv6网络访问另一个IPv4应用的问题。但是,由于需要在IPv4和IPv6网络边缘上部署专门的边界转换网关设备来实现数据包的转换,导致网络系统的处理负担很大,容易造成单点失效的问题。
综上所述,现有技术所提供的IPv4应用通过IPv6网络访问另一个IPv4应用的方法都需要在IPv4和IPv6网络边缘上部署专门的设备(比如上述的SIIT翻译器或者边界转换网关设备)进行地址翻译以及充当应用层网关(ALG)的应用信息转换功能(即应用层网关功能)。尤其是应用层网关功能的添加已被实践证明将会给网络系统增加较大的处理负担,容易导致单点失效的问题。
发明内容
本发明实施例提供具有IPv4应用的IPv6主机获取通信终端IPv4地址并与IPv4通信对端进行通信的相应方法与装置,通过改进IPv6主机内部结构,实现IPv4应用通过IPv6网络访问另一个IPv4通信终端时,减小网络系统的处理负担。
本发明实施例提供一种具有IPv4应用的IPv6主机获取通信对端IPv4地址的方法,包括:
由IPv4应用根据获取的IPv4地址及域名系统DNS地址,生成对应的IPv4DNS请求数据包;
所述IPv6主机将所述IPv4DNS请求数据包中的IPv4包头转换为IPv6包头,生成IPv6DNS请求数据包,通过IPv6网络发送到所述DNS地址对应的DNS服务器;
所述IPv4应用接收所述DNS服务器返回的DNS回复消息数据包,获取进行通信的IPv4通信对端的IPv4地址。
本发明实施例提供一种具有IPv4应用的IPv6主机进行数据通信的方法,包括:
IPv4应用生成发送给IPv4通信对端的IPv4应用数据包;
所述IPv6主机将所述IPv4应用数据包中的IPv4包头转换为IPv6包头后,通过IPv6网络发送到网络地址翻译NAT设备;
所述NAT设备将从所述IPv6网络接收的数据包中IPv6包头转换为IPv4包头后,通过IPv4网络发送到所述IPv4通信对端。
本发明还提供一种具有IPv4应用的IPv6主机获取通信对端IPv4地址的方法,包括:
IPv4应用根据获取的IPv4地址及域名系统DNS IPv4地址,生成对应的IPv4DNS请求数据包;所述IPv6主机将所述IPv4DNS请求数据包中的IPv4包头转换为IPv6包头,生成IPv6DNS请求数据包,通过IPv6网络发送到所述DNS IPv4地址对应的DNS服务器;或者
由IPv4应用根据获取的IPv4地址及DNS IPv6地址,调用IPv4Socket API函数发起DNS请求;所述IPv6主机将调用IPv4Socket API函数转换为调用IPv6Socket API函数,生成IPv6DNS请求数据包,通过IPv6网络发送到所述DNS IPv6地址对应的DNS服务器;
所述IPv4应用接收所述DNS服务器返回的DNS回复消息数据包,获取进行通信的IPv4通信对端的IPv4地址。
本发明实施例再提供一种具有IPv4应用的IPv6主机进行数据通信的方法,包括:
IPv4应用调用IPv4 Socket API函数向所述IPv4通信对端发起应用数据请求;
所述IPv6主机将调用IPv4 Socket API函数转换为调用IPv6 Socket API函数,生成IPv6应用数据包,通过IPv6网络发送到网络地址翻译NAT设备;
所述NAT设备将从所述IPv6网络接收的数据包中IPv6包头转换为IPv4包头后,通过IPv4网络发送到所述IPv4通信对端。
本发明实施例由于IPv6主机将IPv4数据包的包头转换为IPv6数据包的包头,使得该数据包可以通过IPv6网络传输,并且不必涉及对传输层头和数据部分进行转换,大大减少了系统的处理负担。
进一步,由于在IPv6与IPv4网络的边界处设置的NAT设备将数据包的包头又转换回IPv4数据包的包头,从而形成完整的IPv4数据包,使之可以通过IPv4网络发送到IPv4网络中的IPv4节点或者具有IPv4应用的主机。而NAT设备仅是对数据包的包头部分进行转换,而不必涉及对传输层头和数据部分进行转换,大大减少了系统的处理负担,使得单点失效发生的概率下降。
附图说明
图1为本发明实施例提供的具有IPv4应用的IPv6主机进行通信的方法步骤流程图之一;
图2为本发明实施例提供的方案一对应的信令交互流程示意图;
图3为本发明实施例提供的方案一对应的信令交互部分流程示意图;
图4为本发明实施例提供的具有IPv4应用的IPv6主机进行通信的方法步骤流程图之二;
图5为本发明实施例提供的方案二对应的信令交互流程示意图;
图6为本发明实施例提供的方案二对应的信令交互部分流程示意图;
图7为本发明实施例提供的IPv6主机结构示意图之一;
图8为本发明实施例提供的IPv6主机结构示意图之二。
具体实施方式
下面结合附图,用具体实施例对本发明提供的具有IPv4应用的IPv6主机与IPv4通信对端进行通信的方法与装置进行详细说明。
具有IPv4应用的IPv6主机与IPv4通信对端进行通信时,涉及将IPv4数据包转换为IPv6数据包通过IPv6网络传送。为此,本发明提供一种IPv4数据包转换为IPv6数据包的方法,包括:
IPv6主机将IPv4数据包中的IPv4源地址和分配给该IPv6主机的IPv6前缀组合,生成转换后的IPv6数据包中IPv6包头中的IPv6源地址;以及将IPv4数据包中的IPv4目的地址和设定的周知前缀(Well-known Prefix,WKP)组合,生成转换后的IPv6数据包中IPv6包头中的IPv6目的地址。
下面结合具体流程,对本发明提供的上述转换方法进行说明。
图1为本发明提供的一种具有IPv4应用的IPv6主机获取IPv4通信对端地址并进行通信的方法的对应步骤流程图,包括:
步骤S101、由IPv6主机中的IPv4应用根据获取的IPv4地址及DNS地址,生成对应的IPv4 DNS请求数据包;
步骤S102、IPv6主机将IPv4DNS请求数据包中的IPv4包头转换为IPv6包头,生成IPv6 DNS请求数据包,通过IPv6网络发送到与DNS地址对应的DNS服务器;
步骤S103、IPv4应用接收DNS服务器返回的DNS回复消息数据包,确定出进行通信的IPv4通信对端的IPv4地址后,生成发送给IPv4通信对端的IPv4应用数据包;
步骤S104、IPv6主机将生成的IPv4应用数据包中的IPv4包头转换为IPv6包头后,通过IPv6网络发送到网络地址翻译NAT设备;
步骤S105、NAT设备将从IPv6网络接收的数据包中IPv6包头转换为IPv4包头后,通过IPv4网络发送到IPv4通信对端。
另一实施例中,当具有IPv4应用的IPv6主机已经获知通信对端的IPv4地址时,直接生成发送给IPv4通信对端的IPv4应用数据包后,执行上述步骤S104和步骤S105,实现与IPv4通信对端的数据通信。
为实现具有IPv4应用的IPv6主机与IPv4通信对端进行通信,作为一个例子,本发明上述方法的一种具体信令交互过程可以采用下述方案一实现。
方案一:通过在IPv6主机上新增包头翻译模块和地址翻译模块来实现将IPv4包头转换为IPv6包头,具体功能为:
包头翻译模块(Header Translation):主要完成IPv4应用所产生的IPv4数据到IPv6数据的转换。当包头翻译模块收到了IPv4应用发送的一个IPv4数据包后,将该数据包的源IPv4地址和目的IPv4地址翻译为IPv6地址,从而实现IPv4包头到IPv6包头的转换。在翻译过程中,源地址和目的地址的翻译方法也将有所不同。其中,IPv6源地址由运营商网络所分配的IPv6前缀和IPv4源地址组合而成,而IPv6目的地址是由本发明设定的周知前缀(Well-known Prefix,WKP)和IPv4目的地址组合而成。经过上述处理,原先数据包中的IPv4包头被IPv6包头取代。在包头转换过程中,除ICMP包之外,数据包的传输层头和数据部分都保持不变。
地址翻译模块(Address Translation):当包头翻译模块执行IPv4包头到IPv6包头的地址翻译时,地址翻译模块将维护从IPv4地址到IPv6地址映射过程所需的前缀信息,并向包头翻译模块提供翻译规则。具体地,地址翻译模块将保存两种前缀信息,即运营商分配的IPv6前缀和本发明设定的周知前缀(Well-known Prefix,WKP)来分别处理源地址和目的地址的翻译。对于源地址而言,地址翻译模块将添加运营商分配的IPv6前缀来形成IPv6源地址,而对于目的地址则将增加WKP来形成IPv6目的地址。结合以上对IPv6主机的修改,IPv6主机通过IPv6网络中的动态主机配置协议服务器(DHCP Server)来得到分配的地址,随后将进行通信对端的DNS请求,并根据DNS所回复的对端地址来进行相关数据流的通信。其具体流程如图2所示,包括:
1、IPv6主机在通信前向DHCP Server请求分配地址,发送DHCP discovery消息。
2、DHCP Server对请求消息进行响应,并向主机同时分配IPv6前缀、IPv4地址以及域名系统服务器(DNS Server)的地址;在此IPv4地址可以为公有地址也可以为私有地址;其返回的DNS Server地址可以是IPv4地址,也可以是位于IPv6网络中的DNS6设备的IPv6地址。当返回的DNS Server地址为IPv4地址时需要进行相关DHCP扩展。图2流程将描述返回地址为IPv4地址时相应的流程。当返回地址为DNS64的IPv6地址时,相关的处理过程如下图3所示。
3、IPv6主机中的IPv4应用,根据所得到的IPv4地址,发起IPv4 DNS请求,该请求消息将发到IPv6网络之前将被包头翻译模块劫持,并对其进行包头地址信息的转换。
4、包头翻译模块将IPv4包中源地址信息和目的地址信息发往地址翻译模块进行处理。
5、针对目的地址,地址翻译模块将添加WKP前缀来形成IPv6目的地址;对于源地址,地址翻译模块将添加DHCP所分配给主机的IPv6前缀来形成IPv6源地址。以上翻译后,地址翻译模块将IPv6地址头信息返回给包头翻译模块。
6/7、包头翻译模块根据得到的IPv6头信息向网络地址翻译NAT64设备(本发明中网络地址翻译设备以NAT64设备为例)发送DNS请求消息的相应数据包。
8、NAT64设备接收到DNS请求消息数据包后,将完成IPv6包头向IPv4包头的转换。在转换过程中,如果IPv4应用所使用的IPv4地址为私有地址,则NAT64的翻译过程为有状态翻译,需要将源IPv6地址映射为公有IPv4地址,目的IPv6地址则需去掉WKP前缀;而如果IPv4应用所使用的IPv4地址为公有地址,则NAT64的翻译过程完全为无有状态翻译过程,对源地址和目的地址的处理只需去掉相应的前缀即可。以上过程将完成IPv6包头向IPv4包头转换。
9、NAT64设备将请求消息数据包发往IPv4 DNS Server。
10、IPv4 DNS Server回复通信对端的IPv4地址(本例中以IPv4 Server的地址为例),并返回给NAT64设备。
11、NAT64设备对回复DNS消息进行处理,将源地址和目的地址分配增加相应的前缀,完成IPv4包头向IPv6包头的无状态转换。如果IPv4应用使用私有地址,还需要根据NAT64设备上所存储的映射状态信息来查找出相应的IPv6源地址信息。
12、NAT64设备将DNS回复数据包发给IPv6主机。
13、IPv6主机接收到DNS回复消息后返回给IPv4应用。
14、IPv6主机根据所得到的通信对端IPv4地址,发起应用数据请求,该应用请求消息在发到IPv6网络之前将被包头翻译模块劫持,并对其进行包头地址信息的转换。
15、包头翻译模块将IPv4包中源地址信息和目的地址信息发往地址翻译模块来进行处理。
16、针对目的地址,地址翻译模块将添加WKP前缀来形成IPv6目的地址;对于源地址,地址翻译模块将添加DHCP所分配给该IPv6主机的IPv6前缀来形成IPv6源地址。进行以上翻译后,地址翻译模块将相关IPv6地址头信息返回给包头翻译模块。
17/18、包头翻译模块根据得到的IPv6头信息向NAT64设备发送数据请求数据包。
19、NAT64设备接收到数据请求消息数据包后,将完成IPv6包头向IPv4包头的转换。在转换过程中,如果IPv4应用所使用的IPv4地址为私有地址,则NAT64的翻译过程为有状态翻译,需要将源IPv6地址映射为公有IPv4地址,目的IPv6地址则需去掉WKP前缀,并进行相关的应用层网关(ALG)处理。而如果IPv4应用所使用的IPv4地址为公有地址,则NAT64设备的翻译过程完全为无有状态翻译过程,对源地址和目的地址的处理只需去掉相应的IPv6前缀即可,也无需进行ALG处理。以上过程将完成IPv6包头向IPv4包头的转换。
20、NAT64设备将请求消息发往通信对端,即IPv4应用服务器。
21、IPv4应用服务器将回复消息返回给NAT64设备。
22、NAT64设备对回复IPv4返回的回复消息进行处理,将源地址和目的地址分配添加相应的前缀,完成IPv4包头向IPv6包头的无状态转换。如IPv4应用使用私有地址,还需要根据NAT64上所存储的映射状态信息来查找相应的IPv6地址信息,并且需要进行ALG的相关处理。
23、NAT64设备将应用回复数据发给IPv6主机。
24、IPv6主机接收到应用回复数据后发还给IPv4应用。
当DHCP Server对请求消息进行响应,并向IPv6主机同时分配IPv6前缀、IPv4地址以及DNS Server地址时,若返回的DNS Server地址为DNS6的IPv6地址时,相关的处理过程如图3所示,包括:
1、主机在通信前向DHCP Server请求分配地址,发送DHCP discovery消息。
2、DHCP Server对请求消息进行响应,并向主机同时分配IPv6前缀、IPv4地址以及DNS6Server的地址;在此IPv4地址可以为公有地址也可以为私有地址。
3、IPv4根据所得到的IPv4地址,发起DNS请求,该请求消息将发到IPv6网络之前将被包头翻译模块劫持,并对其进行包头地址信息的转换。
4、包头翻译模块将IPv4包中源地址信息发往地址翻译模块来进行处理。
5、地址翻译模块将添加DHCP所分配给该IPv6主机的IPv6前缀来形成IPv6源地址。目的地址已经是IPv6地址,可以直接使用。以上翻译后,地址翻译模块将IPv6地址头信息发还给包头翻译模块。
6/7、包头翻译模块根据得到的IPv6头信息向DNS6设备发送DNS请求数据包。
8、当DNS6收到请求消息后,将查询是否存储了通信对端的相应的IPv4地址记录。
9、当DNS6存储了通信对端的相应的IPv4地址记录时,DNS6会将DNS回复数据包直接发给IPv6主机。
10、IPv6主机接收到DNS回复消息后返回给IPv4应用。
11、当DNS6没有存储相应的IPv4地址记录时,DNS6会将相关DNS请求转发给IPv4DNS服务器,并将DNS请求消息中的IPv6地址转换为IPv4地址。
12、DNS6将相关DNS请求发往IPv4DNS服务器。
13、IPv4DNS服务器返回DNS回复消息。
14、DNS6接收到相关IPv4DNS服务器的回复消息后将其IPv4包头转换为IPv6包头。
15、DNS6会将DNS回复消息数据包发给IPv6主机。
16、IPv6主机接收到DNS回复消息后返回给IPv4应用。
IPv4应用根据接收到的DNS回复消息,确定出通信对端的IPv4地址后,与通信对端进行应用数据包传送的过程与图2中的步骤14-24相同,不重述。
图4为本发明提供的另一种具有IPv4应用的IPv6主机获取通信对端的IPv4地址并进行通信的方法的对应步骤流程图,包括:
步骤S401、IPv6主机向IPv6网络中的DHCP服务器请求分配地址;
步骤S402、IPv6主机判断DHCP服务器返回的DNS地址是DNS IPv4地址或DNS IPv6地址;当获取的DNS地址为IPv4地址时,执行步骤S403;当获取的DNS地址为IPv6地址时,执行步骤S405;
步骤S403、IPv4应用根据获取的IPv4地址及DNS IPv4地址,生成对应的IPv4DNS请求数据包;
步骤S404、IPv6主机将IPv4DNS请求数据包中的IPv4包头转换为IPv6包头,生成IPv6DNS请求数据包,通过IPv6网络发送到DNS IPv4地址对应的DNS服务器;转至步骤S407
步骤S405、IPv4应用根据获取的IPv4地址及DNS IPv6地址,调用IPv4Socket API函数发起DNS请求;
步骤S406、IPv6主机将调用IPv4Socket API函数转换为调用IPv6SocketAPI函数,生成IPv6DNS请求数据包,通过IPv6网络发送到与DNS IPv6地址对应的DNS服务器;
步骤S407、IPv4应用接收DNS服务器返回的DNS回复消息数据包,确定出进行通信的IPv4通信对端的IPv4地址后,调用IPv4Socket API函数向IPv4通信对端发起应用数据请求;
步骤S408、IPv6主机将调用IPv4Socket API函数转换为调用IPv6SocketAPI函数,生成IPv6应用数据包,通过IPv6网络发送到NAT设备;
步骤S409、NAT设备将从IPv6网络接收的数据包中IPv6包头转换为IPv4包头后,通过IPv4网络发送到所述IPv4通信对端。
另一实施例中,当具有IPv4应用的IPv6主机已经获知通信对端的IPv4地址时,直接生成发送给IPv4通信对端的IPv4应用数据包后,执行上述步骤S405至步骤S409,实现与IPv4通信对端的数据通信。
为实现具有IPv4应用的IPv6主机与IPv4通信对端进行通信,作为一个例子,本发明上述方法的一种具体信令交互过程可以采用下述方案二实现。
方案二:通过在IPv6主机上新增DNS判断处理模块、套按字(Socket)翻译模块、包头翻译模块和地址翻译模块,具体为:
DNS判断处理模块,用于判断接收的DNS地址是DNS IPv4地址或DNSIPv6地址;当为DNS IPv4地址时,启动包头翻译模块;当为DNS IPv6地址,启动Socket翻译模块;
Socket翻译模块:实现在IPv4的Socket API函数与IPv6的Socket API函数间相互翻译。当检测到由IPv4应用发起的Socket函数调用时,拦截该函数调用,并使用一个对应于该IPv4 API函数的IPv6 API函数进行替换。转换过程中,相关API输入参数也将进行IPv4参数到IPv6参数的转换。
包头翻译模块(Header Translation):主要完成IPv4应用所产生的IPv4DNS请求消息的IPv4包头到IPv6包头的转换。当包头翻译模块收到了IPv4应用发起的DNS请求消息后,将该数据包的源IPv4地址和目的IPv4地址翻译为IPv6地址,从而实现IPv4包头到IPv6包头的转换。在翻译过程中,源地址和目的地址的翻译方法也将有所不同。其中,IPv6源地址由运营商网络所分配的IPv6前缀和IPv4源地址组合而成,而IPv6目的地址是由本发明设定的周知前缀(Well-known Prefix,WKP)和目的IPv4地址组合而成。经过上述处理,原先数据包中的IPv4包头被IPv6包头取代。在包头转换过程中,DNS请求的数据部分将保持不变。
地址翻译模块(Address Translation):当Socket翻译模块执行需要进行IPv4输入参数到IPv6输入参数的转换时,地址翻译模块将维护从IPv4地址到IPv6地址映射过程所需的前缀信息并提供该映射信息给Socket翻译模块。具体地:地址翻译模块将保存两种前缀信息,即运营商分配的IPv6前缀和本发明设定的周知前缀(Well-known Prefix,WKP)来分别处理源地址和目的地址的翻译。对于源地址,地址翻译模块将添加运营商分配的IPv6前缀来形成IPv6源地址,而对于目的地址将增加WKP来形成IPv6目的地址。
结合以上对IPv6主机的修改,在实施方案二中,IPv6主机通过DHCPServer来得到地址,随后将进行通信对端的DNS请求,并根据DNS所回复的对端地址来进行相关数据流的通信。其具体流程如图5所示,包括:
1、IPv6主机在通信前向DHCP Server请求分配地址,发送DHCP discovery消息。
2、DHCP Server对请求消息进行响应,并向IPv6主机同时分配IPv6前缀、IPv4地址以及DNS Server的地址;在此IPv4地址可以为公有地址也可以为私有地址;其返回的DNS Server地址可以是IPv4地址,也可以是位于IPv6网络中的DNS6设备的IPv6地址。当DNS Server返回地址为IPv4地址时需要进行相关DHCP扩展。图5流程将描述返回的DNS Server地址为IPv4DNS服务器地址时相应的流程。当返回地址为DNS64的IPv6地址时,相关的处理过程详如下图6所示。
3、IPv6主机中的IPv4应用,根据所得到的IPv4地址和DNS IPv4地址,发起IPv4DNS请求,该请求消息将发到IPv6网络之前将被包头翻译模块劫持,并对其进行包头地址信息的转换。
4、包头翻译模块将IPv4包中源地址信息和目的地址信息发往地址翻译模块进行处理。
5、针对目的地址,地址翻译模块将添加WKP前缀来形成IPv6目的地址;对于源地址,地址翻译模块将添加DHCP所分配给主机的IPv6前缀来形成IPv6源地址。以上翻译后,地址翻译模块将IPv6地址头信息返回给包头翻译模块。
6/7、包头翻译模块根据得到的IPv6头信息向网络地址翻译NAT64设备发送DNS请求消息的相应数据包。
8、NAT64设备接收到DNS请求消息后,将完成IPv6包头向IPv4包头的转换。在转换过程中,如果IPv4应用所使用的IPv4地址为私有地址,则NAT64设备的翻译过程为有状态翻译,需要将源IPv6地址映射为公有IPv4地址,目的IPv6地址则需去掉WKP前缀;而如果IPv4应用所使用的IPv4地址为公有地址,则NAT64的翻译过程完全为无有状态翻译过程,对源地址和目的地址的处理只需去掉相应的前缀即可。以上过程将完成IPv6包头向IPv4包头转换。
9、经过包头转换后,NAT64设备将DNS请求消息发往IPv4 DNS Server。
10、DNS Server回复通信对端(以IPv4 Server为例)的地址,并返回给NAT64设备。
11、NAT64对回复的DNS消息进行处理,将源地址和目的地址分配增加相应的前缀,完成IPv4包头向IPv6包头的无状态转换。如果IPv4应用使用私有地址,还需要根据NAT64上所存储的映射状态信息来查找相应的IPv6源地址信息。
12、NAT64设备将DNS回复数据包发给IPv6主机。
13、IPv6主机接收到DNS回复消息后发还给IPv4应用。
14、IPv6主机中的IPv4应用根据所得到的通信对端的IPv4地址,发起应用数据请求。Socket翻译模块将劫持本次系统调用,并进行IPv6 Socket API的转换。Socket API函数所需的IPv6参数信息将由Socket翻译模块查询地址翻译模块来得到。
15、Socket翻译模块将IPv4包中源地址信息和目的地址信息发往地址翻译模块来进行处理。
16、针对目的地址,地址翻译模块将添加WKP前缀来形成IPv6目的地址;对于源地址,地址翻译模块将添加DHCP所分配给该IPv6主机的IPv6前缀来形成IPv6源地址。进行以上翻译后,地址翻译模块将相关IPv6地址头信息发还给Socket翻译模块。
17/18、Socket翻译根据得到的IPv6头信息来调用IPv6 Socket API,该过程实现IPv4应用请求数据在IPv6数据包的封装,其原有数据部分都将保持不变。随后,主机将向NAT64设备发送该数据包。
19、NAT64设备接收到数据请求消息后,将完成IPv6包头向IPv4包头的转换。在转换过程中,如果IPv4应用所使用的IPv4地址为私有地址,则NAT64的翻译过程为有状态翻译,需要将源IPv6地址映射为公有IPv4地址,目的IPv6地址则需去掉WKP前缀,并进行相关的ALG处理。而如果IPv4应用所使用的IPv4地址为公有地址,则NAT64的翻译过程完全为无有状态翻译过程,对源地址和目的地址的处理只需去掉相应的前缀即可,也无需进行ALG处理。以上过程将完成IPv6包头向IPv4包头的转换。
20、NAT64设备将应用请求消息发往通信端IPv4应用服务器。
21、IPv4应用服务器将回复消息返回给NAT64设备。
22、NAT64设备对返回的回复消息进行处理,将源地址和目的地址分配添加相应的IPv6前缀,完成IPv4包头向IPv6包头的无状态转换。如果IPv4应用使用私有地址,还需要根据NAT64上所存储的映射状态信息来查找相应的IPv6地址信息,并且需要进行ALG的相关处理。
23、NAT64设备将应用回复数据发给IPv6主机。
24、IPv6主机接收到应用回复消息后发还给IPv4应用。
当DHCP Server对请求消息进行响应,并向IPv6主机同时分配IPv6前缀、IPv4地址以及DNS Server地址时,若返回的DNS Server地址为DNS6的IPv6地址时,相关的处理过程如图6所示,包括:
1、主机在通信前向DHCP Server请求分配地址,发送DHCP discovery消息。
2、DHCP Server对请求消息进行响应,并向主机同时分配IPv6前缀、IPv4地址以及DNS6 Server的地址;在此IPv4地址可以为公有地址也可以为私有地址。
3、IPv4应用根据所得到的IPv4地址,发起DNS请求,该请求将调用IPv4Socket API-gethostbyname()来发起DNS请求。Socket翻译模块将劫持本次系统调用,并进行IPv6Socket的转换,使用相应的API-getaddrinfo()来形成相应的DNS请求。相关API所需的IPv6参数信息将由Socket翻译模块查询地址翻译模块来得到。
4、Socket翻译模块将调用IPv4 Socket API函数中的源地址信息发往地址翻译模块来进行处理。
5、地址翻译模块将添加DHCP所分配给主机的IPv6前缀来形成IPv6源地址。目的地址已是IPv6地址,可以直接使用。以上翻译后,地址翻译模块将IPv6地址头信息发还给Socket翻译模块。
6/7、Socket翻译模块根据得到的IPv6头信息来进行IPv6 Socket API调用,并形成DNS请求消息向NAT64设备发送。
8、当DNS6收到请求消息后,将查询本地是否存储了通信对端的相应的IPv4地址记录。
9、当DNS6存储了通信对端的相应的IPv4地址记录时,DNS6会将DNS回复数据包直接发给IPv6主机。
10、IPv6主机接收到DNS回复消息数据后返回给IPv4应用。
11、当DNS6没有存储通信对端的相应的IPv4地址记录时,DNS6会将相关DNS请求转发给DNS4服务器,并将DNS请求消息中的IPv6地址转换为IPv4地址。
12、DNS6将相关DNS请求发往DNS4服务器。
13、DNS4服务器返回DNS回复消息。
14、DNS6接收到相关DNS4的回复消息后将其IPv4包头转换为IPv6包头。
15、DNS6会将DNS回复数据发给IPv6主机。
16、IPv6主机接收到DNS回复消息后返回给IPv4应用。
IPv4应用根据接收到的DNS回复消息,确定出通信对端的IPv4地址后,与通信对端进行应用数据包传送的过程与图5中的步骤14-24相同,不重述。
根据本发明上述方案一,相应的IPv6主机结构示意图如图7所示,包括:
IPv4应用模块71,用于执行IPv4相关应用;
包头翻译模块72,用于将IPv4应用模块71发送的相关IPv4数据包中的IPv4包头转换成IPv6包头;
地址翻译模块73,用于提供IPv4地址与IPv6地址之间的映射。
其中:
包头翻译模块72,具体用于:劫持IPv4数据包中的IPv4包头,将IPv4包头中的IPv4源地址和IPv4目的地址发送到地址翻译模块73;接收地址翻译模块73返回的IPv6源地址和IPv6目的地址,形成IPv6包头;
地址翻译模块73,具体用于:接收包头翻译模块72发送的IPv4源地址和IPv4目的地址,将所述IPv4源地址与分配给IPv6主机的IPv6前缀组合,生成IPv6源地址,以及将IPv4目的地址与存储的周知前缀组合,生成IPv6目的地址,并返回给包头翻译模块72。
根据本发明上述方案二,相应的IPv6主机结构示意图如图8所示,包括:
IPv4应用模块81,用于执行IPv4相关应用;
DNS判断处理模块82,用于判断接收的DNS地址是DNS IPv4地址或DNS IPv6地址;当为DNS IPv4地址时,启动包头翻译模块;当为DNS IPv6地址,启动Socket翻译模块;
包头翻译模块83,用于将所述IPv4应用模块发送的相关IPv4数据包中的IPv4包头转换成IPv6包头;
Socket翻译模块84,用于当IPv4应用模块81执行IPv4相关应用调用IPv4Socket API函数时,转换为调用IPv6 Socket API函数;
地址翻译模块85,用于提供IPv4地址与IPv6地址之间的映射。
其中:
所述包头翻译模块83具体用于:劫持IPv4数据包中的IPv4包头,将IPv4包头中的IPv4源地址和IPv4目的地址发送到所述地址翻译模块85;接收所述地址翻译模块85返回的IPv6源地址和IPv6目的地址,形成IPv6包头;
Socket翻译模块84,具体用于:劫持IPv4 Socket API函数调用,将调用的IPv4 Socket API函数中的IPv4源地址和IPv4目的地址发送到地址翻译模块85;接收地址翻译模块85返回的IPv6源地址和IPv6目的地址,转换为调用IPv6 Socket API函数;
地址翻译模块85,具体用于:接收Socket翻译模块84发送的IPv4源地址和IPv4目的地址,将所述IPv4源地址与分配给IPv6主机的IPv6前缀组合,生成IPv6源地址,以及将IPv4目的地址与存储的周知前缀组合,生成IPv6目的地址,并返回给Socket翻译模块84。
综上所述,采用本发明,在实现IPv6系统部署的同时,保证传统IPv4应用程序的正常通信,做到对应用程序的透明无感知,实现向后IPv4兼容的IPv6过渡技术。
在具有IPv4应用的主机通过IPv6网络通信过程中,实现双向的无状态地址翻译过程,降低了边界NAT网关数据包处理的负荷,更进一步提高了系统部署的扩展性。
针对源地址和目的地址分配不同的前缀,保证了应用数据路由可达的同时,且不破坏原有路由系统中前缀的可聚合性。
Claims (26)
1.一种具有IPv4应用的IPv6主机获取通信对端IPv4地址的方法,其特征在于,包括:
由IPv4应用根据获取的IPv4地址及域名系统DNS地址,生成对应的IPv4DNS请求数据包;
所述IPv6主机将所述IPv4DNS请求数据包中的IPv4包头转换为IPv6包头,生成IPv6 DNS请求数据包,通过IPv6网络发送到所述DNS地址对应的DNS服务器;
所述IPv4应用接收所述DNS服务器返回的DNS回复消息数据包,获取进行通信的IPv4通信对端的IPv4地址。
2.如权利要求1所述的方法,其特征在于,在IPv4应用生成对应的IPv4DNS请求数据包之前,还包括:
所述IPv6主机向IPv6网络中的动态主机配置协议DHCP服务器请求分配地址;
所述DHCP服务器向所述IPv6主机返回分配的IPv4地址及DNS地址。
3.如权利要求2所述的方法,其特征在于,所述DHCP服务器还向所述IPv6主机返回分配给所述IPv6主机的IPv6前缀;所述IPv6主机中还存储周知前缀;
当所述DNS地址为IPv4网络中的IPv4 DNS服务器的地址时,所述IPv6主机将所述IPv4 DNS请求数据包中的IPv4包头转换为IPv6包头,具体包括:
所述IPv6主机将所述IPv4 DNS请求数据包中的IPv4包头中IPv4源地址和所述IPv6前缀组合,生成所述IPv6包头中的IPv6源地址;以及
所述IPv6主机将所述IPv4 DNS请求数据包中IPv4包头中IPv4目的地址和所述周知前缀组合,生成所述IPv6包头中的IPv6目的地址;
当所述DNS地址为IPv6网络中的IPv6 DNS服务器的地址时,所述IPv6主机将所述IPv4 DNS请求数据包中的IPv4包头转换为IPv6包头,具体包括:
所述IPv6主机将所述IPv4 DNS请求数据包中的IPv4包头中IPv4源地址和所述IPv6前缀组合,生成所述IPv6包头中的IPv6源地址;以及
所述IPv6主机将所述IPv4 DNS请求数据包中IPv4包头中IPv6目的地址作为所述IPv6包头中的IPv6目的地址。
4.如权利要求3所述的方法,其特征在于,当所述DNS地址为IPv4网络中的IPv4 DNS服务器的地址时,所述IPv6主机通过IPv6网络发送所述IPv6DNS请求数据包到所述DNS地址对应的DNS服务器,具体包括:
所述IPv6主机通过IPv6网络发送所述IPv6 DNS请求数据包给NAT设备;
所述NAT设备将所述IPv6 DNS请求数据包中的IPv6包头转换为IPv4包头后,传送到所述IPv4 DNS服务器;
所述IPv4应用接收所述DNS服务器返回的DNS回复消息数据包之前,还包括:
所述IPv4 DNS服务器生成IPv4 DNS回复消息数据包,返回给所述NAT设备;
所述NAT设备将所述IPv4 DNS回复消息数据包中的IPv4包头转换为IPv6包头后,生成IPv6 DNS回复消息数据包,通过IPv6网络发送到所述IPv6主机;
所述IPv6主机将所述IPv6 DNS回复消息数据包返回给所述IPv4应用。
5.如权利要求4所述的方法,其特征在于,所述NAT设备将所述IPv6 DNS请求数据包中的IPv6包头转换为IPv4包头,具体包括:
所述NAT设备将所述IPv6 DNS请求数据包中的IPv6包头中的IPv6源地址映射为公有IPv4地址,并在所述IPv6 DNS请求数据包中的IPv6目的地址中去掉所述周知前缀;或者
所述NAT设备在所述IPv6 DNS请求数据包中的IPv6包头中的IPv6源地址中去掉所述IPv6前缀,并在IPv6 DNS请求数据包中的IPv6目的地址中去掉所述周知前缀;
所述NAT设备将所述IPv4 DNS回复消息数据包中的IPv4包头转换为IPv6包头,具体包括:
当所述IPv4 DNS回复消息数据包中IPv4源地址为公有IPv4时,将所述IPv4源地址和所述IPv6前缀组合,生成所述IPv6包头中的IPv6源地址;以及将所述IPv4DNS回复消息数据包中的IPv4目的地址和所述周知前缀组合,生成所述IPv6包头中的IPv6目的地址。
6.如权利要求3所述的方法,其特征在于,当所述DNS地址为IPv6网络中的IPv6 DNS服务器的地址时,所述IPv6主机通过IPv6网络直接发送所述IPv6 DNS请求数据包到所述DNS地址对应的IPv6 DNS服务器;
所述IPv4应用接收所述DNS服务器返回的DNS回复消息数据包之前,还包括:
IPv6 DNS服务器根据接收的IPv6 DNS请求数据包,判断本地是否保存有通信对端的IPv4地址,若是,则直接发送IPv6 DNS回复消息数据包到所述IPv6主机;
若否,所述IPv6 DNS服务器将所述IPv6 DNS请求数据包中的IPv6包头转换为IPv4包头后,发送到IPv4 DNS服务器;并接收所述IPv4 DNS服务器返回的IPv4 DNS回复消息数据包,将所述IPv4 DNS回复消息数据包中的IPv4包头转换为IPv6包头后发送到所述IPv6主机;
所述IPv6主机将所述IPv6 DNS回复消息数据包返回给所述IPv4应用。
7.一种具有IPv4应用的IPv6主机进行数据通信的方法,其特征在于,包括:
IPv4应用生成发送给IPv4通信对端的IPv4应用数据包;
所述IPv6主机将所述IPv4应用数据包中的IPv4包头转换为IPv6包头后,通过IPv6网络发送到网络地址翻译NAT设备;
所述NAT设备将从所述IPv6网络接收的数据包中IPv6包头转换为IPv4包头后,通过IPv4网络发送到所述IPv4通信对端。
8.如权利要求7所述的方法,其特征在于,所述IPv6主机将所述IPv4应用数据包中的IPv4包头转换为IPv6包头,具体包括:
所述IPv6主机将所述IPv4应用数据包中的IPv4包头中IPv4源地址和所述IPv6前缀组合,生成所述IPv6包头中的IPv6源地址;以及
所述IPv6主机将所述IPv4应用数据包中IPv4包头中IPv4目的地址和所述周知前缀组合,生成所述IPv6包头中的IPv6目的地址。
9.如权利要求7所述的方法,其特征在于,所述NAT设备将IPv6包头转换为IPv4包头,具体包括:
所述NAT设备将所述IPv6包头中的IPv6源地址映射为公有IPv4地址,并在所述IPv6目的地址中去掉所述周知前缀;或者
所述NAT设备在所述IPv6包头中的IPv6源地址中去掉所述IPv6前缀,并在所述IPv6目的地址中去掉所述周知前缀。
10.如权利要求7-9任一所述的方法,其特征在于,在所述IPv4通信对端通过所述IPv4网络接收到所述NAT设备转发的数据包后,还包括:
所述IPv4通信对端通过IPv4网络将返回给所述IPv6主机的IPv4数据包发送到所述NAT设备;
所述NAT设备将所述IPv4数据包的包头转换为IPv6包头后,通过IPv6网络传送给所述IPv6主机;
所述IPv6主机将接收的数据包返回给所述IPv4应用。
11.如权利要求10所述的方法,其特征在于,所述NAT设备将所述IPv4数据包的包头转换为IPv6包头,具体包括:
所述NAT设备将IPv4数据包的IPv4包头中的IPv4源地址和所述IPv6前缀组合,生成所述IPv6包头中的IPv6源地址;以及所述NAT设备将IPv4数据包的IPv4包头中IPv4目的地址和所述周知前缀组合,生成所述IPv6包头中的IPv6目的地址;或者
所述NAT设备根据存储的映射状态信息,查找出与所述IPv4数据包的IPv4包头中的IPv4源地址对应的IPv6源地址;以及所述NAT设备将IPv4数据包的IPv4包头中IPv4目的地址和所述周知前缀组合,生成所述IPv6包头中的IPv6目的地址。
12.一种具有IPv4应用的IPv6主机获取通信对端IPv4地址的方法,其特征在于,包括:
IPv4应用根据获取的IPv4地址及域名系统DNS IPv4地址,生成对应的IPv4 DNS请求数据包;所述IPv6主机将所述IPv4DNS请求数据包中的IPv4包头转换为IPv6包头,生成IPv6 DNS请求数据包,通过IPv6网络发送到所述DNS IPv4地址对应的DNS服务器;或者
由IPv4应用根据获取的IPv4地址及DNS IPv6地址,调用IPv4 Socket API函数发起DNS请求;所述IPv6主机将调用IPv4 Socket API函数转换为调用IPv6 Socket API函数,生成IPv6 DNS请求数据包,通过IPv6网络发送到所述DNS IPv6地址对应的DNS服务器;
所述IPv4应用接收所述DNS服务器返回的DNS回复消息数据包,获取进行通信的IPv4通信对端的IPv4地址。
13.如权利要求12所述的方法,其特征在于,IPv4应用在生成对应的IPv4DNS请求数据包之前,或调用IPv4 Socket API函数发起DNS请求之前,还包括:
所述IPv6主机向IPv6网络中的动态主机配置协议DHCP服务器请求分配地址;
所述DHCP服务器向所述IPv6主机返回分配的IPv4地址及DNS IPv4地址或DNS IPv6地址;以及
所述IPv6主机判断接收的DNS地址是DNS IPv4地址或DNS IPv6地址。
14.如权利要求13所述的方法,其特征在于,所述DHCP服务器还向所述IPv6主机返回分配给所述IPv6主机的IPv6前缀;所述IPv6主机中还存储周知前缀;
当所述DNS地址为IPv4网络中的IPv4 DNS服务器的地址时,所述IPv6主机将所述IPv4 DNS请求数据包中的IPv4包头转换为IPv6包头,具体包括:
所述IPv6主机将所述IPv4 DNS请求数据包中的IPv4包头中IPv4源地址和所述IPv6前缀组合,生成所述IPv6包头中的IPv6源地址;以及
所述IPv6主机将所述IPv4 DNS请求数据包中IPv4包头中IPv4目的地址和所述周知前缀组合,生成所述IPv6包头中的IPv6目的地址;
当所述DNS地址为IPv6网络中的IPv6 DNS服务器的地址时,所述IPv6主机将所述IPv4 DNS请求数据包中的IPv4包头转换为IPv6包头,具体包括:
所述IPv6主机将所述IPv4 DNS请求数据包中的IPv4包头中IPv4源地址和所述IPv6前缀组合,生成所述IPv6包头中的IPv6源地址;以及
所述IPv6主机将所述IPv4 DNS请求数据包中IPv4包头中IPv6目的地址作为所述IPv6包头中的IPv6目的地址。
15.如权利要求14所述的方法,其特征在于,当所述DNS地址为IPv4网络中的IPv4 DNS服务器的地址时,所述IPv6主机通过IPv6网络发送所述IPv6 DNS请求数据包到所述DNS地址对应的DNS服务器,具体包括:
所述IPv6主机通过IPv6网络发送所述IPv6 DNS请求数据包给NAT设备;
所述NAT设备将所述IPv6 DNS请求数据包中的IPv6包头转换为IPv4包头后,传送到所述IPv4 DNS服务器;
所述IPv4应用接收所述DNS服务器返回的DNS回复消息数据包之前,还包括:
所述IPv4 DNS服务器生成IPv4 DNS回复消息数据包,返回给所述NAT设备;
所述NAT设备将所述IPv4 DNS回复消息数据包中的IPv4包头转换为IPv6包头后,生成IPv6 DNS回复消息数据包,通过IPv6网络发送到所述IPv6主机;
所述IPv6主机将所述IPv6 DNS回复消息数据包返回给所述IPv4应用。
16.如权利要求15所述的方法,其特征在于,所述NAT设备将所述IPv6DNS请求数据包中的IPv6包头转换为IPv4包头,具体包括:
所述NAT设备将所述IPv6 DNS请求数据包中的IPv6包头中的IPv6源地址映射为公有IPv4地址,并在所述IPv6 DNS请求数据包中的IPv6目的地址中去掉所述周知前缀;或者
所述NAT设备在所述IPv6DNS请求数据包中的IPv6包头中的IPv6源地址中去掉所述IPv6前缀,并在IPv6 DNS请求数据包中的IPv6目的地址中去掉所述周知前缀;
所述NAT设备将所述IPv4 DNS回复消息数据包中的IPv4包头转换为IPv6包头,具体包括:
当所述IPv4 DNS回复消息数据包中IPv4源地址为公有IPv4时,将所述IPv4源地址和所述IPv6前缀组合,生成所述IPv6包头中的IPv6源地址;以及将所述IPv4 DNS回复消息数据包中的IPv4目的地址和所述周知前缀组合,生成所述IPv6包头中的IPv6目的地址。
17.如权利要求14所述的方法,其特征在于,当所述DNS地址为IPv6网络中的IPv6 DNS服务器的地址时,所述IPv6主机通过IPv6网络直接发送所述IPv6 DNS请求数据包到所述DNS地址对应的IPv6 DNS服务器;
所述IPv4应用接收所述DNS服务器返回的DNS回复消息数据包之前,还包括:
IPv6 DNS服务器根据接收的IPv6 DNS请求数据包,判断本地是否保存有通信对端的IPv4地址,若是,则直接发送IPv6 DNS回复消息数据包到所述IPv6主机;
若否,所述IPv6 DNS服务器将所述IPv6 DNS请求数据包中的IPv6包头转换为IPv4包头后,发送到IPv4 DNS服务器;并接收所述IPv4 DNS服务器返回的IPv4 DNS回复消息数据包,将所述IPv4 DNS回复消息数据包中的IPv4包头转换为IPv6包头后发送到所述IPv6主机;
所述IPv6主机将所述IPv6 DNS回复消息数据包返回给所述IPv4应用。
18.一种具有IPv4应用的IPv6主机进行数据通信的方法,其特征在于,包括:
IPv4应用调用IPv4 Socket API函数向所述IPv4通信对端发起应用数据请求;
所述IPv6主机将调用IPv4 Socket API函数转换为调用IPv6 Socket API函数,生成IPv6应用数据包,通过IPv6网络发送到网络地址翻译NAT设备;
所述NAT设备将从所述IPv6网络接收的数据包中IPv6包头转换为IPv4包头后,通过IPv4网络发送到所述IPv4通信对端。
19.如权利要求18所述的方法,其特征在于,所述IPv6主机将调用IPv4Socket API函数转换为调用IPv6 Socket API函数,生成IPv6应用数据包,具体包括:
所述IPv6主机将调用的IPv4 Socket API函数中的IPv4源地址和所述IPv6前缀组合,生成IPv6源地址;以及
所述IPv6主机将将调用的IPv4 Socket API函数中的IPv4目的地址和所述周知前缀组合,生成IPv6目的地址;
所述IPv6主机根据生成的所述IPv6源地址和IPv6目的地址,转换为调用IPv6 Socket API函数生成IPv6应用数据包。
20.如权利要求18所述的方法,其特征在于,所述NAT设备将IPv6包头转换为IPv4包头,具体包括:
所述NAT设备将所述IPv6包头中的IPv6源地址映射为公有IPv4地址,并在所述IPv6目的地址中去掉所述周知前缀;或者
所述NAT设备在所述IPv6包头中的IPv6源地址中去掉所述IPv6前缀,并在所述IPv6目的地址中去掉所述周知前缀。
21.如权利要求18-20任一所述的方法,其特征在于,在所述IPv4通信对端通过所述IPv4网络接收到所述NAT设备转发的数据包后,还包括:
所述IPv4通信对端通过IPv4网络将返回给所述IPv6主机的IPv4数据包发送到所述NAT设备;
所述NAT设备将所述IPv4数据包的包头转换为IPv6包头后,通过IPv6网络传送给所述IPv6主机;
所述IPv6主机将接收的数据包返回给所述IPv4应用。
22.如权利要求21所述的方法,其特征在于,所述NAT设备将所述IPv4数据包的包头转换为IPv6包头,具体包括:
所述NAT设备将IPv4数据包的IPv4包头中的IPv4源地址和所述IPv6前缀组合,生成所述IPv6包头中的IPv6源地址;以及所述NAT设备将IPv4数据包的IPv4包头中IPv4目的地址和所述周知前缀组合,生成所述IPv6包头中的IPv6目的地址;或者
所述NAT设备根据存储的映射状态信息,查找出与所述IPv4数据包的IPv4包头中的IPv4源地址对应的IPv6源地址;以及所述NAT设备将IPv4数据包的IPv4包头中IPv4目的地址和所述周知前缀组合,生成所述IPv6包头中的IPv6目的地址。
23.一种IPv6主机,其特征在于,包括:
IPv4应用模块,用于执行IPv4相关应用;
包头翻译模块,用于将所述IPv4应用模块发送的相关IPv4数据包中的IPv4包头转换成IPv6包头;
地址翻译模块,用于提供IPv4地址与IPv6地址之间的映射。
24.如权利要求23所述的IPv6主机,其特征在于:
所述包头翻译模块具体用于:劫持IPv4数据包中的IPv4包头,将IPv4包头中的IPv4源地址和IPv4目的地址发送到所述地址翻译模块;接收所述地址翻译模块返回的IPv6源地址和IPv6目的地址,形成IPv6包头;
所述地址翻译模块具体用于:接收所述包头翻译模块发送的IPv4源地址和IPv4目的地址,将所述IPv4源地址与分配给IPv6主机的IPv6前缀组合,生成IPv6源地址,以及将IPv4目的地址与存储的周知前缀组合,生成IPv6目的地址,并返回给所述包头翻译模块。
25.一种IPv6主机,其特征在于,包括:
IPv4应用模块,用于执行IPv4相关应用;
DNS判断处理模块,用于判断接收的DNS地址是DNS IPv4地址或DNSIPv6地址;当为DNS IPv4地址时,启动包头翻译模块;当为DNS IPv6地址,启动Socket翻译模块;
包头翻译模块,用于将所述IPv4应用模块发送的相关IPv4数据包中的IPv4包头转换成IPv6包头;
Socket翻译模块,用于当所述IPv4应用模块执行IPv4相关应用调用IPv4Socket API函数时,转换为调用IPv6 Socket API函数;
地址翻译模块,用于提供IPv4地址与IPv6地址之间的映射。
26.如权利要求25所述的IPv6主机,其特征在于:
所述包头翻译模块具体用于:劫持IPv4数据包中的IPv4包头,将IPv4包头中的IPv4源地址和IPv4目的地址发送到所述地址翻译模块;接收所述地址翻译模块返回的IPv6源地址和IPv6目的地址,形成IPv6包头;
所述Socket翻译模块具体用于:劫持IPv4 Socket API函数调用,将调用的IPv4 Socket API函数中的IPv4源地址和IPv4目的地址发送到所述地址翻译模块;接收所述地址翻译模块返回的IPv6源地址和IPv6目的地址,转换为调用IPv6 Socket API函数;
所述地址翻译模块具体用于:接收所述Socket翻译模块发送的IPv4源地址和IPv4目的地址,将所述IPv4源地址与分配给IPv6主机的IPv6前缀组合,生成IPv6源地址,以及将IPv4目的地址与存储的周知前缀组合,生成IPv6目的地址,并返回给所述Socket翻译模块。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910088351 CN101931658B (zh) | 2009-06-26 | 2009-06-26 | 具有IPv4应用的IPv6主机进行通信的方法与装置 |
PCT/CN2010/000793 WO2010139194A1 (zh) | 2009-06-03 | 2010-06-03 | 具有IPv4应用的主机进行通信的方法及设备 |
US13/375,969 US8909812B2 (en) | 2009-06-03 | 2010-06-03 | Method and device for communication for host device with IPv4 application |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910088351 CN101931658B (zh) | 2009-06-26 | 2009-06-26 | 具有IPv4应用的IPv6主机进行通信的方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101931658A true CN101931658A (zh) | 2010-12-29 |
CN101931658B CN101931658B (zh) | 2013-07-03 |
Family
ID=43370583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910088351 Active CN101931658B (zh) | 2009-06-03 | 2009-06-26 | 具有IPv4应用的IPv6主机进行通信的方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101931658B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102739809A (zh) * | 2011-04-07 | 2012-10-17 | 中国电信股份有限公司 | DNS64数据库、服务器、系统和IPv4/IPv6通信方法 |
CN103004173A (zh) * | 2012-09-29 | 2013-03-27 | 华为技术有限公司 | 一种分配地址的方法、装置及系统 |
CN104883408A (zh) * | 2014-02-28 | 2015-09-02 | 中兴通讯股份有限公司 | 一种处理NAT64前缀的方法、网络设备及DHCPv6服务器 |
CN104935677A (zh) * | 2014-03-18 | 2015-09-23 | 中兴通讯股份有限公司 | 一种nat64资源获取方法及获取/分配装置 |
CN105208140A (zh) * | 2014-06-30 | 2015-12-30 | 中国电信股份有限公司 | 用于发送数据的方法、装置和系统 |
CN106302222A (zh) * | 2016-09-13 | 2017-01-04 | 赛尔网络有限公司 | 一种IPv4/IPv6流量转换方法及系统 |
CN107547687A (zh) * | 2017-08-31 | 2018-01-05 | 新华三技术有限公司 | 一种报文传输方法和装置 |
CN110351396A (zh) * | 2019-05-29 | 2019-10-18 | 北京宏图佳都通信设备有限公司 | 一种IPv4/IPv6数据传输处理方法和系统 |
CN114945013A (zh) * | 2022-04-28 | 2022-08-26 | 中国电信股份有限公司 | 数据转发方法、装置、电子设备及计算机可读存储介质 |
CN116471338A (zh) * | 2023-06-20 | 2023-07-21 | 中国电信股份有限公司江西分公司 | 一种基于SPACE6的协议转换技术的IPv6云转换平台 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1578296A (zh) * | 2003-07-29 | 2005-02-09 | 华为技术有限公司 | 双栈过渡的实现方法 |
US7340746B2 (en) * | 2003-08-07 | 2008-03-04 | Sharp Laboratories Of America, Inc. | Apparatus and methods for providing communication between systems having different protocol versions |
CN1333568C (zh) * | 2005-05-27 | 2007-08-22 | 清华大学 | 基于过渡机制的IPv6网和IPv4网间互通的方法 |
-
2009
- 2009-06-26 CN CN 200910088351 patent/CN101931658B/zh active Active
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102739809B (zh) * | 2011-04-07 | 2015-07-15 | 中国电信股份有限公司 | DNS64数据库、服务器、系统和IPv4/IPv6通信方法 |
CN102739809A (zh) * | 2011-04-07 | 2012-10-17 | 中国电信股份有限公司 | DNS64数据库、服务器、系统和IPv4/IPv6通信方法 |
CN103004173B (zh) * | 2012-09-29 | 2016-03-09 | 华为技术有限公司 | 一种分配地址的方法、装置及系统 |
CN103004173A (zh) * | 2012-09-29 | 2013-03-27 | 华为技术有限公司 | 一种分配地址的方法、装置及系统 |
US9882866B2 (en) | 2012-09-29 | 2018-01-30 | Huawei Technologies Co., Ltd. | Address allocating method, apparatus, and system |
WO2015127751A1 (zh) * | 2014-02-28 | 2015-09-03 | 中兴通讯股份有限公司 | 一种处理NAT64前缀的方法、网络设备及DHCPv6服务器 |
CN104883408A (zh) * | 2014-02-28 | 2015-09-02 | 中兴通讯股份有限公司 | 一种处理NAT64前缀的方法、网络设备及DHCPv6服务器 |
CN104935677A (zh) * | 2014-03-18 | 2015-09-23 | 中兴通讯股份有限公司 | 一种nat64资源获取方法及获取/分配装置 |
WO2015139397A1 (zh) * | 2014-03-18 | 2015-09-24 | 中兴通讯股份有限公司 | 一种nat64资源获取方法及获取/分配装置 |
CN105208140A (zh) * | 2014-06-30 | 2015-12-30 | 中国电信股份有限公司 | 用于发送数据的方法、装置和系统 |
CN105208140B (zh) * | 2014-06-30 | 2018-12-11 | 中国电信股份有限公司 | 用于发送数据的方法、装置和系统 |
CN106302222A (zh) * | 2016-09-13 | 2017-01-04 | 赛尔网络有限公司 | 一种IPv4/IPv6流量转换方法及系统 |
CN107547687A (zh) * | 2017-08-31 | 2018-01-05 | 新华三技术有限公司 | 一种报文传输方法和装置 |
CN107547687B (zh) * | 2017-08-31 | 2021-02-26 | 新华三技术有限公司 | 一种报文传输方法和装置 |
CN110351396A (zh) * | 2019-05-29 | 2019-10-18 | 北京宏图佳都通信设备有限公司 | 一种IPv4/IPv6数据传输处理方法和系统 |
CN114945013A (zh) * | 2022-04-28 | 2022-08-26 | 中国电信股份有限公司 | 数据转发方法、装置、电子设备及计算机可读存储介质 |
CN114945013B (zh) * | 2022-04-28 | 2023-10-27 | 中国电信股份有限公司 | 数据转发方法、装置、电子设备及计算机可读存储介质 |
CN116471338A (zh) * | 2023-06-20 | 2023-07-21 | 中国电信股份有限公司江西分公司 | 一种基于SPACE6的协议转换技术的IPv6云转换平台 |
CN116471338B (zh) * | 2023-06-20 | 2023-09-05 | 中国电信股份有限公司江西分公司 | 一种基于SPACE6的协议转换技术的IPv6云转换平台 |
Also Published As
Publication number | Publication date |
---|---|
CN101931658B (zh) | 2013-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101931658B (zh) | 具有IPv4应用的IPv6主机进行通信的方法与装置 | |
US8909812B2 (en) | Method and device for communication for host device with IPv4 application | |
US8559448B2 (en) | Method and apparatus for communication of data packets between local networks | |
US8228848B2 (en) | Method and apparatus for facilitating push communication across a network boundary | |
US20130010614A1 (en) | METHOD AND APPARATUS FOR PROCESSING PACKETS IN IPv6 NETWORK | |
US8238336B2 (en) | Method for forwarding data packet, system, and device | |
CN102215273B (zh) | 一种为内网用户提供外网接入的方法和装置 | |
CN101656761B (zh) | 地址变换装置、方法、名称解决系统、方法以及节点 | |
US9191317B2 (en) | Method and system for implementing interconnection between internet protocol version 4 network and new network | |
CA2884683C (en) | Split network address translation | |
US20110158224A1 (en) | Communication system and telephone exchange apparatus | |
CN102394947B (zh) | IPv4与IPv6的地址翻译方法、装置、系统及ALG设备 | |
CN103338151A (zh) | 公网客户端访问私网服务器的方法及路由器 | |
CN102025848A (zh) | 网关及其处理封包的方法 | |
EP2675117A1 (en) | Routing method and device for host in multi-homing site | |
CN103227787A (zh) | 一种基于ARP代理的4over6隧道自动建立方法 | |
CN103369065A (zh) | 一种报文转发方法及设备 | |
CN102387221B (zh) | 一种数据转发方法及系统 | |
CN1870633B (zh) | 通过双栈移动IPv6节点支持移动IPv4的方法 | |
CN101257517B (zh) | 地址解析协议请求消息处理方法及装置 | |
CN104506665B (zh) | 一种IPv4/IPv6地址区分方法及系统 | |
CN104935677A (zh) | 一种nat64资源获取方法及获取/分配装置 | |
CN101909041A (zh) | 具有IPv4应用的主机通过IPv6网络进行通信的方法和系统 | |
CN102546845B (zh) | 业务访问方法、装置及系统 | |
CN108337331B (zh) | 网络穿透方法、装置、系统及网络连通性检查方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |