一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于获得IP地址的方法和装置与流程

2022-03-31 11:15:15 来源:中国专利 TAG:

用于获得ip地址的方法和装置
技术领域
1.本发明涉及一般电信领域,并且更具体地涉及增值ip(互联网协议)服务。


背景技术:

2.ip网络已经成为用于众多服务和应用的联合网络。为了预测ip地址方面日益增长的需求,运营商、网络设备制造商和大学已经合作指定了ip协议的新版本,称为ipv6(互联网协议版本6)。ipv6规范现在已经足够成熟。因此,在运营商运营的大多数网络中,ipv6是运营部署的主题。然而,该ip协议的新版本的引入带来了由于构造而与ipv4版本的互操作性和互通的问题。
3.ipv4仍然主要用于互联网(大约占流量的75%),但是ipv4地址库现在已经枯竭。不应忘记ipv4地址以32位编码(相比而言ipv6地址以128位编码)。因此,ipv4地址的耗竭使得ipv6的部署成为运营商和ip服务提供商的主要问题。
4.然而,两个主要限制因素使迁移策略的实施变得复杂:
[0005]-需要在过渡期间保证ipv4服务的连续性,尽管无法向每个客户端提供公共ipv4地址;以及
[0006]-ipv4协议与ipv6协议之间的不兼容性,这使两个世界的互连变得复杂。
[0007]
此外,运营商和服务提供商还必须考虑在网络和服务基础设施中引入ipv6的各种限制,还要设计利用ipv6的新固有功能的新架构。
[0008]
因此,ipv6的激活不应被视为与ipv4互联网网络并行的互联网网络的实施,而应被视为当前互联网网络的演进。现在,在ipv4协议和ipv6协议两者共存的背景下,必须特别支持仅具有单个ip栈(即ipv4栈或ipv6栈)并且因此具有单一类型的ipv4连接或ipv6连接的异构节点之间的通信。此外,用于建立给定会话的协议版本在理想情况下必须对最终用户透明。应当注意,仅具有单个ip栈,即仅具有ipv4栈(节点于是被称为仅ipv4)或仅具有ipv6栈(节点于是被称为仅ipv6)的节点能够发送、接收或处理仅符合由该ip栈实施的协议版本的分组,换句话说,对于仅ipv4节点,仅符合ipv4协议的分组,或者对于仅ipv6节点,仅符合ipv6协议的分组。
[0009]
因此,必须部署ipv4-ipv6互连机制,以确保全球连接。整体可访问性不仅涉及地址与源地址属于同一地址家族(ipv4或ipv6)的目的地,还涉及属于异构域的目的地(即具有ipv4地址或ipv6地址的任何目的地)。
[0010]
在已知ipv6协议与ipv4协议不兼容的情况下,已经选择仅基于ipv6协议(即“仅ipv6”)的部署的网络运营商使用了用于将ipv6分组转换成ipv4分组的功能,并且反之亦然,包括用于将ipv4地址转换成ipv6地址(并且反之亦然)的功能,以确保ipv4服务的连续性。通常称为nat64的该功能(也称为用于将ipv4分组转换成ipv6分组的功能)在ietf(互联网工程任务组)于2011年4月发布的且名称为“stateful nat64:network address and protocol translation from ipv6 clients to ipv4 servers[有状态nat64:从ipv6客户端到ipv4服务器的网络地址和协议转换]”的文档rfc 6146中进行了描述。
[0011]
参考图1,考虑:
[0012]-仅ipv6网络n1,其中仅激活ipv6连接服务用于传递ip分组,并且仅具有ipv6栈的终端term连接到该网络;以及
[0013]-仅ipv4网络n2,其中仅激活ipv4连接服务用于传递ip分组,并且因此仅可在ipv4模式下访问的远程服务器serv连接到该网络。
[0014]
为了允许终端term访问远程服务器serv,调用nat64功能,以便一方面使用外部ipv4地址(和外部端口号),这使得可以建立与远程服务器serv的通信,并且另一方面维护该外部ipv4地址与终端term使用的ipv6源地址(以及源端口号)之间的关联。为此,nat64功能使用包含ipv4地址的特定ipv6地址,并且如ietf在2010年10月名称为“ipv6 addressing of ipv4/ipv6 translators[ipv4/ipv6转换器的ipv6寻址]”的rfc 6052文档中所定义的。这种ipv6地址可以具有不同的类型,并且更具体地具有以下类型:
[0015]
‑“
ipv4嵌入的ipv6”类型,该类型指定在其128位中包括与ipv4地址相对应的32位的ipv6地址;
[0016]
‑“
ipv4转换的ipv6”类型(“ipv4嵌入的ipv6”类型地址的变体),该类型指定表示ipv6网络中的ipv4节点的ipv6地址(换句话说,ipv4节点将可以从仅ipv6节点使用该地址进行访问);以及
[0017]
‑“
ipv4可转换ipv6”类型,该类型指定分配给ipv6节点的允许无状态ipv6-ipv4互连的ipv6地址。
[0018]
为了将ipv4地址转换成“ipv4嵌入的ipv6”地址(并且反之亦然),运营商可以使用形成其整体ipv6前缀的一部分的称为nsp(“网络特定前缀”)的前缀,或者使用由ietf分配的称为wkp(“众所周知的前缀”)的前缀,例如前缀“64:ff9b::/96”(其他wkp前缀已经由ietf保留,如前缀“64:ff9b::/48”)。应当注意,当所使用的前缀长度小于96时,优选十六进制表示法,以便表示适当构造的ipv6地址(换句话说,所包括的ipv4地址不会以十进制表示)。因此,作为说明,“2001:db8:122:344:c0:2:2100::”是使用nsp前缀“2001:db8:122:344::/64”从地址“192.0.2.33”构造“伪”(虚拟)ipv6地址的结果;“64:ff9b::192.0.2.33”是使用wkp前缀64:ff9b::/96从地址192.0.2.33构造“伪”ipv6地址的结果。nat64功能根据不同的工程被配置有nsp或wkp前缀,以在ipv4地址的基础上构造ipv6地址,并且反之亦然。此处的术语“伪”指定ipv4地址由dns服务器转换为ipv6地址,而不是授予具有ipv6连接的资源的“本地”ipv6地址。
[0019]
如本身已知的,dns(“域名系统”)服务允许连接到ip网络的用户终端(或嵌入到该终端中的应用程序)从域名中获得ip(ipv4和/或ipv6)地址或由该域名指定的网络资源的地址。网络资源被理解为受益于ip连接并且可以经由ip地址到达的任何类型的装置或设备,例如服务器。可以设想几种传输模式用于交换dns消息,这些消息包括ietf最近定义的那些消息,如dns-over-tls、dns-over-dtls或doh(dns-over-http)。
[0020]
具有ipv4连接并且因此可以经由ipv4地址到达的网络资源可以与dns服务一起发布类型a的dns记录(或a rr(资源记录)),从而建立与该网络资源相关联的域名与其ipv4地址之间的对应关系。具有ipv6连接并且因此可以在ipv6模式下到达的网络资源可以发布aaaa类型的记录(或aaaa rr)。受益于ipv4连接和ipv6连接并且因此可以经由ipv4地址和ipv6地址到达的网络资源可以分别发布类型a和类型aaaa的两个记录。在ietf文档rfc1035
和rfc3596中分别描述了类型a和aaaa的rr记录。dns记录的发布由网络资源(例如,通过“动态dns”机制)或另一个实体(例如,管理员)执行。在下文中,没有对用于发布这种记录的方法进行假设。
[0021]
根据dns服务的当前操作模式,当终端希望到达如服务器等网络资源时,该终端向dns服务发送对该其拥有的域名的解析请求,以便访问服务器。在该域名解析请求中,终端必须指定该终端响应于其请求而想要的记录类型(a或aaaa)。因此,支持ipv4协议和ipv6协议两者的终端必须向dns服务发送两个请求:指示类型a的记录并且旨在获得网络资源的一个或多个ipv4地址的第一请求(在下文的描述中也称为“用于获得ipv4地址的dns请求”或更简单地指定为“类型a的dns请求”),以及指示类型aaaa的记录并且旨在获得网络资源的一个或多个ipv6地址的第二请求(在下文的描述中也称为“用于获得ipv6地址的dns请求”或更简单地指定为“类型aaaa的dns请求”)。因此,网络中ipv6的激活会影响dns服务器的规模,因为可以为同一个网络资源传输两个域名解析请求。如果必须同时(而非顺序地)发送这两个请求以便优化通信建立延迟,则这些影响就更大了。
[0022]
选择在其网络中部署nat64功能的ip连接提供商几乎系统地部署了dns64功能,其配置有与nat64功能使用的前缀相同的前缀,以便基于仅ipv4服务器的ipv4地址构造“ipv4转换的ipv6”类型的ipv6地址。依赖于nat64和dns64功能的使用的该工程理论上假设ipv6终端仅向dns服务传输类型aaaa(ipv6)的dns请求,而不传输类型a(ipv4)的dns请求。然而,在实践中,当前部署揭示了终端的非最佳行为,这些终端针对相同的网络资源系统地发送类型a和类型aaaa的两个dns请求。如先前所指示的,终端的该行为对dns服务器的规模产生重大影响(由于为每个解析传输了两个请求,处理负荷加倍,对dns流量产生影响),而且对建立用户连接时引起的延迟也产生重大影响,这可能导致终端用户感知到的连接服务质量下降。
[0023]
该问题的一种解决方案可以包括通过配置来限制由连接到仅ipv6网络的终端传输的dns请求的类型。然而,这并不构成可行的解决方案。
[0024]
事实上,如今越来越多的第三方运营商(不同于提供ip连接服务的运营商)向终端的用户提供公共dns服务。根据这些第三方运营商,与ip连接服务运营商运行的dns服务器相比,这些公共dns服务提高了用户的体验质量,和/或提供了高级安全性和保密功能。因此,一些第三方运营商指示在11ms内提供对dns请求的响应,而在ip连接服务的运营商中观察到的平均值为68ms。面对这种争论,越来越多的用户正在他们的终端(无论是固定的还是移动的)上用涉及公共dns服务器的配置来替换由其ip连接运营商供应的名义上的dns服务配置。
[0025]
在这种情况下,将连接到仅ipv6网络的终端传输的dns请求限制为单一类型的请求(在这种情况下为aaaa)可能导致禁止这些终端访问仅ipv4服务器,这既不可取也不可接受。


