CN105453488B - 用于处理dns请求的方法和系统 - Google Patents

用于处理dns请求的方法和系统 Download PDF

Info

Publication number
CN105453488B
CN105453488B CN201480009088.1A CN201480009088A CN105453488B CN 105453488 B CN105453488 B CN 105453488B CN 201480009088 A CN201480009088 A CN 201480009088A CN 105453488 B CN105453488 B CN 105453488B
Authority
CN
China
Prior art keywords
dns
gateway
tunnel
response
request
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
Application number
CN201480009088.1A
Other languages
English (en)
Other versions
CN105453488A (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.)
Pismo Labs Technology Ltd
Original Assignee
Pismo Labs Technology 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 Pismo Labs Technology Ltd filed Critical Pismo Labs Technology Ltd
Priority to CN201910022554.4A priority Critical patent/CN109889618B/zh
Publication of CN105453488A publication Critical patent/CN105453488A/zh
Application granted granted Critical
Publication of CN105453488B publication Critical patent/CN105453488B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • 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/5053Lease time; Renewal aspects
    • 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/69Types of network addresses using geographic information, e.g. room number

Abstract

一种用于在网关中处理域名服务(DNS)请求的方法以及系统。所述网关从来自其局域网的主机接收DNS请求。所述网关随后选择DNS服务器且向至少一个DNS服务器发送新DNS请求。DNS服务器可以或不可以通过第一隧道访问。所述新DNS请求的内容与所述所接收的DNS请求的内容相同。此外,当所述网关接收与所述DNS请求相对应的DNS响应时,它确定是否通过第二隧道向所述主机传送数据的决定,所述主机的IP地址在所述DNS响应中指定。所述决定可以是基于IP地址的地理位置。

Description

用于处理DNS请求的方法和系统
技术领域
本发明大体上涉及计算机网络的领域。更具体来说,本发明涉及用于在网关中处理域名服务(DNS)请求的方法以及系统。所述网关基于第二主机的因特网协议(IP)地址的地理位置确定是否使用第二隧道来向第二主机传送数据的决定,其中第二主机的IP地址在第一DNS响应中指定。
背景技术
域名系统(DNS)是用于计算机、服务、或连接到因特网或专用网络的任何资源的分层分布式命名系统。它使各种类型的信息与分配给参与实体中的每一者的域名相关联。出于在全世界定位计算机服务以及装置的目的,DNS将这些名称的请求解析成因特网协议(IP)地址。例如由于内容分布式网络、管理员的干预、以及是否包括DNS服务器的原因,不同的DNS服务器可以不同方式解析特定的DNS请求。在另一实例中,由于政治性原因或法规,位于国家A中的DNS服务器可能不能为在国家A中受限的网站提供准确IP地址。通常已知在国家A中受限的网站的IP地址可能不可由位于国家A中的主机或网关访问。还常见的是,在国家A中受限的网站的IP地址的地理位置最可能在国家A外部。为了克服此问题,IP地址的IP包可以通过虚拟专用网络(VPN)连接等隧道来发送或接收。技术中的一者是在网关处建立规则或策略以通过隧道或VPN具有指向受限IP地址、域名和/或网站的数据。对于管理员而言,如果存在许多受限IP地址、域名和/或网站,特别地如果不知道哪些是受限的,那么建立规则以及策略可能变得非常不便。
发明内容
本发明揭示了用于在网关中处理域名服务(DNS)请求的方法,所述网关包括至少一个局域网(LAN)接口以及至少一个广域网(WAN)接口。所述网关经由网关的至少一个LAN接口中的一者从第一主机接收第一DNS请求。所述网关选择至少一个DNS服务器。如果至少一个DNS服务器是通过至少一个隧道可访问的,那么通过至少一个隧道向至少一个DNS服务器发送至少一个新DNS请求。或者,如果至少一个DNS服务器是通过任何隧道都不可访问的,那么在不使用隧道的情况下向至少一个DNS服务器发送至少一个新DNS请求。至少一个新DNS请求是基于第一DNS请求,使得至少一个新DNS请求的内容与第一DNS请求的内容相同。
根据本发明的实施例中的一者,选择至少一个DNS服务器的步骤包括确定由网关通过至少一个隧道可访问的一或多个DNS服务器。所述网关随后从一或多个DNS服务器选择至少一个DNS服务器。
根据本发明的实施例中的一者,用于在网关中处理DNS请求的方法进一步包括所述网关从至少一个DNS服务器接收第一DNS响应。所述网关随后经由网关的LAN接口中的一者向主机发送新DNS响应。新DNS响应是基于第一DNS响应。所述网关通过使用IP地理位置数据库来确定在第一DNS响应中指定的IP地址的地理位置,且确定是否使用第二隧道在第一主机与第二主机之间传送数据的决定。第二主机是通过在第一DNS响应中指定的IP地址可访问的。如果所述决定是使用第二隧道,那么所述网关使用第二隧道在第一主机与第二主机之间传送数据。或者,如果所述决定是不使用第二隧道或如果不存在决定,那么所述网关不使用第二隧道在第一主机与第二主机之间传送数据。
根据本发明的实施例中的一者,第一DNS响应通过第一隧道接收。第一隧道是用于发送至少一个新DNS请求的至少一个隧道中的一者。在一个变型例中,第一隧道与第二隧道相同。或者,第一隧道不与第二隧道相同。
根据本发明的实施例中的一者,如果网关确定使用第二隧道,那么第二隧道进一步用于在网关与第二主机之间传送数据。
根据本发明的实施例中的一者,确定是否在网关与第二主机之间或在第一主机与第二主机之间传送数据的步骤是基于在第一DNS响应中指定的IP地址的地理位置。
根据本发明的实施例中的一者,至少一个新DNS请求的数目是至少两个,使得通过网关发送至少两个新DNS请求。多个DNS响应在网关处被接收且第一DNS响应选自所述多个DNS响应。如果存在通过至少一个隧道接收的至少一个DNS响应,那么第一DNS响应选自通过至少一个隧道接收的至少一个DNS响应。或者,如果没有DNS响应通过至少一个隧道中的任一者接收,那么第一DNS响应选自所接收的多个DNS响应。多个DNS响应可以在预定义时间段内被接收。
根据本发明的实施例中的一者,确定是否在网关与第二主机之间或在第一主机与第二主机之间传送数据的步骤是基于在多个DNS响应中的至少两者中指定的IP地址是否相同。
根据本发明的实施例中的一者,是否在第一主机与第二主机之间传送数据的决定存储在计算机可读存储媒体中。当在第一DNS响应的生存时间(TTL)字段中指定的时间段已经期满时,从计算机可读存储媒体删除所述决定。
根据本发明的实施例中的一者,是否在第一主机与第二主机之间传送数据的决定存储在计算机可读存储媒体中。所述决定含有在第一DNS响应中指定的IP地址。当在第一DNS响应的TTL字段中指定的时间段已经期满时,将至少一个第二新DNS请求发送到至少一个DNS服务器。与至少一个第二新DNS请求相对应的第二DNS响应被接收。在所述决定中的IP地址随后更新成在第二DNS响应中指定的IP地址。
具体实施方式
以下说明仅提供优选的示例性实施例且并不意图限制本发明的范围、适用性或配置。实际上,以下优选的示例性实施例的说明将为所属领域的技术人员提供用于实施本发明的优选的示例性实施例的有用描述。应理解,在不脱离如在所附权利要求书中阐述的本发明的精神和范围的情况下可以对元件的功能以及布置进行各种改变。
在以下描述中给出具体细节以提供对实施例的透彻理解。然而,所属领域的技术人员应理解,所述实例可在没有这些具体细节的情况下实践。例如,可以框图示出电路以便不以不必要的细节混淆实施例。在其它实例中,在没有不必要的细节的情况下示出熟知的电路、过程、算法、结构以及技术以便避免混淆实施例。
同样,应注意,实施例可以描述为过程,所述过程描绘为流程图、流程图表、数据流图、结构图或框图。尽管流程图可以将操作描述为顺序过程,但是许多操作可以并行或同时执行。另外,可以重新布置操作的次序。当操作完成时,过程终止,但是过程可以具有不包含在图中的另外步骤。过程可以与方法、函数、步骤、子例程、子程序等相对应。当过程与函数相对应时,其终止与所述函数返回到调用函数或主函数相对应。
实施例或其各部分可以程序指令来实施,所述程序指令可在处理单元上操作以用于执行如本文中所描述的功能以及操作。构成各种实施例的程序指令可以存储在存储媒体中。
构成各种实施例的程序指令可以存储在存储媒体中。此外,如本文中所揭示,术语“计算机可读存储媒体”可以表示用于存储数据的一或多个装置,包含只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、随机存取存储器(RAM)、磁RAM、磁芯存储器、软盘、软磁盘、硬盘、磁带、CD-ROM、闪存存储器装置、存储卡和/或用于存储信息的其它机器可读媒体。术语“计算机可读存储媒体”还可以包含但不限于,便携式或固定存储装置、光学存储媒体、磁性媒体、存储器芯片或盒式磁盘、无线信道以及能够存储、含有或携载指令和/或数据的各种其它媒体。计算机可读存储媒体可以通过虚拟化来实现,且可以是虚拟计算机可读存储媒体,包含在基于云的实例中的虚拟计算机可读存储媒体。
如本文所使用的术语“计算机可读媒体”是指任何参与向处理单元提供指令以供执行的媒体。计算机可读媒体仅是机器可读媒体的一个实例,所述机器可读媒体可以携载指令以用于实施本文中所描述的方法和/或技术中的任一者。此媒体可以采用许多形式,包含但不限于非易失性媒体、易失性媒体和传输媒体。非易失性媒体包含(例如)光盘或磁盘。易失性媒体包含动态存储器。传输媒体包含同轴电缆、铜线以及光纤。传输媒体还可以采用声波或光波的形式,例如在无线电波以及红外线数据通信期间产生的声波或光波。
易失性存储器可以用于在通过处理单元执行指令期间存储临时变量或其它中间信息。非易失性存储器或静态存储器可以用于存储用于处理器的静态信息以及指令,以及各种系统配置参数。
存储媒体可以包含多个软件模块,所述软件模块可以实施为通过处理单元使用任何合适的计算机指令类型来执行的软件代码。软件代码可以作为一系列指令或命令、或作为程序存储在存储媒体中。
在将一或多个指令的一或多个序列携载到处理器以用于执行时,可以涉及各种形式的计算机可读媒体。例如,最初可以在磁盘上从远程计算机携载指令。替代地,远程计算机可以将所述指令加载到其动态存储器中,且向运行一或多个指令的一或多个序列的系统发送指令。
处理单元可以是微处理器、微控制器、数字信号处理器(DSP)、那些装置的任何组合、或经配置以处理信息的任何其它电路。
处理单元执行程序指令或代码段以用于实施本发明的实施例。此外,实施例可以由硬件、软件、固件、中间件、微码、硬件描述语言或其任何组合来实施。当用软件、固件、中间件或微码实施时,执行必需的任务的程序代码或代码段可以存储在计算机可读存储媒体中。处理单元可以执行必需的任务。处理单元可以通过虚拟化来实现,且可以是虚拟处理单元,包含在基于云的实例中的虚拟处理单元。
本发明的实施例涉及使用计算机系统来实施本文中所描述的技术。在实施例中,本发明的处理单元可以存在于计算机平台等机器上。根据本发明的一个实施例,本文中所描述的技术由计算机系统执行,以响应于处理单元执行易失性存储器中所含有的一或多个指令的一或多个序列。此类指令可以从另一计算机可读媒体读取到易失性存储器中。对易失性存储器中所含有的指令的序列的执行使得处理单元执行本文中所描述的过程步骤。在替代实施例中,硬接线电路可以用于取代或结合软件指令以实施本发明。因此,本发明的实施例不限于硬件电路以及软件的任何特定组合。
代码段或程序指令可以表示步骤、函数、子程序、程序、例程、子例程、模块、软件包、类、或指令、数据结构、或程序语句的任何组合。通过传递和/或接收信息、数据、引数、参数或存储器内容,代码段可以耦合到另一代码段、程序指令或硬件。信息、引数、参数、数据等可以经由包含存储器共享、消息传递、令牌传递、网络传输等任何合适的方法传递、传输或传输。
或者,硬接线电路可以用于取代或结合软件指令以实施符合本发明的原理的过程。因此,符合本发明的原理的实施方案不限于硬件电路以及软件的任何特定组合。
接入网络允许网关连接到其它网络,例如因特网以及外联网。为了确定网络是否是可访问的,网关可以定期发送出包以测试可访问性。例如,网关可以向主机发送ICMP回应请求包且测量ICMP回应回复包的到达时间以确定网络是否是可访问的。所属领域的技术人员将清楚,可以使用更多的方法以及技术来确定网络是否是可访问的。
本发明的当前优选的实施例可以利用网关。网关是在网络上的装置或节点,其执行不同类型网络或应用之间的协议转换且能够处理DNS请求以及响应。术语“网关”并不意图限于单一类型的装置,因为出于本申请案的目的,可以充当用户与网络之间的网桥的任何装置、硬件或软件都可以被认为是网关。网关可以与多个多网络耦合。出于本发明的目的,路由器、交换机、网桥、无线接入点、计算装置中的虚拟机或能够充当朝向另一网络的接入点且处理DNS请求以及响应的任何设备都可以被认为是网关。
网络接口可以通过独立的电子组件实施或者可以与其它电子组件整合。根据配置,网络接口可以不具有网络连接或具有至少一个网络连接。网络接口仅连接到一个接入网络。因此,可以存在通过一个接入网络携载的超过一个网络连接。网络接口可以是以太网接口、帧中继接口、光纤接口、电缆接口、DSL接口、令牌环接口、串行总线接口、通用串行总线(USB)接口、火线接口、外围组件互连(PCI)接口等。
网络接口可以连接到有线或无线接入网络。接入网络可以携载一或多个网络协议数据。有线接入网络可以使用以太网、光纤、电缆、DSL、帧中继、令牌环、串行总线、USB、火线、PCI或可以传递信息的任何材料来实施。无线接入网络可以使用红外线、高速分组接入(HSPA)、HSPA+、长期演进(LTE)、WiMax、GPRS、EDGE、GSM、CDMA、WiFi、CDMA2000、WCDMA、TD-SCDMA、蓝牙、WiBRO、演进数据优化(EV-DO);数字增强型无绳通信(DECT);数字AMPS(IS-136/TDMA);集成数字增强型(iDEN)或任何其它无线技术来实施。
接入网络可以携载一或多个网络协议数据,包含但不限于因特网协议(IP)、IPv4或IPv6。接入网络可以是有线网络或无线网络。可接入无线网络可以使用光纤、电缆或可以传递信息的任何材料来实施。可接入无线网络还可以使用红外线、以太网、DSL、高速分组接入(HSPA)、HSPA+、长期演进(LTE)、WiMax、GPRS、EDGE、GSM、CDMA、WiFi、CDMA2000、WCDMA、TD-SCDMA、蓝牙、WiBRO或任何其它无线技术来实施。
实施例或其各部分可以计算机数据信号来实施,所述计算机数据信号可以采用用于经由传输媒体进行通信的任何合适的形式,使得所述计算机数据信号是可读的以用于通过功能装置(例如,处理单元)来执行以执行本文中所描述的操作。计算机数据信号可以包含可以经由传输媒体传播的任何二进制数字电子信号,所述传输媒体例如电子网络信道、光纤、空气、电磁媒体、射频(RF)链路及其类似者,且因此数据信号可以采用电信号、光学信号、射频或其它无线通信信号等形式。在某些实施例中,代码段可以经由计算机网络来下载,所述计算机网络例如因特网、内联网、局域网(LAN)、城域网(MAN)、广域网(WAN)、PSTN、卫星通信系统、电缆传输系统和/或其类似者。
图1A图示了根据本发明的实施例中的一者的网络环境。网关101对应地具有局域网(LAN)接口102以及两个广域网(WAN)接口103和104。两个接入网络121以及122对应地经由网络链路111以及112连接到WAN接口103以及104。因此,网关101具有用于连接到互连网络105的两个接入网络,所述互连网络可以是因特网。接入网络121以及122可以由相同或不同的因特网服务提供商(ISP)提供。例如,连接到WAN接口103的接入网络121可以通过Verizon使用DSL技术来提供,且连接到WAN接口104的接入网络122可以通过Sprint使用LTE技术来提供。DNS服务器131以及132是通过网关101经由WAN接口103以及104可访问的。
当网关101经由LAN接口102从发送器接收第一DNS请求时,它选择至少一个DNS服务器(例如DNS服务器131或132)以及至少一个接入网络以用于发送多个新DNS请求。发送器可以是主机、网络中的节点、计算装置、网络装置、移动电话、平板电脑、桌上型计算机、膝上型计算机、仪表、摄像机、录音机、声音接收器、视频显示器、传感器或能够发送DNS请求的任何电子装置。第一DNS请求可以是查询网关101中与域名有关的信息。在一个变型例中,当网关101具有回答第一DNS请求的信息时,网关101回复第一DNS请求而不将第一DNS请求发送到其它DNS服务器。
新DNS请求具有与第一DNS请求中所含有的内容相同的内容。在一个实例中,当第一DNS请求是解析域名“happy.com”的IP地址时,所有新DNS请求都是解析相同域名“happy.com”的IP地址。在一个实例中,当第一DNS请求是通过域名“happy.com”的类型查询资源记录时,所有新DNS请求都是通过相同域名“happy.com”的类型查询资源记录。在一个实例中,当第一DNS请求是查询“yahoo.com”的邮件交换(MX)记录时,所有新DNS请求都是查询“yahoo.com”的MX记录。对于每个选定DNS服务器,网关101经由选定接入网络中的一者向所述DNS服务器发送新DNS请求。因此,网关101可以通过两个不同的选定接入网络向选定DNS服务器发送超过一个新DNS请求。并且,网关101可以向不同的选定DNS服务器发送多个新DNS请求。然而,网关101仅通过一个选定接入网络向一个选定DNS服务器发送一个新DNS请求。除非为了重新发送新DNS请求,否则网关101并不通过相同的选定接入网络向相同的选定DNS服务器发送超过一个新DNS请求。这是因为通过相同的选定接入网络向相同的选定DNS服务器发送超过一个新DNS请求所得的性能改进以及可靠性改进是最小的。
因为网关101可以对应地通过使用WAN接口103以及104经由接入网络121以及122连接DNS服务器131以及132两者,所以网关101具有发送新DNS请求的四个替代方案。第一替代方案是经由接入网络121且经由WAN接口103向DNS服务器131发送新DNS请求中的一者。第二替代方案是经由接入网络122且经由WAN接口104向DNS服务器131发送新DNS请求中的一者。第三替代方案是经由接入网络121且经由WAN接口103向DNS服务器132发送新DNS请求中的一者。第四替代方案是经由接入网络112且经由WAN接口104向DNS服务器132发送新DNS请求中的一者。网关101选择四个替代方案中的至少两者来发送新DNS请求。使用超过一个替代方案来发送新DNS请求的益处包含增加解析第一DNS请求的速度以及增加解析第一DNS请求的可靠性。
图1B图示了根据本发明的实施例中的一者的网络环境。图1B与图1A不同,不同之处在于接入网络121直接连接到DNS服务器141以及142而不经过互连网络105,且接入网络122直接连接到DNS服务器143而不经过互连网络105。另外,对于连接到接入网络121的主机,DNS服务器141以及142是受限的,且对于连接到接入网络122的主机,DNS服务器143是受限的。因此,网关101不能经由WAN接口103访问DNS服务器143且不能经由WAN接口104访问DNS服务器141以及142。当网关101已经选定一或多个DNS服务器用于解析DNS请求时,网关101随后将确定使用哪一个WAN接口来发送一或多个新DNS请求。替代地,当网关101已经选定一或多个WAN接口用于发送一或多个新DNS请求时,网关101随后将确定将使用哪一个DNS服务器来解析新DNS请求。
新DNS请求具有与第一DNS请求中所含有的内容或查询相同的内容或查询。出于说明目的,当第一DNS请求是解析域名“happy.com”的IP地址时,所有新DNS请求都是解析相同域名“happy.com”的IP地址。对于选定DNS服务器中的每一者,网关101经由选定接入网络中的一者向所述DNS服务器发送新DNS请求中的一者。因此,网关101可以通过两个不同的选定接入网络向选定DNS服务器发送超过一个新DNS请求。并且,网关101可以向不同的选定DNS服务器发送多个新DNS请求。然而,网关101仅经由一个选定接入网络向一个选定DNS服务器发送一个新DNS请求。网关101并不通过相同的选定接入网络向相同的选定DNS服务器发送超过一个新DNS请求。这是因为通过相同的选定接入网络向相同的选定DNS服务器发送超过一个新DNS请求所得的性能改进以及可靠性改进是最小的。
发送DNS请求
图2是图示本发明的实施例中的一者的步骤的流程图。为了说明实施例,图1A与图2结合起来使用。当网关经由LAN接口102在步骤201处接收第一DNS请求时,网关101在步骤202处选择至少一个DNS服务器且在步骤203处选择至少一个接入网络。可用于选择的DNS服务器可以由网关的管理员手动配置、由接入网络的服务提供商提供、从网关的存储系统检索出、或从DHCP消息获得。
当网关101选择DNS服务器131或132时,网关101还选择经授权向所述选定DNS服务器发送新DNS请求的接入网络121或122,因为一些DNS服务器仅响应于来源于经授权IP地址的DNS请求。在一个变型例中,网关101根据预定义策略随机地在步骤202处选择至少一个DNS服务器且在步骤203处选择至少一个接入网络。在一个实例中,预定义策略是基于由网关管理员输入的配置来选择DNS服务器以及接入网络。在一个实例中,预定义策略是基于可用性选择DNS服务器以及接入网络。在一个实例中,预定义策略是基于由网关管理员输入的配置选择DNS服务器以及接入网络。在一个实例中,预定义策略是基于对经由可接入网络从DNS服务器接收的DNS响应的统计分析来选择DNS服务器以及接入网络。在一个实例中,预定义策略是基于具有有效响应代码的历史平均DNS响应速度来选择DNS服务器以及接入网络。
出于说明性目的,网关101经由接入网络121且经由WAN接口103选择DNS服务器131、经由接入网络122且经由WAN接口104选择DNS服务器131、以及经由接入网络121且经由WAN接口103选择DNS服务器132。因此,在步骤204处,网关101产生三个新DNS请求且随后经由WAN接口103向DNS服务器131发送新DNS请求、经由WAN接口104向DNS服务器131发送另一新DNS请求以及经由WAN接口103向DNS服务器132发送另一新DNS请求。
在步骤204处,新DNS请求通过选定接入网络发送给选定DNS服务器。
根据本发明的实施例中的一者,执行步骤202以及步骤203的次序可以互换或合并为单一步骤。
在本发明的实施例中的一者中,图2还结合图1B图示了实施例的步骤。DNS服务器141以及142是仅通过接入网络121可访问的。DNS服务器143是仅通过接入网络122可访问的。
当网关经由LAN接口102在步骤201处接收第一DNS请求时,网关101在步骤202处选择至少一个DNS服务器且在步骤203处选择至少一个接入网络。可用于选择的DNS服务器可以由网关的管理员手动配置、由接入网络的服务提供商提供、从网关的存储系统检索出、或从DHCP消息获得。
当网关101选择DNS服务器141或142时,网关101使用接入网络121来向选定DNS服务器发送新DNS请求。当网关101选择DNS服务器143时,网关101使用网络121来向DNS服务器143发送新DNS请求。
出于说明性目的,网关101选择DNS服务器141以及143。因此,在步骤204处,网关101产生两个新DNS请求且随后经由WAN接口103向DNS服务器141发送新DNS请求、且经由WAN接口103向DNS服务器143发送另一新DNS请求。
在步骤204处,新DNS请求通过选定接入网络发送给选定DNS服务器。
根据本发明的实施例中的一者,执行步骤202以及步骤203的次序可以更换或合并为单一步骤。
根据本发明的实施例中的一者,当存在n个DNS服务器以及m个接入网络时,总共存在n乘m个可用的DNS服务器以及接入网络组合。网关选择此类DNS服务器以及接入网络组合中的至少两者用于发送多个新DNS请求。因此,当网关仅选择一个DNS服务器时,网关选择至少两个接入网络;当网关仅选择一个接入网络时,网关选择至少两个DNS服务器。新DNS请求与第一DNS请求相对应,使得新DNS请求的查询与第一DNS请求的查询相同。所属领域的技术人员将清楚,可以使用更多的方法以及技术来根据第一DNS请求的查询产生新DNS请求。
根据本发明的实施例中的一者,结合图6A观察图2,在步骤202中的至少一个DNS服务器中的至少一者是通过VPN连接可访问的。例如,在步骤202中选定多个DNS服务器,包含DNS服务器141、143、601以及602。所述多个DNS服务器中的至少一者,例如DNS服务器602,是通过在网关101与路由器600之间建立的VPN连接可访问的。网关101可以通过WAN接口103以及104中的任一者建立与路由器600之间的VPN连接,或者也可以通过合并通过WAN接口103以及104建立的VPN连接来建立聚合的VPN连接。当选定多个DNS服务器时,所述DNS服务器相对应的接入网络以及VPN连接在步骤203中选定。随后在步骤204中将多个新DNS请求发送给多个DNS服务器。多个新DNS请求中的至少一者通过至少一个VPN连接发送。
接收DNS响应
根据本发明的实施例中的一者,在发送新DNS请求之后,网关101可以不接收DNS响应、接收一或多个DNS响应以响应于来自选定DNS服务器(例如DNS服务器131以及132)的新DNS请求。网关101可以向第一DNS请求的发送器发送一个、超过一个新DNS响应。第一DNS请求的发送器是主机,所述主机经由LAN接口102向网关101发送DNS请求。由网关发送的新DNS响应含有来自由网关101接收的DNS响应的相同响应。
当所接收的DNS响应具有返回码(RCODE)零时,所述DNS响应被认为是有效的。所属领域的技术人员将清楚,因特网地址分配机构已经为不同的RCODE分配了不同的含义。所属领域的技术人员还将清楚,当DNS响应已经被发送给第一DNS请求的发送器时,可以使用更多的方法以及技术来处理其它DNS响应。
图3是图示本发明的实施例中的一者的流程图。为了说明实施例,图1A与图3结合起来使用。网关101在步骤301处从DNS服务器131以及132中的一者接收DNS响应。仅当由网关101接收的DNS响应在步骤302处被确认为有效且在步骤303处没有其它新DNS响应已经在之前发送给第一DNS请求的发送器时,网关101才在步骤304处将新DNS响应转发到第一DNS请求的发送器。因此,第一DNS请求的发送器仅接收它先前发送的第一DNS请求的一个新DNS响应。如果稍后其它DNS响应已经由网关接收,那么网关在步骤305处丢弃这些所接收的DNS响应。
在于在步骤304处执行的转发中,网关101产生新DNS响应且向第一DNS请求的发送器发送新DNS响应。新DNS响应的内容与在301处接收的DNS响应中的内容与相同。例如,在发送给第一DNS请求的发送器的新DNS响应中的RCODE的值与DNS响应中的一者的RCODE相同。
如果在接收第一有效DNS响应之前存在由网关101接收的一或多个无效DNS响应,那么在将新DNS响应发送到第一DNS请求的发送器之后,丢弃所述一或多个无效DNS响应。
根据本发明的实施例中的一者,当在预定义时间段内没有与新DNS请求相对应的DNS响应已经被网关101接收时,网关101向第一DNS请求的发送器发送具有非零RCODE的新DNS响应。预定义时间段的值可以由网关的制造商、网关的管理员、和/或由主机确定。在一个变型例中,预定义时间段在一百毫秒到二十秒的范围中。在预定义时间段之后没有DNS响应被网关101接收的原因可能是,所接收的DNS响应都不具有RCODE零或没有DNS响应已经从选定DNS服务器中的任一者被接收。
根据本发明的实施例中的一者,当在预定义超时之前网关101已经接收超过一个DNS响应且这些所接收的DNS响应中没有DNS响应被认为有效时,网关101必须确定如何对第一DNS请求的发送器作出响应。根据本发明的实施例中的一者,网关101向第一DNS请求的发送器发送具有从所接收的DNS响应中的一者检索出的内容的新DNS响应。例如,在一个变型例型例中,在发送给第一DNS请求的发送器的DNS响应中的RCODE是由网关101接收的所有DNS响应中含有的RCODE的大部分。在一个变型例中,由网关101发送给第一DNS请求的发送器的DNS响应中的RCODE随机地从由网关101接收的DNS响应中的一者选择。
根据本发明的实施例中的一者,当网关101已经接收与所有新DNS请求相对应的所有DNS响应且这些DNS响应中没有DNS响应被认为有效时,网关101向第一DNS请求的发送器发送新DNS响应。新DNS响应的内容选自所接收的DNS响应中的一者。所述选择可以随机地、以统计方式、根据接收的时间或根据接收的次序确定。
根据本发明的实施例中的一者,当网关101已经接收与所有新DNS请求相对应的所有DNS响应且这些DNS响应中没有DNS响应被认为有效时,网关101向第一DNS请求的发送器发送新DNS响应。新DNS响应的内容选自所接收的DNS响应中的一者。对新DNS响应应该选自哪一个所接收的DNS响应的选择可以随机地、以统计方式、根据接收的时间或根据接收的次序确定。
图4是图示本发明的实施例中的一者的流程图。为了说明实施例,图1A与图4结合起来使用。如果在网关101处预定义时间尚未期满,那么网关101等待直到预定义时间期满同时存储与新DNS请求相对应的DNS响应,所述DNS响应在步骤401处经由LAN接口102接收在存储器中。
在步骤402处,网关101选择DNS响应中的一者。存在网关101用以执行对DNS响应的选择的许多方式,包含基于到达时间、DNS响应的内容、DNS服务器的身份、DNS响应的源等的方式。根据本发明的实施例中的一者,对DNS响应的选择是根据预定义策略。在一个实例中,选择策略是如果DNS响应在预定义时间已经期满之前是可用的,则从DNS服务器131选择DNS响应。在一个实例中,如果没有DNS响应在预定义时间之前是可用的,则执行上述操作。在一个实例中,所述策略是选择最早到达DNS服务器131的DNS响应。在一个实例中,选择策略的设定可以由网关101的管理员远程或在本地配置。
在步骤403处,网关101基于选定DNS响应向第一DNS请求的发送器发送新DNS响应。
图5图示本发明的实施例中的一者:根据所描述的本发明的具有处理DNS请求的能力的网关。网关101包括处理单元505、计算机可读存储媒体506、至少一个LAN接口502、以及多个WAN接口,例如第一WAN接口503以及第二WAN接口504,以用于与其它网络装置一起使用,所述其它网络装置例如以太网交换机、IP路由器以及其它分组网络装置、网络管理以及准备系统、本地PC等。可以用于网关101内的其它组件包含放大器、板级电子组件、以及媒体处理器以及其它专门的SoC或ASIC装置。还可以视需要提供对各处理层以及协议(例如,802.3、DOCSIS MAC、DHCP、SNMP、H.323/RTP/RTCP、VoIP、SIP等)的支持。
网关101可以采用任何数目的物理形式,包括例如在所属领域中熟知的类型的较大网络边缘或集线器装置内的多个离散模块或卡中的一者,且还可以包括固件,所述固件或者是单独的或者与其它硬件/软件组件结合。替代地,网络装置101可以是安置在其它计算装置或网络装置处的单独装置或模块,且甚至可以包含其自身的射频(RF)前端(例如,调制器、加密机等)或光接口以便直接与其它计算装置以及网络装置接合。可以使用许多其它配置。网关101还可以与其它类型的组件(例如移动基站、卫星收发器、视频机顶盒、编码器/解码器等)以及形状因数整合,如果需要的话。
处理单元505可以通过使用一或多个中央处理单元、网络处理器、微处理器、微控制器、FPGA、ASIC或能够执行指令以执行系统的基础算术、逻辑以及输入/输出操作的任何装置来实施。
计算机可读存储媒体506可以通过使用至少一个DRAM、SDRAM、闪存RAM、光学存储器、磁存储器、硬盘、和/或能够提供存储能力的任何计算机可读媒体来实施。计算机可读存储媒体506可以用于向处理单元505提供指令,以提供存储器来存储标识符、条件、网络性能统计以及其它数据以促进网关的操作。
当处理单元505根据预定义策略执行选择时,处理单元505从计算机可读存储媒体506检索与预定义策略相对应的信息,且随后执行所需的逻辑运算以及算术计算以便执行选择。
在网关101处的多个WAN接口,例如WAN接口503以及504,可以使用串行总线、通用串行总线(USB)、并行总线、通用异步收/发器(UART)、外围组件互连(PCI)、局部总线、或用以连接处理单元505以及代理的其它电子组件连接技术来实施,所述代理用于与光纤、电缆、或天线相连接。在一个变型例中,多个WAN接口中的至少一者在处理单元505中,且因此用于与光纤、电缆或天线相连接的代理可以直接与处理单元505相连接。在一个变型例中,至少一个WAN接口可以连接到以太网端口以用于以太网WAN连接。在一个变型例中,多个WAN接口中的至少一者可以连接到Wi-Fi适配器以用于Wi-Fi网络连接。在一个变型例中,多个WAN接口中的至少一者可以连接到USB端口且USB端口可以连接到外部调制解调器以用于无线WAN连接,例如USB 3G调制解调器、USB LTE调制解调器、USB WiMax调制解调器、USB Wi-Fi调制解调器、或用于无线通信的其它调制解调器。在一个变型例中,多个WAN接口中的全部连接多个USB端口以用于外部调制解调器连接。在一个变型例中,多个WAN接口中的全部连接到网关101内部的电路。鉴于本发明,所属领域的技术人员将了解前述内容的无数其它组合以及排列。
当网关101经由LAN接口502接收在图1中描述为第一DNS请求的第一DNS请求时,处理单元505选择至少一个DNS服务器且选择至少一个接入网络,所述接入网络连接到WAN接口503或504。可用于选择的DNS服务器可以由网关101的管理员手动配置、由接入网络的服务提供商提供、从计算机可读存储媒体506检索出、或从至少一个DHCP消息获得。根据本发明的实施例中的一者,当处理单元505选择DNS服务器时,处理单元505还选择经授权以向所述选定DNS服务器发送新DNS请求的接入网络,因为一些DNS服务器仅响应于来源于经授权IP地址的DNS请求。
根据本发明的实施例中的一者,通过LAN接口502从发送器接收第一DNS请求。
处理单元505可以随机地、根据预定义过程、根据统计值等选择DNS服务器且选择接入网络。所属领域的技术人员将清楚,可以将更多的方法以及技术用于选择。
如上文所描述,总共存在n乘m个可用的DNS服务器以及接入网络组合。处理单元505选择此类DNS服务器以及接入网络组合中的至少两者用于发送多个新DNS请求。因此,当处理单元505仅选择一个DNS服务器时,处理单元505选择至少两个接入网络;当处理单元505仅选择一个接入网络时,处理单元505选择至少两个DNS服务器。新DNS请求与第一DNS请求相对应,使得新DNS请求的查询与第一DNS请求的查询相同。所属领域的技术人员将清楚,可以使用更多的方法以及技术来根据第一DNS请求的查询产生新DNS请求。
新DNS请求通过连接到WAN接口503和/或504的选定接入网络发送给选定DNS服务器。
在发送新DNS请求之后,处理单元505可以从多个WAN接口中的一者接收DNS响应以响应于来自选定DNS服务器的新DNS请求。处理单元505向主机发送一个、超过一个或所有所接收的DNS响应。新DNS响应含有来自所接收的DNS响应的相同响应。第一DNS请求的发送器是主机,所述主机经由LAN接口502向网关101发送第一DNS请求。
根据本发明的实施例中的一者,处理单元505向主机发送所有所接收的DNS响应。
当网关101接收DNS响应时,仅当所接收的DNS响应是有效的且没有其它新DNS响应已经被发送给主机时,处理单元505才向主机发送新DNS响应。因此,主机仅接收针对它先前发送的第一DNS请求的DNS响应。如果具有RCODE零的其它DNS响应已经被网关101接收,那么处理单元505丢弃这些所接收的DNS响应。
根据本发明的实施例中的一者,当在预定义超时之后没有新DNS响应已经被发送给主机时,处理单元505发送具有非零RCODE的新DNS响应。预定义超时的值存储在计算机可读存储媒体506处。在一个变型例中,处理单元505将新DNS响应中的RCODE的值设定成与所接收的DNS响应中的一者的RCODE相同。当在预定义超时之前网关101已经接收超过一个DNS响应且这些所接收的DNS响应中没有DNS响应有效时,处理单元505可以确定如何对第一DNS请求作出响应。所接收的DNS响应可以存储在计算机可读存储媒体506处。根据本发明的实施例中的一者,处理单元505向主机发送具有从所接收的DNS响应中的一者检索出的RCODE的新DNS响应。在一个变型例中,第一DNS请求中的RCODE是所有所接收的DNS响应中所含有的大部分RCODE。例如,在一个变型例中,第一DNS请求中的RCODE随机地从所接收的DNS响应中的一者选择。
在一个实例中,预定义策略是根据在时间阈值内所接收的DNS响应的到达时间在所有所接收的DNS响应中选择DNS响应。当DNS响应经由网络接口503或504中的一者被网关101接收时,处理单元505首先将所接收的DNS响应的到达时间存储在计算机可读存储媒体506中。当到达时间阈值时,处理单元505从计算机可读存储媒体506检索所有到达时间以选择具有有效编码的最早到达的DNS响应。
当DNS请求通过安全隧道发送给一或多个DNS服务器时,通过安全隧道从一或多个DNS服务器接收的DNS响应不大可能篡改成与未通过安全隧道接收的DNS响应相当。因此,对应地使用安全隧道来向DNS服务器发送请求以及从DNS服务器接收响应是有益的。安全隧道可以通过隧道协议来建立,例如二层隧道协议(L2TP)、点对点协议(PPP)、点对点隧道协议(PPTP)、虚拟专用网络(VPN)、因特网协议安全(IPSec)、通用路由封装(GRE)、多播骨干(MBone)、安全套接字层(SSL)、安全外壳(SSH)以及传输层安全(TLS)。本发明揭示了建立与远程路由器之间的隧道的网关101。在优选实施例中,隧道是VPN连接。为了易于阅读,本文中所描述的实施例包括术语“VPN连接”。应注意,本发明的范围不限于作为隧道的VPN连接。安全或不安全的隧道皆允许执行封装。通过隧道,DNS请求以及DNS响应可以封装在一或多个因特网协议包中。当VPN网关对通过隧道发送的IP包加密时,隧道可以被认为是安全隧道。
图6是展示根据本发明的实施例中的一者的网络环境的框图。
网关101能够通过WAN接口103以及104中的一或两者建立与路由器600之间的隧道,例如虚拟专用网络(VPN)连接。例如,网关101可以使用WAN接口103经由接入网络121以及互连网络105建立与路由器600之间的第一隧道,本文中被称作第一VPN连接。网关101可以使用WAN接口104经由接入网络122以及互连网络105进一步建立与路由器600之间的第二隧道,本文中被称作第二VPN连接。
第一VPN连接以及第二VPN连接可以经组合、结合或聚合以形成与路由器600之间的聚合VPN连接。使用聚合VPN连接可以产生较高带宽,所述较高带宽是个别VPN连接的组合带宽。聚合VPN连接可以被使用它的会话或应用视为一个VPN连接。
网关101能够通过在网关101与路由器600之间建立的第一或第二VPN连接访问DNS服务器602。替代地,如果第一以及第二VPN连接经结合或聚合以形成聚合VPN连接,那么网关101能够通过聚合VPN连接访问DNS服务器602。路由器600通过接入网络603连接到DNS服务器602。
DNS服务器602可以仅通过路由器600访问。在一个实例中,接入网络603由因特网服务提供商(ISP)提供。例如,连接到路由器600的接入网络603可以通过Verizon使用DSL技术来提供。为了向DNS服务器602发送请求,DNS请求必须经过路由器600。
DNS服务器601可以通过网关101经由互连网络105来访问。在一个变型例中,网关101通过第一或第二VPN连接向DNS服务器601发送DNS请求以及从DNS服务器601接收DNS回复。出于说明的目的,WAN接口103通过第一VPN连接连接到路由器600且路由器600可以通过互连网络105访问DNS服务器601。因此,网关101能够通过路由器600使用第一VPN连接或直接不使用路由器600来访问DNS服务器601。
所属领域的技术人员将了解,在不同地理位置中的DNS服务器可以不同方式解析DNS请求。这可能由于许多原因导致。例如,在一些区域中,由于管理或法律原因,DNS服务器不能解析故意或无意地包括特定域名的DNS请求或不准确地解析所述DNS请求。例如,位于国家A中的DNS服务器可能不能提供在国家A中受限的网站的准确IP地址。因此,可能有益的是,通过VPN向受信任的DNS服务器(例如位于国家A外部的DNS服务器)发送DNS请求,使得从DNS服务器接收的DNS响应是准确且未被篡改的。
此方法的不利面可能是它可能不利用内容分布式网络。网关101可以尝试通过VPN连接访问位于国家A外部的DNS服务器,而非访问由极其接近网关101的内容分布式网络提供的DNS服务器。因此,对应地向位于国家A外部的DNS服务器发送DNS请求以及从所述DNS服务器接收DNS响应需要更长的时间。
图7是图示根据本发明的实施例中的一者的过程的流程图。为了更好地理解实施例,结合图6来观察图7。当网关101通过LAN接口102从主机接收DNS请求以解析域名时,所述网关在步骤701中通过第一VPN连接向DNS服务器(例如DNS服务器602)发送新DNS请求。新DNS请求具有与所述DNS请求中所含有的内容相同的内容。在步骤702中,网关101通过第一VPN连接从DNS服务器602接收有效DNS响应。在步骤703中,网关101随后确定与在DNS响应中指定的IP地址相对应的近似的地理位置。基于在步骤703中确定的地理位置,网关101在步骤704中确定它是否应该使用第一VPN连接向和/或从IP地址发送和/或接收数据。网关101在步骤705中通过第一VPN连接向以及从所述IP地址发送和/或接收数据,如果网关在步骤704中确定这样做的话。网关101在步骤706中在不使用第一VPN连接的情况下向以及从所述IP地址发送和/或接收数据,如果网关在步骤704中确定这样做的话。
例如,在一个变型例中,网关101将在步骤705中作出的与IP地址相对应的决定存储在计算机可读存储媒体506中。因此,对于每一数据包,网关101可以确定其目的IP地址且决定是否应该通过第一VPN连接发送数据包。出于说明目的,网关101可以通过从查找表查找决定来决定是否应该通过第一VPN连接发送数据包。
在一个变型例中,当在步骤705处确定使用第一VPN连接时,网关101可以存储在DNS请求中指定的域名。当存在来自所述主机或通过网关101连接到LAN接口102的其它主机的指向域名的其它数据时,网关101通过第一VPN连接传送数据,因为在步骤704中作出的决定也适用于在其它主机之间传送的数据。在一个变型例中,可以通过处理单元505形成出口策略以指示VPN网关101通过第一VPN连接将主机和/或其它主机的数据传送域名。或者,可以存储在DNS响应中指定的IP地址和/或将其用于形成出口策略,而非使用域名。因此,在具有所述IP地址的主机与所述主机和/或其它主机之间传送的数据可以通过第一VPN连接。这可以减少在将来频繁针对相同域名执行DNS请求的需要以及减少建立出口策略的需要。在一个变型例中,存在对域名和/或出口策略的存储的时间限制,因为DNS响应可能变成过时的。时间限制可以根据DNS响应的生存时间(TTL)值来设定。
所属领域的技术人员将了解,DNS请求以及DNS响应可以被拦截且对于此类拦截存在许多原因,以便通过使DNS请求负载均衡以及通过使用DNS代理来改进响应性。所属领域的技术人员将了解,DNS请求以及DNS响应遭遇黑客行为、窃听以及不诚信的中间人的拦截。因此,通过经由VPN连接发送DNS请求以及接收DNS响应允许对DNS请求以及DNS响应的更加安全的发送以及接收。
在一个变型例中,网关101在不使用第一VPN连接的情况下向DNS服务器(例如DNS服务器601)发送新DNS请求。因此,新DNS请求直接发送到DNS服务器601而不需发送到路由器600。在此情况下,从DNS服务器601接收的DNS响应也将不通过第一VPN连接接收。因此,存在DNS响应被篡改可能性,因为所述DNS响应未通过VPN连接安全地发送。
在一个变型例中,网关101基于从IP地理位置数据库检索出的信息确定IP地址的地理位置。IP地理位置数据库可以从向用户询问其地理位置的网站汇集。通常,利用此类IP地理位置数据库可以在确定IP地址的国家时具有非常高的准确性。出于说明的目的,将Maxmindjls GeoLite数据库用作IP地理位置数据库。所述数据库可以导入且存储在网关101的存储媒体中,例如计算机可读存储媒体506。网关101随后必须相应地维护所存储的数据库。
或者,IP地址的地理位置可以通过向第三方发送查询以用于解析IP地址的地理位置来确定。第三方,例如Google的BigQuery,可以具有较高处理能力,且因此使用第三方来解析IP地址的地理位置可以是更快的。这是因为维护整个IP地理位置数据库以及使用仅网关101的处理能力来解析IP地址的地理位置可能是非常耗时的。然而,使用第三方来解析IP地址的地理位置可能存在不利面,例如缺乏保密性。允许第三方保持例如在查询中发送哪些IP地址来解析其地理位置等敏感信息可能是不安全的。此外,接收含有IP地址的地理位置信息的响应的速度与在网关101解析IP地址的地理位置时相比可能较低。这是因为通过第三方维护的数据库是远程的且因此通信速度可能较低。
在另一变型例中,路由器600使用IP地理位置数据库确定在DNS响应中指定的IP地址的地理位置,且通过第一VPN连接向网关101发送IP地址的地理位置信息。IP地址的地理位置信息以单独的消息发送给网关101,所述消息不是路由器600转发到网关101的DNS响应的一部分。DNS响应以及具有地理位置信息的消息可以基本上同时发送或按任何次序一个接一个发送。
基于地理位置确定是否使用第一VPN连接来向和/或从IP地址发送和/或接收数据可以根据一或多个策略来执行。例如,网关101位于国家A中,IP地址位于纽约,且路由器600也位于纽约或除国家A之外的任何地理位置。网关101可以经配置以使用VPN连接来向和/或从不位于与网关101相同的区域(即国家A)中的IP地址发送和/或接收数据。因为IP地址不位于国家A中,所以网关101在步骤704中确定使用第一VPN连接,且在步骤705中通过第一VPN连接向和/或从IP地址发送和/或接收数据。在另一实例中,网关101位于国家A中,IP地址位于国家A中,且路由器600位于纽约。在此情况下,网关101在步骤706中不使用第一VPN连接来向和/或从IP地址发送和/或接收数据。更方便的是直接与IP地址通信而非通过位于纽约的路由器600连接到IP地址,因为网关101在与IP地址相同的区域中且可以更快地发送以及接收数据。
当IP地址位于国家A外部时,可能有益的是使用VPN连接来向和/或从IP地址发送和/或接收数据,因为通信更加安全且不受通过防火墙实施的管理或法律障碍的影响。通信是更加安全的,因为通信路线中的中间人很可能不能查看包中的数据,因为所述包经加密以通过VPN连接来发送且仅VPN连接的端点可以具有解密以及加密密钥等资源以查看数据。或者,当IP地址位于国家A内部时,访问IP地址不大可能具有管理或法律障碍,且因此不需要使用与路由器600之间的VPN连接。另外,响应应该是更快的,因为所述响应不需要首先通过VPN且随后回到国家A。
在另一实例中,第一主机通过LAN接口102连接到网关101。网关101经配置使得当网关101从第一主机接收指向第一IP地址或域名的数据时,网关101在步骤705中通过第一VPN连接发送数据,如果第一IP地址位于特定地理位置中的话。因此,网关101通过第一VPN连接从第一IP地址或域名接收指向第一主机的数据。如果用户或管理员需要主机与任何IP地址之间的通信,那么这可能是有益的,因为特定地理位置是安全且私密的。如果第一IP地址不在特定地理位置中,那么网关101在步骤706中不使用第一VPN连接来向和/或从IP地址发送和/或接收数据。
图8是图示根据本发明的实施例中的一者的过程的流程图。为了更好地理解实施例,结合图6以及图7来观察图8。
出于说明目的,网关101建立多个隧道,本文中被称作VPN连接。参考图6B,对应地使用WAN接口103以及104来建立与路由器600之间的第一以及第二VPN连接。使用WAN接口103来建立与路由器604之间的第三VPN连接且使用WAN接口104来建立与路由器605之间的第四VPN连接。第一以及第二VPN连接可以经结合以形成聚合VPN连接。
当在步骤701中网关101通过第一VPN连接向DNS服务器602发送新DNS请求时,它在步骤703中确定与在步骤702中所接收的DNS响应中指定的IP地址相对应的地理位置。基于所述地理位置,网关101在步骤801中确定是否应该将VPN连接用于与IP地址进行通信。因为网关101已经建立多个VPN连接,所以网关101在步骤803中选择VPN连接中的一者,如果网关在步骤801中确定使用VPN连接的话。网关101随后在步骤804中使用选定VPN连接来与IP地址进行通信。
如果网关101确定不使用VPN连接来与IP地址进行通信,那么网关101在步骤806中选择接入网络或WAN接口用于与IP地址进行通信。网关101随后使用选定接入网络用于与IP地址进行通信。
在步骤803中可以根据一或多个策略选定多个VPN连接中的一者。在一个变型例中,将优先级分配给多个VPN连接。例如,第一以及第二VPN连接分配有最高优先级,第三VPN连接分配有次高优先级,且第四VPN连接分配有最低优先级。因此,网关101使用第一以及第二VPN连接中的一或两者用于向和/或从IP地址发送和/或接收数据。如果结合第一以及第二VPN连接,那么聚合VPN连接可以用于向和/或从IP地址发送和/或接收数据。
在另一变型例中,网关101选择具有最低使用价格的VPN连接。VPN连接的使用价格可以根据用于建立VPN连接的接入网络(例如接入网络121以及122)的使用价格来改变。使用价格可以由管理员输入或从数据库检索。
在另一变型例中,网关101基于带宽可用性选择VPN连接。例如,如果第三VPN连接具有最高可用带宽,那么网关101选择第三VPN连接用于向和/或从IP地址发送和/或接收数据。益处中的一者是减少业务拥塞。
在另一变型例中,网关101基于VPN连接的端点的地理位置选择VPN连接。第一以及第二VPN连接的端点是路由器600,且第三以及第四VPN连接的端点对应地是路由器604以及605。例如,路由器600、604以及605对应地位于纽约、香港以及伦敦。IP地址的地理位置在步骤703中确定为在香港。网关101随后选择第三VPN连接用于向IP地址发送和/或从IP地址接收数据。
当网关101在步骤801中确定不使用VPN连接时,网关101在步骤806中选择接入网络用于向以及从IP地址发送和/或接收数据。在步骤806中,接入网络可以随机地或根据一或多个策略选定。在一个变型例中,策略是基于由网关管理员输入的配置选择接入网络。在一个实例中,策略是基于带宽可用性选择接入网络。在一个实例中,策略是基于统计分析或在使用接入网络时所实现的历史数据网络性能来选择接入网络。在一个实例中,策略是基于接入网络的使用价格选择接入网络。
可以将优先级分配给接入网络或WAN接口。例如,接入网络121具有比接入网络122更高的优先级。因此,网关101在步骤807中通过接入网络121使用WAN接口103向和/或从IP地址发送和/或接收数据。在另一实例中,WAN接口104具有比WAN接口103更高的优先级。因此,网关101在步骤807中通过接入网络122使用WAN接口104向和/或从IP地址发送和/或接收数据。
应注意,在一些情况下,将优先级分配给WAN接口可能与将优先级分配给接入网络不同,因为WAN接口所连接到的接入网络可以改变。例如,接入网络121具有比接入网络122更高的优先级。用户或网关101的管理员改变连接,使得接入网络121连接到WAN接口104且接入网络122连接到WAN接口103。在此情况下,网关101在步骤807中通过接入网络121使用WAN接口104向和/或从IP地址发送和/或接收数据。如果将优先级分配给WAN接口使得WAN接口103具有比WAN接口104更高的优先级,那么网关101在步骤807中将通过接入网络122使用WAN接口103向和/或从IP地址发送和/或接收数据。优先级可以基于使用价格、网络性能、时间等分配给接入网络。优先级可以根据信号干扰比、信噪比以及在WAN接口处观察的其它特性分配给WAN接口。
图9是图示根据实施例中的一者向一或多个DNS服务器发送DNS请求的过程的流程图。
网关101首先在步骤901中通过LAN接口102从主机接收DNS请求。在步骤902中,网关101确定可以通过由网关101建立的一或多个VPN连接到达的一列DNS服务器。网关101随后在步骤903中从DNS服务器的列表选择一或多个DNS服务器用于向其发送DNS请求。在步骤904中,网关101向选定DNS服务器发送新DNS请求。新DNS请求基本上是基于通过LAN接口102从主机接收的DNS请求。
可以通过VPN连接到达的DNS服务器的列表可以包括一或多个DNS服务器。例如,网关101对应地通过WAN接口103以及104建立与路由器600之间的第一以及第二VPN连接。DNS服务器602以及601可以通过第一以及第二VPN连接中的一或两者到达。另一方面,DNS服务器141以及143不能通过VPN连接到达。因此,在步骤902中,DNS服务器的列表包含DNS服务器602以及601。
网关101随后可以选择DNS服务器602以及601中的一或两者以向其发送新DNS请求。所述选择可以是根据基于回复速度、历史统计、或优先级的策略。例如,如果DNS服务器601的回复速度大大低于DNS服务器602的回复速度,那么网关101在步骤903中选择DNS服务器602。
在另一实例中,DNS服务器602可以具有由用户或网关101的管理员分配的较高优先级。出于说明目的,接入网络603是办公室网络且DNS服务器602是内部DNS服务器。可以将较高优先级分配给DNS服务器602,因为它是内部DNS服务器,且路由器600不需要通过互连网络105访问它。因此,从DNS服务器602接收的DNS响应不大可能被篡改。因为路由器600通过互连网络105访问DNS服务器601,所以从DNS服务器601接收的DNS响应更加可能被篡改,所述互连网络是公共网络。并且,DNS服务器602可能能够解析与DNS服务器601可能不能准确解析的特定内部域名相对应的DNS请求。因此,当DNS服务器602具有较高优先级时,网关101在步骤903中选择DNS服务器602用于向其发送新DNS请求。
图10是图示根据本发明的实施例中的一者的用于向一或多个DNS服务器发送DNS请求的过程的流程图。网关101在步骤1001中通过LAN接口102从主机接收DNS请求。在步骤1002中,网关101选择至少一个DNS服务器用于向其发送新DNS请求。所述选择可以是基于基于回复速度、历史统计、地理位置或优先级的策略。如果网关101在步骤1003中确定选定DNS服务器可以通过一或多个VPN连接访问,那么在步骤1004中通过一或多个VPN连接向选定DNS服务器发送新DNS请求。替代地,如果选定DNS服务器不能通过任何VPN连接访问,那么网关101在步骤1005中在不使用VPN连接的情况下向选定DNS服务器发送新DNS请求。
例如,在网关101的WAN接口103与路由器600之间建立第一VPN连接,所述第一VPN连接可以用于访问DNS服务器601以及602。出于说明的目的,在步骤1002中选定的DNS服务器包含DNS服务器143以及DNS服务器601。网关101在步骤1003中确定DNS服务器143不能通过与路由器600之间的VPN连接访问。因此,网关101在步骤1005中在不使用VPN连接的情况下向DNS服务器143发送新DNS请求。在步骤1003中,网关101还确定DNS服务器601可以通过第一VPN连接访问且也可以不使用VPN连接访问。因此,网关101通过第一VPN连接向DNS服务器601发送新DNS请求。
尽管DNS服务器601可以直接通过互连网络105访问而不需使用第一VPN连接,但优选的是,网关101通过第一VPN连接向DNS服务器601发送新DNS请求。当通过第一VPN连接发送新DNS请求时,也通过第一VPN连接从DNS服务器601接收相对应的DNS响应,且因此DNS响应不大可能被篡改。
图11是图示根据实施例中的一者的用于选择DNS响应的过程的流程图。网关101在步骤1101中接收多个DNS响应。多个DNS响应是对由网关101发送的新DNS请求的响应,其中新DNS请求是基于由网关101通过LAN接口102从主机接收的DNS请求。在步骤1102中,网关101确定多个DNS响应中的任一者是否是通过VPN连接接收的。如果任何DNS响应都是通过VPN连接接收的,那么网关101在步骤1103中选择通过VPN连接接收的DNS响应中的一者。如果没有DNS响应是通过VPN连接接收的,那么网关101在步骤1104中从所述多个DNS响应选择DNS响应中的一者。网关101随后在步骤1105中基于选定DNS响应向主机发送新DNS响应。因此,在步骤1102中,给予通过VPN连接接收的DNS响应优于未通过VPN连接接收的DNS响应的优先级。
例如,第一DNS响应通过第一VPN连接从DNS服务器602接收、第二DNS响应通过第一VPN连接从DNS服务器601接收、第三DNS响应通过接入网络121从DNS服务器141接收且第四DNS响应通过接入网络122从DNS服务器143接收。网关101在步骤1102中确定通过第一VPN连接接收第一以及第二DNS响应,且因此在步骤1103中选择第一以及第二DNS响应中的一者。所述选择可以随机地执行,或可以根据基于接收DNS响应的时间以及次序、DNS服务器的接收次序、历史统计和回复速度、DNS服务器的地理位置、或DNS服务器的优先级的策略来执行。出于说明目的,选择第一DNS响应,因为它比第二DNS响应更早被接收。
在另一实例中,第一DNS响应通过互连网络105从DNS服务器601接收而不使用第一VPN连接,第二DNS响应通过接入网络121从DNS服务器141接收且第三DNS响应通过接入网络122从DNS服务器143接收。网关101在步骤1102中确定没有DNS响应是通过VPN连接接收的,且因此在步骤1104中选择第一、第二和第三DNS响应中的一者。所述选择可以随机地执行,或可以根据基于接收DNS响应的时间以及次序、DNS服务器的接收次序、历史统计和回复速度、或DNS服务器的优先级的策略来执行。出于说明目的,选择第二DNS响应,因为历史统计指示在与从DNS服务器143或601接收的DNS响应相比时,来自DNS服务器141的响应最可能是准确的。
图12是图示根据本发明的实施例中的一者的过程的流程图。网关101在步骤1201中向多个DNS服务器发送新DNS请求。新DNS请求中的至少一者通过在网关101与路由器600之间建立的第一VPN连接发送。新DNS请求是基于由网关101通过LAN接口102接收的DNS请求。网关101随后在步骤1202中接收多个DNS响应以响应于新DNS请求。在步骤1203中,网关101分析多个DNS响应的内容,且确定通过VPN连接接收的DNS响应是否与不使用VPN连接接收的DNS响应相同。如果通过VPN连接接收的DNS响应与不使用VPN连接接收的DNS响应相同,那么网关101在步骤1205中不使用VPN连接来向以及从在DNS响应中指定的IP地址发送以及接收数据。或者,如果通过VPN连接接收的DNS响应不与不使用VPN连接接收的DNS响应相同,那么网关101在步骤1204中使用VPN连接来向以及从在通过VPN连接接收的DNS响应中指定的IP地址发送以及接收数据。
例如,网关101以及DNS服务器141位于国家A中,路由器600以及DNS服务器601位于国家B中。在步骤1202中,第一DNS响应从DNS服务器141接收且第二DNS响应通过第一VPN连接从DNS服务器601接收。网关101在步骤1203中确定第一以及第二DNS响应是否指定相同IP地址。第二DNS响应不大可能被篡改,因为它通过VPN连接被接收。如果第一以及第二DNS响应指定相同IP地址,那么这意味着第一DNS响应也不大可能被篡改。这可以指示,对于网关101而言在不使用VPN连接的情况下不存在访问指定IP地址的管理或法律障碍,且网关101与指定IP地址之间的通信将不被阻断,即使不使用VPN连接。网关101与指定IP地址之间的通信可以是更快的,如果直接地而非通过第一VPN连接发送以及接收数据的话。出于说明目的,如果指定IP地址位于国家A中,那么网关101不需要通过国家B中的路由器600向指定IP地址发送数据,因为这将减慢数据传输。因此,网关101在步骤1205中不使用VPN连接来向以及从指定IP地址发送以及接收数据。
替代地,如果网关101在步骤1203中确定第一以及第二DNS响应指定不同IP地址,那么在第一DNS响应中指定的IP地址更可能被篡改。这是因为第二DNS响应被认为是不大可能被篡改的,因为它通过VPN连接被接收。在此情况下,第一DNS响应更可能被篡改的原因可能是,对于网关101而言存在访问在第二DNS响应中指定的IP地址的管理或法律障碍。因此,网关101在步骤1204中使用第一VPN连接来向以及从在第二DNS响应中指定的IP地址发送以及接收数据,使得可以克服法律或管理障碍。
在实施例中的一者中,网关101通过在网关101与路由器600之间建立的第一VPN连接从多个DNS服务器接收多个DNS响应。如果在多个DNS响应中指定的IP地址是不同的,那么网关101确定哪个IP地址最适合于在新DNS响应中发送到主机。所述确定可以是基于一或多个策略。例如,在大部分DNS响应中指定的IP地址被认为是最合适的。替代地,在从在其它DNS服务器当中具有较高优先级的DNS服务器接收的DNS响应中指定的IP地址被认为是最合适的。替代地,在最早接收的DNS响应中指定的IP地址被认为是最合适的。替代地,在从根据历史统计选定的DNS服务器接收的DNS响应中指定的IP地址被认为是最合适的。网关101随后基于指定最合适的IP地址的DNS响应向主机发送新DNS响应。
在一个变型例中,当通过不同VPN连接从多个DNS服务器接收多个DNS响应时,IP地址可以基于VPN连接的优先级或VPN连接的端点被认为是最合适的。
在实施例中的一者中,从多个DNS服务器接收多个DNS响应。一些DNS响应通过VPN连接被接收且一些不使用VPN连接来接收。例如,不使用VPN连接接收的第一DNS响应指定与通过VPN连接接收的大部分DNS响应相同的IP地址。不使用VPN连接接收的第二DNS响应指定与在通过VPN连接接收的大部分DNS响应中指定的IP地址不同的IP地址。网关101随后基于在通过VPN连接接收的大部分DNS响应中指定的IP地址通过LAN接口102向主机发送新DNS响应,但网关101确定不使用VPN连接来向以及从指定IP地址发送以及接收数据,因为在第一DNS响应中指定的IP地址与在通过VPN连接接收的大部分DNS响应中指定的IP地址相同。
图13是图示根据本发明的实施例中的一者的过程的流程图。网关101在步骤1301中接收多个DNS响应。多个DNS响应通过VPN连接被接收。多个DNS响应是对由网关101发送的新DNS请求的响应,其中新DNS请求是基于由网关101通过LAN接口102从主机接收的DNS请求。在步骤1302中,网关101确定在多个DNS响应中指定的IP地址的地理位置。网关101随后确定哪一个IP地址位于最靠近网关101处,且随后在步骤1303中选择指定位于最靠近网关处的IP地址的DNS响应。在步骤1304中,基于选定DNS响应的新DNS响应随后由网关101通过LAN接口102发送到主机。
网关101可以通过确定其自身的地理位置以及IP地址的地理位置来确定哪一个IP地址位于最靠近网关处。网关101可以通过使用全球定位系统(GPS)传感器等位置传感器来确定其自身的地理位置。所确定的地理位置信息随后可以存储在网关101的存储媒体中,例如计算机可读存储媒体506。GPS传感器可以嵌入在网关101中或可以嵌入在与网关101耦合的外部装置中。
或者,网关101的地理位置由用户或网关101的管理员输入且随后存储在计算机可读存储媒体506中。
所属领域的技术人员将了解,域名可以通过不同DNS服务器解析成不同IP地址。不同IP地址可以具有不同地理位置,但可以已经提供与发送针对域名的DNS请求的用户所需的域名相对应的资源。因此,对于网关101而言,选择指定它最靠近的IP地址的DNS响应是有益的,使得网关可以向以及从最靠近的IP地址发送以及接收数据。
所属领域的技术人员将了解,本发明还适用于主机名。主机名可以已经附加了DNS域的名称、通过句点(“圆点”)与主机专用标记分开。在后一形式中,主机名也被称为域名。如果域名完全指定,包含因特网的顶级域,那么主机名据称为全量域名。出于将主机名映射到地址或反向过程的目的,包含DNS域的主机名通常与它们所表示的主机的IP地址一起存储在域名系统中。
所属领域的技术人员已知,从DNS服务器接收的DNS响应仅对于由与DNS响应相对应的TTL指定的特定的时间段有效。在与特定的域名或主机名相对应的DNS响应中指定的IP地址可以在特定的时间段上进行高速缓存。当特定的时间段已经期满时,主机或网关101可能需要发送针对域名或主机名的另一DNS请求,以便接收与含有特定域名的经更新IP地址的特定域名或主机名相对应的另一DNS响应。
在一个实例中,根据优选实施例,就图7、图8、图10以及图12而言,主机确定在DNS响应中指定的TTL且在TTL中指定的时间段上对第一域名的IP地址进行高速缓存。当时间段已经期满时,如果主机仍与第一域名进行通信,那么主机向网关101发送第二DNS请求,且因此,重复该过程且更新在主机的高速缓存中的IP地址。以此方式,IP地址可以得到定期更新。
在一个变型例中,当在含有第一IP地址的第一DNS响应的TTL中指定的时间段期满时,网关101删除在步骤705或706处作出的与第一IP地址相对应的决定。例如,基于第一IP地址的位置,网关101确定在步骤705中将第一VPN连接用于指向第一IP地址的数据包。当所述时间段期满时,与第一域名相对应的IP地址可以改变,且第一IP地址可能不再与第一域名相对应。因此,与第一IP地址相对应的决定应该删除,使得不将第一VPN连接用于指向第一IP地址的数据包。当指向第一IP地址的数据包到达网关101时,网关101不使用第一VPN连接来向第一IP地址发送数据包。
在一个变型例中,根据图7,当第一域名的IP地址在经过了特定的时间段之后发生改变时,在步骤704处的决定可以针对相同的第一域名发生改变。出于说明目的,与域名“mydomain.com”相对应的第一IP地址的位置是国家X。基于位置国家X,网关101在步骤704中确定在步骤705中优选使用第一VPN连接。当经过了特定的时间段时,当主机针对域名“mydomain.com”发送另一DNS请求时,重复图7的过程。响应于另一DNS请求而接收的DNS响应含有用于“mydomain.com”的第二IP地址。第二IP地址的位置在步骤703中确定为国家Y。基于位置国家Y,网关101在步骤704中确定在步骤706中优选不使用第一VPN连接。
在另一实例中,网关101确定在DNS响应中指定的TTL且在TTL中指定的时间段上对第一域名的IP地址进行高速缓存。当经过了所述时间段时,网关101向DNS服务器发送另一DNS请求且更新在网关101的高速缓存中与第一域名相对应的IP地址。因此,当主机向网关101发送针对第一域名的第二DNS请求时,网关101可以发送含有在网关101的高速缓存中的第一域名的经更新IP地址的DNS响应。
在一个变型例中,当网关101具有针对第一域名的出口策略且出口策略通过第一域名的IP地址界定时,网关101定期向至少一个DNS服务器发送与第一域名相对应的DNS请求,使得网关101接收具有第一域名的经更新IP地址的DNS响应。出口策略中的IP地址相应地由网关101更新。在优选实施例中,当在TTL中指定的时间段期满时,针对第一域名的出口策略期满,其中DNS响应的TTL与DNS请求相对应。出口策略可以从计算机可读存储媒体506删除。新出口策略可以产生且存储在计算机可读存储媒体506中以用于具有经更新IP地址的第一域名。
处理单元505执行程序指令以执行图7、图8、图9、图10、图11、图12、以及图13的步骤。程序指令存储在计算机可读存储媒体506中。
附图说明
图1A图示根据本发明的实施例中的一者的网络环境,其中主机以及DNS服务器可以连接到网关。
图1B图示根据本发明的实施例中的一者的网络环境,其中主机以及DNS服务器可以连接到网关。
图2是图示根据本发明的实施例中的一者的处理所接收DNS请求的过程的流程图。
图3是图示根据本发明的实施例中的一者的处理所接收DNS响应的过程的流程图。
图4是图示根据本发明的实施例中的一者的过程的流程图。
图5是根据本发明的各种实施例的网关的框图。
图7是图示根据本发明的实施例中的一者的过程的流程图。
图8是图示根据本发明的实施例中的一者的过程的流程图。
图9是图示根据实施例中的一者向一或多个DNS服务器发送DNS请求的过程的流程图。
图10是图示根据本发明的实施例中的一者的用于向一或多个DNS服务器发送DNS请求的过程的流程图。
图11是图示根据实施例中的一者的用于选择DNS响应的过程的流程图。
图12是图示根据本发明的实施例中的一者的过程的流程图。
图13是图示根据本发明的实施例中的一者的过程的流程图。

Claims (20)

1.一种用于在网关中处理域名服务(DNS)请求的方法,其中所述网关包括至少一个局
域网(LAN)接口以及至少一个广域网(WAN)接口,所述方法包括:
经由所述网关的所述至少一个LAN接口中的一者从第一主机接收第一DNS请求;
选择至少一个DNS服务器;
如果所述至少一个DNS服务器是通过至少一个隧道可访问的,那么通过所述至少一个隧道经由所述至少一个WAN接口向所述至少一个DNS服务器发送至少一个第一新DNS请求;
如果所述至少一个DNS服务器是通过所述至少一个隧道中的任一者都不可访问的,那么在不使用隧道的情况下经由所述至少一个WAN接口向所述至少一个DNS服务器发送所述至少一个第一新DNS请求;以及
其中所述至少一个第一新DNS请求的内容与所述第一DNS请求的内容相同;
从所述至少一个DNS服务器接收第一DNS响应;
经由所述网关的所述至少一个LAN接口中的所述一者向所述第一主机发送新DNS响应,其中所述新DNS响应是基于所述第一DNS响应;
通过使用IP地理位置数据库来确定在所述第一DNS响应中指定的IP地址的地理位置;
确定是否使用第二隧道向第二主机传送数据的决定;
如果所述决定是使用所述第二隧道,那么使用所述第二隧道向所述第二主机传送数据;
如果所述决定是不使用所述第二隧道或不存在决定,那么不使用所述第二隧道向所述第二主机传送数据;
其中所述第二主机是通过在所述第一DNS响应中指定的所述IP地址可访问的;以及
其中所述第一DNS响应与所述至少一个第一新DNS请求相对应。
2.根据权利要求1所述的方法,其中选择所述至少一个DNS服务器的步骤包括:
确定由所述网关通过所述至少一个隧道可访问的一或多个DNS服务器;以及
从所述一或多个DNS服务器选择至少一个DNS服务器。
3.根据权利要求1所述的方法,其中所述第一DNS响应通过第一隧道接收,其中所述第一隧道是用于发送所述至少一个第一新DNS请求的所述至少一个隧道中的一者且所述第一隧道与所述第二隧道相同。
4.根据权利要求1所述的方法,其中所述第一DNS响应通过第一隧道接收,其中所述第一隧道是用于发送所述至少一个第一新DNS请求的所述至少一个隧道中的一者且所述第一隧道不与所述第二隧道相同。
5.根据权利要求1所述的方法,其中确定是否传送数据的步骤是基于在所述第一DNS响应中指定的所述IP地址的所述地理位置。
6.根据权利要求1所述的方法,
其中所述至少一个第一新DNS请求的数目是至少两个;
其中所述第一DNS响应选自多个DNS响应,其中:
如果存在通过所述至少一个隧道接收的至少一个DNS响应,那么所述第一DNS响应选自通过所述至少一个隧道接收的所述至少一个DNS响应;以及
如果不存在通过所述至少一个隧道中的任一者接收的DNS响应,那么所述第一DNS响应选自所接收的所述多个DNS响应。
7.根据权利要求6所述的方法,其中所述多个DNS响应在预定义时间段内被接收。
8.根据权利要求6所述的方法,其中所述确定是否传送数据的步骤是基于在所述多个DNS响应中的至少两者中指定的所述IP地址是否是相同的。
9.根据权利要求1所述的方法,其中所述决定存储在所述网关的计算机可读存储媒体中;以及
其中当在所述第一DNS响应的生存时间(TTL)字段中指定的时间段已经期满时,从所述计算机可读存储媒体删除所述决定。
10.根据权利要求1所述的方法,其中所述决定存储在计算机可读存储媒体中,且所述决定含有在所述第一DNS响应中指定的所述IP地址;
其中在所述决定中的所述IP地址更新成在第二DNS响应中指定的IP地址;
其中所述第二DNS响应与至少一个第二新DNS请求相对应;以及
其中在发送所述至少一个第二新DNS请求之后接收所述第二DNS响应,其中当在所述第一DNS响应的TTL字段中指定的时间段已经期满时发送所述至少一个第二新DNS请求。
11.一种用于处理域名服务(DNS)请求的网关,其包括:
至少一个局域网(LAN)接口;
至少一个广域网(WAN)接口;
至少一个处理单元;
至少一个计算机可读存储媒体,其存储通过所述至少一个处理单元可执行的程序指令以用于:
经由所述网关的所述至少一个LAN接口中的一者从第一主机接收第一DNS请求;
选择至少一个DNS服务器;
如果所述至少一个DNS服务器是通过所述至少一个隧道可访问的,那么通过至少一个隧道经由所述至少一个WAN接口向所述至少一个DNS服务器发送至少一个第一新DNS请求;
如果所述至少一个DNS服务器是通过所述至少一个隧道中的任一者都不可访问的,那么在不使用隧道的情况下经由所述至少一个WAN接口向所述至少一个DNS服务器发送所述至少一个第一新DNS请求;以及
其中所述至少一个第一新DNS请求的内容与所述第一DNS请求的内容相同;
从所述至少一个DNS服务器接收第一DNS响应;
经由所述网关的所述至少一个LAN接口中的所述一者向所述第一主机发送新DNS响应,其中所述新DNS响应是基于所述第一DNS响应;
通过使用IP地理位置数据库来确定在所述第一DNS响应中指定的IP地址的地理位置;
确定是否使用第二隧道向第二主机传送数据的决定;
如果所述决定是使用所述第二隧道,那么使用所述第二隧道向所述第二主机传送数据;
如果所述决定是不使用所述第二隧道或不存在决定,那么不使用所述第二隧道向所述第二主机传送数据;
其中所述第二主机是通过在所述第一DNS响应中指定的所述IP地址可访问的;以及
其中所述第一DNS响应与所述至少一个第一新DNS请求相对应。
12.根据权利要求11所述的网关,其中选择所述至少一个DNS服务器的步骤包括:
确定由所述网关通过所述至少一个隧道可访问的一或多个DNS服务器;以及
从所述一或多个DNS服务器选择至少一个DNS服务器。
13.根据权利要求11所述的网关,其中所述第一DNS响应通过第一隧道接收,其中所述第一隧道是用于发送所述至少一个第一新DNS请求的所述至少一个隧道中的一者且所述第一隧道与所述第二隧道相同。
14.根据权利要求11所述的网关,其中所述第一DNS响应通过第一隧道接收,其中所述第一隧道是用于发送所述至少一个第一新DNS请求的所述至少一个隧道中的一者且所述第一隧道不与所述第二隧道相同。
15.根据权利要求11所述的网关,其中确定是否传送数据的步骤是基于在所述第一DNS响应中指定的所述IP地址的所述地理位置。
16.根据权利要求11所述的网关,
其中所述至少一个第一新DNS请求的数目是至少两个;
其中所述第一DNS响应选自多个DNS响应,其中:
如果存在通过所述至少一个隧道接收的至少一个DNS响应,那么所述第一DNS响应选自通过所述至少一个隧道接收的所述至少一个DNS响应;以及
如果不存在通过所述至少一个隧道中的任一者接收的DNS响应,那么所述第一DNS响应选自所接收的所述多个DNS响应。
17.根据权利要求16所述的网关,其中所述多个DNS响应在预定义时间段内被接收。
18.根据权利要求16所述的网关,其中所述确定是否传送数据的步骤是基于在所述多个DNS响应中的至少两者中指定的所述IP地址是否是相同的。
19.根据权利要求11所述的网关,其中所述决定存储在所述网关的所述计算机可读存储媒体中;以及
其中当在所述第一DNS响应的生存时间(TTL)字段中指定的时间段已经期满时,从所述计算机可读存储媒体删除所述决定。
20.根据权利要求11所述的网关,其中所述决定存储在计算机可读存储媒体中,且所述决定含有在所述第一DNS响应中指定的所述IP地址;
其中在所述决定中的所述IP地址更新成在第二DNS响应中指定的IP地址;
其中所述第二DNS响应与至少一个第二新DNS请求相对应;以及
其中在发送所述至少一个第二新DNS请求之后接收所述第二DNS响应,其中当在所述第一DNS响应的生存时间(TTL)字段中指定的时间段已经期满时发送所述至少一个第二新DNS请求。
CN201480009088.1A 2014-04-22 2014-04-22 用于处理dns请求的方法和系统 Active CN105453488B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910022554.4A CN109889618B (zh) 2014-04-22 2014-04-22 用于处理dns请求的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2014/060891 WO2015162451A1 (en) 2014-04-22 2014-04-22 Methods and systems for processing a dns request

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201910022554.4A Division CN109889618B (zh) 2014-04-22 2014-04-22 用于处理dns请求的方法和系统

