CN113840018A - 基于DNS的IPv6引流方法、装置以及设备 - Google Patents

基于DNS的IPv6引流方法、装置以及设备 Download PDF

Info

Publication number
CN113840018A
CN113840018A CN202111069634.9A CN202111069634A CN113840018A CN 113840018 A CN113840018 A CN 113840018A CN 202111069634 A CN202111069634 A CN 202111069634A CN 113840018 A CN113840018 A CN 113840018A
Authority
CN
China
Prior art keywords
client
ipv6
address
information
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.)
Pending
Application number
CN202111069634.9A
Other languages
English (en)
Inventor
蓝邵武
翁欣旦
刘向阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202111069634.9A priority Critical patent/CN113840018A/zh
Publication of CN113840018A publication Critical patent/CN113840018A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/251Translation of Internet protocol [IP] addresses between different IP versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/167Adaptation for transition between two IP versions, e.g. between IPv4 and IPv6
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/686Types of network addresses using dual-stack hosts, e.g. in Internet protocol version 4 [IPv4]/Internet protocol version 6 [IPv6] networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本说明书实施例公开了基于DNS的IPv6引流方法、装置以及设备。方案包括:接收客户端发送的DNS请求;根据DNS请求中携带的客户端信息,判断客户端是否命中了对应的灰度规则;若是,则为客户端分配IPv6地址和IPv4地址,以使客户端通过IPv6地址进行访问,并在客户端通过IPv6地址访问失败的情况下,通过IPv4地址进行访问。

Description