技术实现要素:

[0026]
本发明使得尤其可以通过提出一种用于使客户端装置获得ip地址以便经由向该客户端装置提供ip连接服务的至少一个网络来访问网络资源(例如,与域名相关联的网络资源)的方法来克服现有技术的缺点,该方法由该客户端装置实施并且包括:
[0027]-在该网络资源具有ipv4连接时,将表示由该客户端装置响应于用于获得ipv6地址以便访问该网络资源的针对该dns服务器的请求(换句话说,在如先前提及的类型aaaa的dns请求中)而从该dns服务器预期的ip地址类型的信息插入到该获得请求中的步骤;以及
[0028]-向该dns服务器发送该请求的步骤。
[0029]
相关地,本发明还涉及一种客户端装置,该客户端装置连接到向该客户端装置供应ip连接服务的至少一个网络,该客户端装置包括:
[0030]-插入模块,该插入模块被配置成在网络资源具有ipv4连接时,将表示由该客户端装置响应于用于获得ipv6地址以便经由该网络来访问该网络资源的针对dns服务器的请求而从该dns服务器预期的ip地址类型的信息插入到该获得请求中;以及
[0031]-发送模块,该发送模块被配置成向该dns服务器发送该获得请求。
[0032]
例如,在特定实施例中,如果预期的ip地址类型是由该dns服务器从所述至少一个ipv6前缀和目标网络资源的ipv4地址形成的伪ipv6地址,则表示预期的ip地址类型并且如插入到该dns请求中的该信息可以是至少一个ipv6前缀或者包括至少一个ipv6前缀的至少一个ipv6地址。该ipv6前缀尤其可以是由该客户端装置设想用来访问该网络资源的网络实施的用于将ipv4(数据)分组转换成ipv6(数据)分组(反之亦然)的功能(例如nat64)使用的前缀,或包括这种前缀的ip地址。
[0033]
作为变体,如果预期的ip地址类型是该网络资源的ipv4地址,则插入的该信息可以是该dns服务器已知的预定义值(例如零值或专用于该用途的另一个前缀)。
[0034]
相关地,根据本发明的客户端装置可以进一步包括用于将ipv4地址转换成ipv6地址的模块,该模块在从该dns服务器接收到对所述获得请求的响应时被激活,并且该响应包括所述网络资源的ipv4地址,所述转换模块被配置成通过使用所述ipv4地址和由该网络实施的用于将ipv4分组转换成ipv6分组的功能使用的ipv6前缀来将所述ipv4地址转换成ipv6地址。
[0035]
当该网络资源具有ipv4连接时,由该客户端装置插入到用于获得ipv6地址的请求中的该信息因此允许该客户端装置指定其响应于用于获得ipv6地址的该请求(换句话说,在对用于获得ipv6地址的该请求的响应中,即如果该获得请求是dns aaaa请求,则在aaaa类型的响应的“应答部分”部分中)而预期伪ipv6地址还是ipv4地址。
[0036]
注意,无论该客户端装置配置的该dns服务器如何,本发明都有利地适用于:该服务器可以是在此称为“名义上”的dns服务器,该dns服务器由向该客户端装置提供该ip连接服务的运营商供应,例如在其附接到网络时或者在先前的配置中(例如,“工厂”配置),或者是替代性dns服务器,例如该客户端装置的用户已经选择使用的公共dns服务器,而不是其运营商提供的名义上的dns服务器。这是由于该客户端装置在询问dns服务器以便获得该客户端装置希望访问的该网络资源的ip地址时向该服务器供应的该信息。
[0037]
此外,参考向该客户端装置提供ip连接服务的网络来描述本发明。应当注意,该客户端装置可以同时具有几个活动连接接口,这些活动连接接口允许访问不同的网络,这些网络中的每一个都为该客户端装置提供了ip连接;然后,本发明适用于为这些活动连接接口中的每一个配置的每个dns服务器。同一个dns服务器可以用于若干个活动连接接口,或者每个活动连接接口可以使用不同的dns服务器。
[0038]
本发明提供了一种机制,该机制使得可以协调这些服务提供商(ip连接的提供商
和公共dns提供商)的需求、用户的需求以及终端制造商的需求。
[0039]
事实上,本发明提供的机制允许客户端装置根据该客户端装置的设置该客户端装置在网络资源具有ipv4连接时希望接收的ip地址类型的能力通过类型aaaa的单个请求(用于获得ipv6地址以便访问本发明意义内的网络资源的请求)来获得不同类型的ip地址,这取决于该客户端装置寻求访问的该网络资源是受益于ipv4连接、ipv6连接还是两者。因此,本发明允许仅ipv6客户端装置访问仅ipv4、仅ipv6或ipv4/ipv6网络资源,而不会不必要地使该客户端装置调用的该dns服务器过载,并且同时节省了该客户端装置的资源(如果是移动装置,尤其是其电池)。由接入网路由的流量、并且更具体地dns流量的体积密度被优化,并且因此,通信建立延迟也被优化。其结果是如该客户端装置的用户感知到的体验质量提高。
[0040]
此外,本发明为该客户端装置的用户提供了自由,该用户可以无偏好地使用他的或她的ip连接运营商的名义上的dns服务器,或者用第三方运营商提供的dns服务器(例如,如先前提及的公共dns服务器)配置他的或她的客户端装置。借助于本发明,因此在使用由客户端装置的ip连接提供商提供的名义上的dns服务器的这些客户端装置与决定使用由第三方服务提供商提供的替代性dns服务的这些客户端装置之间存在一种功能对等形式。
[0041]
本发明还使得可以管理网络的不同可能配置,并且尤其是用于该网络的dns服务器的不同可能配置,该服务器可以或可以不嵌入用于将ipv4地址转换成ipv6地址的dns64以促进服务连续性的功能。
[0042]
应当注意,一些客户端装置本身可以嵌入地址转换模块,也称为clat(“客户侧(地址)转换器”)或bih(主机中的块(bump-in-the-host))模块或功能,例如以允许安装在该客户端装置上并且仅在ipv4栈上运行的应用程序将包括客户端装置何时仅具有ipv6连接的消息传输到ipv4地址。这种模块于2013年4月在名称为“464xlat:combination of stateful and stateless translation[464xlat:有状态和无状态转换的结合]”的ietf文档rfc 6877中进行了描述。当dns64功能由该客户端装置咨询以访问资源的dns服务器实施时,如果同时激活该dns64功能和该客户端装置的clat模块,则两者是冗余的。本发明使得可以避免这种冗余,并且显著地最小化对clat模块的依赖。
[0043]
具体地,在可以被插入到上文提供的获得请求中的信息的示例中,预定义值使得可以管理由该客户端装置咨询的dns服务器没有实施dns64功能的情况,或者解除对由该dns服务器支持的dns64功能的依赖。在这种情况下,如果该客户端装置实施了clat模块,则该客户端装置可以使用返回给该客户端装置的ipv4地址来继续自己将该ipv4地址转换成ipv6地址。
[0044]
因此,本发明提供了在也由该dns服务器支持dns64功能的情况下避免冗余,而且还允许该客户端装置直接管理ipv6地址的构造的可能性。
[0045]
如果该dns服务器实施了dns64功能,则该客户端装置可以向该dns服务器供应前缀,该前缀用于从该客户端装置的ipv4地址生成仅ipv4或双栈(ipv4-ipv6)网络资源的伪ipv6地址。然后,在来自dns64服务器的响应中,由dns64服务器如此形成的ipv6地址被返回到该客户端装置。供应的前缀通常是由网络中存在的用于将ipv4分组转换成ipv6分组的nat64功能使用的前缀,该客户端装置希望经由该功能来访问网络资源。
[0046]
因此,本发明也适用于不实施dns64功能并且依赖于由该客户端装置自身实施这
种功能的网络的情况。
[0047]
因此,本发明在先前描述的当前ipv4到ipv6迁移的背景下特别有利。
[0048]
在特定实施例中,该获得请求可以进一步包括:
[0049]-用于仅当该网络资源仅具有ipv4连接时生成ipv6格式的所述地址的指令;或者
[0050]-用于在该网络资源具有ipv4连接时生成ipv6格式的所述地址的指令,即使该网络资源也具有ipv6连接。
[0051]
借助于当客户端装置预期ipv6格式的地址时由该客户端装置插入到该获得请求中的该附加指令,可以更优化地管理被配置成与ipv4-ipv6网络资源通信的仅ipv4应用程序被嵌入到仅ipv6客户端装置上的情况(该客户端装置然后也嵌入clat模块)。事实上,该客户端装置在这种情况下可以请求该dns服务器响应于该客户端的请求而不仅向该客户端装置发送网络资源的本地ipv6地址(当网络资源具有ipv6连接时,该dns服务器在默认情况下在接收到aaaa类型的请求时将做什么),而且还发送该客户端装置然后可以直接向应用程序供应的ipv4地址,而无需激活nat46功能以便将网络资源的本地ipv6地址转换成应用程序能够使用的ipv4地址。注意,在双连接网络资源的情况下,该客户端装置能够将由该dns服务器为网络资源生成(即形成)的伪ipv6地址与该网络资源的本地ipv6地址区分开,因为该客户端装置具有用于形成伪ipv6地址的前缀。
[0052]
在另一个实施例中,该获得请求还可以包括针对该dns服务器的其他指示,例如:
[0053]-用于执行确定的算法以从该网络资源的ipv4地址形成ipv6地址的指令(例如在ietf文档rfc 6052中定义的算法);和/或
[0054]-用于使用已知前缀(wkp,众所周知的前缀)从该网络资源的ipv4地址形成ipv6地址的指令;和/或
[0055]-用于使用后缀的指令,该后缀保证传输层的伪报头的“校验和”(完整性检查机制)的中立性;和/或
[0056]-用于将一个或多个ipv4地址返回到对该获得请求的响应的附加部分的指令。
[0057]
用于使用该wkp前缀的指令在希望在适当的情况下在来自该dns服务器的响应的正文中将网络资源的ipv4地址传输到该客户端装置的实施例中可以证明是特别有用的。在该实施例中,然后可以通过使用该wkp前缀根据ipv6格式对ipv4地址进行编码。
[0058]
不应忘记tcp伪报头还覆盖了ip层的源地址和目的地址。因此,对这些地址的任何修改都会使基于伪报头(称为“校验和”)的检查验证过时。用于使用后缀的指令使得可以在通过nat64(或clat)功能将ipv4分组转换成ipv6分组(反之亦然)时避免重新计算tcp该“校验和”。如果不使用该指令,则该nat64功能必须基于新的伪报头重新计算该“校验和”。
[0059]
在特定实施例中,该方法进一步包括确定该网络是否实施用于将ipv4分组转换成ipv6分组的功能(反之亦然)(即,nat64功能)的步骤。
[0060]
在适当的情况下,该方法可以进一步包括获得由所述转换功能(即,nat64)使用的至少一个ipv6前缀的步骤。
[0061]
这允许该客户端装置自己动态地发现其连接到的网络以及其为了访问网络资源而设想使用的网络是否实施了nat64功能。当该客户端装置具有几个活动网络接口或者当该客户端装置改变网络接口时,该实施例提供了特别的优势。注意,实施nat64功能的网络的一部分没有限制:该功能可以位于接入网、核心网或互连网络等中。
[0062]
作为变体,例如在“工厂”配置的背景下,该客户端装置可以独立于实施根据本发明的方法而配置有该信息。该变体特别适用于客户端装置,如cpe(“客户驻地设备”)。
[0063]
为了发现网络是否实施了用于将ipv4分组转换成ipv6分组的功能,可以设想各种技术。
[0064]
因此,在特定实施例中,该客户端装置向其发送该获得请求的dns服务器是与所谓的“名义上的”dns服务器不同的服务器,该网络的运营商已经用该服务器配置了该客户端装置,并且:
[0065]-该确定步骤包括向名义上的dns服务器发送用于获得ipv6地址以便访问已知仅具有ipv4连接的给定网络资源的请求的步骤;并且
[0066]-如果从名义上的dns服务器接收到包括要用于访问给定网络资源的ipv6地址的肯定响应,则该客户端装置确定该ip网络实施了用于将ipv4分组转换成ipv6分组的功能(nat64功能)。
[0067]
在该实施例中,该方法可以进一步包括从在从名义上的dns服务器接收到的肯定响应中包含的ipv6地址获得由用于将ipv4分组转换成ipv6分组的功能使用的ipv6前缀的步骤。
[0068]
该实施例要求在该客户端装置上存储与由网络运营商供应的名义上的dns配置相关的信息,该网络运营商向该客户端装置提供其ip连接,以便在该客户端装置随后用替代性dns服务器配置时访问该网络资源。然而,它确实提供了一种很容易由该客户端装置实施的解决方案,以便动态地发现该ip网络是否包括nat64功能,并且这样做不涉及所述nat64功能。
[0069]
在另一个实施例中,确定步骤可以使用端口控制协议(pcp)来实施。
[0070]
pcp协议本身是已知的,并且于2014年5月在名称为“discovering nat64 ipv6 prefixes using the port control protocol(pcp)[使用端口控制协议(pcp)发现nat64 ipv6前缀]”的ietf文档rfc 7225中进行了具体描述。
[0071]
该实施例呈现出可靠和确定性的优势,因为关于nat64功能的存在以及由该功能使用的这些前缀的信息在必要时由位于由该客户端装置传输的消息的路径上的该nat64功能本身提供。此外,这使得可以管理由网络运营商实施若干个nat64功能的情况。
[0072]
在又一实施例中,根据本发明的获得方法包括:
[0073]-接收源自网络的广告消息的步骤,该广告消息包括由网络实施的用于将ipv4分组转换成ipv6分组的功能所使用的至少一个ipv6前缀;以及
[0074]-存储包含在该广告消息中的所述至少一个ipv6前缀的步骤。
[0075]
在该实施例中,该客户端装置使用由网络本身通告的信息来从中推断该网络是否使用nat64功能,并且在适当的情况下,获得该功能使用的一个或多个前缀。
[0076]
此外,该实施例在发现过程中不涉及该nat64功能,并且基于本身已知的配置机制。
[0077]
在特定实施例中,在检测到影响该客户端装置针对所述网络的网络配置的变化时,针对网络重复确定步骤。
[0078]
这种改变例如是由该客户端装置询问的该dns服务器的改变,以便经由该网络或到新网络的连接来访问资源。因此,本发明使得可以针对该客户端装置的用户动态且透明
地适应该客户端装置的配置变化,并且尤其是dns配置的变化(例如,当用户决定使用替代性dns服务器而不是其名义上的dns服务器时,或者如果dns配置的变化由网络运营商决定)。
[0079]
鉴于以上情况,本发明基于该客户端装置及其实施的获得方法,还基于处理源自该客户端装置的dns请求的dns服务器以及由该客户端装置执行的处理方法。
[0080]
因此,本发明还针对一种处理方法,由与向至少一个客户端装置提供ip连接服务的网络相关联的dns服务器进行,该方法包括:
[0081]-在网络资源具有ipv4连接时,从客户端装置接收用于获得ipv6地址以便访问该网络资源的请求的步骤,在该请求中插入了表示由该客户端装置响应于该获得请求而从该dns服务器预期的ip地址类型的信息;
[0082]-在该网络资源具有ipv6连接时,响应于该获得请求而向该客户端装置发送所述网络资源的ipv6地址的步骤;
[0083]-在该网络资源具有ipv4连接时:
[0084]
获得该网络资源的ipv4地址的步骤;以及
[0085]
发送对该获得请求的响应的步骤,该响应包含由该dns服务器从该获得的ipv4地址中确定的并且与由该客户端装置预期的ip地址相对应的至少一个ip地址,以便访问该网络资源。
[0086]
相关地,本发明涉及一种dns服务器,包括:
[0087]-接收模块,该接收模块能够从连接到向客户端装置供应ip连接服务的网络的所述客户端装置接收用于获得ipv6地址以便经由所述ip网络来访问网络资源的请求;
[0088]-检测模块,该检测模块被配置成在该网络资源具有ipv4连接时,在该获得请求中检测表示由该客户端装置响应于该获得请求而从该dns服务器预期的ip地址类型的信息;
[0089]-发送模块,该发送模块在该网络资源具有ipv6连接时被激活,并且被配置成响应于该获得请求而向该客户端装置发送该网络资源的ipv6地址;
[0090]-在该网络资源具有ipv4连接时被激活的模块,这些模块包括:
[0091]
获得模块,该获得模块被配置成获得该资源的ipv4地址;以及
[0092]
发送模块,该发送模块被配置成发送对该获得请求的响应,该响应包含至少一个ip地址以便访问所述网络资源,该至少一个ip地址由该dns服务器从获得的ipv4地址确定并且与插入到该获得请求中的该信息所指示的由该客户端装置预期的该ip地址类型相对应。
[0093]
根据本发明的该处理方法和该dns服务器受益于与根据本发明的获得方法和该客户端装置相同的先前引用的优势。
[0094]
本发明还提供了这样的可能性,即当该客户端装置试图获得地址的该网络资源具有ipv4连接,并且该客户端装置指示其响应于其用于获得ipv6地址的请求而预期ipv4地址时,dns服务器响应于具有ipv4地址的用于获得ipv6地址的请求。
[0095]
在特定实施例中,插入到该获得请求中的该信息包括至少一个ipv6前缀或包括至少一个ipv6前缀的至少一个ipv6地址,并且由该dns服务器确定的所述至少一个ip地址包括由该dns服务器从所述至少一个ipv6前缀和从获得的网络资源的该ipv4地址形成的至少一个ipv6地址。
[0096]
作为变体,插入到该获得请求中的该信息可以具有该dns服务器已知的预定义值,并且由该dns服务器确定的所述至少一个ip地址然后是获得的网络资源的该ipv4地址。
[0097]
应当注意,该网络资源的ipv4地址可以在来自该dns服务器的响应中发送,该响应的附加部分根据ipv4格式进行编码。
[0098]
作为变体,该ipv4地址可以在来自该dns服务器的响应的正文中传输,该响应例如通过使用前缀“::ffff:0:0/96”根据ipv6格式进行编码。
[0099]
在特定实施例中,仅当该网络资源仅具有ipv4连接时,发送步骤和获得步骤才由该dns服务器实施。换句话说,如果该网络资源除了具有ipv4连接之外还具有ipv6连接,则响应于类型aaaa的获得请求默认地向该客户端装置发送的是该网络资源的ipv6地址。
[0100]
在另一个实施例中,当该网络资源具有ipv4连接时实施发送步骤和获得步骤,即使该网络资源也具有ipv6连接。该实施例的优势先前已经描述过,并且这里不再赘述。
[0101]
在特定实施例中,该获得方法和/或该处理方法由计算机实施。
[0102]
本发明还针对存储介质上的第一计算机程序,该程序能够在计算机中或者更一般地在符合本发明的客户端装置中实施,并且包括适于实施如上文描述的获得方法的指令。
[0103]
本发明还针对存储介质上的第二计算机程序,该程序能够在计算机中或者更一般地在符合本发明的dns服务器中实施,并且包括适于实施如上文描述的处理方法的指令。
[0104]
这些程序中的每个程序可以使用任何编程语言,并且可以是源代码、目标代码、或在源代码与目标代码之间的中间代码的形式,如呈部分编译的形式、或呈任何其他期望的形式。
[0105]
本发明还针对可以被计算机读取并且包括上述第一或第二计算机程序的指令的信息介质或存储介质。
[0106]
该信息或存储介质可以是能够存储程序的任何实体或装置。例如,该介质可以包括存储装置,如rom(例如,cd rom或微电子电路rom),或者甚至磁性存储装置(例如,硬盘或闪速存储器)。
[0107]
此外,该信息或存储介质可以是如电信号或光信号等可传输介质,其可以经由电缆或光缆、通过无线电链路、通过无线光链路或通过其他装置被传输。
[0108]
根据本发明的程序可以具体地通过互联网类型的网络进行下载。
[0109]
可替换地,每个信息或存储介质可以是并入了程序的集成电路,该电路被适配成执行或用于执行根据本发明的获得方法或根据本发明的处理方法。
[0110]
根据另一方面,本发明针对一种通信系统,包括:
[0111]-根据本发明的至少一个客户端装置,该至少一个客户端装置经由连接接口连接到至少一个ip网络;以及
[0112]-根据本发明的至少一个dns服务器,该至少一个dns服务器由该客户端装置结合所述连接接口使用。
[0113]
在特定实施例中,该dns服务器是与所谓的名义上的dns服务器不同的公共服务器,该ip网络的运营商已经用该服务器配置了该客户端装置。
[0114]
根据本发明的通信系统受益于与根据本发明的该获得方法、该处理方法、该客户端装置和该dns服务器相同的先前引用的优势。
[0115]
在其他实施例中,还可以设想根据本发明的该获得方法、该处理方法、该客户端装
置、该dns服务器和该通信系统组合具有上述特性的全部或部分的可能性。
附图说明
[0116]
本发明的其他特征和优点将在以下参考附图所给出的描述中显现出来,这些附图展示了本发明的完全非限制性的示例性实施例。在附图中:
[0117]
[图1]已经描述的图1在其环境中表示现有技术的通信系统,其中在仅ipv6网络与仅ipv4网络之间实施nat64功能;
[0118]
[图2]图2在其环境中表示了根据本发明的通信系统,在具体实施例中,该系统包括符合本发明的客户端装置和dns服务器;
[0119]
[图3]图3示意性地展示了在具体实施例中图2的客户端装置的硬件架构;
[0120]
[图4]图4示意性地展示了在具体实施例中图2的dns服务器的硬件架构;
[0121]
[图5]图5以流程图的形式表示如在具体实施例中由图2的客户端装置实施的根据本发明的获得方法的主要步骤;
[0122]
[图6]图6表示根据本发明由图2的客户端装置在其dns请求中插入的信息的第一可能格式;
[0123]
[图7]图7表示根据本发明由图2的客户端装置在其dns请求中插入的信息的第二可能格式;
[0124]
[图8]图8以流程图的形式表示如在具体实施例中由图2的dns服务器实施的根据本发明的处理方法的主要步骤;
[0125]
[图9]图9展示了使用网络资源的ipv6地址(该地址由dns服务器返回并且不与为其生成该ipv6地址的网络连接接口相对应)对客户端装置与网络资源之间的通信体验质量的影响;以及
[0126]
[图10]图10展示了使用网络资源的ipv6地址(该地址由dns服务器返回并且不与为其生成该ipv6地址的网络连接接口相对应)对客户端装置与网络资源之间的通信体验质量的影响的另一个示例。
具体实施方式
[0127]
图2在其环境中表示在具体实施例中的符合本发明的通信系统1。
[0128]
通信系统1包括符合本发明的至少一个客户端装置t。在此处设想的示例中,客户端装置t是用户的终端,例如智能电话、数字平板计算机、便携式计算机等。注意,客户端装置t的性质没有限制。作为变体,该客户端装置可以是连接到局域网的路由器或cpe(“客户驻地设备”)、附接到用户设备的usb密钥或加密狗等。
[0129]
根据本发明,客户端装置t具有至少一个活动连接接口,经由该接口,该客户端装置连接到为其提供ip连接服务的至少一个网络(为了简单起见,在下文中称为“ip网络”)。在图2的示例中,客户端装置t具有两个活动连接接口i1和i2,经由这两个接口,该客户端装置分别连接到ip网络nw1和ip网络nw2。网络nw1和nw2两者向客户端装置t提供ip服务,具体地允许客户端装置t连接到公共互联网网络的ip连接。对由网络nw1和nw2向客户端装置提供的ip服务的性质(ip连接、ip语音服务等)或网络nw1和nw2的性质没有限制。这些网络可以是符合3gpp标准(版本15、16和后续版本)、wlan(无线本地接入网)等任何一个版本的固
定或移动网络,例如3g、4g或5g网络。
[0130]
如先前提及的,本发明使得可以简化ip网络的迁移,针对该迁移,这些网络支持根据ipv6协议建立的通信。为了简化起见,在此假设网络nw1和nw2仅向客户端装置t提供ipv6连接。换句话说,网络nw1和nw2在此被假设为仅ipv6。作为变体,可以设想网络nw1和nw2的另一种配置,例如双栈ipv4-ipv6配置。此外,为了简化起见,还假设客户端装置t是仅ipv6的,换句话说,该客户端装置仅具有ipv6连接,而不具有ipv4连接。
[0131]
在图2的示例中,网络nw1和nw2各自托管一个dns服务器,使得可以解析域名,该服务器分别为针对网络nw1引用dns#11并且针对网络nw2引用dns#21,并且该服务器符合本发明。这些dns服务器在下文的描述中被定性为“名义上的”,因为它们是由网络nw1和nw2提供的dns服务器,并且这些网络的运营商已经用这些dns服务器初始地配置了客户端装置t,以允许该客户端装置经由这些运营商的网络访问网络资源s,例如远程服务器。客户端装置希望访问的网络资源(服务器、终端、应用程序等)的性质没有限制。在此假设远程服务器s经由ip网络nw3连接到互联网网络。ip网络nw3可以是仅ipv6、仅ipv4或双栈ipv4-ipv6。
[0132]
该配置是由网络nw1和nw2的运营商例如在客户端装置t附接到网络nw1和nw2时或者在先前步骤中(例如在“工厂”配置的背景下)建立的。如本身已知的,该配置可以由网络nw1和nw2的运营商通过使用用于3gpp网络的pco(协议配置选项)协议或者用于固定网络的dhcpv6(用于ipv6的动态主机配置协议)协议的选项来执行。
[0133]
在该配置期间,网络nw1的运营商(依次地网络nw2的运营商)向客户端装置t提供关于名义上的dns服务器dns#11(依次地名义上的dns服务器dns#21)的可访问性的信息(也就是说,允许访问服务器dns#11的信息)。这样的可访问性信息可以是名义上的dns服务器的ip地址。这种配置的结果是,当客户端装置t希望经由网络nw1(依次地nw2)访问网络资源(例如服务器s)时,该客户端装置使用其连接接口i1(依次地i2)通过使用传送到名义上的dns服务器dns#11(依次地dns#21)的可访问性信息来访问该名义上的dns服务器而将dns请求发送到该服务器。客户端装置因此联系dns服务器,以便获得允许该客户端装置访问该网络资源的ip请求。
[0134]
下面的表1通过说明的方式提供了来自dns配置的摘录,该摘录反映了客户端装置(如客户端装置t)通过使用pco协议从3gpp网络接收的信息。
[0135]
[表1]
[0136]
[0137]
表1中报告的由3gpp网络供应的信息向客户端装置t指示网络仅支持ipv6连接(esm原因51“仅允许pdn类型ipv6”),并且由ipv6地址为“2001:db8::1”的网络提供dns服务器。
[0138]
客户端装置t检索与其每个活动连接接口(在这种特定情况下,该客户端装置到网络nw1的连接接口i1和其到网络nw2的连接接口i2)相关联的名义上的dns配置信息(换句话说,对于该客户端装置经由连接接口连接到的每个ip网络)。该客户端装置将检索到的信息存储在称为config-dns的本地配置文件中。注意,可以为到不同ip网络的连接接口定义同一个名义上的dns服务器。
[0139]
在此处描述的实施例中,每个名义上的dns服务器(即由ip网络的运营商为其用户选择的服务器)在本地配置文件config-dns中与在此称为nominal-resolver的参数相关联,并且设置为1以指示它是名义上的dns服务器。每个名义上的dns服务器还与在此称为network-id的参数相关联,该参数允许该名义上的dns服务器明确地链接到ip网络,经由该ip网络配置所述dns服务器,或者等效地,链接到客户端装置t用来访问ip网络的连接接口。network-id参数的结构对于每个客户端装置都是本地的。例如,network-id参数可以用连接接口的标识符来设置,该连接接口用于连接到支持名义上的dns服务器(并且在此处托管该名义上的dns服务器)的ip网络,或者用支持名义上的dns服务器的ip网络的标识符来设置。在此处考虑的示例中,作为说明,对于服务器dns#11,network-id参数被设置在nw1,并且对于服务器dns#21,network-id参数被设置在nw2。
[0140]
注意,保存在本地配置文件config-dns中的名义上的dns服务器的列表可以经历由客户端装置t连接到的ip网络发起的修改,并且根据从这些ip网络接收的指令进行更新。尤其是当客户端装置t连接到的ip网络之一希望客户端装置t为了解析其dns请求而使用新的名义上的dns服务器(例如,对于ip网络nw1,为服务器dns#12而不是服务器dns#11)时,或者在客户端装置t在几个ip网络之间漫游(“切换”)时,情况更是如此。在这种情况下,在本地配置文件config-dns中,客户端装置t用其运营商供应的新的名义上的服务器替换现在过时的名义上的dns服务器。
[0141]
在此处考虑的示例中,通信系统1进一步包括替代性dns服务器,引用为dns#2,该替代性dns服务器符合本发明(也更通常地被称为公共dns服务器)并且位于公共互联网网络中。假设该替代性dns服务器可以独立于由客户端装置t选择的用于路由其dns请求的连接接口来使用。替代性dns服务器在此被理解为不是由网络nw1和nw2托管,而是由第三方网络托管。这种dns服务器随后被定性为是公共的。谷歌公共dns、cloudflare以及甚至quad9服务器都是这种公共dns服务器的示例。
[0142]
在此假设客户端装置t设置有应用程序模块,该应用程序模块允许其用户手动地或经由信任应用程序来配置一个(或几个)如上所描述的替代性dns服务器的使用,而不是由客户端装置t连接到的网络的运营商向该客户端装置提供的名义上的dns服务器的使用。在考虑的示例中,客户端装置t因此被配置有替代性公共dns服务器dns#2;在此假设服务器dns#2可以被使用,而不管客户端装置t使用的连接接口如何(即其到网络nw1的连接接口i1或者其到网络nw2的连接接口i2),并且客户端装置t被配置成使用该替代性dns服务器dns#2而不是服务器dns#11和dns#21。换句话说,客户端装置t经由应用程序模块被配置成当该客户端装置希望通过使用其连接接口i1或其连接接口i2来访问网络资源(例如服务器s)
时,现在将其dns请求寻址到公共dns服务器dns#2。
[0143]
作为变体,可以为客户端装置t的每个活动连接接口使用不同的替代性dns服务器。
[0144]
至于名义上的dns服务器,具有替代性服务器dns#2的客户端装置t的配置尤其包括在客户端装置t上存储关于替代性dns服务器dns#2(例如其ip地址)的可访问性信息。该配置在此存储在客户端装置t的本地配置文件config-dns中。在此处描述的实施例中,尽管替代性dns服务器旨在用于代替名义上的dns服务器dns#11和dns#21,但是名义上的dns服务器的可访问性信息被保存在配置文件中。
[0145]
在配置文件config-dns中,为了将由客户端装置t用来解析其dns请求的替代性dns服务器dns#2与最初由网络nw1和nw2的运营商提供的名义上的dns服务器dns#11和dns#21进行区分,替代性服务器dns#2与设置为0的参数nominal-resolver相关联。
[0146]
此外,由于服务器dns#2可以由客户端装置t独立于该客户端装置所采用的活动连接接口(即i1或i2)来使用,因此在配置文件config-dns中没有network-id参数与服务器dns#2相关联。
[0147]
作为变体,服务器dns#2可以与设置nw1和nw2处的network-id参数相关联。如果对每个活动连接接口使用不同的替代性dns服务器,则每个替代性dns服务器都有与之相关联的network-id参数,该参数标识客户端装置t用来访问该替代性dns服务器的连接接口。
[0148]
下面的表2展示了来自配置文件config-dns的摘录。
[0149]
[表2]
[0150]
dns#11nominal-resolver=1network-id=nw1dns#21nominal-resolver=1network-id=nw2dns#2nominal-resolver=0 [0151]
注意,当客户端装置t是单接口时,也可以省略network-id参数,也就是说该客户端装置具有单个活动连接接口并且仅连接到一个ip网络。在这种情况下,名义上的dns服务器(即,与参数nominal-resolver=1相关联的dns服务器)缺少network-id参数表明该服务器是由与该单个连接接口相关联的网络运营商提供或托管的名义上的dns服务器。
[0152]
作为变体,可以使用不同的文件一方面存储由运营商提供的名义上的dns服务器,另一方面存储替代性dns服务器。
[0153]
此外,在此处描述的实施例中,客户端装置t仅使用配置文件config-dns的与设置为0的nominal-resolver参数相关联的服务器来解析其dns请求。与设置为1的nominal-resolver参数相关联的其他服务器在此用于发现实施nat64功能的ip网络nw1和nw2,以及在适当的情况下该功能使用的一个或多个ipv6前缀。注意,如果没有替代性dns服务器与连接接口相关联,则客户端装置t被配置成默认使用由与该连接接口相关联的网络的运营商提供的名义上的dns服务器。
[0154]
在此处描述的实施例中,客户端装置t具有计算机的硬件架构,如图3中示意性展示的。该客户端装置特别地包括处理器2、随机存取存储器3、只读存储器4、非易失性闪速存储器5和通信装置6,在该非易失性闪速存储器中存储有例如本地配置文件config-dns,该通信装置具体地包括连接接口i1和i2以及ipv6协议栈。
[0155]
只读存储器4是符合本发明的存储介质,该存储介质可以由客户端装置t的处理器
2读取,并且其上存储有根据本发明的计算机程序prog1,该程序包括用于实施根据本发明的获得方法的指令。换句话说,计算机程序prog1定义了客户端装置t的不同功能模块,这些功能模块允许该客户端装置实施根据本发明的获得方法。在此处描述的实施例中,这些模块包括(参见图2):插入模块m1,根据本发明,该插入模块被配置成将特定选项插入到客户端装置t向用来配置该客户端装置的dns服务器寻址的dns请求中,该选项在此被称为prefix64,并且在随后进行描述;发送模块m2,该发送模块被配置成将这些dns请求发送到相关的dns服务器;以及模块m3,该模块被配置成确定与其具有活动连接接口的ip网络是否实施用于将ipv4分组转换成ipv6分组的nat64功能,并且反之亦然。在下文的描述中,为了简化起见,这种功能将由用于将ipv4分组转换成ipv6分组的功能来指定,即使该功能也能够将ipv6分组转换成ipv4分组。分组的转换需要用于将ipv4地址转换成ipv6地址的功能。
[0156]
模块m1、m2和m3的功能将在后面参考根据本发明的获得方法的步骤进行更详细的描述。
[0157]
在此处描述的实施例中,符合本发明的服务器dns#11、dns#21、dns#2也具有计算机的硬件架构,如图4中示意性展示的。每个dns服务器包括处理器7、随机存取存储器8、只读存储器9、非易失性闪速存储器10和通信装置11,在该通信装置中托管了根据ip网络的一个或多个连接接口。
[0158]
只读存储器9是符合本发明的存储介质,该存储介质可以由服务器的处理器7读取,并且其上存储有根据本发明的计算机程序prog2,该程序包括用于实施根据本发明的处理方法的指令。换句话说,计算机程序prog2定义了dns服务器的不同功能模块,这些模块允许该计算机程序实施根据本发明的处理方法,并且更具体地,在此处描述的实施例中(参见图2)为:接收模块m4,该接收模块能够接收源自符合本发明的客户端装置的dns请求;检测模块m5,该检测模块被配置成检测其接收的dns请求是否包含特定选项prefix64;解析模块m6,该解析模块用于解析其接收的dns请求;以及发送模块m7,该发送模块被配置成产生并且向调用该发送模块的客户端装置发送对其dns请求的响应,这些响应在适当的情况下考虑由prefix64选项传送的指示。
[0159]
模块m4、m5、m6和m7的功能将在后面参考根据本发明的处理方法的步骤进行更详细的描述。
[0160]
现在参考图5到图10描述在特定实施例中分别由客户端装置t和替代性公共dns服务器dns#2实施的获得方法和处理方法的主要步骤。
[0161]
如先前提及的,本发明的特别优势在于其允许仅ipv6客户端装置(例如客户端装置t)寻求访问网络资源(例如服务器s),而无需事先知道该网络资源受益于的连接(仅ipv4、仅ipv6或ipv4/ipv6),并且不管该连接如何,都可以通过询问dns服务器来获得该网络资源的ip地址,用该服务器借助于单个dns请求来配置该网络资源,该请求针对网络资源请求aaaa类型的记录,换句话说,借助于用于获得ipv6地址以便在本发明的含义内访问该网络资源的请求。根据本发明,基于客户端装置的期望(这些期望可以来自例如偏好或客户端装置的配置),当网络资源具有ipv4连接时,该aaaa类型的单个请求允许其凭借其所包含的信息来获得伪ipv6地址或ipv4地址。因此避免了通信系统1的dns服务器的过载,因为客户端装置t仅传输单一类型的dns请求。此外,非常有利的是,本发明使得可以管理几个ip网络配置,并且适用于这些网络是否实施dns64类型的功能。当地址转换功能在客户端装置t
上可用(例如clat功能)时,这也是合适的。
[0162]
参考图5,在此处描述的实施例中,客户端装置t最初经由其模块m3确定其连接到的并且可能用来访问网络资源的ip网络(在所考虑的示例中是nw1和nw2)是否实施了用于将ipv4地址转换成ipv6地址的nat64功能(步骤e10)。该客户端装置继续对与其具有活动连接接口的每个ip网络进行该确定。在此,集中关注nat64功能,该功能被配置成如先前讨论的通过使用nsp前缀或wkp前缀将ipv4地址转换成“ipv4嵌入的ipv6”地址(并且反之亦然)。应当注意,在此处考虑的示例中,没有特别关注“ipv4转换的ipv6”类型的地址,该地址是应用于表示ipv6世界中的ipv4网络资源的地址的“ipv4嵌入的ipv6”地址的特定变体。
[0163]
为此,客户端装置t可以以不同方式继续进行。
[0164]
因此,根据第一变体实施例,客户端装置t可以检测到其连接到的ip网络实施(或激活)nat64功能,因为客户端装置t先前由ip网络的运营商配置有由这种nat64功能使用的各种元素,如通常由nat64功能使用的nat64前缀(即nsp或wkp类型的ipv6前缀)。客户端装置t的这种配置可以由ip网络的运营商通过使用例如专用dhcpv6选项或如2007年9月名称为“neighbor discovery for ip version 6[ip版本6的邻居发现]”的ietf文档rfc 4861中描述的ra(路由器广告)选项,或者甚至是pco协议的对象,经由一个或多个nat64前缀的ip网络的显式广告来完成。在接收到这种广告时,客户端装置t将nat64前缀存储在配置文件config-dns中,该配置文件与对应的ip网络(即对应于该网络通过其接收广告的连接接口)相关联,例如,以包括network-id参数和称为prefix64的参数的配对的形式。
[0165]
注意,多个nat64前缀可以在同一个ip网络中使用。此外,几个不同的ip网络可以使用同一个nat64前缀。其结果是,客户端装置t可以维护一个或多个{network-id,prefix64}对,列出该客户端装置连接到的ip网络所使用的nat64前缀(如果必要的话)。
[0166]
根据第二变体实施例,客户端装置t通过调用存储在配置文件config-dns中的名义上的dns服务器(即,在nominal-resolver参数设置为1的文件中相关联的dns服务器),自动发现在与其具有活动连接接口的ip网络中存在nat64功能。
[0167]
更具体地,在该第二变体中,客户端装置t发送请求dns以获得与已知仅具有ipv4连接的给定网络资源(在下文中称为“测试”网络资源)的aaaa类型记录(在此也更简单地称为aaaa类型的dns请求)相对应的ip地址。例如,该“测试”网络资源是已知仅ipv4的服务器。作为说明,与域名“myserver.example”相对应的“测试”服务器在此被视为网络资源,该域名的ip地址为ipv4地址“192.0.2.33”。
[0168]
该aaaa类型的dns请求构成用于在本发明的含义内获得“测试”网络资源的ipv6地址的请求。这种dns请求由客户端装置t通过使用ipv6发送到每个名义上的dns服务器dns#11和dns#21。
[0169]
如果响应于该aaaa类型的dns请求,客户端装置t从名义上的dns服务器接收包括“测试”服务器的ipv6地址的肯定响应,这意味着在该名义上的dns服务器上激活dns64功能,并且因此托管该名义上的dns服务器的ip网络实施nat64功能。此外,包含在由客户端装置t接收的响应中的ipv6地址已经由名义上的dns服务器针对仅ipv4测试服务器从其ipv4地址以及从根据其配置名义上的dns服务器的nat64前缀形成,该前缀如先前所强调的与由ip网络实施的nat64功能使用的nat64前缀一致。客户端装置t因此可以从该ipv6地址中提取相关的nat64前缀;例如,为此,该客户端装置使用了文档rfc 6052的2.3节中规定的算
法。
[0170]
因此,作为说明,如果名义上的dns服务器dns#11返回包括针对“测试”服务器“myserver.example”的ipv6地址“2001:db8:122:3c0:0:221::/128”的肯定响应,已知与“测试”服务器相关联的ipv4地址和在文档rfc 6052中描述的算法,则客户端装置t提取对应的nat64前缀:“2001:db8:122:300::/56”。客户端装置t然后为ip网络nw1保存该前缀,例如以配对{network-id=nw1,prefix64=2001:db8:122:300::/56}的形式。
[0171]
客户端装置t也可以代替在该阶段继续提取nat64前缀,直接将服务器dns#11返回的ipv6地址保存在prefix64参数中并且存储配对{network-id=nw1,prefix64=2001:db8:122:3c0:0:221::/128}。
[0172]
根据第三变体实施例,客户端装置t使用pcp协议,并且尤其是在文档rfc 7225中描述的机制来发现在该客户端装置与其具有活动连接接口的ip网络中存在nat64功能。该机制允许客户端装置t检索与该客户端装置在实施机制时使用的连接接口相关联的nat64前缀的列表。如果在这种实施方式中,该客户端装置检索至少一个nat64前缀,则这意味着与所使用的连接接口相对应的ip网络实施nat64功能。
[0173]
在步骤e10中实施的用于发现在ip网络中存在nat64功能的过程也可以递归地执行。这种递归执行在客户端装置t经由中间设备连接到ip网络(例如,cpe)时特别有益。在这种情况下,cpe通过实施先前提及的技术之一来执行发现过程,然后将在该过程中发现的nat64前缀传送给客户端装置t。为此,如先前提及的,cpe可以特别使用ra类型的广告消息。
[0174]
如果在步骤e10中,客户端装置t检测到其连接的ip网络之一中的nat64功能被激活,则该客户端装置在配置文件config-dns中将设置为1的称为nat64_enabled的参数与该ip网络相关联。因此,在配置文件config-dns中,对于在步骤e10中已经发现至少一个nat64前缀的仅ipv6网络,nat64_enabled参数被设置为“1”。另一方面,对于ipv4/ipv6“双栈”网络的仅ipv4网络和不具有nat64功能的仅ipv6网络,nat64_enabled参数被设置为“0”。
[0175]
注意,在此处描述的实施例中,客户端装置t再次执行用于检测存在nat64功能的过程,该过程已经在每次其检测到由网络运营商提供的网络配置的改变时被描述,并且该过程可能会对dns服务产生影响。如先前提及的,当客户端装置t处于漫游状态时,网络配置的改变可以显著地发生。这可以导致网络实施的nat64功能所使用的一个或多个nat64前缀的更新(如果必要的话),或者通过根据相关网络是否实施nat64功能来维持或另一方面改变nat64_enabled参数的值,或者改变与网络相关联的名义上的dns服务器,等等。
[0176]
现在假设客户端装置t希望访问网络资源s,例如服务器s(步骤e20)。
[0177]
为此,如本身已知的,该客户端装置经由其活动连接接口之一及其发送模块m2向与该连接接口相关联的dns服务器发送用于解析rm服务器的域名的dns请求(步骤e70)。在此处考虑的说明性示例中,客户端装置t被配置成调用替代性服务器dns#2来解析其dns请求,而不管客户端装置t使用的连接接口如何。
[0178]
根据本发明,客户端装置t被配置成仅向用来配置该客户端装置的dns服务器(在此,服务器dns#2)传输类型aaaa的dns请求,不论该客户端装置希望访问的网络资源s受益于的连接(ipv4、ipv6或ipv4/ipv6)如何,换句话说,仅用于获得ipv6地址以便访问该网络资源的dns请求。表示为r-aaaa的该dns请求通常包含(根据ietf文档rfc1035中描述的)与该请求试图解析的网络资源s相关联的域名和期望的记录类型,即aaaa。
[0179]
为了特别地管理网络资源s不与类型aaaa的记录相关联的特定情况,因为该网络资源仅具有ipv4连接(并且因此仅具有一个ipv4地址),所以本发明有利地提供了在请求r-aaaa被发送到服务器dns#2之前,由客户端装置t的插入模块m1将附加的信息插入到该请求中(步骤e60)。在此处描述的实施例中,该信息被插入到为此目的引入的dns协议的扩展edns(0)的选项中,在本说明书中称为prefix64。如果请求r-aaaa针对的网络资源s具有ipv4连接,则该选项表示由客户端装置t响应于该请求而从服务器dns#2预期的ip地址类型。由客户端装置t预期的该ip地址类型可以是例如由dns服务器形成的伪ipv6地址,或者如下文详细描述的ipv4地址。
[0180]
在此处描述的实施例中,prefix64选项被定义(并且由接收包含该选项的dns请求的dns服务器这样识别)成使得在包含该选项的请求r-aaaa针对的网络资源s仅具有ipv4连接时,该选项表示在来自dns服务器的对请求r-aaaa的响应中,由客户端装置从该客户端装置用该请求询问的dns服务器预期的ip地址类型。换句话说,如果网络资源具有双ipv4和ipv6连接,则不需要检测寻址到dns服务器的dns请求中的prefix64选项的该服务器来应用该选项定义的ip地址类型。
[0181]
在另一个实施例中,可以注意定义prefix64选项(并且因此确保其由接收包含该选项的dns请求的dns服务器这样识别),使得当该客户端的请求r-aaaa针对的网络资源具有ipv4连接时,该选项表示由客户端装置从响应于该请求而询问的dns服务器预期的ip地址类型。换句话说,如果网络资源具有ipv4连接,并且即使该网络资源具有双ipv4和ipv6连接,需要被询问的dns服务器来应用由prefix64选项定义的ip地址类型。
[0182]
可能会出现各种特定情况并且影响由客户端装置t插入到dns请求的prefix64选项中的该信息的值。
[0183]
更具体地,如果客户端装置t考虑用来访问网络资源s的连接接口与设置为1的nat64-enabled参数以及与至少一个nat64前缀(对测试步骤e30响应“是”)相关联,则客户端装置t利用与连接接口相关联并且在步骤e10中确定的nat64前缀或ipv6地址的值(并且存储在由客户端装置t维护并且与相关连接接口相关联的(network-id,prefix64)配对之一中)来完成prefix64选项(步骤e40)。通过以这种方式完成请求r-aaaa的prefix64选项,客户端装置t向服务器dns#2指示如果网络资源s具有ipv4连接,并且因此与该网络资源相关联的域名的解析导致获得ipv4地址,则客户端装置t希望从服务器dns#2接收由该服务器从网络资源s的ipv4地址和在prefix64选项中完成的nat64前缀形成的ipv6地址,或者,如果该选项包含ipv6地址,则该客户端装置希望例如通过使用先前提及的文档rfc 6052中描述的算法从该ipv6地址提取的nat64前缀。
[0184]
相反(对测试步骤e30响应“否”),如果客户端装置t考虑用来访问网络资源s的连接接口与设置为0的nat64-enabled参数相关联,则客户端装置t在请求r-aaaa的prefix64选项中设置预定义值,即,在此为零值“::ffff:0:0”(步骤e50)。该零值向服务器dns#2指示响应于请求r-aaaa而预期的ip地址是ipv4地址,在这种情况下是资源s的ipv4地址。给出的零值的示例纯粹是为了说明的目的而提供的:作为变体,可以设想另一个预定义值,以向服务器dns#2指示当该预定义值被服务器dns#2识别为具有该含义时,响应于请求r-aaaa而预期资源s的ipv4地址。
[0185]
注意,有利的是,如果尽管客户端装置t已经确定其考虑使用的连接接口允许访问
实施nat64功能的网络,但是该客户端装置希望自己从资源s的ipv4地址形成ipv6地址(例如为此目的配备了先前描述的clat功能),并且不想调用服务器dns#2来形成该地址,或者如果该客户端装置被通知服务器dns#2没有实施dns64功能,则该客户端装置也可以将零值(或者更一般地,预定义值)插入到prefix64选项中。
[0186]
图6展示了可以设想用于由客户端装置插入到请求r-aaaa中的prefix64选项的第一格式。
[0187]
该格式包括三个字段:
[0188]
‑“
选项代码”字段,该字段包括标识prefix64选项的代码;
[0189]
‑“
选项长度”字段,该字段以八位字节为单位指示包含在prefix64选项中的数据大小。在此处描述的实施例中,等于16的数据大小具有特定的含义:这意味着prefix64字段包含ipv6地址并且不包含nat64前缀;以及
[0190]-prefix64字段,该字段包含表示由客户端装置预期的ip地址类型的信息。在此处描述的实施例中,prefix64字段可以包含nat64前缀、ipv6地址或零值(即值“::ffff:0:0”)。
[0191]
图7表示了可以设想用于prefix64选项并且使得可以包括一个或多个nat64前缀(或从中提取nat64前缀的ip地址)的第二格式。每个前缀的大小由“前缀长度”字段控制;如果该字段被设置为16,则意味着相关联的prefix64字段包含ipv6地址并且不包含前缀。“选项长度”字段与prefix64选项中供应的不同前缀的长度之和相对应。
[0192]
显然,格式的这些示例纯粹是为了说明而给出的,并且其他信息可以包括在prefix64选项中。
[0193]
注意,当prefix64字段的值包括使得可以提取这种nat64前缀的nat64前缀或ipv6地址时,该值应该是与客户端装置t考虑用来访问网络资源s(即,向其发送和/或从该网络资源接收数据)的连接接口相关联的ip网络在适当的情况下使用的nat64前缀。如果客户端装置t考虑使用其所有活动连接接口,并且在步骤e10中已经为这些不同的连接接口发现了不同的nat64前缀,则客户端装置t在请求r-aaaa中包括几个prefix64选项,其中每个选项包含nat64前缀,例如通过使用图7中提出的选项格式。在变体实施例中,客户端装置t可以向服务器dns#2发送几个dns请求,每个请求包含标识不同nat64前缀的prefix64选项。
[0194]
还要注意,具有几个活动连接接口的客户端装置t,换句话说,多接口客户端装置,可以选择其活动连接接口中的任一个来发送传达prefix64选项的aaaa请求。例如,终端可以经由支持与请求aaaa中包括的一个或多个nat64前缀相关联的nat64服务的相同网络或经由不同网络来发送请求aaaa。
[0195]
在已经将prefix64选项插入到dns请求r-aaaa中之后,客户端装置t经由其活动连接接口之一将请求r-aaaa发送到服务器dns#2(步骤e70)。
[0196]
在另一个实施例中,当网络资源具有至少一个ipv4连接时,prefix64选项被定义为通常表示由客户端装置响应于其请求r-aaaa而从dns服务器预期的ip地址类型,并且除了prefix64选项之外并且在将其发送到服务器dns#2之前,客户端装置t在其dns请求r-aaaa中插入旨在向服务器dns#2指示的附加指令,当prefix64选项包含ipv6前缀或包括这种前缀的ipv6地址时,仅当网络资源仅具有ipv4连接时,或者如果网络资源具有ipv4连接而与它具有或不具有ipv6连接的事实无关时,该网络资源是否必须根据ipv6格式从该前缀
和从资源的ipv4地址生成地址。该指令可以包含在dns请求r-aaaa的可选参数中(例如,在图6和图7中以说明的方式表示的prefix64选项的字段中,其可以称为“方案id”),旨在向dns服务器传达与该方法相关的指示,该方法是dns服务器必须应用以从其被询问的网络资源的ipv4地址形成“伪”ipv6地址。如果“方案id”用于指定该可选参数,例如,可以为该参数定义以下值:
[0197]-值0指示仅当网络资源仅具有ipv4连接时,dns服务器才必须生成伪ipv6地址;以及
[0198]-值1指示在网络资源具有ipv4连接时,dns服务器才必须生成伪ipv6地址,即使该网络资源也具有ipv6连接。
[0199]
注意,可以为方案id参数定义其他值,以向dns服务器传输与用于形成伪ipv6地址的方法有关的其他类型的指令。作为说明:
[0200]-值2可以指示dns服务器必须使用以根据文档rfc 6052的2.3节中定义的算法从ipv4地址形成伪ipv6地址;
[0201]-值3可以指示dns服务器必须使用wkp前缀从ipv4地址形成伪ipv6地址;
[0202]-值4可以指示dns服务器必须使用保证传输层的伪报头的“校验和”(完整性检查机制)的中立性的后缀;并且
[0203]-值5可以指示dns服务器必须在附加部分中返回与目标资源相关联的ipv4地址。
[0204]
这些示例是以说明的方式给出的,并且可以设想客户端装置经由“方案id”参数的其他值向dns服务器传输其他指令。作为变体,其他指令可以由客户端装置经由其他介质传输到dns服务器,例如请求r-aaaa的其他参数。
[0205]
现在参考图8描述由客户端装置t传输的类型aaaa的dns请求、并且特别是请求r-aaaa如何由服务器dns#2或更一般地由符合本发明的dns服务器处理。
[0206]
在经由服务器dns#22的接收模块m4接收到类型aaaa的dns请求时(步骤f10),该服务器通过其检测模块m5检查该请求是否包含prefix64选项(测试步骤f20)。
[0207]
如果检测模块m5没有检测到prefix64选项(对测试步骤f20响应“否”),则该服务器以常规方式处理和解析类型aaaa的dns请求,如现有技术中那样(步骤f30)。例如,在1987年11月名称分别为“domain names-concept and facilities[域名-概念和设施]”和“domain names-implementation and specification[域名-实施和规范]”的ietf文档rfc 1034和rfc 1035中描述了被实施用于该解析的机制。
[0208]
更具体地,服务器dns#22通过其模块m6确定网络资源s的ipv6地址。以下将该ip地址表示为@ip(s)。
[0209]
如果服务器dns#2是资源s的权威dns服务器,并且如果资源s具有ipv6连接,则服务器dns#2在本地具有资源s的ipv6地址,并且通过向客户端装置t传输该ipv6地址来对该客户端装置做出肯定响应。如果该服务器不是资源s的权威dns服务器而是递归dns服务器,则服务器dns#2向权威dns服务器(或另一个递归dns服务器)传输旨在获得资源s的ipv6地址的类型aaaa的dns请求。如果资源s具有ipv6连接,则向服务器dns#2返回包含资源s的ipv6地址的肯定响应。然后,服务器dns#2通过在其对请求r-aaaa的响应中向客户端装置t传输该ipv6地址来对该客户端装置做出肯定响应。否则,向服务器dns#2返回否定响应,该服务器进而又对从客户端装置t接收到的dns请求aaaa做出否定响应。
[0210]
在此处考虑的示例中,在步骤f10中,服务器dns#2接收关于网络资源s的请求r-aaaa,并且如果网络资源s具有ipv4连接(并且在此处描述的实施例中仅具有这种连接),则客户端装置t已经将表示其响应于其dns请求而预期的ip地址类型的prefix64选项插入到该请求中。在步骤f20中,检测模块m5检测到存在由客户端装置t插入到请求r-aaaa中的prefix64选项(对测试步骤f20响应“是”)。
[0211]
该检测模块提取由客户端装置t在检测到的选项的prefix64字段中输入的值(步骤f40)。
[0212]
然后该客户端装置通过其获得模块m6确定网络资源s的ip地址@ip(s)(步骤f50)。如先前针对步骤f30所描述的,如果服务器dns#2是资源s的权威服务器,则其在本地具有其一个或多个ip地址,无论这些地址是ipv4地址还是ipv6地址或这两种类型的地址。否则,该服务器通过查询资源s的权威服务器dns递归地获得资源s的ip地址。
[0213]
更具体地,该服务器向权威dns服务器(直接或通过中间递归dns服务器)传输旨在获得资源s的ipv6地址的类型aaaa的dns请求。如果资源s具有ipv6连接,则权威dns服务器向服务器dns#2返回肯定响应,该肯定响应包含表示为@ipv6(s)的资源s的ipv6地址。
[0214]
否则,向服务器dns#2返回否定响应。在这种情况下,在此处描述的实施例中,服务器dns#2向权威dns服务器(或另一个中间递归dns服务器)传输旨在获得资源s的ipv4地址的类型a的dns请求。然后该服务器从权威dns服务器接收肯定响应,该肯定响应包含表示为@ipv4(s)的资源s的ipv4地址。
[0215]
注意,作为变体,服务器dns#2可以同时向权威dns服务器传输类型a和类型aaaa两者的dns请求,以特别地预测网络资源s不支持ipv6连接。仅当对类型aaaa的请求的响应是否定的时,服务器dns#2才会使用对类型a的请求的响应。
[0216]
在又一个变体中,如果prefix64选项被定义成使得其被考虑,包括当网络资源s具有双连接时,或者当dns请求r-aaaa包括这方面的指令时(例如,如先前提及的方案id参数,设置为1),服务器dns#2可以同时或顺序地向权威dns服务器传输类型a和aaaa两者的dns请求,以确定资源s是否具有双ipv4和ipv6连接。
[0217]
如果由服务器dns#2如此确定的地址@ip(s)是符合ipv6协议的地址@ipv6(s)(对测试步骤f60响应“是”),则服务器dns#2通过向客户端装置t发送地址@ipv6(s)来对来自该客户端装置的请求r-aaaa做出肯定的响应(步骤f70)。换句话说,地址@ipv6(s)在对请求r-aaaa的响应中被发送到客户端装置t,该响应根据先前引用的文档rfc 3596的2.3节中描述的过程携带有类型aaaa。
[0218]
否则,这意味着网络资源s仅具有ipv4连接,而不具有ipv6连接。
[0219]
然后,服务器dns#2检查由客户端装置t从插入到请求r-aaaa中的prefix64选项中提取的值(步骤f80)。
[0220]
如果提取的值等于“::ffff:0:0”(换句话说,等于定义零值的前缀)(步骤f80的输出处的分支(1)),这意味着客户端装置t希望根据ipv4协议接收网络资源s的地址@ipv4(s)(即根据ipv4格式并且例如没有嵌入到ipv6地址中),以例如通过使用如先前所描述的clat功能从该ipv4地址开始自行形成ipv6地址。
[0221]
然后,服务器dns#2通过经由其发送模块m7向客户端装置t发送网络资源s的地址@ipv4(s)来响应来自该客户端装置的请求r-aaaa(步骤f90)。换句话说,地址@ipv4(s)在对
请求r-aaaa的dns响应中被发送到客户端装置t,该响应携带有如先前引用的文档rfc3596中描述的类型aaaa。地址@ipv4(s)可以包括在dns响应中,在dns响应的附加部分(“附加部分”,尤其是在文档rfc 1034的3.7节中描述的)中(该地址随后按照其原始ipv4格式进行编码)或包括在响应的正文中。注意,如果响应的正文被选择为将地址@ipv4(s)传输到客户端装置t,则地址@ipv4(s)以ipv6地址的形式被编码,该ipv6地址例如通过使用已知前缀“::ffff:0:0/96”(也称为“ipv4映射的”ipv6地址并且在文档rfc 4291中进行了描述)来构造。作为变体,可以设想其他格式来对地址@ipv4(s)进行编码。
[0222]
应当注意,如果客户端装置t希望在网络资源s受益于ipv4连接时获得该网络资源的ipv4地址,则该客户端装置在其dns请求中传输设置有已知前缀“::ffff:0:0/96”的prefix64选项和设置有零值的prefix64选项是等同的。
[0223]
因此,作为说明,如果地址@ipv4(s)=“198.51.100.1”和插入到dns请求r-aaaa中的prefix64选项具有零值“::ffff:0:0”,则服务器dns#2可以向客户端装置t发送对其dns请求的响应,该dns响应在响应的正文中包含地址@ip(s)=“::ffff:0:0:198.51.100.1”,该地址包含地址@ipv4(s)。
[0224]
如果从prefix 64选项中提取的值包含非零ipv6地址(步骤f80的输出处的分支(2)),则服务器dns#2执行文档rfc 6052中描述的算法,以提取形成该ipv6地址的nat64前缀(步骤f100)。然后,该服务器使用适当提取的nat64前缀来从其地址@ipv4(s)形成网络资源s的ipv6地址(步骤f110)。然后该服务器通过经由其发送模块m7向客户端装置t发送为网络资源s如此形成的地址@ipv6(s)来响应来自该客户端装置的请求r-aaaa(步骤f120)。注意,对dns请求aaaa的常规dns响应可用于该目的。
[0225]
如果从prefix 64选项中提取的值包含nat64前缀(步骤f80输出处的分支(3)),则服务器dns#2直接执行步骤f110和f120,而不实施步骤f100。
[0226]
服务器dns#2通过考虑在适当的情况下由客户端装置t传输的指令,从该服务器的地址@ipv4(s)形成网络资源s的地址@ipv6,该指令涉及用于形成必须应用的ipv6地址的方法。如先前所解释的,这种指令可以经由为该目的定义的参数(如先前描述的方案id参数)在dns请求r-aaaa中传输。如果客户端装置t在dns请求中没有定义指令,则服务器dns#2可以应用用于形成默认配置的ipv6地址的方法(例如执行文档rfc 6052中定义的算法,并且仅在aaaa记录不存在的情况这样做)。
[0227]
如果考虑当资源s至少具有ipv4连接时服务器dns#2被配置成应用包含在prefix64选项中的ip地址类型的实施例,则在网络资源s具有双ipv4和ipv6连接时,从服务器dns#2到客户端装置t的响应还可以包含几个ip地址。应当记得,服务器dns#2的配置可以从prefix64选项的定义产生,或者从来自客户端装置t的如先前提及的插入到dns请求r-aaaa中(例如在方案id参数中)的指令产生。然后由服务器dns#2获得的多个ip地址(该服务器然后包括资源的至少一个ipv4地址和一个ipv6地址)可以全部插入到响应的正文中(根据ipv6格式,包括从ipv4地址构造的伪ipv6地址),或者全部插入到dns响应的附加部分中(这种ipv4地址然后可以根据ipv4格式进行编码),或者插入到响应的正文中根据ipv6格式编码的地址中,并且对于其他地址,插入到dns响应的附加部分中。
[0228]
注意,根据客户端装置t用来访问网络资源s的连接接口,由服务器dns#2响应于其请求aaaa而返回给客户端装置t的ip地址(或多个ip地址)可能不同。因此,向服务器dns#2
传输类型aaaa的dns请求的两个客户端装置t1和t2将从服务器dns#2接收以下各项,这些请求针对仅具有ipv4连接的网络资源“myt3.name.example”(@ipv4(s)=“198.51.100.1”)并且各自包括分别设置为针对t1的“2001:db8:1234::/96”和针对t2的“64:ff9b::/96”的prefix64选项:
[0229]-对于客户端装置t1:包括ipv6地址“2001:db8:1234::198.51.100.1”的dns响应;并且
[0230]-对于客户端装置t2:包括ipv6地址“64:ff9b::198.51.100.1”的dns响应。
[0231]
因此,由服务器dns#2返回给客户端装置t1和t2的用于同一个网络资源的ipv6地址不一定相同。从这些ipv6地址,客户端装置t1和t2可以建立与网络资源s的通信,这些通信中的每一个都通过每个客户端装置连接到的ip网络的nat64功能进行传输,即通过针对t1配置有前缀“2001:db8:1234::/96”的nat64功能,以及通过针对t2配置有前缀“64:ff9b::/96”的nat64功能。
[0232]
再次参考图5,在接收到来自服务器dns#2的对客户端装置t的请求r-aaaa的dns响应时(步骤e70),该客户端装置提取针对网络资源s的在响应中供应的ip地址@ip(s),以便使用该地址来访问资源s(步骤e80)。
[0233]
如果客户端装置t已经在其请求r-aaaa中包括prefix64选项中的零或预定义值,则该客户端装置使用由服务器dns#2返回的地址@ip(s)来基于该网络资源先前配置的本地nat64前缀,在本地构造网络资源s的“ipv4转换的ipv6”类型的伪ipv6地址。该nat64前缀是客户端装置t在步骤e10中为其考虑用来访问资源s的ip网络发现的。然后,客户端装置t使用其在本地构造的伪ipv6地址作为发送到网络资源s的分组的目的地地址。
[0234]
否则,客户端装置t使用由服务器dns#2返回的地址@ipv6(s)作为如发送到网络资源s的分组的目的地地址。
[0235]
注意,多接口客户端装置t必须基于由服务器dns#2返回的ip地址来选择用于向网络资源s发送数据分组的连接接口。事实上,如果客户端装置t具有几个{network-id,prefix64}配对,则客户端装置t选择nat64前缀与服务器dns#2返回的ipv6地址的第一位相对应的network-id连接接口。例如,如果客户端装置t具有两个连接接口{network-id=wlan,prefix64=2001:db8:1234/96}和{network-id=rmnet,prefix64=64:ff9b::/96},则要用于将数据发送到服务器dns#2返回的地址“64:ff9b::1.2.3.4”的连接接口是连接接口rmnet。
[0236]
此外,如果客户端装置t在请求r-aaaa中向与客户端装置t的不同连接接口相对应的服务器dns#2供应了几个nat64前缀(例如,针对网络nw1的前缀“2001:db8:1234/96”和针对网络nw2的前缀“64:ff9b::/96”),则服务器dns#2响应于客户端装置t(在所考虑的示例中,地址“2001:db8:1234::198.51.100.1”和地址“64:ff9b::198.51.100.1”)而传输与前缀一样多的ipv6地址。然后,客户端装置t必须使用与同被选择用于向网络资源发送分组的连接接口相关联的前缀相对应的ipv6地址,换句话说,经由网络nw1发送的分组的目的地地址“2001:db8:1234::198.51.100.1”以及经由网络nw2发送的分组的地址“64:ff9b::198.51.100.1”。
[0237]
选择错误的连接接口可能会影响体验质量。事实上,选择要传送到dns服务器的一个或多个前缀允许客户端装置控制将如何建立与远程网络资源的通信。
[0238]
作为说明,参考图9的示例,如果prefix64选项包含前缀“2001:db8:1234/96”,则数据必须经由网络nw1进行交换。注意,具有目的地址“2001:db8:1234::198.51.100.1”但经由网络nw2传输的任何数据分组被重新路由到网络nw1(因为该网络公布前缀“2001:db::/32”)并且有被该网络拒绝的风险,因为从互联网网络可见的接口上不提供nat64服务。
[0239]
参考图10的示例,如果dns响应包含前缀“64:ff9b::/96”,则数据必须经由网络nw2进行交换。具有目的地地址“64:ff9b::198.51.100.1”并且经由网络nw1传输的任何数据分组都会被网络nw1拒绝,因为该网络没有任何路由(例如任何bgp(边界网关协议)路由)来路由分组。
[0240]
在先前描述的实施例中,prefix64选项由客户端装置t插入到其请求r-aaaa中。在客户端装置t经由cpe与ip网络通信的另一个实施例中,可以由cpe插入prefix64选项。根据本发明的获得方法然后由cpe(其然后在本发明的含义内被认为是客户端装置)实施。更具体地,如果cpe检测到ip网络中存在nat64功能,则在从cpe连接到的局域网的设备接收到dns请求aaaa时,cpe根据刚刚描述的模式修改该请求以包括prefix64选项。
[0241]
此外,在所描述的实施例中,实施根据本发明的处理方法的是替代性dns服务器dns#2。应当注意,当客户端装置t被配置成将其dns请求寻址到这些名义上的dns服务器时,本发明也适用于名义上的dns服务器。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献