Publications (2)

Publication Number Publication Date
CN105453488A CN105453488A (zh) 2016-03-30
CN105453488B true CN105453488B (zh) 2019-01-18

Family

ID=54331802

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201480009088.1A Active CN105453488B (zh) 2014-04-22 2014-04-22 用于处理dns请求的方法和系统
CN201910022554.4A Active CN109889618B (zh) 2014-04-22 2014-04-22 用于处理dns请求的方法和系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910022554.4A Active CN109889618B (zh) 2014-04-22 2014-04-22 用于处理dns请求的方法和系统

Country Status (4)

Country Link
US (2) US9912630B2 (zh)
CN (2) CN105453488B (zh)
GB (1) GB2529765B (zh)
WO (1) WO2015162451A1 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9692853B2 (en) * 2014-04-22 2017-06-27 Pismo Labs Technology Limited Methods and systems for processing a DNS request
EP3138256B1 (en) * 2014-04-30 2019-08-21 Telefonaktiebolaget LM Ericsson (publ) Residential local break out in a communication system
TWI513239B (zh) * 2014-09-03 2015-12-11 Hon Hai Prec Ind Co Ltd 網路設備及其進行路由轉發的方法
US11024136B2 (en) * 2015-04-02 2021-06-01 Techcam, Llc Method and apparatus for remote surveillance
US10015239B1 (en) * 2015-08-12 2018-07-03 Evengx, Llc Self-organizing distributed computation grid
US10757075B2 (en) * 2017-04-14 2020-08-25 Calix, Inc. Device specific website filtering using a bifurcated domain name system
US10104039B1 (en) * 2017-09-28 2018-10-16 Cloudflare, Inc. Establishing and using a tunnel from an origin server in a distributed edge compute and routing service
CN108183896A (zh) * 2017-12-26 2018-06-19 珠海市君天电子科技有限公司 浏览器的页面获取方法、装置和电子设备
CN108111516A (zh) * 2017-12-26 2018-06-01 珠海市君天电子科技有限公司 基于无线局域网的安全通信方法、装置和电子设备
US10742595B2 (en) * 2018-04-20 2020-08-11 Pulse Secure, Llc Fully qualified domain name-based traffic control for virtual private network access control
US11223604B2 (en) * 2018-05-18 2022-01-11 T-Mobile Usa, Inc. Detecting aggressive or attacking behaviors in IMS SIP signaling
US11003723B2 (en) * 2018-08-22 2021-05-11 Marlabs Innovations Private Limited System and method to acquire data from deep web
CN109327561B (zh) * 2018-11-21 2021-01-12 Oppo广东移动通信有限公司 电子设备、域名查询方法及相关产品
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
CN111737022B (zh) * 2019-09-30 2024-03-01 北京沃东天骏信息技术有限公司 一种基于微服务的接口调用方法、系统、设备及介质
US11102100B2 (en) * 2019-11-19 2021-08-24 Vmware, Inc. Optimized and scalable method of detecting dead internet key exchange (IKE) peers
US11349932B2 (en) 2020-06-30 2022-05-31 Cisco Technology, Inc. Policy-based connection provisioning using domain name system (DNS) requests
US11310146B1 (en) * 2021-03-27 2022-04-19 Netflow, UAB System and method for optimal multiserver VPN routing
CN113596018A (zh) * 2021-07-27 2021-11-02 深信服科技股份有限公司 集中管理平台及网关设备使用控制方法、装置、存储介质
US11870751B2 (en) 2021-10-11 2024-01-09 Cisco Technology, Inc. Smart service discovery to interconnect clusters having overlapping IP address space
US11444911B1 (en) * 2022-02-22 2022-09-13 Oversec, Uab Domain name system configuration during virtual private network connection
CN114553821B (zh) * 2022-02-24 2023-06-27 杭州迪普科技股份有限公司 Vpn客户端代理dns解析方法及装置
US20230362132A1 (en) * 2022-05-05 2023-11-09 HYAS Infosec Inc. Rule selection management based on currently available domain name system (dns) servers

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101238453A (zh) * 2003-09-19 2008-08-06 摩托罗拉公司 建立用于归属到归属通信的名字解析系统
CN101873358A (zh) * 2010-06-11 2010-10-27 杭州华三通信技术有限公司 一种基于域名解析的链路负载均衡方法和设备
CN102130820A (zh) * 2010-01-14 2011-07-20 深圳市深信服电子科技有限公司 一种网络服务访问方法以及接入网关设备
CN102244613A (zh) * 2011-08-11 2011-11-16 深信服网络科技(深圳)有限公司 基于dns进行多链路流量均衡的方法、网关和网络

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5777989A (en) 1995-12-19 1998-07-07 International Business Machines Corporation TCP/IP host name resolution for machines on several domains
US6665702B1 (en) 1998-07-15 2003-12-16 Radware Ltd. Load balancing
US6810411B1 (en) 1999-09-13 2004-10-26 Intel Corporation Method and system for selecting a host in a communications network
US6917610B1 (en) * 1999-12-30 2005-07-12 At&T Corp. Activity log for improved call efficiency
US6937713B1 (en) * 1999-12-30 2005-08-30 At&T Corp. IP call forward profile
WO2001060000A1 (en) * 2000-02-11 2001-08-16 Convergent Networks, Inc. Methods and systems for creating, distributing and executing multimedia telecommunications applications over circuit and packet switched networks
US7734683B1 (en) 2000-07-11 2010-06-08 Nokia Corporation Method for providing a DNS server address list from a server to a client
US6910074B1 (en) * 2000-07-24 2005-06-21 Nortel Networks Limited System and method for service session management in an IP centric distributed network
US6922411B1 (en) * 2000-09-29 2005-07-26 Voxeo Corporation Networked computer telephony system driven by web-based applications
US7296155B1 (en) * 2001-06-08 2007-11-13 Cisco Technology, Inc. Process and system providing internet protocol security without secure domain resolution
US7099957B2 (en) * 2001-08-23 2006-08-29 The Directtv Group, Inc. Domain name system resolution
EP1540885B1 (en) * 2002-07-08 2008-02-20 Packetfront Sweden AB Dynamic port configuration of network equipment
US7254643B1 (en) * 2002-08-08 2007-08-07 At&T Corp. System and method for providing multi-media services to communication devices over a communications network
US20040139170A1 (en) * 2003-01-15 2004-07-15 Ming-Teh Shen Method and apparatus for management of shared wide area network connections
US7366188B2 (en) * 2003-01-21 2008-04-29 Samsung Electronics Co., Ltd. Gateway for supporting communications between network devices of different private networks
US20040249973A1 (en) * 2003-03-31 2004-12-09 Alkhatib Hasan S. Group agent
DE60320042T2 (de) * 2003-04-01 2009-05-14 Telefonaktiebolaget Lm Ericsson (Publ) Verfahren und system zur zentralen zuweisung von adressen und portnummern
WO2004114529A2 (en) * 2003-06-16 2004-12-29 Mentat Inc. Pre-fetch communication systems and methods
JP2005184110A (ja) 2003-12-16 2005-07-07 Matsushita Electric Ind Co Ltd パケット転送装置およびパケット転送方法
US7457626B2 (en) * 2004-03-19 2008-11-25 Microsoft Corporation Virtual private network structure reuse for mobile computing devices
US7991854B2 (en) * 2004-03-19 2011-08-02 Microsoft Corporation Dynamic session maintenance for mobile computing devices
US7984163B2 (en) * 2005-01-13 2011-07-19 Flash Networks, Inc. Method and system for optimizing DNS queries
US20060174001A1 (en) * 2005-01-31 2006-08-03 Shouyu Zhu Responding to malicious traffic using separate detection and notification methods
US8406170B2 (en) * 2006-11-16 2013-03-26 Telefonaktiebolaget Lm Ericsson (Publ) Gateway selection mechanism
US7933976B2 (en) * 2007-10-25 2011-04-26 International Business Machines Corporation Checkpoint and restart of NFS version 2/version 3 clients with network state preservation inside a workload partition (WPAR)
JP5074290B2 (ja) * 2008-05-13 2012-11-14 株式会社日立国際電気 冗長切替システム、冗長管理装置およびアプリケーション処理装置
US8386603B2 (en) * 2008-09-11 2013-02-26 Panasonic Corporation Information processing terminal device and network connection method
US7930428B2 (en) 2008-11-11 2011-04-19 Barracuda Networks Inc Verification of DNS accuracy in cache poisoning
CN102104634B (zh) * 2009-12-17 2013-08-07 华为技术有限公司 非lisp站点与lisp站点通信的方法、装置及系统
CN102111458A (zh) * 2009-12-23 2011-06-29 中国移动通信集团公司 一种获取移动终端ip地址的方法及设备
CN101764855A (zh) 2009-12-30 2010-06-30 福建星网锐捷网络有限公司 一种提供域名解析服务的方法、装置及系统
US8305933B2 (en) * 2010-02-03 2012-11-06 Vonage Nework LLC Method and apparatus for detecting devices on a local area network
US9742811B2 (en) * 2010-03-18 2017-08-22 Nominum, Inc. System for providing DNS-based control of individual devices
CN101841577B (zh) 2010-06-07 2015-01-28 中兴通讯股份有限公司 一种实现域名解析代理功能的方法和装置
US8850526B2 (en) * 2010-06-23 2014-09-30 K7 Computing Private Limited Online protection of information and resources
CN101895589A (zh) * 2010-07-26 2010-11-24 杭州华三通信技术有限公司 广域网路由器和广域网路由器中路由表项建立的方法
EP2426894B1 (en) * 2010-09-03 2015-02-18 Deutsche Telekom AG System and method of processing DNS request and DNS reply
CN102404416B (zh) * 2010-09-16 2016-06-15 中兴通讯股份有限公司 一种获取dns的方法和隧道网关设备
KR20130130755A (ko) * 2010-12-21 2013-12-02 톰슨 라이센싱 멀티 코어 플랫폼을 위한 dns 포워더
EP3703418A3 (en) * 2011-06-24 2020-11-18 Vodafone IP Licensing limited Telecommunication networks
US10044582B2 (en) * 2012-01-28 2018-08-07 A10 Networks, Inc. Generating secure name records
US9118603B2 (en) * 2013-03-08 2015-08-25 Edward Blake MILLER System and method for managing attempted access of objectionable content and/or tampering with a content filtering device
CN103236964B (zh) * 2013-05-07 2015-09-16 烽火通信科技股份有限公司 基于Linux的DS-Lite实现方法及其CPE接入设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101238453A (zh) * 2003-09-19 2008-08-06 摩托罗拉公司 建立用于归属到归属通信的名字解析系统
CN102130820A (zh) * 2010-01-14 2011-07-20 深圳市深信服电子科技有限公司 一种网络服务访问方法以及接入网关设备
US8667176B2 (en) * 2010-01-14 2014-03-04 Sangfor Technologies Company Limited Network service access method and access gateway equipment
CN101873358A (zh) * 2010-06-11 2010-10-27 杭州华三通信技术有限公司 一种基于域名解析的链路负载均衡方法和设备
CN102244613A (zh) * 2011-08-11 2011-11-16 深信服网络科技(深圳)有限公司 基于dns进行多链路流量均衡的方法、网关和网络