基于DNS的IPv6引流方法、装置以及设备
技术领域
本说明书涉及互联网技术领域,尤其涉及基于DNS的IPv6引流方法、装置以及设备。
背景技术
域名系统(Domain Name System,DNS)是互联网的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。IP地址(InternetProtocol Address)是指互联网协议地址,又译为网际协议地址,其包括网际协议版本4(Internet Protocol version 4,IPv4),以及用于代替IPv4的网际协议版本6(InternetProtocol version 6,IPv6)。IPv6的使用,不仅能有效解决IPv4网络地址资源数量不足的问题,而且也解决了多种接入设备连入互联网的障碍,促进了互联网的进一步发展。
由于IPv6环境相对复杂,存在难以预知和控制的风险,客户端在通过IPv6访问服务端时,容易出现故障导致访问失败,比如,出现丢包引起的瞬间网络故障、软件或硬件设备不支持、底层协议冲突引起的故障等。
基于此,需要稳定性更高的基于DNS的IPv6引流方案。
发明内容
本说明书一个或多个实施例提供基于DNS的IPv6引流方法、装置、设备以及存储介质,用以解决如下技术问题:需要稳定性更高的基于DNS的IPv6引流方案。
为解决上述技术问题,本说明书一个或多个实施例是这样实现的:
本说明书一个或多个实施例提供的一种基于DNS的IPv6引流方法,包括:
接收客户端发送的DNS请求;
根据所述DNS请求中携带的客户端信息,判断所述客户端是否命中了对应的灰度规则;
若是,则为所述客户端分配IPv6地址和IPv4地址,以使所述客户端通过所述IPv6地址进行访问,并在所述客户端通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
本说明书一个或多个实施例提供的一种基于DNS的IPv6引流方法,包括:
向DNS调度设备发送携带有客户端信息的DNS请求;
接收所述DNS调度设备返回的IPv6地址和IPv4地址,所述IPv6地址和所述IPv4地址是所述DNS调度设备根据所述客户端信息判断客户端命中了对应的灰度规则时分配的;
通过所述IPv6地址进行访问,并在通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
本说明书一个或多个实施例提供的一种基于DNS的IPv6引流装置,包括:
第一接收模块,接收客户端发送的DNS请求;
判断模块,根据所述DNS请求中携带的客户端信息,判断所述客户端是否命中了对应的灰度规则;
第一分配模块,若所述判断模块的判断结果为是,则为所述客户端分配IPv6地址和IPv4地址,以使所述客户端通过所述IPv6地址进行访问,并在所述客户端通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
本说明书一个或多个实施例提供的一种基于DNS的IPv6引流装置,包括:
发送模块,向DNS调度设备发送携带有客户端信息的DNS请求;
第二接收模块,接收所述DNS调度设备返回的IPv6地址和IPv4地址,所述IPv6地址和所述IPv4地址是所述DNS调度设备根据所述客户端信息判断客户端命中了对应的灰度规则时分配的;
访问模块,通过所述IPv6地址进行访问,并在通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
本说明书一个或多个实施例提供的一种基于DNS的IPv6引流设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收客户端发送的DNS请求;
根据所述DNS请求中携带的客户端信息,判断所述客户端是否命中了对应的灰度规则;
若是,则为所述客户端分配IPv6地址和IPv4地址,以使所述客户端通过所述IPv6地址进行访问,并在所述客户端通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
本说明书一个或多个实施例提供的一种基于DNS的IPv6引流设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
向DNS调度设备发送携带有客户端信息的DNS请求;
接收所述DNS调度设备返回的IPv6地址和IPv4地址,所述IPv6地址和所述IPv4地址是所述DNS调度设备根据所述客户端信息判断客户端命中了对应的灰度规则时分配的;
通过所述IPv6地址进行访问,并在通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
接收客户端发送的DNS请求;
根据所述DNS请求中携带的客户端信息,判断所述客户端是否命中了对应的灰度规则;
若是,则为所述客户端分配IPv6地址和IPv4地址,以使所述客户端通过所述IPv6地址进行访问,并在所述客户端通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
向DNS调度设备发送携带有客户端信息的DNS请求;
接收所述DNS调度设备返回的IPv6地址和IPv4地址,所述IPv6地址和所述IPv4地址是所述DNS调度设备根据所述客户端信息判断客户端命中了对应的灰度规则时分配的;
通过所述IPv6地址进行访问,并在通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
本说明书一个或多个实施例采用的上述至少一个技术方案能够达到以下有益效果:
制定相应的灰度规则,通过灵活的方式来圈定客户端的范围,能够基于当前的需求以及IPv6的网络环境来确定灰度规则的命中范围,以实现从小到大逐步放量,保证了IPv6使用风险范围的可控,最终达到IPv6的普及使用。通过精细控制灰度规则,指定到具体的客户端,进一步提高了风险范围的可控性。使用IPv4的方式进行兜底,在IPv6访问失败时主动降级,保证用户业务的顺利执行,最大限度的保证了IPv6引流过程中的稳定性,从而提供了一种稳定性更高的基于DNS的IPv6引流方案。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一个或多个实施例提供的DNS调度设备侧的一种基于DNS的IPv6引流方法的流程示意图;
图2为本说明书一个或多个实施例提供的客户端侧的一种基于DNS的IPv6引流方法的流程示意图;
图3为本说明书一个或多个实施例提供的,一种应用场景下的客户端访问流程示意图;
图4为本说明书一个或多个实施例提供的DNS调度设备侧的一种基于DNS的IPv6引流装置的结构示意图;
图5为本说明书一个或多个实施例提供的客户端侧的一种基于DNS的IPv6引流装置的结构示意图;
图6为本说明书一个或多个实施例提供的DNS调度设备侧的一种基于DNS的IPv6引流设备的结构示意图;
图7为本说明书一个或多个实施例提供的客户端侧的一种基于DNS的IPv6引流设备的结构示意图。
具体实施方式
本说明书实施例提供基于DNS的IPv6引流方法、装置、设备以及存储介质。
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
图1为本说明书一个或多个实施例提供的DNS调度设备侧的一种基于DNS的IPv6引流方法的流程示意图。该方法可以应用于不同的业务领域,比如,互联网金融业务领域、电商业务领域、即时通讯业务领域、游戏业务领域、公务业务领域等。该流程可以由相应领域的计算设备(比如,支付业务对应的智能客服服务器或者智能移动终端等)执行,流程中的某些输入参数或者中间结果允许人工干预调节,以帮助提高准确性。
图1中的流程可以包括以下步骤:
S102:接收客户端发送的DNS请求。
客户端属于用户使用的终端(比如,智能手机、个人PC、物联网设备等),客户端可以为WEB浏览器或者具有相应的功能和需求的软件、硬件。
用户通过客户端访问服务器时,如果输入的是域名,则需要对该域名进行DNS解析,将其转换为相应的IP地址后,客户端才能通过该IP地址访问服务器(服务器可以属于相应的服务端集群)。基于此,客户端向进行DNS解析的系统或设备(在此将该系统或设备称作DNS调度设备,DNS调度设备除了进行DNS解析外,还执行其他的数据处理、传输工作,以下简称为调度设备)发送DNS请求,调度设备在接收到DNS请求后,对其进行解析,得到其中携带的客户端信息。客户端信息中可以包括客户端自身的信息(比如,客户端版本号)、与客户端绑定的用户信息、客户端所在的环境信息(比如,终端的设备ID、设备的定位信息、终端网络协议栈、网络质量、客户端操作系统等)、需要解析的域名等。
S104:根据所述DNS请求中携带的客户端信息,判断所述客户端是否命中了对应的灰度规则。
对于IP地址来说,通常更希望客户端能够使用IPv6来访问网站服务器,以解决IPv4的网络地址资源数量不足的问题,提高数据传输效率。但是由于IPv6环境相对复杂,存在难以预知和控制的风险,如果直接为所有的客户端都分配IPv6地址,很容易导致大面积的IPv6访问故障。
基于此,预先设置相应的灰度规则,以灰度发布的方式,对客户端进行选择。灰度规则中可以包括多条规则,多条规则之间可以是and(客户端需要命中所有规则,才能被认为命中灰度规则)、or(客户端只要命中一条规则,就能被认为命中灰度规则)或者其他逻辑关系。
具体地,灰度规则可以基于能够获取到的客户端信息进行相应设置,比如,客户端信息中携带有环境信息,则灰度规则可以是对环境信息的约束,只有符合某些特定环境信息的客户端,才能被认为是命中了灰度规则,为其分配IPv6地址。
灰度规则的命中范围是基于其中各条规则以及逻辑关系得到的,而命中范围也会基于规则和逻辑关系的改变而发生变化。比如,灰度规则中包含有对客户端所在终端的地理范围的约束,当该地理范围变大时,可以认为灰度规则的命中范围变大。但是,如果地理范围发生了改变,由A市更改为了B市(A市与B市之间没有包含与被包含的关系),则不能简单认为地理范围变大或变小。此时,可以根据A市和B市的占地面积来确定命中范围是否变大,占地面积越大则命中范围越大,或者,根据A市或B市的常住人口、客户端数量来判断命中范围是否变大,常住人口、客户端数量越多,则命中范围越大。灰度规则中包含有对需要解析的域名的约束,当该域名数量增加时,可以认为灰度规则的命中范围变大。类似地,如果该域名发生了替换,将A域名替换为B域名(A域名与B域名之间也没有包含与被包含的关系),则可以根据A域名与B域名的访问量来确定命中范围是否变大。对于客户端版本号的替换,可以根据各客户端版本号现有的使用人数来确定命中范围;对于设备ID的替换,可以根据不同设备的处理能力、DNS请求发送量来确定命中范围,其他类型的灰度规则的命中范围也可以设置相应的规则来进行判定,在此不再赘述。
灰度规则并非是一直不变的,调度系统可以在DNS解析过程中,对灰度规则进行动态调整,比如,随着时间顺序,逐渐扩大灰度规则的命中范围,或者,通过人工的方式进行动态调整。在下文中会挑选出几个典型的场景,进行详细的解释说明。
S106:若是,则为所述客户端分配IPv6地址和IPv4地址,以使所述客户端通过所述IPv6地址进行访问,并在所述客户端通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
一个域名可能对应着多个IP地址为其服务,不同的IP地址可能对应着不同的服务端集群(也可以称作服务器机房),但是其对应的域名和网站都是相同的,在DNS解析的过程中,解析得到的多个IP地址均能够指向该域名对应的网站。
为客户端分配的IPv6地址和IPv4地址,均为对客户端信息中的域名进行解析得到的,其在实际场景中对应着不同的服务端集群,比如,在C市、D市以及E市分别设置有相应的IPv6服务端集群和IPv4服务端集群。当客户端接收到返回的IPv6地址后,优先通过IPv6地址进行访问,此时访问的是对应的IPv6服务端集群。但是如果在访问过程中,出现了访问失败的情况,无法继续通过IPv6访问网站,则切换到通过IPv4地址进行访问,此时访问到的自然是IPv4服务端集群,但是无论访问到哪个服务端集群,其都是网站对应的服务器,用户都能够通过客户端执行相应的业务。
基于图1的方法,本说明书还提供了该方法的一些具体实施方案和扩展方案,下面继续进行说明。
在本说明书一个或多个实施例中,上文已经提及,客户端信息中包含有多种类型的信息,在此挑选出几种信息(比如,用户信息、定位信息、域名信息、设备信息),结合灰度规则,对如何判断客户端信息是否命中了灰度规则进行详细解释说明。
实施例1,用户通常使用自身的账户来登录客户端,以便执行相关业务。此时,客户端信息中携带有代表用户身份的用户信息。对用户信息进行分析,能够确定得到用户是否为指定企业的内部用户(比如,该用户是指定企业的员工、特权客户)。设置相应的灰度规则,只有是指定企业的内部用户才能命中灰度规则。
进一步地,设置该灰度规则的主要阶段是灰度发布的初期阶段,主要目的是为了对IPv6访问稳定性的测试,只选出一部分客户端分配IPv6地址,并在这个阶段尽可能的发现IPv6的应用是否存在异常,以便于后续大面积的分配IPv6地址。此时,若随便选取一个指定企业,很可能无法达到预期的测试效果,也可能由于IPv6的不稳定,降低该指定企业的内部员工的用户体验,甚至可能会在业务执行过程对该指定企业以及内部用户造成较大的损失。
基于此,预先选定的指定企业可以是客户端所属的企业(比如,研发该客户端的企业)。作为所属企业的内部员工,其有可能参与了该客户端的研发过程(即使未参与,相比于其他企业的员工,对该客户端的了解程度也更深),在IPv6出现故障导致访问失败时,能够更有效的配合调度设备进行故障识别、修复工作。并且,该指定企业可以预先向内部员工发出相关通知,内部员工能够提前做好相应准备,规避或降低IPv6故障对业务执行所产生的损失。
实施例2,客户端信息中携带有客户端所在终端的定位信息,对于不同的地理区域,其对应的网络质量等环境信息可能会受到地理因素(比如,高海拔、高温环境)或者当地网络环境建设的影响。设置定位信息相关的灰度规则,只有在指定位置范围内的终端才能命中灰度规则。
为了达到与实施例1中类似地目的(对IPv6访问的稳定性测试),可以将指定位置范围进行相应设置。比如,在灰度发布的初期阶段,将指定位置范围设置在一些相对偏远或者地形比较复杂的地区,此时,IPv6访问由于当地网络环境建设较差,或者地形较为复杂,容易在IPv6的访问过程中出现异常,也就更加容易在灰度发布的初期阶段检测出问题,以便于进行相应的检修。并且,由于位置相对偏远,人口通常较少,使得受到IPv6故障影响的用户也相对较少,尽可能保障了多数用户的体验。
进一步地,即使是偏远的地区(比如某个位置相对偏远的城市),其中用户的数量还是较多的(用户数量仍处于一个较大的量级)。因此,可以对命中了灰度规则的客户端进一步地筛选,预设一个随机概率(比如,10%),当位置信息命中了灰度规则后,需要进一步判断该客户端是否命中了该随机概率,如果仍然命中,则认为其命中了灰度规则,为其分配IPv6地址和IPv4地址。
实施例3,客户端信息中携带有将要访问的域名信息,类似地,在灰度发布的初期阶段,选择一些用户流量较小网站的域名,或者客户端所属企业的网站作为指定域名,将该指定域名的约束添加至灰度规则中,如此能够尽可能减少IPv6故障对用户体验的降低,提高对IPv6的检修效率。
实施例4,客户端信息中携带有设备IP,通过精确的灰度控制,指定到具体的设备,类似地,在灰度发布的初期阶段,选择客户端所属企业内部的设备IP作为预设的指定设备,将该指定设备的约束添加至灰度规则中,如此能够尽可能减少IPv6故障对用户体验的降低,提高对IPv6的检修效率。
在本说明书一个或多个实施例中,对于命中了灰度规则的客户端,为其分配IPv6地址和IPv4地址,以使其优先通过IPv6地址访问,如果IPv6出现故障,则仍有IPv4地址进行兜底,不会影响客户端的域名访问。而对于没命中灰度规则的客户端,通常只分配IPv4地址,以使其通过IPv4地址进行访问。
上文已经说过,灰度规则并非是一直不变的,其可以在灰度发布的过程中进行相应的改变。此时,可以根据未命中灰度规则的客户端进行分析,以对灰度规则的命中范围进行合理的自动化调整。
具体地,在为客户端分配IP地址之前,如果确定客户端信息未命中灰度规则,不再直接只为该客户端分配IPv4地址,而是对客户端信息进行分析,以确定其中未命中灰度规则的第一客户端信息。
对第一客户端信息进行分析,确定第一客户端信息与灰度规则之间的差异程度是否低于预设阈值,若是,则表示该客户端信息虽然没有命中灰度规则,但是与灰度规则的命中范围已经十分接近。差异程度基于客户端信息的不同,有着相应的判断基准,比如,第一客户端信息为定位信息时,若该定位信息与灰度规则中的指定位置范围约束在实际距离中十分接近,低于预设距离,则可以认为差异程度低于预设阈值。第一客户端信息为用户信息时,若该用户信息所在的企业,与灰度规则中的指定企业约束具有母子公司、具有密切合作、属于同一行业、规模相似等关系中的一条或多条,则可以认为差异程度低于预设阈值。第一客户端信息为域名信息,若该域名信息与灰度规则中的指定域名约束具有用户访问量接近、网站内容类似等关系中的一条或多条,则可以认为差异程度低于预设阈值。第一客户端信息为设备信息,若该设备信息与灰度规则中的指定设备ID约束具有属于同一生产批次、应用于同一家企业等关系中的一条或多条,则可以认为差异程度低于预设阈值。
此时,虽然该客户端未命中灰度规则,但仍可以尝试性的为分配IPv6地址和IPv4地址,若是该客户端通过IPv6地址成功访问,则表示该客户端信息所对应的范围是能够使用IPv6访问,此时,可以对灰度规则的命中范围进行动态调整,使得第一客户端信息能够命中调整后的灰度规则。以此能够在IPv6引流的过程中,逐步的扩大灰度规则的命中范围,实现灰度发布过程中的平滑过渡。当然,为了保障过渡过程中的准确性,可以在多个包含第一客户端信息的客户端,通过IPv6地址成功访问后,再扩大会读规则的命中范围。
在本说明书一个或多个实施例中,在灰度发布过程中,除了上文中所述的方式外,还可以通过其他的方式进行灰度规则的动态调整。
例如,在判断客户端是否命中灰度规则前,在历史记录中进行遍历,确定命中了灰度规则的其他客户端,并对其他客户端通过为其分配的IPv6地址进行访问时的访问结果。对访问结果进行分析,确定出访问失败的多个客户端。对这多个客户端进行分析,确定其中是否具有相同的第二客户端信息(比如,这多个客户端均处于同一地理范围内,或者,使用了相同的操作系统),如果具有,则说明这多个客户端通过IPv6的访问失败很有可能是第二客户端信息引起的,此时,动态调整灰度规则,使得该第二客户端信息无法再命中灰度规则对应的命中范围,从而提高这部分客户端的用户的体验。
当然,并非需要在每个客户端命中灰度规则前,都进行分析,而是可以采用定时、定量的方式,每隔预定时长或每间隔预定数量,在判断某个客户端命中灰度规则之前,进行相应分析。
在本说明书一个或多个实施例中,对于一部分企业来说,可能会在某个时间段内,多个的客户端集中频繁发送DNS请求,比如,对于互联网公司,在某个软件的测试阶段,可能需要多个客户端同时频繁的与外界进行通信。此时,若是这多个客户端均命中了灰度规则,为其分配了IPv6地址,一旦IPv6出现故障,可能会导致该软件的通信功能测试失败,或者对测试阶段的结果产生影响。
基于此,若是接收到多个客户端同时分别发送的多个DNS请求(这里的同时,可以指代同一时刻,也可以将相差极短的时间看做是同时,比如,将相差0.1秒内接收到的多个DNS请求看做是同时接收到的),且均命中了对应的灰度规则,则根据客户端信息确定这多个客户端中,指定客户端信息是否相同(比如,根据客户端信息中的用户信息,确定这多个客户端是否均属于同一家企业的内部员工)。若是,则在分配IP地址的时候,只为其中的部分客户端分配IPv6地址和IPv4地址,若是这部分客户端通过IPv6地址访问成功,则说明具有指定客户端信息的这多个客户端很大概率可以适应IPv6的环境,此时,为剩余客户端延迟分配IPv6地址和IPv4地址。由于IPv6的访问速度很快,所以延迟的时长实际上很短,通常不会对用户体验以及测试造成影响,还能够保障这种情况下对用户端的业务保障。
图2为本说明书一个或多个实施例提供的客户端侧的一种基于DNS的IPv6引流方法的流程示意图。图2所示的方法与图1所示的方法是站在不同侧,对引流方法的解释限定,故而在其中会存在很多相同或相似的内容,在此不再对这部分内容过多赘述。
S202:向DNS调度设备发送携带有客户端信息的DNS请求。
客户端基于用户的业务需求或者相关软件的需求,向调度设备发送DNS请求。
S204:接收所述DNS调度设备返回的IPv6地址和IPv4地址,所述IPv6地址和所述IPv4地址是所述DNS调度设备根据所述客户端信息判断客户端命中了对应的灰度规则时分配的。
S206:通过所述IPv6地址进行访问,并在通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
优先使用接收到的IPv6地址,访问IPv6服务端集群,用户通过客户端与服务端交互,以执行相应的业务。但是如果通过IPv6访问失败,则使用接收到的IPv4地址,访问IPv4服务端集群,在此将IPv4作为兜底的方式,能够保障用户的业务顺利执行。
在本说明书一个或多个实施例中,为了降低域名被劫持的概率,很多客户端选择HTTP DNS的方式来进行域名解析。HTTP DNS与传统的DNS解析不同,而是自己搭建基于HTTP协议的DNS服务端集群,分布在多个地点和多个运营商。当客户端需要DNS解析的时候,直接通过HTTP协议请求相应的服务端集群,得到就近的地址。
图3为本说明书一个或多个实施例提供的,一种应用场景下的客户端访问流程示意图,预先通过客户端对应的设备ID,为设备分配所属IPv6服务端集群(比如图3中所示的,分别建立在不同地理位置的所属IPv6服务端集群A和所属IPv6服务端集群B),并建立相应的映射关系,比如,根据地理距离,将距离该设备最近的IPv6服务端集群作为所属IPv6服务端集群。
客户端发送HTTP DNS请求,调度设备进行灰度规则计算,若是客户端命中了灰度规则,则返回IPv6地址和IPv4地址。在客户端访问时,首先通过IPv6地址访问该优先级较高的所属IPv6服务端集群,若是访问失败,则再降级访问优先级较低的其他IPv6服务端集群,若是仍然访问失败,则再降级通过IPv4地址访问相应的IPv4服务端集群(比如图3中所示的,分别建立在不同地理位置的IPv4服务端集群A、IPv4服务端集群B和IPv4服务端集群C),失败后主动降级,最大限度的保障了稳定性。
在本说明书一个或多个实施例中,客户端的访问过程中,即使采用了上文中降级访问的方式,但是仍然会存在需要一定的切换时长的问题。对于一些重要或者需求较高的业务来说,仍然存在风险。
基于此,在客户端访问过程中,通过IPv6地址以及IPv4地址同时访问相应的服务端集群,并分别得到相应的访问结果(访问结果通常以页面的形式进行展示,在此将IPv6地址对应的访问结果称作第一页面,将IPv4地址对应的访问结果称作第二页面)。在用户通过IPv6地址正常访问时,展示第一页面,若是出现了访问失败的情况,则立刻切换展示方式,展示第二页面。如此能够高效的实现页面切换,最大程度保障切换访问方式时的用户体验。
进一步地,在页面展示过程中,预先生成虚拟页面。该虚拟页面并不用于展示相应的内容,而是仅仅作为一个载体,在其中同时展示第一页面和第二页面,两者重叠展示,并在用户通过IPv6正常访问时,以常规的方式展示第一页面,以透明(此处的透明指的是全透明的方式)的方式展示第二页面。如此,第一页面和第二页面都能够采集到用户在虚拟页面中的相关操作,并进行相应的处理。若是IPv6访问失败,则切换展示方式,将两者的透明度进行替换,以透明的方式展示第一页面,并以常规的方式展示第二页面。对于用户而言,由于视觉暂留的现象,用户难以发现页面已经进行了切换,使得切换过程更加平滑,进一步保障了用户体验。
另外,由于第一页面和第二页面都采集了相关操作,并在各自对应的IPv6服务端集群和IPv4服务端集群中进行了相应的业务处理,有可能会造成同一个业务被处理多次的情况发生,导致业务处理过程产生故障。此时,可以通过不同服务端集群之间的交互来解决这个问题,比如,在通过IPv6正常访问时,第一页面生成一个真实的响应,第二页面生成一个虚拟的响应,在IPv4服务端集群接收到该虚拟响应后,不进行业务处理,而是与IPv6服务端集群之间进行通讯,由IPv6服务端集群进行业务处理后,将相应的结果返回至IPv4服务端集群,再返回至第二页面中。
基于同样的思路,本说明书一个或多个实施例还提供了上述方法对应的装置和设备,如图4~图7所示。
图4为本说明书一个或多个实施例提供的DNS调度设备侧的一种基于DNS的IPv6引流装置的结构示意图,所述装置包括:
第一接收模块402,接收客户端发送的DNS请求;
判断模块404,根据所述DNS请求中携带的客户端信息,判断所述客户端是否命中了对应的灰度规则;
第一分配模块406,若所述判断模块的判断结果为是,则为所述客户端分配IPv6地址和IPv4地址,以使所述客户端通过所述IPv6地址进行访问,并在所述客户端通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
可选地,所述客户端信息包括用户信息、定位信息、域名信息、设备信息中的至少一种;
所述判断模块404,根据所述用户信息,判断所述客户端所属的用户是否为指定企业的内部用户;或
根据所述定位信息,确定所述客户端所在的位置属于指定位置范围时,判断所述客户端是否命中了预设的随机概率;或
根据所述域名信息,判断所述客户端将要访问的域名是否为指定域名;或
根据所述设备信息,判断所述客户端的设备ID是否为预设的指定设备ID。
可选地,还包括:
第二分配模块408,若所述判断模块的判断结果为否,则为所述客户端分配IPv4地址,以使所述客户端通过所述IPv4地址进行访问。
可选地,还包括:
第一灰度规则调整模块412,确定所述客户端信息中,未命中所述灰度规则的第一客户端信息;
若所述第一客户端信息与所述灰度规则之间的差异程度低于预设阈值,则仍为所述客户端分配所述IPv6地址和所述IPv4地址,并在所述客户端通过所述IPv6地址访问成功后,动态调整所述灰度规则对应的命中范围,以使所述第一客户端信息能够命中所述动态调整后的所述灰度规则。
可选地,还包括:
第二灰度规则调整模块414,根据历史记录,确定已命中了灰度规则的其他客户端;
确定所述其他客户端通过为其分配的IPv6地址进行访问时的访问结果;
对所述访问结果进行分析,以确定访问失败的多个客户端中,具有的相同的第二客户端信息,并根据所述第二客户端信息,动态调整所述灰度规则对应的命中范围。
可选地,所述第一接收模块402,接收多个客户端同时分别发送的多个DNS请求;
所述判断模块404,根据所述多个DNS请求中携带的客户端信息,分别判断所述多个客户端是否命中了对应的灰度规则;
所述第一分配模块406,确定所述多个客户端的对应的客户端信息中,指定客户端信息相同,则为所述多个客户端中的部分客户端分配IPv6地址和IPv4地址;
若所述部分客户端通过所述IPv6地址访问成功,则为剩余客户端延迟分配所述IPv6地址和所述IPv4地址。
图5为本说明书一个或多个实施例提供的客户端侧的一种基于DNS的IPv6引流装置的结构示意图,所述装置包括:
发送模块502,向DNS调度设备发送携带有客户端信息的DNS请求;
第二接收模块504,接收所述DNS调度设备返回的IPv6地址和IPv4地址,所述IPv6地址和所述IPv4地址是所述DNS调度设备根据所述客户端信息判断客户端命中了对应的灰度规则时分配的;
访问模块506,通过所述IPv6地址进行访问,并在通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
可选地,所述发送模块502,向DNS调度设备发送携带有客户端信息的HTTP DNS请求;
所述访问模块506,通过所述IPv6地址访问所述客户端的所属IPv6服务端集群,并在访问所述所属IPv6服务端集群失败的情况下,通过所述IPv6地址访问其他IPv6服务端集群,所述所属IPv6服务端集群的优先级高于所述其他IPv6服务端集群。
可选地,所述访问模块506,通过所述IPv6地址以及所述IPv4地址同时进行访问,分别得到所述IPv6地址对应的第一页面以及所述IPv4地址对应的第二页面;
展示所述第一页面,并在通过所述IPv6地址访问失败的情况下,切换为展示所述第二页面。
可选地,所述访问模块506,生成相应的虚拟页面;
以所述虚拟页面作为载体,在所述虚拟页面中展示所述第一页面,并同时以透明的方式展示所述第二页面;
在通过所述IPv6地址访问失败的情况下,切换展示方式,以在所述虚拟页面中展示所述第二页面,并同时以透明的方式展示所述第一页面。
图6为本说明书一个或多个实施例提供的DNS调度设备侧的一种基于DNS的IPv6引流设备的结构示意图,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收客户端发送的DNS请求;
根据所述DNS请求中携带的客户端信息,判断所述客户端是否命中了对应的灰度规则;
若是,则为所述客户端分配IPv6地址和IPv4地址,以使所述客户端通过所述IPv6地址进行访问,并在所述客户端通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
图7为本说明书一个或多个实施例提供的客户端侧的一种基于DNS的IPv6引流设备的结构示意图,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
向DNS调度设备发送携带有客户端信息的DNS请求;
接收所述DNS调度设备返回的IPv6地址和IPv4地址,所述IPv6地址和所述IPv4地址是所述DNS调度设备根据所述客户端信息判断客户端命中了对应的灰度规则时分配的;
通过所述IPv6地址进行访问,并在通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
基于同样的思路,本说明书一个或多个实施例还提供了对应于上述方法的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
接收客户端发送的DNS请求;
根据所述DNS请求中携带的客户端信息,判断所述客户端是否命中了对应的灰度规则;
若是,则为所述客户端分配IPv6地址和IPv4地址,以使所述客户端通过所述IPv6地址进行访问,并在所述客户端通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
基于同样的思路,本说明书一个或多个实施例还提供了对应于上述方法的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
向DNS调度设备发送携带有客户端信息的DNS请求;
接收所述DNS调度设备返回的IPv6地址和IPv4地址,所述IPv6地址和所述IPv4地址是所述DNS调度设备根据所述客户端信息判断客户端命中了对应的灰度规则时分配的;
通过所述IPv6地址进行访问,并在通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书实施例可提供为方法、系统、或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅为本说明书的一个或多个实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书的一个或多个实施例可以有各种更改和变化。凡在本说明书的一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (22)

1.一种基于DNS的IPv6引流方法,包括:
接收客户端发送的DNS请求;
根据所述DNS请求中携带的客户端信息,判断所述客户端是否命中了对应的灰度规则;
若是,则为所述客户端分配IPv6地址和IPv4地址,以使所述客户端通过所述IPv6地址进行访问,并在所述客户端通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
2.如权利要求1所述的方法,所述客户端信息包括用户信息、定位信息、域名信息、设备信息中的至少一种;
所述根据所述DNS请求中携带的客户端信息,判断所述客户端是否命中了对应的灰度规则,具体包括:
根据所述用户信息,判断所述客户端所属的用户是否为指定企业的内部用户;或
根据所述定位信息,确定所述客户端所在的位置属于指定位置范围时,判断所述客户端是否命中了预设的随机概率;或
根据所述域名信息,判断所述客户端将要访问的域名是否为指定域名;或
根据所述设备信息,判断所述客户端的设备ID是否为预设的指定设备ID。
3.如权利要求1所述的方法,所述根据所述DNS请求中携带的客户端信息,判断所述客户端是否命中了对应的灰度规则之后,所述方法还包括:
若否,则为所述客户端分配IPv4地址,以使所述客户端通过所述IPv4地址进行访问。
4.如权利要求3所述的方法,所述为所述客户端分配IPv4地址,以使所述客户端通过所述IPv4地址进行访问之前,所述方法还包括:
确定所述客户端信息中,未命中所述灰度规则的第一客户端信息;
若所述第一客户端信息与所述灰度规则之间的差异程度低于预设阈值,则仍为所述客户端分配所述IPv6地址和所述IPv4地址,并在所述客户端通过所述IPv6地址访问成功后,动态调整所述灰度规则对应的命中范围,以使所述第一客户端信息能够命中所述动态调整后的所述灰度规则。
5.如权利要求1所述的方法,所述判断所述客户端是否命中了对应的灰度规则之前,所述方法还包括:
根据历史记录,确定已命中了灰度规则的其他客户端;
确定所述其他客户端通过为其分配的IPv6地址进行访问时的访问结果;
对所述访问结果进行分析,以确定访问失败的多个客户端中,具有的相同的第二客户端信息,并根据所述第二客户端信息,动态调整所述灰度规则对应的命中范围。
6.如权利要求1所述的方法,所述接收客户端发送的DNS请求,具体包括:
接收多个客户端同时分别发送的多个DNS请求;
所述根据所述DNS请求中携带的客户端信息,判断所述客户端是否命中了对应的灰度规则,具体包括:
根据所述多个DNS请求中携带的客户端信息,分别判断所述多个客户端是否命中了对应的灰度规则;
所述为所述客户端分配IPv6地址和IPv4地址,具体包括:
确定所述多个客户端的对应的客户端信息中,指定客户端信息相同,则为所述多个客户端中的部分客户端分配IPv6地址和IPv4地址;
若所述部分客户端通过所述IPv6地址访问成功,则为剩余客户端延迟分配所述IPv6地址和所述IPv4地址。
7.一种基于DNS的IPv6引流方法,包括:
向DNS调度设备发送携带有客户端信息的DNS请求;
接收所述DNS调度设备返回的IPv6地址和IPv4地址,所述IPv6地址和所述IPv4地址是所述DNS调度设备根据所述客户端信息判断客户端命中了对应的灰度规则时分配的;
通过所述IPv6地址进行访问,并在通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
8.如权利要求7所述的方法,所述向DNS调度设备发送携带有客户端信息的DNS请求,具体包括:
向DNS调度设备发送携带有客户端信息的HTTP DNS请求;
所述通过所述IPv6地址进行访问,具体包括:
通过所述IPv6地址访问所述客户端的所属IPv6服务端集群,并在访问所述所属IPv6服务端集群失败的情况下,通过所述IPv6地址访问其他IPv6服务端集群,所述所属IPv6服务端集群的优先级高于所述其他IPv6服务端集群。
9.如权利要求7所述的方法,所述通过所述IPv6地址进行访问,并在通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问,具体包括:
通过所述IPv6地址以及所述IPv4地址同时进行访问,分别得到所述IPv6地址对应的第一页面以及所述IPv4地址对应的第二页面;
展示所述第一页面,并在通过所述IPv6地址访问失败的情况下,切换为展示所述第二页面。
10.如权利要求9所述的方法,所述展示所述第一页面,并在通过所述IPv6地址访问失败的情况下,切换为展示所述第二页面,具体包括:
生成相应的虚拟页面;
以所述虚拟页面作为载体,在所述虚拟页面中展示所述第一页面,并同时以透明的方式展示所述第二页面;
在通过所述IPv6地址访问失败的情况下,切换展示方式,以在所述虚拟页面中展示所述第二页面,并同时以透明的方式展示所述第一页面。
11.一种基于DNS的IPv6引流装置,包括:
第一接收模块,接收客户端发送的DNS请求;
判断模块,根据所述DNS请求中携带的客户端信息,判断所述客户端是否命中了对应的灰度规则;
第一分配模块,若所述判断模块的判断结果为是,则为所述客户端分配IPv6地址和IPv4地址,以使所述客户端通过所述IPv6地址进行访问,并在所述客户端通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
12.如权利要求11所述的装置,所述客户端信息包括用户信息、定位信息、域名信息、设备信息中的至少一种;
所述判断模块,根据所述用户信息,判断所述客户端所属的用户是否为指定企业的内部用户;或
根据所述定位信息,确定所述客户端所在的位置属于指定位置范围时,判断所述客户端是否命中了预设的随机概率;或
根据所述域名信息,判断所述客户端将要访问的域名是否为指定域名;或
根据所述设备信息,判断所述客户端的设备ID是否为预设的指定设备ID。
13.如权利要求11所述的装置,还包括:
第二分配模块,若所述判断模块的判断结果为否,则为所述客户端分配IPv4地址,以使所述客户端通过所述IPv4地址进行访问。
14.如权利要求13所述的装置,还包括:
第一灰度规则调整模块,确定所述客户端信息中,未命中所述灰度规则的第一客户端信息;
若所述第一客户端信息与所述灰度规则之间的差异程度低于预设阈值,则仍为所述客户端分配所述IPv6地址和所述IPv4地址,并在所述客户端通过所述IPv6地址访问成功后,动态调整所述灰度规则对应的命中范围,以使所述第一客户端信息能够命中所述动态调整后的所述灰度规则。
15.如权利要求11所述的装置,还包括:
第二灰度规则调整模块,根据历史记录,确定已命中了灰度规则的其他客户端;
确定所述其他客户端通过为其分配的IPv6地址进行访问时的访问结果;
对所述访问结果进行分析,以确定访问失败的多个客户端中,具有的相同的第二客户端信息,并根据所述第二客户端信息,动态调整所述灰度规则对应的命中范围。
16.如权利要求11所述的装置,所述第一接收模块,接收多个客户端同时分别发送的多个DNS请求;
所述判断模块,根据所述多个DNS请求中携带的客户端信息,分别判断所述多个客户端是否命中了对应的灰度规则;
所述第一分配模块,确定所述多个客户端的对应的客户端信息中,指定客户端信息相同,则为所述多个客户端中的部分客户端分配IPv6地址和IPv4地址;
若所述部分客户端通过所述IPv6地址访问成功,则为剩余客户端延迟分配所述IPv6地址和所述IPv4地址。
17.一种基于DNS的IPv6引流装置,包括:
发送模块,向DNS调度设备发送携带有客户端信息的DNS请求;
第二接收模块,接收所述DNS调度设备返回的IPv6地址和IPv4地址,所述IPv6地址和所述IPv4地址是所述DNS调度设备根据所述客户端信息判断客户端命中了对应的灰度规则时分配的;
访问模块,通过所述IPv6地址进行访问,并在通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
18.如权利要求17所述的装置,所述发送模块,向DNS调度设备发送携带有客户端信息的HTTP DNS请求;
所述访问模块,通过所述IPv6地址访问所述客户端的所属IPv6服务端集群,并在访问所述所属IPv6服务端集群失败的情况下,通过所述IPv6地址访问其他IPv6服务端集群,所述所属IPv6服务端集群的优先级高于所述其他IPv6服务端集群。
19.如权利要求17所述的装置,所述访问模块,通过所述IPv6地址以及所述IPv4地址同时进行访问,分别得到所述IPv6地址对应的第一页面以及所述IPv4地址对应的第二页面;
展示所述第一页面,并在通过所述IPv6地址访问失败的情况下,切换为展示所述第二页面。
20.如权利要求19所述的装置,所述访问模块,生成相应的虚拟页面;
以所述虚拟页面作为载体,在所述虚拟页面中展示所述第一页面,并同时以透明的方式展示所述第二页面;
在通过所述IPv6地址访问失败的情况下,切换展示方式,以在所述虚拟页面中展示所述第二页面,并同时以透明的方式展示所述第一页面。
21.一种基于DNS的IPv6引流设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收客户端发送的DNS请求;
根据所述DNS请求中携带的客户端信息,判断所述客户端是否命中了对应的灰度规则;
若是,则为所述客户端分配IPv6地址和IPv4地址,以使所述客户端通过所述IPv6地址进行访问,并在所述客户端通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
22.一种基于DNS的IPv6引流设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
向DNS调度设备发送携带有客户端信息的DNS请求;
接收所述DNS调度设备返回的IPv6地址和IPv4地址,所述IPv6地址和所述IPv4地址是所述DNS调度设备根据所述客户端信息判断客户端命中了对应的灰度规则时分配的;
通过所述IPv6地址进行访问,并在通过所述IPv6地址访问失败的情况下,通过所述IPv4地址进行访问。
CN202111069634.9A 2021-09-13 2021-09-13 基于DNS的IPv6引流方法、装置以及设备 Pending CN113840018A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111069634.9A CN113840018A (zh) 2021-09-13 2021-09-13 基于DNS的IPv6引流方法、装置以及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111069634.9A CN113840018A (zh) 2021-09-13 2021-09-13 基于DNS的IPv6引流方法、装置以及设备

Publications (1)

Publication Number Publication Date
CN113840018A true CN113840018A (zh) 2021-12-24

Family

ID=78959065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111069634.9A Pending CN113840018A (zh) 2021-09-13 2021-09-13 基于DNS的IPv6引流方法、装置以及设备

Country Status (1)

Country Link
CN (1) CN113840018A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009021921A (ja) * 2007-07-13 2009-01-29 Intec Netcore Inc IPv4/IPv6デュアルスタック対応端末のための情報提示システム
CN105227687A (zh) * 2014-06-20 2016-01-06 中国电信股份有限公司 IPv4用户访问IPv6资源的通信方法与系统
US9584328B1 (en) * 2015-10-05 2017-02-28 Cloudflare, Inc. Embedding information or information identifier in an IPv6 address
WO2017041666A1 (zh) * 2015-09-11 2017-03-16 阿里巴巴集团控股有限公司 一种针对访问请求的处理方法和装置
CN109451097A (zh) * 2019-01-02 2019-03-08 北京宏图佳都通信设备有限公司 IPv4/IPv6地址转换系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009021921A (ja) * 2007-07-13 2009-01-29 Intec Netcore Inc IPv4/IPv6デュアルスタック対応端末のための情報提示システム
CN105227687A (zh) * 2014-06-20 2016-01-06 中国电信股份有限公司 IPv4用户访问IPv6资源的通信方法与系统
WO2017041666A1 (zh) * 2015-09-11 2017-03-16 阿里巴巴集团控股有限公司 一种针对访问请求的处理方法和装置
US9584328B1 (en) * 2015-10-05 2017-02-28 Cloudflare, Inc. Embedding information or information identifier in an IPv6 address
CN109451097A (zh) * 2019-01-02 2019-03-08 北京宏图佳都通信设备有限公司 IPv4/IPv6地址转换系统

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
QIANSHANDING0708: "灰度架构设计方案", pages 1 - 6, Retrieved from the Internet <URL:http://t.csdnimg.cn/1motp> *
杨俊杰;段延慧;: "微众银行互联网应用系统IPv6改造经验分享", 金融电子化, no. 03, 15 March 2020 (2020-03-15) *
许偲;: "使用NAT46+DNS46实现IPv4单栈内网用户访问IPv6公网资源", 信息通信, no. 04, 15 April 2020 (2020-04-15) *
谢军;: "国泰君安证券IPv6项目改造经验分享", 金融电子化, no. 02, 15 February 2020 (2020-02-15) *
阿里巴巴文娱技术: "5G 的基础架构:如何让数亿用户无缝支持 IPv6?", pages 1 - 7, Retrieved from the Internet <URL:http://t.csdnimg.cn/HziL0> *

Similar Documents

Publication Publication Date Title
US10841364B2 (en) Using and comparing known and current activity states to determine receptiveness
US10257115B2 (en) Cloud-based service resource provisioning based on network characteristics
US10015243B2 (en) Optimized content distribution based on metrics derived from the end user
US9246874B2 (en) Virtual domain name system
US11182214B2 (en) Allocating computing resources based on properties associated with location
CN111309614B (zh) A/b测试方法、装置及电子设备
US20140129720A1 (en) Method, apparatus, and system for allocating cdn volume
US10223673B2 (en) Cognitive adaptation to user behavior for personalized automatic processing of events
US11550635B1 (en) Using delayed autocorrelation to improve the predictive scaling of computing resources
CN105357233A (zh) 一种远程调用方法与设备
WO2016197857A1 (zh) 位置信息提供方法及装置
CN111782692A (zh) 一种频率控制方法及装置
CN116542663A (zh) 一种聚合码的支付页面的访问方法、装置、设备及介质
CN104793982A (zh) 一种创建虚拟机的方法和设备
CN111464332A (zh) 容灾方法、装置及设备
CN106021512A (zh) 一种页面刷新方法及装置
CN111556135A (zh) 一种请求调度方法、系统、装置及电子设备
US20170012897A1 (en) Intelligent framework for shared services orchestration
US20160301625A1 (en) Intelligent High-Volume Cloud Application Programming Interface Request Caching
CN113840018A (zh) 基于DNS的IPv6引流方法、装置以及设备
CN108021464B (zh) 一种应用程序响应数据的兜底处理的方法以及装置
CN115617648A (zh) 一种寻址测试的方法、装置、存储介质及电子设备
US11115268B2 (en) Assistance in service provision
CN113873054A (zh) 基于DNS的IPv6引流方法、装置以及设备
CN113761400A (zh) 一种访问请求转发方法、装置及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination