CN108886525B - 智能域名系统转发的方法和装置 - Google Patents
智能域名系统转发的方法和装置 Download PDFInfo
- Publication number
- CN108886525B CN108886525B CN201780020823.2A CN201780020823A CN108886525B CN 108886525 B CN108886525 B CN 108886525B CN 201780020823 A CN201780020823 A CN 201780020823A CN 108886525 B CN108886525 B CN 108886525B
- Authority
- CN
- China
- Prior art keywords
- dns
- response
- dns query
- metadata
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4552—Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/59—Network arrangements, protocols or services for addressing or naming using proxies for addressing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
在一些实例中,对于关于域名的查询返回不同的IP地址可能是有利的。对于给定查询返回不同IP地址的常规方法包括修改权威DNS服务器。然而,这种修改的规模扩展不好并且增加系统的复杂度。为了解决这个问题,公开了被配置用于智能DNS转发的代理服务器。来自终端用户的DNS查询经由代理服务器转发到权威DNS服务器。来自权威DNS服务器的响应包括具有由客户定义的嵌入策略和规则的元数据。代理服务器通过执行嵌入的策略和规则,基于嵌入的规则查找网络资源,以及基于查找数据和嵌入的策略确定最优IP地址来处理元数据。这个最优IP地址响应于查询而被发送到终端用户。
Description
相关申请的交叉引用
本申请根据35 U.S.C.§119(e)要求于2016年3月9日提交的并且标题为“Methodsand Apparatus for Intelligent Domain Name System Forwarding”的美国申请No.62/305602的优先权权益。该申请全部内容通过引用并入于此。
背景技术
域名系统(DNS)是连接到互联网或私有网络的计算机、服务或任何资源的分层分布式命名系统。它将各种信息与分配给每个参与实体的域名相关联。DNS也将更容易记忆的域名翻译成用来根据底层网络协议定位和识别计算机服务和设备的数字互联网协议(IP)地址。
权威DNS服务器,也称作权威名称服务器或者权威,响应关于域名到数字IP地址的映射的查询并且也响应对于诸如邮件交换器(MX)记录之类的其他资源记录(RR)的请求。为了响应这些查询,每个权威具有它自己的DNS记录的DNS数据库。存储在DNS数据库中的常见记录类型包括IP地址(A和AAAA)、简单邮件传送协议(SMTP)MX记录以及相应域的名称服务器(NS)记录。DNS数据库也可以存储其他数据类型的记录,包括域名别名(CNAME)和可用于认证DNS记录的DNS安全扩展(DNSSEC)记录。
为了将新的域添加到互联网,基本DNS标准要求域所有者或登记者从注册管理处购买域名并且指定用于应答对于新域的查询的权威DNS服务器的名称。注册管理处从权威DNS提供商(诸如新罕布什尔州的曼彻斯特市的动态网络服务公司)获得权威DNS服务并且和权威DNS提供商一起配置它的域名(或者更精确地,区域)的记录。当终端用户的机器尝试访问新的域名时,它询问递归DNS服务器以取回新域的DNS记录,最常见地,A或者AAAA(IPv4或者IPv6地址)。递归服务器定位由权威DNS提供商维护的权威DNS服务器,然后向权威DNS服务器查询DNS记录。递归DNS服务器将权威DNS服务器的应答返回到终端用户的机器并且也可以根据它的存活时间(TTL)对应答进行高速缓存。终端用户的机器然后尝试使用由权威DNS服务器提供的DNS记录访问域。
发明内容
本技术的实施例包括响应DNS查询的方法。示例方法包括在代理服务器接收来自客户端的DNS查询。代理服务器修改DNS查询以包含对于元数据的请求并且将DNS查询传输到权威DNS服务器。代理服务器从权威DNS服务器接收来自权威DNS服务器的对于DNS查询的响应,该响应包括元数据。代理服务器至少部分基于元数据修改对于DNS查询的响应,并且将对于DNS查询的响应从代理服务器传输到客户端。
代理服务器可以通过在DNS查询中设置DNS安全(DNSSEC)OK(DO)标记来修改DNS查询。元数据可以是请求资源签名(RRSIG)记录。由代理服务器接收的对于DNS查询的响应可以包括接收包含程序的元数据和接收多个IP地址。在这种情况下,代理服务器通过执行程序来修改对于DNS查询的响应。在执行期间,代理服务器可以对多个IP地址进行重新排列、对多个IP地址进行过滤以及从多个IP地址中选择IP地址。在一些实施例中,代理服务器通过从对于DNS查询的响应中移除元数据来修改对于DNS查询的响应,并且然后将响应传输到客户端。代理服务器可以通过应用一系列规则修改对于DNS查询的响应,以便将响应传输到客户端。
本技术的其他实施例包括生成对于DNS查询的多个响应的系统。示例系统包括与DNS权威服务器和客户端设备进行数字通信的代理服务器。代理服务器被配置为从客户端设备接收DNS查询。代理服务器可以修改DNS查询以包含对于元数据的请求,将DNS查询传输到权威服务器,从权威服务器接收对于DNS查询的响应,该响应包括元数据。代理服务器可以至少部分基于元数据来修改对于DNS查询的响应,并且将对于DNS查询的响应传输到客户端。
代理服务器可以被配置为通过在DNS查询中设置DNS安全(DNSSEC)OK(DO)标记来修改DNS查询。元数据可以是RRSIG。来自权威DNS服务器的对于DNS查询的响应可以包含程序和多个IP地址。在这种情况下,代理服务器被配置为执行程序。代理服务器可以通过对多个IP地址进行重新排列、对多个IP地址进行过滤以及从多个IP地址中选择IP地址来执行程序。代理服务器可以被配置为在将对于DNS查询的响应传输到客户端设备之前,从响应中移除元数据。代理服务器可以被配置为通过应用一系列规则修改对于DNS查询的响应,以便将响应传输到客户端设备。
本技术的其他实施例包括用于响应DNS查询的方法。示例方法包括在代理服务器处接收来自客户端的DNS查询。代理服务器确定DNS查询是否包含对于元数据的查询。响应于确定DNS查询包含对于元数据的请求,代理服务器将DNS查询从代理服务器传输到权威DNS服务器。响应于确定DNS查询不包含对于元数据的请求,代理服务器修改DNS查询以包含对于元数据的请求并且将DNS查询从代理服务器传输到权威DNS服务器。代理服务器从权威DNS服务器接收对于DNS查询的响应,该响应包括元数据。代理服务器至少部分基于元数据来修改对于DNS查询的响应,并且将对于DNS查询的响应从代理服务器传输到客户端。
从权威DNS服务器接收的对于DNS查询的响应可以包括包含在元数据中的程序以及多个IP地址。修改对于DNS查询的响应可以包括在代理服务器处执行程序以从多个IP地址中选择IP地址。修改对于DNS查询的响应可以包括代理服务器基于时延、可用性或者IP地址的优先级中的至少一项选择IP地址。响应于确定DNS查询不包含对于元数据的请求,代理服务器可以在将响应传输到客户端之前从响应中移除元数据。
应当领会,前述概念以及在下面更详细讨论的额外概念的所有组合(假设这种概念不相互矛盾)被构想作为在此公开的发明主题的部分。特别地,在本公开内容的结尾出现的所要求的主题的全部组合被构想作为在此公开的发明主题的部分。还应当领会,在此明确采用的同样可能出现在通过引用合并的任何公开内容中的术语应当符合与在此公开的特定概念最具一致性的意义。
附图说明
熟练技术人员将理解,附图主要用于例示目的并且不打算限制在此描述的发明主题的范围。附图不一定按比例绘制;在一些实例中,在此公开的发明主题的各种方面可以在附图中夸张或者夸大示出以便于不同特征的理解。在附图中,类似的参考字符通常指类似的特征(例如,功能类似和/或结构类似的元素)。
图1例示了包括便于智能DNS转发的代理服务器的系统。
图2示出了与(未修改的)权威DNS服务器一起提供高级DNS服务的代理服务器。
图3是例示了由代理服务器进行智能DNS转发的方法的流程图。
图4是示出了处理来自权威DNS服务器的元数据的方法的流程图。
图5例示了由代理服务器进行的示例智能DNS转发。
具体实施方式
权威DNS服务器通过返回指向网站的IP地址来响应关于网站名称的查询。通常,权威DNS服务器应当对于针对给定网站的查询每次给出相同的IP地址,假设IP地址没有改变。但是有时候,当关于给定域名查询时,权威DNS服务器返回不同的响应(例如,IP地址)-即,权威DNS服务器对于相同的查询给出不同的应答将是有利的。(这种行为通常称作“高级DNS服务”。)例如,将不同的终端用户指向不同的IP地址可以用于目录级别的负载均衡,从而确保每个终端用户由最近的服务器(例如,具有最低时延或最短地理距离的服务器)服务,或者提供别名功能性或CNAME扁平化(又叫做ALIAS)以规避DNS标准本身的限制。类似地,根据递归器地理来使权威DNS服务器返回指向不同其他名称的CNAME可能是有用的。
不幸地,DNS标准不提供对于相同查询的不同响应。为了规避这个限制,权威DNS服务器可以被修改为根据例如做出查询的递归服务器的IP地址或者当日时间来对于给定的查询提供不同的响应。也可以从较大的集合中随机地选择响应以跨多个服务器平衡负载。典型地,修改基于由登记者提供的信息或者算法或代码。例如,权威DNS服务器可以被修改为将讨论中的域的期望行为作为特殊的记录类型存储在DNS数据内部,并且根据所修改的代码返回它。
但是,这些修改通常是定制的并且不易于控制规模,部分原因是权威DNS服务器的复杂性。传统地,权威DNS服务器通常针对某些用例而优化,所以修改它以提供定制的应答经常导致规模问题。那些规模问题的一个示例是加载太多到存储器中,因为已经选择存储器中的服务器。对于大量的记录,加载存储器可能花费非常不便的长时间。通过交换成另一个来改变权威的规模或者其他性质经常导致重做定制工作并且有可能在不同的系统中维护不同的版本。而且,这些系统维护起来复杂且困难。维护定制化的权威DNS服务器也可能是复杂的,特别是如果记录随着时间而改变。
本技术提供通过使用耦合到权威DNS服务器的代理服务器来对于相同的查询生成不同的响应的方法,而非通过修改权威DNS服务器。结果,代理服务器不需要保留任何客户数据或者高级服务规范,所以它不受那个数据或者对数据的访问模式的规模所影响。
智能DNS转发系统
图1是系统100的例示,系统100包括代理服务器130(也称作DNS代理服务器或者DNS代理),代理服务器130被配置为检测来自客户端设备120的DNS查询并且处理来自权威DNS解析器110的响应以提供智能DNS转发。(为了容易理解,图1是简化版本。)系统100还包括权威DNS解析器110、别名解析器135和网络资源(存储器)199。这些设备和代理服务器130位于DNS边缘101并且(例如,经由互联网)可操作地耦合到转换器170,转换器170又耦合到策略主设备160和策略编译器150。
如本领域那些技术人员容易领会的,代理服务器130、权威服务器110、递归解析器135、策略编译器150、策略主设备(policy master)160和转换器170均可以被实现为存储在计算机可读、非易失性存储器中并且由处理器执行的计算机可执行代码。它们可以按照期望使用任何适当的硬件和连接搭配或者分布。类似地,网络资源199可以被实现为通信地耦合到代理服务器130和转换器170的任何适当类型的计算机可读、非易失性存储器。
如下面更加详细说明的,就像在常规系统中一样,客户140利用权威DNS解析器110配置关于它的域名的DNS记录。这些域名可以与诸如内容递送网络(CDN)之类的一个或多个客户资产145a-145c(统称客户资产145)相关联,每个客户资产145具有不同的IP地址并且可以被解析为与给定域名相对应的IP地址。客户140设置用于响应于来自用户121的域名查询将流量引向这些IP地址的一个或多个动态引导策略。例如,客户140可以使用基于网页的接口来指定时延、可用性、地理位置以及用于响应于来自终端用户121的给定DNS查询确定提供哪个IP地址的其他准则。网络资源199可以存储与这些准则相对应的链接数据180、子网数据190和/或资产数据195,以供代理服务器130在智能DNS转发时使用。(链接数据180和子网数据190也可以存储在代理130本地的存储器数据结构中。)更一般地,动态引导策略包括来自客户140以及可能来自终端用户121并且用于响应于关于客户的域名之一的DNS查询提供IP地址的准则、数据和规则。
策略主设备160存储来自客户140的动态引导策略,例如,作为以正式计算机语言编写的一个或多个函数。策略主设备160使用策略编译器150生成包括这些函数的程序。策略编译器150可以被实现为简单可执行封装器,其被配置为构建这些程序使得包括动态引导策略的函数可以由代理服务器130解释。如图1中所示,策略主设备160可以将高级服务的客户配置(例如,作为请求资源签名(RRSIG)记录中的程序)提供给权威DNS解析器110。
来自策略主设备160的动态引导策略和附加数据,诸如链接数据180、子网数据190和资产数据195,可以经由转换器170传输到网络资源199。转换器170将动态数据(例如,链接数据180、子网数据190、资产数据195等)传播到边缘101。转换器170通过侦听各种通道上的事件并且将它们处理成像“从192.0.2.0/24中的后方解析器到示例CDN的平均时延是42毫秒”或者“198.51.100.0/24在法国”或者“webserver2.example.com停机”这样的陈述信息来获取那个数据。
因此,网络资源199存储由客户140提供的或者所获取的与时延、健康、地理位置、可用性以及用来确定对于DNS查询的响应的其他准则有关的数据。例如,链接数据180存储可以由权威DNS解析器110聚集(例如,每五分钟)的加工后的时延性能数据。子网数据190存储关于每个客户资产145以及可能地关于每个客户端120的地理位置数据。资产数据195包括诸如IP地址的健康之类的可用性数据。
在操作中,代理服务器130使用由客户140定义的策略并且基于链接数据180、子网数据190和/或资产数据195等将客户端120引导至适当的客户资产145a、145b或145c。代理服务器130从客户端120接收对于DNS服务器110的查询并且检查它们看是否它们包括对于诸如DNSSEC信息之类的元数据的请求。如果查询包括对于DNSSEC信息的请求,代理服务器130将查询传递到权威DNS服务器110;如果没有,代理服务器130在查询中设置DNSSEC OK(DO)标记以从权威DNS服务器110取得DNSSEC信息。权威DNS服务器110根据DNS标准来响应代理服务器130。代理服务器130基于DNSSEC信息、原始查询、查询源(IP地址)、当日时间等修改来自权威DNS服务器110的响应,然后将修改后的响应传输到做出请求的递归DNS服务器。
因为代理服务器130可以取得客户端120未请求的元数据,诸如DNSSEC有关的RR,它在未请求时从响应中移除元数据。相关地,那个DO标记在称作OPT的记录内部,一些客户端没有要求二者中任何一个,在这种情况下,它同样被移除。更一般地,对于客户端查询的修改在传递回到客户端之前使其结果逆转。在各种情况下使用的修改包括:(1)如果不存在则添加OPT记录;(2)如果没有设置则设置DO;以及(3)使用客户端源IP地址添加客户端子网选项。代理服务器也可以添加被称作EDNS0代理选项(EPO)的定制选项以传递客户端源IP,以便使得从传统基础设施的过渡更加无缝。当与经修改的权威DNS服务器一起工作时,EPO是有用的。在所有这些当中,仅OPT和DO部分对于RRSIG方法是基本的。
在一些实现方式中,代理服务器130根据被称作请求资源签名(RRSIG)的加密签名信息修改来自权威DNS服务器110的响应,加密签名信息被存储于权威DNS服务器110上的DNSSEC记录中。代理服务器130使用编码在查询中的RRSIG和信息,诸如查询源的IP地址,确定是否以及如何修改对于查询的响应。在一些方面,该方法涉及将权威DNS服务器110看作RRSIG的“存储器”。因为代理服务器130修改查询以返回DNSSEC记录,所以代理服务器130不需要对于RRSIG进行单独的请求。并且因为用于修改查询响应的这种技术不涉及任何额外的查询,与对于RRSIG进行单独的查询相比,它对于权威DNS服务器110施加较小的处理负担。即,权威DNS服务器110可以比它可能处理两个单独请求更加高效地处理来自代理服务器130的单个(可能修改后的)请求。
然而,存在几个显然的原因而不使用代理服务器130修改对于DNS查询的响应。增加代理服务器130对网络增加额外的层,这增加了时延、成本和复杂度。使用代理服务器130也导致网络流量的量加倍。但是不像使用修改的权威DNS服务器110,使用代理服务器130将高级DNS功能性与提供例行DNS服务的功能性分离,而不是将它们混合在一起。使用代理服务器130还增加了提供高级DNS功能性的灵活性。并且在代理服务器中实现新的特征可能更加容易和快速,因为可以为了特征开发而构建代理服务器。代理服务器130也可以使用足够一般化至可以释放许多新的特征而没有对于代理服务器本身或者对于权威DNS服务器的任何更新的语言。这也使得在可能已经构建的大多数DNSSEC就绪的权威DNS系统上叠加高级特征更加实际,如果有修改的话只需极少的修改。
与权威DNS服务器110一起使用代理服务器130也简化了维护服务器之间的一致性。一些代理服务器130保存用于网站的配置数据,例如,但是这种配置数据必须与实际内容服务器上的配置数据小心地同步。在相同区域中保存期望的高级特征行为和数据允许这些使用标准区域更新机制而保持同步。总之这是为什么通常使用定制RR类型而不是另一种方法的原因-因为虽然单独的数据库可以包含高级特征,但是保持同步将成问题。在此公开的代理方法保持这种区域内性质,同时使得实现部分分离,这非常不寻常。
利用耦合到权威DNS服务器110的代理服务器130,不需要维护对于开源或内部开发的权威服务器实现方式的改变。使用代理服务器130也提供了使用不同的权威DNS服务器实现方式而不需要在每个权威DNS服务器内重新开发特征的灵活性。这种灵活性允许特征集合在具有非常不同的性能和规模特性的部署中使用。当前,存在多个系统使用不同的权威服务器实现方式服务这些不同的市场。仅这些系统的子集可以提供高级特征,并且其他满足存在非常大数量(例如,数百万)的区域并且性能较不敏感的市场,诸如批量托管市场。
然后所有这些系统可以提供高级特征。例如,企业级DNS通常使对性能敏感的,而批量DNS倾向于更加关注规模扩展至非常大数量的不频繁访问的区域。使用不同的权威DNS服务器可以更好地服务那些不同的访问模式。另外,操作员可能希望使用多于一种权威DNS服务器实现方式来使得它们的网络更加有弹性,这可能另外需要对于两种不同的实现方式进行支持高级特征的修改。
用于智能DNS转发的代理服务器
图2示出了位于DNS服务器210(例如,权威DNS服务器或者后端递归DNS服务器)前方的DNS代理服务器230。在操作中,它接受来自客户端220(例如,递归服务器)的传输控制协议(TCP)207和用户报文服务(UDP)205DNS查询(例如,DNS查询233a和233b),并且将DNS查询发布(例如,233c和233d)至DNS服务器210。DNS代理服务器230解释嵌入在来自权威DNS服务器210的响应中的指令,以一般方式提供对于客户端的查询的各种动态响应,而不必要存储关于那些动态响应的任何配置,从而减少或者消除同步顾虑。它不必要缓存来自权威DNS服务器的响应并且不必要取决于缓存为了获得良好的性能或者正确的行为。
更具体地,DNS代理服务器230将来自客户端220的查询233a和/或233b传递到DNS服务器210(带有一些微小的修改)并且等待回答。DNS代理服务器230包括一个或多个查询处理工作器232,用于处理查询233(修改它们、将它们发送到权威或递归服务器210、处理结果以及响应客户端220)。在实践中,代理服务器230可以保持大量统一的工作器232并且当查询到达时将查询233交给它们,并且每个工作器232一次应付单个查询233。一旦发送响应,工作器232变得准备好用于下一个查询232。
TCP后端236中的一个或多个TCP客户端234以类似的一次一个的方式控制消息从工作器232到服务器210以及返回,但是为了效率可以维护到服务器210的永久连接。每个TCP后端236是专用于相同服务器210的TCP客户端234的池。可以存在许多不同的服务器210,每个服务器210具有拥有TCP客户端234的池的相应TCP后端236。
来自DNS服务器230的回答(例如,237a和237b)可以包含对于查询的应答记录,并且可选地还可以包含一个或多个RRSIG记录。该行为存在于任何符合DNSSEC的DNS服务器中并且与RRSIG记录的预期用途不冲突。RRSIG记录可以包括使用标准化定制加密类型的记录,其然后通过名称而消除歧义,该名称是可追踪到特定的所有者的并因此是唯一的。
在那个名称之后,RRSIG记录可以携带任何数据,包括以足够复杂从而将较小的函数构造在一起创建期望行为的语言编写的嵌入式程序。它也可以针对每个行为/特征使用具体的RR类型,诸如每个特征的退化情况在程序中命名。例如,退化情况可以以人类可读的形式表示为:别名(“domain.com”),以及包括更多原生函数的更加复杂的表示(非常近似):ReplaceRR(Qname(),Qtype(),LookupRecursive(“domain.com”)。它通过将适当的RRSIG记录添加到区域中而放置在权威存储器中。
DNS代理服务器230留意嵌入式程序并且执行它以生成对于客户端220的原始查询的经修改的响应。在确定DNS代理服务器230应当发送什么响应给客户端220的过程中,DNS代理服务器230可以使用DNS或者其他协议向其他系统发出另外的查询,或者查阅其他本地数据。最终,代理服务器230将结果(例如,237c和/或237d)返回到客户端220。
在大多数常见的情况下,没有程序嵌入在RRSIG记录中,所以DNS代理服务器230可以通过将仅一个查询传递到权威DNS服务器210而生成对于客户端的查询的响应。相反地,以定制类型嵌入程序将需要两个查询,第一个查询针对定制类型以查看是否存在程序,然后一个查询针对所请求的数据。对于RRSIG实现方式,取决于正在实现的特定应用行为,DNS代理服务器230可以进行超出初始查询之外的另外的查询。
策略主设备和策略编译器
策略主设备负责存储来自客户的动态引导策略和附件数据。策略主设备使用策略编译器生成程序,策略编译器可以被实现为被配置为构建可以由代理服务器解释的程序的简单可执行封装器。策略编译器提供被配置为构造程序的函数。被添加到策略编译器的一些示例函数包括用于从响应于DNS查询而可能提供的所有可能的IP地址中选择IP地址的过滤函数和排序函数。
在一种实现方式中,策略编译器包括获得可以进入最终响应的资源记录列表的BuildResponse函数和可以通过排序和/或缩减记录列表而更改它的规则函数。除了执行排序或者过滤的变元之外,这种函数可以采取规则函数。以这种方式,可以在一个策略中应用多个规则。特殊函数End可以用来结束需要应用的规则序列。在应用所有规则之后,BuildResponse函数可以置乱(缩减的)记录列表并且构造DNS响应。BuildResponse程序的示例如下:
{
“Program”:“BuildReponse[rr0,rr1,rr2]Available[av1,av2]
Performance[link1,link2,link3]type Priority[pf1,pf2]
“Consts”:{
“rr0”:“800IN A 1.2.3.1”,
“rr1”:“800IN A 1.2.3.2”,
“rr2”:“800IN A 1.2.3.8”,
“av1”:“0:probablyup”,
“av2”:“2:definitlydown”,
“link1”:“0:27-lo”,
“link2”:“2:76”,
“link3”:“1:tommy”,
“type”:“10:relative”,
“pf1”:“0:75”,
“pf2”:“2:33”,
“num”:“2”
},
“flags”:“0001”
在这个示例中,Available、Performance和Priority是执行排序和过滤的规则。这些规则在下面进一步描述。
函数Available[av1,av2,…]可以基于资产映射的列表来过滤资源记录的列表,其中每个元素将所提出的资源记录的列表中的资源记录index映射到资产标识符。资产标识符可以用来从网络资源中查找可用性数据。与不可用的资产相对应的记录从列表中移除。所以下面示例中的“0:asset9998”意思是查找关于资产“asset9998”的可用性并且如果那个资产被标记为不可用则从资源记录“rr0”中过滤掉。这个规则将绝不会留下列表为空:如果所有记录都将移除,则不执行过滤。示例:
{
“Program”:“BuildReponse[rr0,rr1,rr2]Available[av1]End”,
“Consts”:{
“rr0”:“800IN A 1.2.3.1”,
“rr1”:“800IN A 1.2.3.2”,
“rr2”:“800IN A 1.2.3.8”,
“av1”:“0:asset9998”,
},
“flags”:“0001”
}
函数Performance[lp1,lp2,…]type可以基于资产映射的列表来过滤资源记录的列表,其中每个元素将所提出的资源记录的列表中的资源记录index映射到资产标识符。资产标识符可以用来查找链接的时延数据。没有时延数据的资产被认为具有最大时延。与具有高时延的资产相对应的记录从列表中移除。所以下面示例中的“1:asset1001”意思是查找关于资产“asset1001”的链接性能数据并且如果那个资产具有太高时延则从资源记录“rr1”中过滤掉。这个规则将绝不会留下列表为空:如果所有记录都将移除,则不执行过滤。
type变元定义如何应用链接性能过滤。它被定义为非负整数值N到链路性能过滤选项的映射。这些选项可以包括:
●“count(计数)”:返回具有最低时延的至多N个资产。将不包括不具有时延数据的记录,除非没有记录具有时延数据。
●“absolute(绝对)”:返回具有最低时延的资产以及时延在N毫秒内的每个资产。
●“relative(相对)”:返回具有最低时延的资产以及时延在给定级别的百分之N内的每个资产。
示例:
{
“Program”:“BuildReponse[rr0,rr1,rr2]Performance[lp1,lp2]type End”,
“Consts”:{
“rr0”:“800IN A 1.2.3.1”,
“rr1”:“800IN A 1.2.3.2”,
“rr2”:“800IN A 1.2.3.8”,
“lp1”:“0:asset1000”,
“lp2”:“1:asset1001”,
“type”:“10:relative”
},
“flags”:“0001”
函数Priority[pf1,pf2,…]可以基于给定的优先级映射列表来对资源记录的列表进行排序,其中每个元素将所提出的资源记录的列表中的资源记录index映射到优先级评级。所以下面示例中的“0:20”和“1:10”意思是“rr1”优先于“rr0”。如果记录具有相同的评级(存在平局),那么代理服务器可以随机地确定次序。没有分配优先级的记录将给出无穷优先级。空列表意思是不存在优先级并且最终的响应将被置乱。评级指定为16位无符号整数等值(单位16)。
示例:
{
“Program”:“BuildReponse[rr0,rr1,rr2]Priority[pf1,pf2]End”,
“Consts”:{
“rr0”:“800IN A 1.2.3.1”,
“rr1”:“800IN A 1.2.3.2”,
“rr2”:“800IN A 1.2.3.8”,
“pf1”:“0:20”,
“pf2”:“1:10”,
},
“flags”:“0001”
规则的其他示例可以包括函数,诸如Bias以随机置乱资源记录的列表,Max num以限制资源记录的列表,以及Reject以移除特定资源记录。除了规则之外,在BuildResponse与End之间可以存在在有条件的状态下设置程序的函数。当程序处于有条件的状态下,规则函数将评估条件状态以确定是否应用规则。一些示例包括Switch、Case、Default和EndSwitch。
使用代理服务器的DNS转发
图3是示出了使用代理服务器提供智能DNS转发的处理300的流程图。该处理300可以使用图1中例示的系统100或者包括诸如图2中的代理服务器130之类的代理服务器的任何其他适当系统或者网络实现。处理300涉及检测来自客户端设备的DNS查询以及处理来自权威DNS服务器的响应以提供智能DNS转发。
当客户端设备尝试访问域时,在步骤310,它将DNS查询发送到DNS代理。在步骤320,DNS代理分析DNS查询来确定DNS查询是否包括对于元数据的请求。在一种实现方式中,DNS代理检查DNS查询以确定DNS查询是否包括对于元数据(诸如DNSSEC信息或者OPT记录)的请求。如果DNS查询确实包括对于元数据的请求(例如,关于DNSSEC信息的请求),那么在步骤330,DNS代理将DNS查询传递到权威DNS服务器。如果DNS查询不包括对于元数据的请求,那么在步骤340,更新DNS查询以包括对于元数据的请求。在一种实现方式中,DNS代理在DNS查询中设置DNSSEC OK(DO)标记以从权威DNS服务器取得DNSSEC信息。在另一种实现方式中,DNS代理设置OPT记录DO=1以从权威DNS服务器取得OPT记录。在步骤330,DNS代理将更新后的DNS查询传递到权威DNS服务器。
在步骤350,DNS代理确定来自权威DNS服务器的响应是否包括元数据。在一种实现方式中,DNS代理确定响应是否包括元数据,例如,存储在DNSSEC记录中的RRSIG。在另一种实现方式中,DNS代理确定响应是否包括OPT记录。如果来自权威DNS服务器的响应不包括元数据,那么在步骤360,将来自权威DNS服务器的DNS响应消息发送到客户端设备。即,代理服务器从权威DNS服务器取得具有与域名相对应的一个或多个IP地址的DNS记录,并且将它发送到客户端设备。然而,如果来自权威DNS服务器的响应包括元数据(例如,RRSIG),那么DNS代理进一步处理元数据以生成包括来自权威DNS服务器的IP地址之一的经修改的响应。在步骤370,由代理服务器生成的这个经修改的响应发送到客户端设备。
图4是示出了在代理服务器处处理来自权威DNS服务器的元数据的方法400的流程图。在步骤410,DNS代理接收来自权威DNS服务器的响应。这个响应包括元数据以及一个或多个IP地址。在步骤420,DNS代理处理嵌入在元数据中的一个或多个程序。嵌入在元数据中的程序定义了用于确定与域名相关联的最优IP地址的动态引导策略和规则。在一种实现方式中,DNS代理处理嵌入在RRSIG中的一个或多个函数。在步骤430,DNS代理基于元数据中嵌入的规则和函数查找网络资源。在一种实现方式中,DNS代理执行RRSIG中的嵌入式程序并且取决于RRSIG中的规则,DNS代理查找网络资源,诸如链接数据、子网数据和资产数据。链接数据、子网数据和资产数据包括关于时延、性能、健康的信息以及与内容IP地址和客户端IP地址有关的其他信息。
在步骤430,对来自网络资源的数据进行重新排列、排序和过滤以确定与域名相关联的一个最优IP地址。例如,从客户端设备到内容递送网络的路由可以基于它们的时延而排序,IP起源可以基于它们的健康而排序和重新排列。以这种方式,来自权威DNS服务器的DNS响应被修改以包括由DNS代理生成的最优应答。修改后的DNS响应消息被发送到客户端设备。如果来自客户端设备的DNS查询不包括对于元数据的请求,在修改后的DNS响应消息发送到客户端设备之前可以移除响应消息中的元数据。
图5例示了由代理服务器530进行的智能DNS转发的更具体的示例。代理服务器530可以与图1中所示的代理服务器130以及图2中所示的代理服务器230在功能上类似,如果不相同的话。客户端设备520通过将DNS查询512发送到权威DNS服务器510来尝试访问域名。代理服务器530接受DNS查询512并且确定DNS查询512是否包括将要包含在响应中的对于元数据的请求。当确定DNS查询512不包括该请求时,更新查询512以反映对于元数据的请求。更新后的DNS请求516被传输到DNS权威服务器510以取得关于域名的DNS记录。如果DNS权威服务器510不包括关于所请求的域的元数据,那么DNS权威服务器510将无程序响应518传输到代理服务器530。无程序响应518是不带有任何元数据的关于域名的目标IP地址。在522,代理服务器530将这个无程序响应518映射到客户端。并且在524,代理服务器530将域的A或者AAAA(IPv4或者IPv6地址)返回到客户端设备520。
如果权威DNS服务器510包括关于所请求的域的元数据,那么权威DNS服务器510将包括关于域的IP地址的DNS记录526a连同所请求的元数据526b一起提供给代理服务器530。526a中的“example.com.A 0.0.0.0”是将被526b中的动态处理指令封堵的“虚假”应答。RRSIG记录的基本特性是它们是增加base(基础)数据的元数据。图5的这个方面证明应答数据存在于来自权威510的响应中,即使它将被代理530忽略,因为它伴随有覆盖的元数据。
元数据包括创建期望行为的一个或多个嵌入式程序。代理服务器530包括解释器来执行元数据526b中的嵌入式程序并且生成经修改的响应。在处理期间,代理服务器530查找子网数据590和/或链接数据580以获得与时延、性能、健康或者其他这种准则有关的信息。子网数据590和链接数据580是基于查找请求(例如,528和536)向代理服务器530提供应答(例如,532和538)的网络资源。代理服务器530基于这些应答重新排列、过滤和缩减IP地址的列表以确定一个最优IP地址。该应答被映射到客户端并且修改后的DNS响应消息546被发送到客户端320。如果来自客户端320的DNS查询不包含对于元数据的请求,那么代理服务器530从DNS响应消息中移除元数据并且将具有仅一个IP地址的修改后的DNS响应消息546发送到客户端设备320。
在这个示例中,具有IP地址203.0.113.1的客户端设备320尝试访问域“example.com A”。请求访问“example.com A”的DNS查询512被发送到代理服务器530。因为DNS查询512不包括对于元数据的请求,即,DNS查询不包括对于DNSSEC记录的请求,在514,通过设置DNSSEC DO标记来更新查询512。更新后的请求516被发送到权威DNS服务器510。在第一情景中,假定权威DNS服务器510不包括关于“example.com”的元数据,权威DNS服务器510返回带有与域相对应的CDN的IP地址(例如,example.com A 192.0.2.1)的无程序响应518。无程序响应518被映射到客户端并且IP地址(example.com A 192.0.2.1)524被发送到客户端。
在第二情景中,假定权威DNS服务器510包括元数据,权威DNS服务器510将存储在DNSSEC记录中的RRSIG 526b提供到代理服务器530。代理服务器530执行RRSIG中包括的“BulidResponse”函数。“BuildResponse”函数是由一个或多个客户添加到策略主设备以存储关于域的动态引导策略的规则函数。在该示例中,“BuildResponse”函数包括关于地理位置数据(geo数据)和时延的变元。在534,代理服务器530通过将查找请求528发送到子网来查找关于客户端320的地理数据。在532中,子网返回关于客户端的地理数据(dyngeo=UK)。代理服务器530分析地理数据以确定RRSIG中的地理数据是否匹配客户端地理数据。代理服务器530然后通过将时延查找请求536发送到链接数据580来查找RRSIG中列出的内容递送网络(CDN)([0:cdn1,1:cdn2])的性能数据。链接数据580返回关于cdn1和cdn2的时延。在该示例中,对于cdn1来说cdn1的时延是180ms并且cdn2的时延是142ms。通过在542应用性能过滤函数,代理服务器530过滤掉高时延记录由此减少到cdn2的应答。在544,代理服务器530将响应映射到客户端,然后将包括cdn2的IP地址的DNS响应消息546(example.com a198.51.100.1)发送到客户端320。
使用规范名称(CNAME)记录的智能无数据DNS转发
同样可以使用代理服务器提供高级DNS服务,代理服务器查找来自权威DNS服务器的规范名称(CNAME)响应的目标名称中的指令。如由本领域中那些技术人员理解的,CNAME记录指定域名是另一个域名的别名,即“规范”域名。规范域定义关于另一个域的所有信息,包括子域、IP地址等。
结论
虽然本文已经描述和例示了各种发明实施例,但是本领域的普通技术人员将容易想到用于执行本文所描述的功能和/或获得本文所描述的结果和/或一个或多个优点的各种其他的手段和/或结构,并且这样的变型和/或修改中的每个均被视为在本文所描述的发明的实施例的范围内。更一般地说,本领域的普通技术人员将容易意识到,本文所描述的所有的参数、尺寸、材料和构造都打算是示例性的,并且实际的参数、尺寸、材料和/或构造将取决于本发明教导所用于的特定的一个应用或多个应用。本领域技术人员将认识到,或者仅使用常规实验就能够查明,本文所描述的具体的发明实施例的许多等同形式。因此,要理解的是,前述实施例仅仅是作为例子呈现的,并且在所附权利要求及其等同形式的范围内,发明实施例可以以除了具体描述和要求保护的方式之外的其他方式实施。本公开的发明的实施例是针对本文所描述的每个单独的特征、系统、物品、材料、装备和/或方法。另外,两个或更多个这样的特征、系统、物品、材料、装备和/或方法的任何组合(如果这样的特征、系统、物品、材料、装备和/或方法不相互冲突的话)包括在本公开的发明范围内。
上述实施例可以以许多方式中的任何一种方式实现。例如,设计和做出本文所公开的技术的实施例可以使用硬件、软件或它们的组合来实现。当用软件实现时,软件代码可以在任何合适的处理器或处理器组上执行,不管是在单个计算机中提供的,还是分布在多个计算机之间的。
此外,应意识到,计算机可以以许多形式中的任何一种形式实施,诸如机架式计算机、台式计算机、膝上型计算机或平板计算机。另外,计算机可以被嵌入在一般不被认为是计算机、但是具有合适的处理能力的装置(包括个人数字助理(PDA)、智能电话或任何其他的合适的便携式或固定式的电子装置)中。
此外,计算机可以具有一个或多个输入装置和输出装置。除了其他方面之外,这些装置可以用于呈现用户界面。可以用于提供用户界面的输出装置的例子包括用于视觉呈现输出的打印机或显示屏幕以及用于听觉呈现输出的扬声器或其他声音产生装置。可以用于用户界面的输入装置的例子包括键盘和指点装置(诸如鼠标、触控板和数字化平板)。作为另一个例子,计算机可以通过语音识别或者以其他合适的格式接收输入信息。
这样的计算机可以由任何合适的形式的一个或多个网络(包括局域网或广域网,诸如企业网和智能网络(IN)或互联网)互连。这样的网络可以基于任何合适的技术,可以根据任何合适的协议进行操作,并且可以包括无线网络、有线网络或光纤网络。
本文概述的各种方法或处理(例如,设计并做出上面公开的技术的方法或处理)可以被编码为在利用各种操作系统或平台中的任何一种的一个或多个处理器上可执行的软件。另外,这样的软件可以使用许多合适的编程语言和/或编程或脚本工具中的任一种来编写,并且还可以被编译为在框架或虚拟机上执行的可执行机器语言代码或中间代码。
在这方面,各种发明构思可以实施为被编码具有一个或多个程序的计算机可读存储介质(或多个计算机可读存储介质)(例如,计算机存储器、一个或多个软盘、紧凑盘、光学盘、磁带、闪存、现场可编程门阵列或其他半导体器件中的电路配置、或其他非暂时性的介质或有形的计算机存储介质),所述一个或多个程序当在一个或多个计算机或其他处理器上执行时执行实现上面所讨论的本发明的各种实施例的方法。一个或多个计算机可读介质可以是可传输的,以使得存储在其上的一个或多个程序可以被加载到一个或多个不同的计算机或其他处理器上以实现如上面所讨论的本发明的各方面。
术语“程序”或“软件”在本文中在一般的意义上用于指代可以用于将计算机或其他处理器编程为实现如上面所讨论的实施例的各方面的任何类型的计算机代码或计算机可执行指令集。另外,应意识到,根据一个方面,当被执行时执行本发明的方法的一个或多个计算机程序无需驻存在单个计算机或处理器上,而是可以以模块化的方式分布在若干不同的计算机或处理器上来实现本发明的各方面。
计算机可执行指令可以为被一个或多个计算机或其他装置执行的许多形式,诸如程序模块。一般来说,程序模块包括执行特定任务或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构等。典型地,程序模块的功能性可以在各种实施例中根据需要组合或分布。
此外,数据结构可以以任何合适的形式存储在计算机可读介质中。为简化说明,数据结构可以被示为具有通过数据结构中的位置关连的字段。这样的关系可以同样地通过用计算机可读介质中的传达字段之间的关系的位置为字段分配存储来实现。然而,任何合适的机制可以用于建立数据结构的字段中的信息之间的关系,包括通过使用指针、标签或建立数据元素之间的关系的其他机制。
此外,各种发明构思可以实施为一种或多种方法,所述方法的例子已经被提供。作为所述方法的一部分执行的动作可以按任何合适的方式排列。因此,可以构造这样的实施例:在这些实施例中,按不同于所例示的次序执行动作,这可以包括同时地执行一些动作,即使在例示性的实施例中被示为顺序的动作。
如这里所定义和使用的所有定义都应被理解为控制词典定义、通过引用并入的文档中的定义和/或定义的术语的普通意义。
如这里在本说明书和权利要求书中所使用的“一个”除非有相反的明确指示,否则应被理解为意指“至少一个”。
如这里在本说明书和权利要求书中所使用的短语“和/或”应被理解为意指如此联合的元素(即,在一些情况下结合地存在、而在其他情况下分开地存在的元素)中的“任一个或两个”。用“和/或”列出的多个元素应被以相同的方式解释,即,如此联合的元素中的“一个或多个”。除了用“和/或”子句具体标识的元素之外的其他元素可以可选地存在,不管与具体标识的那些元素是相关、还是无关。因此,作为非限制性例子,对于“A和/或B”的论述在与开放式语言(诸如“包括”)结合使用时在一个实施例中可以是指只有A(可选地包括除了B之外的元素);在另一个实施例中,可以是指只有B(可选地包括除了A之外的元素);在又一个实施例中,可以是指有A和B这二者(可选地包括其他元素);等等。
如这里在本说明书和权利要求书中所使用的,“或”应被理解为具有与如上面定义的“和/或”相同的意义。例如,当分离列表中的各项时,“或”或“和/或”应被解释为包容性的,即,包括若干元素或元素列表以及可选地另外的未列出的各项中的至少一个,而且还包括多于一个。只有明确相反指示的术语(诸如“.......中的仅一个”或“……中的正好一个”或在被用于权利要求中时的“由……组成”)才是指包括若干元素或元素列表中的正好一个元素。一般来说,如本文所使用的术语“或”在前面有排他性的术语(诸如“两者中任一个”、“.......中的一个”、“.......中的仅一个”或“.......中的正好一个”)时仅应被解释为指示排他性的替代方案(即,“一个或另一个、而不是两个”)。“基本上由……组成”在被用于权利要求中时应具有其如在专利法领域中所用的普通意义。
如这里在本说明书和权利要求书中所使用的,对于引用一个或多个元素的列表时的短语“至少一个”应被理解为意指从元素列表中的元素中的任何一个或多个中选择的至少一个元素,但是不一定包括该元素列表中具体地列出的每一个元素中的至少一个,并且不排除该元素列表中的元素的任何组合。该定义还允许除了短语“至少一个”所指的元素列表内具体地标识的元素之外的元素可以可选地存在。因此,作为非限制性例子,“A和B中的至少一个”(或者等同地,“A或B中的至少一个”,或者等同地,“A和/或B中的至少一个”)在一个实施例中可以是指至少一个A,可选地包括多于一个A,而B不存在(并且可选地包括除了B之外的元素);在另一个实施例中,可以是指至少一个B,可选地包括多于一个B,而A不存在(并且可选地包括除了A之外的元素);在又一个实施例中,可以是指至少一个A(可选地包括多于一个A)和至少一个B(可选地包括多于一个B)(并且可选地包括其他元素);等等。
在权利要求中,以及在上面的说明书中,所有的连接词(诸如“包括”、“包含”、“携带”、“具有”、“含有”、“涉及”、“保存”、“由……组成”等)都要被理解为开放式的,即,意指包括但不限于。只有连接词“由……构成”和“基本上由.......构成”分别应是封闭式的或半封闭式的连接词,如美国专利局专利审查程序手册第2111.03节中所阐述的那样。
Claims (15)
1.一种响应域名系统(DNS)查询的方法,该方法包括:
通过代理服务器从客户端接收DNS查询;
通过代理服务器生成修改的DNS查询,其中,生成修改的DNS查询包括修改所述DNS查询以包含对于元数据的请求;
通过代理服务器将所述修改的DNS查询传输到权威DNS服务器;
通过代理服务器从权威DNS服务器接收对于所述修改的DNS查询的响应,该响应包含所述元数据,其中,对于所述修改的DNS查询的响应包括所述元数据中包含的程序以及多个IP地址;
通过代理服务器至少部分基于所述元数据来生成对于所述DNS查询的响应,其中,生成对于所述DNS查询的响应包括执行所述元数据中包含的所述程序;以及
通过代理服务器将对于所述DNS查询的响应传输到客户端。
2.根据权利要求1所述的方法,其中,修改所述DNS查询包括在所述DNS查询中设置DNS安全(DNSSEC)OK(DO)标记。
3.根据权利要求1所述的方法,其中,所述元数据包含请求资源签名(RRSIG)记录。
4.根据权利要求1所述的方法,其中,执行所述元数据中包含的所述程序包括:
对所述多个IP地址进行重新排列;
对所述多个IP地址进行过滤;以及
从所述多个IP地址中选择IP地址。
5.根据权利要求1所述的方法,其中,生成对于所述DNS查询的响应包括从对于所述修改的DNS查询的响应中移除所述元数据。
6.根据权利要求1所述的方法,其中,生成对于所述DNS查询的响应包括应用一系列规则以将对于所述DNS查询的响应传输到客户端。
7.一种用于响应域名系统(DNS)查询的系统,该系统包括:
代理服务器,与DNS权威服务器和客户端设备进行数字通信,该代理服务器被配置为执行包括以下的操作:
从客户端设备接收DNS查询;
生成修改的DNS查询,其中,生成修改的DNS查询包括修改所述DNS查询以包含对于元数据的请求;
将所述修改的DNS查询传输到权威DNS服务器;
从权威DNS服务器接收对于所述修改的DNS查询的响应,该响应包含所述元数据,其中,对于所述修改的DNS查询的响应包含所述元数据中包含的程序和多个IP地址;
至少部分基于所述元数据来生成对于所述DNS查询的响应,其中,生成对于所述DNS查询的响应包括执行所述元数据中包含的所述程序;以及
将对于所述DNS查询的响应传输到客户端设备。
8.根据权利要求7所述的系统,其中,修改所述DNS查询包括在所述DNS查询中设置DNS安全(DNSSEC)OK(DO)标记。
9.根据权利要求7所述的系统,其中,所述元数据包含请求资源签名(RRSIG)记录。
10.根据权利要求7所述的系统,其中,执行所述程序包括:
对所述多个IP地址进行重新排列;
对所述多个IP地址进行过滤;以及
从所述多个IP地址中选择IP地址。
11.根据权利要求7所述的系统,其中,生成对于所述DNS查询的响应包括从对于所述修改的DNS查询的响应中移除所述元数据。
12.根据权利要求7所述的系统,其中,生成对于所述DNS查询的响应包括应用一系列规则以将对于所述DNS查询的响应传输到客户端设备。
13.一种响应多个域名系统(DNS)查询的方法,该方法包括:
通过代理服务器从一个或多个客户端接收多个DNS查询;
针对所述多个DNS查询中的每个特定DNS查询,确定该特定DNS查询是否包含对应的对于元数据的请求,其中如果该特定DNS查询包含对应的对于元数据的请求,则代理服务器被配置为将该特定DNS查询传输到权威DNS服务器;
响应于确定所述多个DNS查询中的从所述一个或多个客户端中的一个客户端接收的DNS查询不请求元数据:
通过代理服务器生成修改的DNS查询,其中生成修改的DNS查询包括修改DNS查询以包含对于元数据的请求;
通过代理服务器将所述修改的DNS查询传输到权威DNS服务器;
通过代理服务器从权威DNS服务器接收对于所述修改的DNS查询的响应,该响应包含所述元数据,其中,对于所述修改的DNS查询的响应包含所述元数据中包含的程序和多个IP地址;
通过代理服务器至少部分基于所述元数据来生成对于所述DNS查询的响应,其中,生成对于所述DNS查询的响应包括执行所述元数据中包含的所述程序;以及
通过代理服务器将对于所述DNS查询的响应传输到客户端。
14.根据权利要求13所述的方法,其中,基于IP地址的优先级、时延或可用性中的至少一项选择IP地址。
15.根据权利要求13所述的方法,还包括:
在将对于所述DNS查询的响应传输到客户端之前从对于所述修改的DNS查询的响应中移除所述元数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662305602P | 2016-03-09 | 2016-03-09 | |
US62/305,602 | 2016-03-09 | ||
PCT/US2017/021514 WO2017156231A1 (en) | 2016-03-09 | 2017-03-09 | Methods and apparatus for intelligent domain name system forwarding |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108886525A CN108886525A (zh) | 2018-11-23 |
CN108886525B true CN108886525B (zh) | 2021-08-20 |
Family
ID=59790779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780020823.2A Active CN108886525B (zh) | 2016-03-09 | 2017-03-09 | 智能域名系统转发的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10686751B2 (zh) |
EP (1) | EP3427465B1 (zh) |
JP (1) | JP6861219B2 (zh) |
CN (1) | CN108886525B (zh) |
WO (1) | WO2017156231A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10530734B2 (en) | 2014-12-16 | 2020-01-07 | Verisign, Inc. | Balancing visibility in the domain name system |
US10110614B2 (en) * | 2016-07-28 | 2018-10-23 | Verisign, Inc. | Strengthening integrity assurances for DNS data |
CN107222492A (zh) * | 2017-06-23 | 2017-09-29 | 网宿科技股份有限公司 | 一种dns防攻击方法、设备和系统 |
US10666603B2 (en) * | 2017-07-13 | 2020-05-26 | T-Mobile Usa, Inc. | Optimizing routing of access to network domains via a wireless communication network |
US11019083B2 (en) * | 2018-06-20 | 2021-05-25 | Cisco Technology, Inc. | System for coordinating distributed website analysis |
US10862854B2 (en) * | 2019-05-07 | 2020-12-08 | Bitdefender IPR Management Ltd. | Systems and methods for using DNS messages to selectively collect computer forensic data |
CN111953616B (zh) * | 2019-05-17 | 2023-01-31 | 贵州白山云科技股份有限公司 | 一种负载均衡调度方法、装置、系统、介质及设备 |
WO2021080283A1 (en) | 2019-10-25 | 2021-04-29 | Samsung Electronics Co., Ltd. | Methods and systems for determining icn capability of a node/server |
CN111917898B (zh) * | 2020-07-24 | 2021-08-27 | 网宿科技股份有限公司 | 一种资源调度策略的调整方法及装置 |
US11336698B1 (en) | 2021-04-22 | 2022-05-17 | Netskope, Inc. | Synthetic request injection for cloud policy enforcement |
US11190550B1 (en) | 2021-04-22 | 2021-11-30 | Netskope, Inc. | Synthetic request injection to improve object security posture for cloud security enforcement |
US11647052B2 (en) * | 2021-04-22 | 2023-05-09 | Netskope, Inc. | Synthetic request injection to retrieve expired metadata for cloud policy enforcement |
US11178188B1 (en) | 2021-04-22 | 2021-11-16 | Netskope, Inc. | Synthetic request injection to generate metadata for cloud policy enforcement |
US11184403B1 (en) | 2021-04-23 | 2021-11-23 | Netskope, Inc. | Synthetic request injection to generate metadata at points of presence for cloud security enforcement |
WO2022226210A1 (en) * | 2021-04-22 | 2022-10-27 | Netskope, Inc. | Synthetic request injection for cloud policy enforcement |
US11271973B1 (en) | 2021-04-23 | 2022-03-08 | Netskope, Inc. | Synthetic request injection to retrieve object metadata for cloud policy enforcement |
US11271972B1 (en) | 2021-04-23 | 2022-03-08 | Netskope, Inc. | Data flow logic for synthetic request injection for cloud security enforcement |
CN115277815A (zh) * | 2021-04-30 | 2022-11-01 | 维沃移动通信有限公司 | 信息处理方法、装置及通信设备 |
US11652782B1 (en) * | 2021-11-24 | 2023-05-16 | Oracle International Corporation | Methods, systems, and computer readable media for dynamically updating domain name system (DNS) records from registered network function (NF) profile information |
US11863518B2 (en) | 2021-11-24 | 2024-01-02 | Oracle International Corporation | Methods, systems, and computer readable media for automatic domain name system (DNS) configuration for 5G core (5GC) network functions (NFs) using NF repository function (NRF) |
CN114268605B (zh) * | 2021-12-16 | 2023-11-24 | 云盾智慧安全科技有限公司 | 一种智能dns实现方法、装置及计算机存储介质 |
US11943260B2 (en) | 2022-02-02 | 2024-03-26 | Netskope, Inc. | Synthetic request injection to retrieve metadata for cloud policy enforcement |
US20230291738A1 (en) * | 2022-03-10 | 2023-09-14 | BunnyWay d.o.o. | Method and system of dynamically returning domain name system record |
CN115297087A (zh) * | 2022-08-03 | 2022-11-04 | 中国电信股份有限公司 | 域名查询方法、系统、装置、设备及存储介质 |
US11811730B1 (en) * | 2022-10-11 | 2023-11-07 | International Business Machines Corporation | Determining domain name system forwarding rules in a multi-cloud environment |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1976307A (zh) * | 2005-11-28 | 2007-06-06 | 日立通讯技术株式会社 | Dns服务器装置 |
CN101841577A (zh) * | 2010-06-07 | 2010-09-22 | 中兴通讯股份有限公司 | 一种实现域名解析代理功能的方法和装置 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002069608A2 (en) * | 2001-01-16 | 2002-09-06 | Akamai Technologies, Inc. | Using virtual domain name service (dns) zones for enterprise content delivery |
US7864709B2 (en) | 2004-06-25 | 2011-01-04 | Apple Inc. | Method and apparatus for looking up configuration information for a network node |
US7694016B2 (en) * | 2007-02-07 | 2010-04-06 | Nominum, Inc. | Composite DNS zones |
US8429715B2 (en) * | 2008-08-08 | 2013-04-23 | Microsoft Corporation | Secure resource name resolution using a cache |
US7917616B2 (en) * | 2008-08-08 | 2011-03-29 | Microsoft Corporation | Secure resource name resolution |
AU2009225283A1 (en) * | 2008-10-16 | 2010-05-06 | David Tucker | Method Of Collecting Data From Computers Over The Internet |
CN101488965B (zh) * | 2009-02-23 | 2012-02-15 | 中国科学院计算技术研究所 | 一种域名过滤系统及方法 |
CN102484783B (zh) * | 2009-08-20 | 2014-11-26 | Nec欧洲有限公司 | 用于控制网络结构与网络结构之间的业务量的方法 |
US8656490B1 (en) * | 2010-09-14 | 2014-02-18 | Symantec Corporation | Safe and secure access to dynamic domain name systems |
US8549148B2 (en) * | 2010-10-15 | 2013-10-01 | Brocade Communications Systems, Inc. | Domain name system security extensions (DNSSEC) for global server load balancing |
US9106699B2 (en) * | 2010-11-04 | 2015-08-11 | F5 Networks, Inc. | Methods for handling requests between different resource record types and systems thereof |
WO2013035311A1 (ja) * | 2011-09-06 | 2013-03-14 | 日本電気株式会社 | エージェント装置及び通信中継方法 |
US9231903B2 (en) | 2011-12-30 | 2016-01-05 | Time Warner Cable Enterprises Llc | System and method for resolving a DNS request using metadata |
US9396330B2 (en) * | 2013-05-15 | 2016-07-19 | Citrix Systems, Inc. | Systems and methods for reducing denial of service attacks against dynamically generated next secure records |
US11411912B2 (en) * | 2015-07-17 | 2022-08-09 | Verisign, Inc. | Methods and systems for domain name data networking |
US10708226B2 (en) * | 2016-01-29 | 2020-07-07 | Verisign, Inc. | Domain name resolution |
US10110614B2 (en) * | 2016-07-28 | 2018-10-23 | Verisign, Inc. | Strengthening integrity assurances for DNS data |
US10367825B2 (en) * | 2016-12-28 | 2019-07-30 | Verisign, Inc. | Method and system for parallel validation of domain name system security extension records |
-
2017
- 2017-03-09 US US16/080,684 patent/US10686751B2/en active Active
- 2017-03-09 JP JP2018547416A patent/JP6861219B2/ja active Active
- 2017-03-09 CN CN201780020823.2A patent/CN108886525B/zh active Active
- 2017-03-09 EP EP17764066.1A patent/EP3427465B1/en active Active
- 2017-03-09 WO PCT/US2017/021514 patent/WO2017156231A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1976307A (zh) * | 2005-11-28 | 2007-06-06 | 日立通讯技术株式会社 | Dns服务器装置 |
CN101841577A (zh) * | 2010-06-07 | 2010-09-22 | 中兴通讯股份有限公司 | 一种实现域名解析代理功能的方法和装置 |
Non-Patent Citations (1)
Title |
---|
IETF.Indicating Resolver Support of DNSSEC.《RFC3225》.2001, * |
Also Published As
Publication number | Publication date |
---|---|
JP6861219B2 (ja) | 2021-04-21 |
EP3427465A1 (en) | 2019-01-16 |
US20190097965A1 (en) | 2019-03-28 |
EP3427465A4 (en) | 2019-10-16 |
CN108886525A (zh) | 2018-11-23 |
WO2017156231A1 (en) | 2017-09-14 |
JP2019507994A (ja) | 2019-03-22 |
EP3427465B1 (en) | 2022-03-23 |
US10686751B2 (en) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108886525B (zh) | 智能域名系统转发的方法和装置 | |
US11095711B2 (en) | DNS Resolution of internal tenant-specific domain addresses in a multi-tenant computing environment | |
US10425379B2 (en) | Establishing unique sessions for DNS subscribers | |
JP6054490B2 (ja) | ネットワークにおけるコンテンツにアクセスする方法および対応するシステム | |
EP2933986A1 (en) | Computer-implemented method, apparatus, and computer-readable medium for processing named entity queries using a cached functionality in a domain name system | |
CN102907073B (zh) | Dns服务器、网关和在数据传输中管理端口范围标识符的方法 | |
US10979384B2 (en) | Systems and methods for preserving privacy of a registrant in a Domain Name System (“DNS”) | |
EP3135021B1 (en) | Method and system for identifying network resources | |
US11102166B2 (en) | Explicit service function chaining (SFC) using DNS extensions | |
WO2017161965A1 (zh) | 一种动态域名系统dns重定向方法、装置及系统 | |
Blanchet | Finding the Authoritative Registration Data (RDAP) Service | |
CN115242882A (zh) | 一种基于传输层路由访问k8s容器环境的方法及装置 | |
Hankins et al. | Guidelines for Creating New DHCPv6 Options | |
JP2008206081A (ja) | マルチホーミング通信システムに用いられるデータ中継装置およびデータ中継方法 | |
JP6001512B2 (ja) | 通信制御システム及び通信制御方法 | |
CN112565305B (zh) | 一种使用域名访问局域网设备的方法、系统及存储介质 | |
Hankins et al. | RFC 7227: Guidelines for Creating New DHCPv6 Options | |
Blanchet | RFC 7484: Finding the Authoritative Registration Data (RDAP) Service | |
Fredriksson et al. | Investigating Federated Object Naming Service as Directory Service for the Internet of Things |
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 |