Also Published As

Publication number Publication date
WO2015162451A1 (en) 2015-10-29
US20160269353A1 (en) 2016-09-15
US10454879B2 (en) 2019-10-22
CN109889618B (zh) 2022-08-16
CN105453488A (zh) 2016-03-30
GB2529765B (en) 2021-02-03
CN109889618A (zh) 2019-06-14
US9912630B2 (en) 2018-03-06
GB201517415D0 (en) 2015-11-18
US20180262461A1 (en) 2018-09-13
GB2529765A (en) 2016-03-02

Similar Documents

Publication Publication Date Title
CN105453488B (zh) 用于处理dns请求的方法和系统
CN105210330B (zh) 用于处理dns请求的方法和系统
WO2019201043A1 (zh) 网络通信方法、系统、设备及存储介质
US9531667B2 (en) Peer-to-peer connection establishment using TURN
ES2663410T3 (es) Un controlador de red y un método informático implementado para definir automáticamente reglas de reenvío para configurar un dispositivo de interconexión de red informático
US7992201B2 (en) Dynamic network tunnel endpoint selection
US9712485B2 (en) Dynamic DNS-based service discovery
US8737396B2 (en) Communication method and communication system
JP2018504847A (ja) 負荷平衡化インターネット・プロトコル・セキュリティ・トンネル
US8578468B1 (en) Multi-factor client authentication
CN109076082A (zh) 面向身份的网络和协议中的匿名身份
EP3016423A1 (en) Network safety monitoring method and system
CN109617753A (zh) 一种网络平台管理方法、系统及电子设备和存储介质
US10805260B2 (en) Method for transmitting at least one IP data packet, related system and computer program product
US20220078162A1 (en) Privacy network system
KR101303030B1 (ko) ⅠPv6를 지원하는 프로토콜을 이용한 호스트 동작상태 및 탐색 방법
KR102185665B1 (ko) All-IP 환경에서 IPv6 주소 기반의 통신을 위한 사용자 식별 서버, 단말, 방법, 및 기록 매체
RU2797264C1 (ru) Способ и система туннелирования трафика в распределенной сети для детонации вредоносного программного обеспечения
CN111294223B (zh) 一种strongswan中的多隔离空间配置方法及系统
EP4262148A1 (en) Network security with server name indication
CN109660439B (zh) 一种终端互访管理系统及方法
Fesl et al. New Techniques of IEEE 802.11 Family Hotspots Attacks, Principles and Defense

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant