CN114731338A - 一种用于域名系统服务器的负载的控制的系统和方法 - Google Patents

一种用于域名系统服务器的负载的控制的系统和方法 Download PDF

Info

Publication number
CN114731338A
CN114731338A CN201980102217.4A CN201980102217A CN114731338A CN 114731338 A CN114731338 A CN 114731338A CN 201980102217 A CN201980102217 A CN 201980102217A CN 114731338 A CN114731338 A CN 114731338A
Authority
CN
China
Prior art keywords
dns
domain name
query
packet
server
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
Application number
CN201980102217.4A
Other languages
English (en)
Other versions
CN114731338B (zh
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.)
Beijing Didi Infinity Technology and Development Co Ltd
Original Assignee
Beijing Didi Infinity Technology and Development 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 Beijing Didi Infinity Technology and Development Co Ltd filed Critical Beijing Didi Infinity Technology and Development Co Ltd
Publication of CN114731338A publication Critical patent/CN114731338A/zh
Application granted granted Critical
Publication of CN114731338B publication Critical patent/CN114731338B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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]

Landscapes

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

Abstract

本说明书的实施例提供了一种用于域名系统(DNS)服务器的负载的控制系统和方法。示例性所述系统可以包括通信接口,被配置为从用户终端接收DNS查询。所述DNS查询可以包括至少一个DNS数据包。所述系统还可以包括至少一个处理器,耦合到所述通信接口。所述至少一个处理器被配置为从所述DNS数据包中提取指示源IP地址的信息,以及基于所述源IP地址为所述DNS数据包分配预先确定的控制策略。此外,所述至少一个处理器还被配置为基于分配的所述预先确定的控制策略标记所述DNS数据包的未使用字段,以及将标记的DNS数据包传输到所述DNS服务器。

Description

一种用于域名系统服务器的负载的控制的系统和方法
技术领域
本说明书涉及用于域名系统(DNS)服务器的负载控制的系统和方法,更具体地,涉及控制DNS服务器的IPv6查询负载的系统和方法。
背景技术
域名以独特的方式被广泛用于识别资源,以便不同的主机、网络、协议族、互联网和管理组织识别这些名称。域名系统(DNS)通过将人类可读的域名转换为IP地址来帮助用户和网络设备发现其他设备,这一过程称为域名“解析”。用户可以通过发送DNS查询,使用域名访问与该域名相关的资源。DNS查询本质上是查询存储在与特定域名相对应的DNS服务器中的主机IP地址的请求。这类似于使用收件人姓名在电话簿中查找电话号码。为了满足请求,必须将具有适当类型的DNS查询传递给DNS服务器进行解析。
Internet协议版本4(IPv4)和Internet协议版本6(IPv6)是常用的DNS查询类型。Internet协议版本4(IPv4)是Internet协议(IP)的第四个版本。它是Internet和其他分组交换网络中基于标准的互联方法的核心协议之一。IPv4使用32位地址,将地址空间限制为232。IPv6是Internet协议(IP)的新版本。IPv6的主要动机是提供比以前版本更多的IP地址,IPv4提供的有限地址空间几乎已经耗尽。尽管IPv4和IPv6都被广泛使用,但这两种协议不能互相操作,这意味着IPv4主机/服务器无法在协议级别与IPv6主机/服务器通信。一般来说,由于现有基础设施处理IPv6类型DNS查询的能力有限,因此控制DNS服务器的IPv6查询负载非常重要。
为了控制DNS服务器解析IPv6查询的负载,现有的解决方案包括更新用户终端的解析器来控制IPv6查询的负载,以及建立包括路由器、交换机和服务器等专用的IPv6基础设施来提供IPv6 DNS服务。然而,这两种解决方案的成本都很高。例如,更新解析器会导致大量的软件更新以及更新导致的服务中断。专用IPv6基础设施需要维护额外的域名并建立新的基础设施。
本发明实施例通过控制DNS服务器的IPv6查询负载的系统和方法来解决上述问题,使DNS服务器更加可靠和高效。
发明内容
本说明书的实施例提供一种用于域名系统(DNS)服务器的负载控制的系统。示例性系统可以包括通信接口,被配置为从用户终端接收DNS查询。所述DNS查询可以包括至少一个DNS数据包。所述系统还可以包括至少一个处理器,耦合到所述通信接口。至少一个处理器被配置为从所述DNS数据包中提取指示源IP地址的信息,以及基于所述源IP地址为所述DNS数据包分配预先确定的控制策略。此外,所述至少一个处理器还被配置为基于分配的所述预先确定的控制策略标记所述DNS数据包的未使用字段,以及将标记的DNS数据包传输到所述DNS服务器。
本说明书的实施例还提供了一种用于DNS服务器的负载的控制方法。一种示例性方法可以包括从用户终端接收DNS查询,其中所述DNS查询包括至少一个DNS数据包。所述方法还可以包括从所述DNS数据包中提取指示源IP地址的信息并且基于所述源IP地址为所述DNS数据包分配预先确定的控制策略。所述方法还可以包括基于分配的所述预先确定的控制策略标记所述DNS数据包的未使用字段以及将标记的DNS数据包传输到所述DNS服务器。
本说明书的实施例还提供了一种存储指令的非暂时性计算机可读存储介质,所述指令由一个或以上处理器执行时,使所述一个或以上处理器执行一种用于域名系统(DNS)服务器的负载的控制的方法。所述方法可以包括从用户终端接收DNS查询,其中所述DNS查询包括至少一个DNS数据包。所述方法还可以包括从所述DNS数据包中提取指示源IP地址的信息并且基于所述源IP地址为所述DNS数据包分配预先确定的控制策略。所述方法还可以包括基于分配的所述预先确定的控制策略标记所述DNS数据包的未使用字段以及将标记的DNS数据包传输到所述DNS服务器。
应当理解的是,如所要求保护的,前述一般描述和以下详细描述仅是示例性和解释性的,而不是对本发明的限制。
附图说明
图1是根据本说明书的一些实施例所示的配备有用于执行DNS服务器的负载控制的负载控制系统的示例性通信系统的示意图。
图2是根据本说明书的一些实施例所示的用于执行DNS服务器的负载控制的示例性负载控制系统的框图。
图3是根据本说明书的一些实施例所示的用于DNS服务器的负载控制的示例性方法的流程图。
图4是根据本说明书的一些实施例所示的用于确定所请求的域名的可访问性的示例性方法流程图。
图5是根据本说明书的一些实施例所示的用于分配预先确定的控制策略的示例性方法。
图6是根据本说明书的一些实施例所示的具有用于DNS的扩展机制的示例性DNS数据包。
具体实施方式
现在将详细参考示例性实施例,其示例在附图中示出。在可能的情况下,将在整个附图中使用相同的附图标记来指代相同或相似的部分。
图1是根据本说明书的一些实施例所示的配备有用于执行DNS服务器的负载控制的负载控制系统160的示例性通信系统100的示意图。如图1所示,用户终端110可以请求通过网络120访问服务支持节点130(例如,DNS服务器170)以检索信息。
在一些实施例中,用户终端110可以包括可以与用户交互的任何合适的设备,例如智能电话、平板电脑、可穿戴设备、计算机等。在一些实施例中,用户终端110可以是独立设备或集成在另一设备内,例如车辆、移动电话、可穿戴设备、相机等。
在一些实施例中,网络120可以是因特网或在例如HTTPDNS 140和本地DNS 150之类的源节点和目的地节点之间以小分组的形式分组和发送数据的任何其他分组交换网络(PSN)。例如,网络120可以在,例如无线局域网(WLAN)、广域网(WAN)、蜂窝网络、卫星通信网络等的局域网上实现。
服务支持节点130可以是与特定域名相关联的主机设备。用户终端110接收用户输入的域名,例如URL。为了在正确的主机地址访问服务支持节点130,用户终端110必须首先将DNS查询传输到DNS解析系统105以将域名翻译成主机IP地址。在一些实施例中,用户终端110可以包括操作系统(OS)和作为OS的一部分的解析器。解析器可以负责发起和排序DNS查询,最终导致对所寻求资源的完全解析(转换)(例如,将域名转换为IP地址)。在一些实施例中,解析器可以是本地DNS缓存或单个存根解析器。
在一些实施例中,DNS解析系统105可以用并行DNS解析路由来实现,包括通过HTTPDNS 140的http DNS路由和通过本地DNS 150的本地DNS路由。Https DNS路由可以是主要路由,本地DNS路由作为备份。因此,用户终端110发送的DNS查询可以首先被HTTPDNS 140或本地DNS 150接收。在正常情况下,大约90%从用户终端110发送的DNS查询将通过HTTPDNS 140,大约10%的DNS查询可以由本地DNS 150处理。HTTPDNS 140可以部分解析DNS查询请求的域名的IP地址,如果无法解析,则将DNS查询发送到根级DNS服务器。另一方面,本地DNS 150可能经常缺乏完全解析DNS查询的能力,并将绝大多数DNS查询传递给DNS服务器170以进行解析。当HTTPDNS 140发生故障时,所有DNS查询可能会改为通过本地DNS 150,因此DNS服务器170可能会过载。因此,DNS解析可能会失败或变慢,并且可能会影响用户体验。
为了减少对DNS服务器170的压力,本说明书在DNS解析系统105中提供负载控制系统160作为额外层以在DNS查询到达DNS服务器170之前预处理DNS查询。在一些实施例中,例如,负载控制系统160可以位于HTTPDNS 140/本地DNS 150和DNS服务器170之间。负载控制系统160可以预处理DNS查询,并且如果DNS查询是IPv6查询,则分配预先确定的控制策略中的一个。DNS服务器170然后可以基于分配的预先确定的控制策略来解析/处理预处理的IPv6查询。因此,可以显著降低DNS服务器170的处理负荷。如果没有负载控制系统160,DNS服务器170很容易因为它必须解决的过多的IPv6查询而变得过载。
在一些实施例中,HTTPDNS 140可以是DNS over HTTP(DoH)服务器,其被配置为使用https统一资源标识符(URI)通过HTTP发送DNS查询并获得DNS响应。每个DNS查询及其响应都可以映射到HTTP交换中。DoH服务器(例如,HTTPDNS 140)可以为请求/查询和响应建立默认媒体格式类型,但使用正常的HTTP内容协商机制。除了这种媒体类型协商之外,DoH还将DNS查询与HTTP功能(例如缓存、重定向、代理、身份验证和压缩)保持一致。与基于用户数据报协议(UDP)的传统DNS查询相比,所有这些特性使DoH查询更加可靠和高效。在一些实施例中,HTTPDNS 140可能无法完全解析DNS查询所寻求的资源,并且它可能将DNS查询引导到正确的服务器(例如,DNS服务器170)。
在一些实施例中,本地DNS 150可以是由本地网络运营商(例如,网络120的提供商和运营商)提供的本地DNS服务器。例如,本地DNS 150可以是由通信运营商提供的本地DNS服务器。在另一示例中,如果网络120是校园网络,则本地DNS 150可以是学校提供的本地DNS服务器。在一些实施例中,用户终端110可以通过手动设置正在使用的本地DNS服务器的IP地址来选择本地DNS服务器来发送DNS查询。在一些实施例中,本地DNS150可以缓存一些IP地址。如果请求的域名匹配缓存在本地DNS 150中的IP地址中的一个,则用户终端110可以直接从本地DNS 150接收循环IP地址。然而,在大多数情况下,请求的域名不匹配缓存在本地DNS 150中的任何IP地址,因此,可以将DNS查询传输到DNS服务器170以进行进一步处理。
当HTTPDNS 140关闭时,所有DNS查询将被定向到本地DNS 150。由于HTTPDNS140的处理能力有限(例如,可以缓存在本地DNS服务器中的IP地址有限),如果没有适当的负载控制机制,例如在DNS服务器170之前设置负载控制系统160,可能会导致DNS服务器170的DNS查询过大。由于DNS服务器170通常资源有限,可能无法完全解析IPv6查询,因此需要控制IPv6查询负载以防止DNS服务器170由于IPv6查询负载过大而崩溃。本说明书在DNS服务器170之前提供负载控制系统160以控制IPv6查询负载。
在一些实施例中,负载控制系统160可以实现为物理装置、云软件、HTTPDNS 140、本地DNS 150和/或DNS服务器170上的应用程序,或任何其他合适的系统。负载控制系统160可以是通用服务器或专门设计用于负载控制的专有设备。可以设想,负载控制系统160可以是独立系统(例如,服务器)或独立服务器的集成组件(例如,本地DNS 150和/或DNS服务器170的一部分)。
在一些实施例中,从本地DNS 150传输的DNS查询可以由负载控制系统160进行预处理(例如,基于DNS查询类型过滤DNS查询、确定请求的域名的可访问性、分配预先确定的控制策略和基于分配的预先确定的控制策略标记DNS查询),将在下面详细披露。因为负载控制系统160可以控制IPv6查询的负载以由DNS服务器170完全解析,所以在DNS服务器170之前设置负载控制系统160将防止DNS服务器170过载,特别是在HTTPDNS 140关闭时。
在一些实施例中,负载控制系统160可以将预处理的DNS查询传输到DNS服务器170以供进一步处理。在一些实施例中,DNS服务器170可以是存储包括所请求的域名的域空间的一部分的权威服务器。在一些实施例中,DNS服务器170可以基于负载控制系统160的预处理结果来处理DNS查询。
图2是根据本说明书的一些实施例所示的用于执行DNS服务器的负载控制的示例性负载控制系统160的框图。根据本说明书,负载控制系统160可以从本地DNS 150接收DNS查询201。负载控制系统160可以被配置为基于下面详细公开的控制方法预处理DNS查询201并发送预处理的DNS查询203向DNS服务器170以控制DNS服务器170的负载。尽管图2将负载控制系统160显示为独立系统,但可以设想,在一些实施例中,负载控制系统160可以是部分由HTTPDNS 140/本地DNS 150实现,部分由DNS服务器170实现的分布式系统。例如,在一些实施例中,DNS查询过滤可以由HTTPDNS 140/本地DNS 150实现,其余功能可以由DNS服务器170实现。
在一些实施例中,如图2所示,负载控制系统160可以包括通信接口202和处理器204。在一些实施例中,负载控制系统160还可以包括内存206和存储器208。在一些实施例中,负载控制系统160可以在单个设备中具有不同的模块,例如集成电路(IC)芯片(实现为专用集成电路(ASIC)或现场可编程门阵列(FPGA)),或具有专用功能的单独设备。在一些实施例中,负载控制系统160的一个或以上组件可位于云计算环境中,或者可替代地位于单个位置或分布式位置。负载控制系统160的组件可以在集成设备中或分布在不同位置,但通过网络(未示出)相互通信。
通信接口202可以从本地DNS 150接收数据(例如,DNS查询201),并通过通信电缆、无线局域网(WLAN)、广域网(WAN)、例如无线电波之类的无线网络、蜂窝网络、卫星通信链路和/或本地或短程无线网络(例如,蓝牙TM),或其他通信方法发送数据(例如预处理的DNS查询203)到DNS服务器170。在一些实施例中,通信接口202可以是综合服务数字网络(ISDN)卡、电缆调制解调器、卫星调制解调器或提供数据通信连接的调制解调器。作为另一个示例,通信接口202可以是局域网(LAN)卡,以提供到兼容LAN的数据通信连接。无线链路也可以由通信接口202实现。在这样的实现中,通信接口202可以通过网络发送和接收携带代表各种类型信息的数字数据流的电、电磁或光信号。
与一些实施例一致,通信接口202可以进一步将接收到的数据提供给存储器208进行存储或提供给处理器204进行处理。通信接口202还可以接收由处理器204处理的DNS查询,并将预处理的DNS查询(例如,预处理的DNS查询203)提供给DNS服务器170。
处理器204可以包括任何适当类型的通用或专用微处理器、数字信号处理器或微控制器。处理器204可以被配置为专用于控制DNS服务器负载的单独的处理器模块。或者,处理器204可以被配置为共享处理器模块(例如,处理器204可以是本地DNS 150上的共享处理器模块和/或DNS服务器170上的共享处理器模块),用于执行与负载控制相关的其他功能。
如图2所示,处理器204可以包括多个模块,例如信息提取单元210、DNS查询类型确定单元212、域名可访问性确定单元214、控制策略确定单元216和DNS数据包标记单元218等。这些模块(以及任何对应的子模块或子单元)可以是处理器204的硬件单元(例如,集成电路的部分),设计用于为与处理器204通过执行至少一部分的程序来实现的其他组件或软件单元一起使用。该程序可以存储在计算机可读介质上,并且当由处理器204执行时,它可以执行一个或以上功能。虽然图2示出的单元210-218都在一个处理器204内,但是可以设想这些单元可以分布在彼此靠近或远离的多个处理器之间。
在从本地DNS 150接收到DNS查询201之后,信息提取单元210可以被配置为解析DNS查询201并提取在DNS查询201中编码的基本信息。在一些实施例中,基本信息可以包括DNS查询201的类型(例如,DNS查询是IPv4查询还是IPv6查询),DNS查询201的请求的域名和源IP地址。例如,信息提取单元210可以提取家族类型(例如,A代表IPv4查询,AAAA表示DNS查询201的IPv6查询)。DNS查询201的类型稍后可用于过滤DNS查询以供后续处理,例如确定请求的域名的可访问性、确定预先确定的控制策略和标记DNS数据包。
在一些实施例中,所请求的域名可以是用户提供的输入的一部分。例如,“www.example.com”可以是包括在DNS查询201中的域名。在一些实施例中,源IP地址可以是端点的IP地址(例如,用户终端110的IP地址)。源IP地址可以在后面的步骤(下面详细描述)中用于确定分配给DNS查询201的预先确定的控制策略。在一些实施例中,DNS查询的类型、请求的域名和DNS查询201的源IP地址可以存储在内存206和/或存储器208中作为DNS查询201的参考。
在提取DNS查询201的基本信息之后,DNS查询类型确定单元212可以确定DNS查询201的类型并相应地过滤DNS查询201。例如,具有家族类型A的DNS查询201可以表示IPv4查询,具有家族类型AAAA的DNS查询201可以表示IPv6查询。在一些实施例中,DNS查询类型确定单元212可以过滤IPv6查询并且通过通信接口202将IPv4查询传递给DNS服务器170以进行完全解析。IPv6查询可以在负载控制系统160内被进一步处理,然后被传输给DNS服务器170。例如,DNS查询类型确定单元212可以根据表1进行过滤:
类型 处理
A 传输到DNS服务器170以进行完全解析
AAAA 留在负载控制系统160中进行进一步处理
表1
在基于DNS查询类型过滤DNS查询201之后,域名可访问性确定单元214可以基于预先确定的黑白名单确定所请求的域名的可访问性。在一些实施例中,预先确定的黑白名单可以包括域名记录。每条记录可以包括几个字段,例如关键字、关键字的值和域名的可访问性的值。例如,一个域名的记录可能如表2所示:
关键字 可访问性的值
www.example.com XXX B/W
表2
在一些实施例中,关键字可以是域名。在一些实施例中,记录可以将值分配给关键字以用于索引目的。例如,记录中的关键字(即域名)的值可能是关键字的哈希值。哈希是一种将一个值转换为另一个值的函数,可用于域名索引。可以设想,也可以使用其他合适的索引方法来将域名记录保存在预先确定的黑白名单上。
在一些实施例中,可访问性的值可以表示基于端点组(例如,用户终端110)和/或端点请求的动作的域名的可访问性。在一个简化的示例中,可访问性的值可以是“黑色”或“白色”。“白色”可访问性的值表示所有端点都可以通过各种操作访问域名。“黑色”可访问性的值表示域名的可访问性存在一些限制。在一些实施例中,如果在DNS查询201中请求的域名被列为预先确定的黑白名单上的记录并且与域名相关联的可访问性的值为白色,则DNS查询201可以被传输到DNS服务器170以进行完全解析。否则,DNS查询201可以留在负载控制系统160中以供进一步处理。
可以设想,可访问性的值不限于黑白。可访问性的值可以是其他二进制值,例如“0”和“1”。可访问性的值还可以采用两个以上的值,以便可以对域名应用不同的可访问性限制(例如,基于端点的源IP地址和/或请求的操作,对域名的可访问性具有更全面规则的策略)。例如,可以使用不同的颜色(例如,超过2种颜色)或其他指示符。
在如上所述的一些实施例中,在预先确定的黑白名单上,可以通过域名的哈希值来索引域名。在确定DNS查询201的请求域的可访问性时,域名可访问性确定单元214还可以被配置为对所请求的域名进行哈希处理,并将所请求的域名的哈希值与预先确定的黑白名单列表上列出的哈希值进行比较。例如,域名可访问性确定单元214可以在预先确定的黑白名单上查找所请求的域名的哈希值,以查看所请求的域名的哈希值是否与域名记录的哈希值索引匹配。如果所请求的域名的哈希值与列出的哈希值中的一个匹配,并且与列出的哈希值对应的域名可以不受限制地访问(例如,在简化示例中列出的可访问性的值是白色的),则DNS查询201可以是通过通信接口202传输到DNS服务器170以进行完全解析。否则,如果匹配的域名未列出为无限制可访问(例如,列出的可访问性的值在简化示例中为黑色),或者请求的域名未列出在预先确定的黑白名单上,DNS查询201将留在负载控制系统160中以供进一步处理。
在确定所请求的域名的可访问性之后,控制策略确定单元216可以基于DNS查询201的源IP地址来确定并向DNS查询201分配预先确定的控制策略。如图5所示,源IP地址可以被分成不同的组并被分配不同的预先确定控制策略。在一个简化的示例中,可以根据用户是私有网络用户(例如,源IP地址组1)还是公共网络用户(例如,源IP地址组2)来对源IP地址进行分组。例如,源自专用网络的DNS查询可以由DNS服务器170完全解析。另一方面,源自公共网络用户的DNS查询可能被拒绝访问所有IPv6域名,因此从用户发送的DNS查询当被DNS服务器170接收到时,DNS服务器170不会完全解析。控制策略确定单元216可以相应地确定控制策略并将其分配给DNS查询201。DNS服务器170可以基于分配的预先确定的控制策略来解析DNS查询201。这可以节省DNS服务器170的计算能力。
可以设想,源IP地址也可以基于其他方法/规则进行分组,并且可以根据不同的要求分配不同的预先确定的控制策略。例如,源IP地址组可以分为n个不同的组,如图5所示的每个组可以对应一个预先确定的控制策略(例如,预先确定的控制策略1到预先确定的控制策略n的预先确定的控制策略中的一个)。可以设想,本说明书公开的分组和相应的预先确定的控制策略仅是示例性和说明性的,而不是限制性的。
在为DNS查询201分配预先确定的控制策略之后,DNS数据包标记单元218可以根据分配的预先确定的控制策略标记DNS查询201的未使用字段。例如,可以标记DNS查询201的未使用字段以指示分配给DNS查询201的预先确定的控制策略。如图6所示,DNS数据包标记单元218可以标记DNS查询201的DNS数据包的EDNS客户端子网(ECS)字段,以指示分配给DNS查询201的预先确定的控制策略。如图6所示,DNS数据包600可以包括传统DNS查询字段602和包括选项代码(OPT)资源记录字段606和ECS字段608的DNS扩展机制(EDNS)字段604。在一些实施例中,ECS字段在DNS查询中定义了递归解析器(例如,Google公共DNS)将部分客户端IP地址信息发送到DNS服务器的机制。ECS字段可用于在响应来自公共DNS解析器的名称查找时提供准确的地理定位响应。当DNS服务器170没有这种功能/需要时,ECS字段不回复在DNS查询201中编码的ECS查询。因此,DNS查询201的ECS字段608变为未使用的(即,编码的信息不被DNS服务器170考虑)。在一些实施例中,可以以不同地索引方式,索引不同的预先确定的控制策略。DNS数据包标记单元218可以将分配的预先确定的控制策略的索引编码到ECS字段608中(即,用分配的预先确定的控制策略的索引标记ECS字段)而不干扰编码在DNS查询201的DNS数据包中的现有信息。可以设想的是,DNS数据包的其他未使用部分也可用于对分配的预先确定的控制策略的索引进行编码。例如,如果在DNS服务器170上没有可用的查询选项,则OPT资源记录字段606也可以用于对分配的预先确定的控制策略的索引进行编码。
在一些实施例中,DNS查询201可以由如上所述的负载控制系统160预处理。在预处理之后,预处理的DNS查询203可以是原始IPv4查询、请求在预先确定黑白名单上列出的可访问域名的原始IPv6查询,或者用分配的预先确定的控制策略索引的标记/编码的IPv6查询。
在一些实施例中,预处理的DNS查询203可以从通信接口202传输到DNS服务器170。至于DNS查询201请求未在预先确定的黑白名单上列出的IPv6域名中,或者请求被列为黑色的IPv6域名,DNS服务器170可以在完全解析DNS查询201之前提取指示分配的预先确定的控制策略的信息(例如,解析在ECS字段中编码的信息)。这样,可以控制DNS服务器170上的IPv6查询负载。
在一些实施例中,负载控制系统160可以进一步包括内存206和存储器208。内存206和存储器208可以包括用于存储处理器204可能需要操作的任何类型的信息的任何适当类型的大容量存储器。内存206和存储器208可以是易失性或非易失性、磁性、半导体、磁带、光学、可移动、不可移动或其他类型的存储设备或有形(即,非暂时性)计算机可读介质,包括但不限于ROM、闪存、动态RAM和静态RAM。内存206和/或存储器208可以用于存储一个或以上计算机程序,这些计算机程序可以由处理器204执行以执行说明书所述的负载控制。例如,内存206和/或存储器208可以用于存储可由处理器204执行以基于DNS查询类型过滤DNS查询、确定所请求的域名的可访问性、分配预先确定的控制策略和/或根据分配的预先确定的控制策略标记DNS查询。
内存206和/或存储器208可以进一步用于存储由处理器204使用的信息和数据。例如,内存206和/或存储器208可以用于存储各种类型的数据(例如,预先确定的黑白名单和预先确定的控制策略等)。内存206和/或存储器208还可以存储中间数据,例如查询类型、所请求的域名的哈希值、源IP地址结果等。各种类型的数据可以永久存储、定期删除或在每次处理数据帧之后立即删除。
图3是根据本说明书的实施例所示的用于DNS服务器的负载控制的示例性方法300的流程图。在一些实施例中,方法300可以由负载控制系统160实施。然而,方法300不限于该示例性实施例,而是可以由HTTPDNS 140、本地DNS 150和/或DNS服务器170联合实施。方法300可以包括如下所述的步骤S302-S318。应当理解的是,执行本说明书所述的内容的一些步骤可以是可选的。此外,一些步骤可以同时执行,或者以不同于图3所示的顺序执行。
在步骤S302中,负载控制系统160可以从HTTPDNS 140或本地DNS 150接收DNS查询。在一些实施例中,DNS查询可以在用户输入访问服务支持节点130时由用户终端110发送。
在步骤S304中,负载控制系统160可以提取编码在DNS查询的DNS数据包中的基本信息。在一些实施例中,基本信息可以包括DNS查询的类型(例如,IPv4查询或IPv6查询)、请求的域名和DNS查询的源IP地址。在一些实施例中,负载控制系统160可以提取DNS查询的家族类型(例如,其中A代表IPv4查询,AAAA代表IPv6查询)。DNS查询的类型稍后可用于过滤DNS查询以进行进一步处理。
在一些实施例中,所请求的域名可以由用户提供。例如,“www.example.com”可能是DNS查询请求的域名。在一些实施例中,源IP地址可以是端点的IP地址(例如,用户终端110的IP地址)。源IP地址可以在后面的步骤(详细描述)中用于确定分配给DNS查询的控制策略。
在步骤S306中,负载控制系统160可以确定所请求的域名的类型是否是AAAA并且基于DNS查询是AAAA类型来过滤DNS查询。例如,如果所请求的域名的类型是AAAA(S306:是),则负载控制系统160可以保留DNS查询以供进一步预处理,例如,在步骤S310-316中提供,然后将其传输到DNS服务器170。否则(S306:否),负载控制系统160可以确定DNS查询不是IPv6查询(例如,IPv4查询),并且在S308中将DNS查询发送到DNS服务器170。
在步骤S310中,负载控制系统160可以基于预先确定的黑白名单确定所请求的域名的可访问性。在一些实施例中,预先确定的黑白名单可以包括域名记录。例如,域名在黑白名单上的记录可以包括关键字、关键字的值、域名的可访问性的值等字段。
在一些实施例中,可访问性的值可以表示域名的可访问性并且可以采用“黑色”或“白色”值。在一些实施例中,如果DNS查询的所请求的域名被列为预先确定的黑白名单的记录并且其可访问性的值为白色,则负载控制系统160可以确定所请求的域名是可访问的(S310:是)。因此,方法300进行到步骤S308,其中可以将DNS查询201发送到DNS服务器170。否则(例如,域名具有黑色的可访问性的值或未列在预先确定的黑白名单上),负载控制系统160可以确定所请求的域名不可访问(S310:是)。DNS查询可以留在负载控制系统160中以进行进一步处理,例如通过步骤S312-S316。
方法300的步骤S310可以由如图4所示的方法400实施。在一些实施例中,预先确定的黑白名单上的域名可以通过其哈希值来索引。当确定DNS查询的请求的域名的可访问性时,在方法400的S402中,负载控制系统160可以求从DNS查询中提取的请求的域名的哈希值。负载控制系统160可以将请求的域名的哈希值与预先确定的黑白名单上列出的哈希值进行比较(步骤S404),并确定请求的域名是否在预先确定的黑白名单上列出(步骤S406)。例如,负载控制系统160可以在预先确定的黑白名单上查找所请求的域名的哈希值,并确定所请求的域名的哈希值是否与域名记录的哈希值索引中的一个匹配。如果所请求的域名未列在预先确定的黑白名单上(S406:否),则方法400进行到方法300的S312,其中DNS查询将留在负载控制系统160中以供进一步处理。如果列出了所请求的域名,则负载控制系统160可以进一步确定黑白名单上具有匹配哈希值的域名是否具有白色可访问性的值。如果列出的相应可访问性的值为白色(S410:是),则方法400进行到方法300的步骤S308,其中可以将DNS查询发送到DNS服务器170。否则,如果列出的可访问性的值是黑色(S410:是),方法400进行到S312。
回到方法300,在步骤S312中,负载控制系统160可以基于DNS查询的源IP地址来确定并向DNS查询分配预先确定的控制策略。例如,如图5所示,源IP地址可以被分成不同的组并被分配不同的预先确定的控制策略。在一个简化的示例中,可以基于源IP地址是指示私有网络用户(例如,源IP地址组1)还是公共网络用户(例如,源IP地址组2)来对源IP地址进行分组。源自专用网络的DNS查询可以分配一个控制策略,其中所有IPv6DNS查询将由DNS服务器170完全解析。另一方面,源自公共网络的DNS查询可以分配一个预先确定的控制策略,其中所有IPv6域名访问都被拒绝。因此,DNS服务器170对查询的解析是根据分配的预先确定的控制策略执行的。
在S314中,负载控制系统160可以根据分配的预先确定的控制策略标记DNS查询的未使用部分。在一些实施例中,如图6所示,负载控制系统160可以标记DNS查询的DNS分组的ECS字段。如图6所示,DNS查询的DNS数据包600可以包括传统DNS查询字段602、包括OPT资源记录字段606和ECS字段608的EDNS字段604。在步骤S316中,将预处理的DNS查询发送到DNS服务器170进行解析。在一些实施例中,预处理的DNS查询可以是原始IPv4查询、请求在黑白名单上列为可访问的域名的原始IPv6查询(例如,由S308提供的查询)或用分配的预先确定的控制策略的索引标记/编码的IPv6查询(例如,由S316提供的查询)。
在步骤S318中,DNS服务器170可以处理从负载控制系统160发送的预处理DNS查询。在一些实施例中,DNS服务器170可以完全解析由S308提供的DNS查询,例如请求在黑白名单上列为可访问的域名的原始IPv4查询或原始IPv6查询。对于IPv6查询,DNS服务器170可以首先提取查询的标记字段中的信息(例如,指示分配的预先确定的控制策略的DNS数据包的ECS字段)并基于提取的预先确定的控制策略解析DNS查询。
本说明书的另一方面涉及一种存储指令的非暂时性计算机可读介质,所述指令在被执行时使一个或以上处理器执行如上所述的方法。计算机可读介质可以包括易失性或非易失性、磁性、半导体、磁带、光学、可移动、不可移动或其他类型的计算机可读介质或计算机可读存储设备。例如,如本说明书所述的,计算机可读介质可以是其上存储有计算机指令的存储设备或存储器模块。在一些实施例中,计算机可读介质可以是其上存储有计算机指令的盘或闪存驱动器。
对于本领域的技术人员来说显而易见的是,可以对所说明书的系统和相关方法进行各种修改和变化。考虑到公开的系统和相关方法的说明书和实践,其他实施例对于本领域技术人员是显而易见的。
本说明书和示例旨在仅被认为是示例性的,真实范围由以下权利要求及其类似物指示。

Claims (20)

1.一种用于域名系统(DNS)服务器负载的控制系统,其特征在于,包括:
通信接口,被配置为从用户终端接收DNS查询,其中所述DNS查询包括至少一个DNS数据包;以及
至少一个处理器,耦合到所述通信接口,被配置为:
从所述DNS数据包中提取指示源IP地址的信息;
基于所述源IP地址为所述DNS数据包分配预先确定的控制策略;
基于分配的所述预先确定的控制策略标记所述DNS数据包的未使用字段;以及
将标记的DNS数据包传输到所述DNS服务器。
2.根据权利要求1所述的系统,其特征在于,所述至少一个处理器还用于:
从所述DNS数据包中提取指示至少一个请求的域名的信息;以及
基于预先确定的黑白名单确定所述请求的域名的可访问性。
3.根据权利要求2所述的系统,其特征在于,所述预先确定的黑白名单包括至少一个域名记录,以及所述至少一个域名记录包括至少一个关键字、与所述关键字相关联的可访问性的值和所述域名的哈希值。
4.根据权利要求3所述的系统,其特征在于,为了确定所述请求的域名的可访问性,所述至少一个处理器还用于:
确定所述请求的域名的当前哈希值;以及
将所述请求的域名的当前哈希值与所述黑白名单上的哈希值进行比较。
5.根据权利要求1所述的系统,其特征在于,所述DNS数据包的未使用字段是EDNS客户端子网(ECS)字段。
6.根据权利要求1所述的系统,其特征在于,所述预先确定的控制策略对至少一组预先确定的源IP地址指定至少一个限制。
7.根据权利要求1所述的系统,其特征在于,所述标记的DNS数据包由所述DNS服务器基于标记的字段进一步处理。
8.根据权利要求1所述的系统,其特征在于,所述DNS查询是IPv6查询或IPv4查询。
9.根据权利要求8所述的系统,其特征在于,所述DNS查询是通过HTTPs传输的,以及所述至少一个处理器还用于基于所述DNS查询是IPv6查询来过滤所述DNS查询。
10.一种用于域名系统(DNS)服务器负载的控制的计算机实现方法,其特征在于,包括:
从用户终端接收DNS查询,其中所述DNS查询包括至少一个DNS数据包;
从所述DNS数据包中提取指示源IP地址的信息;
基于所述源IP地址为所述DNS数据包分配预先确定的控制策略;
基于分配的所述预先确定的控制策略标记所述DNS数据包的未使用字段;以及
将标记的DNS数据包传输到所述DNS服务器。
11.根据权利要求10所述的计算机实现方法,其特征在于,还包括:
从所述DNS数据包中提取指示至少一个请求的域名的信息;以及
基于预先确定的黑白名单确定所述请求的域名的可访问性。
12.根据权利要求11所述的计算机实现方法,其特征在于,所述预先确定的黑白名单包括至少一个域名记录,以及所述至少一个域名记录包括至少一个关键字、与所述关键字相关联的可访问性的值和所述域名的哈希值。
13.根据权利要求12所述的计算机实现方法,其特征在于,为了确定所述请求的域名的可访问性,所述方法还包括:
确定所述请求的域名的当前哈希值;以及
将所述请求的域名的当前哈希值与所述黑白名单上的哈希值进行比较。
14.根据权利要求10所述的计算机实现方法,其特征在于,所述DNS数据包的未使用字段是EDNS客户端子网(ECS)字段。
15.根据权利要求10所述的计算机实现方法,其特征在于,所述预先确定的控制策略对至少一组预先确定的源IP地址指定至少一个限制。
16.根据权利要求10所述的计算机实现方法,其特征在于,所述标记的DNS数据包由所述DNS服务器基于标记的字段进一步处理。
17.根据权利要求10所述的计算机实现方法,其特征在于,所述DNS查询是IPv6查询或IPv4查询。
18.根据权利要求17所述的计算机实现方法,其特征在于,还包括基于所述DNS查询是IPv6查询来过滤所述DNS查询。
19.一种存储指令的非暂时性计算机可读存储介质,所述指令由一个或以上处理器执行时,使所述一个或以上处理器执行一种用于域名系统(DNS)服务器负载的控制方法,其特征在于,所述方法包括:
从用户终端接收DNS查询,其中所述DNS查询包括至少一个DNS数据包;
从所述DNS数据包中提取指示源IP地址的信息;
基于所述源IP地址为所述DNS数据包分配预先确定的控制策略;
基于分配的所述预先确定的控制策略标记所述DNS数据包的未使用字段;以及
将标记的DNS数据包传输到所述DNS服务器。
20.根据权利要求19所述的非暂时性计算机可读存储介质,其特征在于,所述方法进一步包括:
从所述DNS数据包中提取指示至少一个请求的域名的信息;以及
基于预先确定的黑白名单确定所述请求的域名的可访问性。
CN201980102217.4A 2019-12-03 2019-12-03 一种用于域名系统服务器的负载的控制的系统和方法 Active CN114731338B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/122731 WO2021108993A1 (en) 2019-12-03 2019-12-03 Systems and methods for load control of domain name system server

Publications (2)

Publication Number Publication Date
CN114731338A true CN114731338A (zh) 2022-07-08
CN114731338B CN114731338B (zh) 2024-05-03

Family

ID=76221289

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980102217.4A Active CN114731338B (zh) 2019-12-03 2019-12-03 一种用于域名系统服务器的负载的控制的系统和方法

Country Status (2)

Country Link
CN (1) CN114731338B (zh)
WO (1) WO2021108993A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101945053A (zh) * 2010-10-12 2011-01-12 杭州华三通信技术有限公司 一种报文的发送方法和装置
CN103581363A (zh) * 2013-11-29 2014-02-12 杜跃进 对恶意域名和非法访问的控制方法及装置
CN104754066A (zh) * 2013-12-26 2015-07-01 华为技术有限公司 一种报文处理方法和报文处理设备
CN106815259A (zh) * 2015-12-02 2017-06-09 中国电信股份有限公司 移动缓存业务控制方法、装置以及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7864780B1 (en) * 2003-04-29 2011-01-04 Cisco Technology, Inc. Apparatus and methods for handling name resolution over IPV6 using NAT-PT and DNS-ALG
CN100474858C (zh) * 2004-09-27 2009-04-01 上海贝尔阿尔卡特股份有限公司 域名解析方法、域名服务器及域名系统
CN102833364A (zh) * 2012-08-22 2012-12-19 深圳市共进电子股份有限公司 一种域名解析代理方法及网关设备
JP5837705B2 (ja) * 2013-01-11 2015-12-24 京セラ株式会社 通信端末及び記憶媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101945053A (zh) * 2010-10-12 2011-01-12 杭州华三通信技术有限公司 一种报文的发送方法和装置
CN103581363A (zh) * 2013-11-29 2014-02-12 杜跃进 对恶意域名和非法访问的控制方法及装置
CN104754066A (zh) * 2013-12-26 2015-07-01 华为技术有限公司 一种报文处理方法和报文处理设备
CN106815259A (zh) * 2015-12-02 2017-06-09 中国电信股份有限公司 移动缓存业务控制方法、装置以及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
龙冬阳主编: "《网络安全技术及应用》", pages: 245 *

Also Published As

Publication number Publication date
CN114731338B (zh) 2024-05-03
WO2021108993A1 (en) 2021-06-10

Similar Documents

Publication Publication Date Title
US20180278717A1 (en) Request routing utilizing client location information
EP3171556B1 (en) Method and apparatus for setting network rule entry
US8966122B2 (en) Cross-protocol communication in domain name systems
US7779158B2 (en) Network device
US9026676B1 (en) Systems and methods for prepending nonce labels to DNS queries to enhance security
US9444780B1 (en) Content provided DNS resolution validation and use
US8161135B2 (en) Device identification number based name service
WO2019062593A1 (zh) 报文传输方法及装置、计算机可读存储介质
CN102907073B (zh) Dns服务器、网关和在数据传输中管理端口范围标识符的方法
CN106507414B (zh) 报文转发方法及装置
CN111010460A (zh) 域名解析方法和装置
EP2951979B1 (en) A method of and a unit handling a protocol address in a network
CN110601984B (zh) 一种获取本地服务、生成链路本地地址的方法及装置
CN116566945A (zh) 去中心化应用的访问方法、装置、电子设备及存储介质
CN114731338B (zh) 一种用于域名系统服务器的负载的控制的系统和方法
US8510419B2 (en) Identifying a subnet address range from DNS information
JP2017118248A (ja) 名前解決装置、名前解決方法及び名前解決プログラム
CN107592374B (zh) 域名错误解析的纠正方法和系统
CN104468575A (zh) 局域网上实现域名注册的方法与装置
CN114338630A (zh) 域名访问方法、装置、电子设备、存储介质及程序产品
CN107995325A (zh) 一种Android上降低域名解析失败的方法
JP2019087908A (ja) IPv6ネットワークシステム、ホームゲートウェイ装置、マイグレーション技術適用方法、同適用プログラム
US11381503B2 (en) Data packet routing method and data packet routing device
US20230188494A1 (en) Management of domain name services across multiple device and software configurations
CN111371915B (zh) Ip地址列表维护方法和装置及网关设备

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
GR01 Patent grant
GR01 Patent grant