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

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

Info

Publication number
CN109889618A
CN109889618A CN201910022554.4A CN201910022554A CN109889618A CN 109889618 A CN109889618 A CN 109889618A CN 201910022554 A CN201910022554 A CN 201910022554A CN 109889618 A CN109889618 A CN 109889618A
Authority
CN
China
Prior art keywords
dns
gateway
response
request
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
CN201910022554.4A
Other languages
English (en)
Other versions
CN109889618B (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 CN109889618A publication Critical patent/CN109889618A/zh
Application granted granted Critical
Publication of CN109889618B publication Critical patent/CN109889618B/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种用于在网关中处理域名服务(DNS)请求的方法以及系统。所述网关包括多个广域网(WAN)接口。通过第一多个连接发送第一多个DNS请求到第一多个DNS服务器;其中所述第一多个DNS请求是基于第二DNS请求产生;在时间阈值内接收一个或多个第一DNS响应;从所述一个或多个第一DNS响应选择第二DNS响应;以及产生和发送第三DNS响应,其中所述第三DNS响应是基于所述第二DNS响应和相对应的所述第二DNS请求。

Description

用于处理DNS请求的方法和系统
本申请是申请号为201480009088.1、名称为“用于处理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)请求的方法,其中所述网关包括多个 广域网(WAN)接口,包括:
a.通过第一多个连接发送第一多个DNS请求到第一多个DNS服务器;其中所述第一多个DNS请求是基于第二DNS请求产生;
b.在时间阈值内接收一个或多个第一DNS响应;
c.从所述一个或多个第一DNS响应选择第二DNS响应;以及
d.产生和发送第三DNS响应,其中所述第三DNS响应是基于所述第二DNS响应和 相对应的所述第二DNS请求。
一种网关包括:
多个网络接口;
至少一个处理单元;
至少一个主存储器;
至少一个非暂时性计算机可读存储媒体,其存储通过所述至少一个处理单元可执行的程 序指令以用于:
a.通过第一多个连接发送第一多个DNS请求到第一多个DNS服务器;其中所述第一多个DNS请求是基于第二DNS请求产生;
b.在时间阈值内接收一个或多个第一DNS响应;
c.从所述一个或多个第一DNS响应选择第二DNS响应;以及
d.产生和发送第三DNS响应,其中所述第三DNS响应是基于所述第二DNS响应和相对 应的所述第二DNS请求。本发明揭示了用于在网关中处理域名服务(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调制解调器、 USBWi-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是根据本发明的各种实施例的网关的框图。
图6A和图6B分别是展示根据本发明的实施例中的一者的网络环境 的框图。
图7是图示根据本发明的实施例中的一者的过程的流程图。
图8是图示根据本发明的实施例中的一者的过程的流程图。
图9是图示根据实施例中的一者向一或多个DNS服务器发送DNS请求的过程的流程图。
图10是图示根据本发明的实施例中的一者的用于向一或多个DNS服务器发送DNS请求 的过程的流程图。
图11是图示根据实施例中的一者的用于选择DNS响应的过程的流程图。
图12是图示根据本发明的实施例中的一者的过程的流程图。
图13是图示根据本发明的实施例中的一者的过程的流程图。

Claims (20)

1.一种用于在网关中处理域名服务(DNS)请求的方法,其中所述网关包括多个广域网(WAN)接口,包括:
a.通过第一多个连接发送第一多个DNS请求到第一多个DNS服务器;其中所述第一多个DNS请求是基于第二DNS请求产生;
b.在时间阈值内接收一个或多个第一DNS响应;
c.从所述一个或多个第一DNS响应选择第二DNS响应;以及
d.产生和发送第三DNS响应,其中所述第三DNS响应是基于所述第二DNS响应和相对应的所述第二DNS请求。
2.根据权利要求1所述的方法,其中从所述一个或多个第一DNS响应的第二DNS响应的选择是基于至少一个预定义DNS响应选择策略。
3.根据权利要求1所述的方法,其中所述第一多个连接通过一个或多个WAN接口建立。
4.根据权利要求1所述的方法,其中所述第一多个连接包括至少一个隧道。
5.根据权利要求1所述的方法,其中所述第一多个连接包括至少一个接入网络和至少一个隧道。
6.根据权利要求1所述的方法,其进一步包括确定第一多个DNS请求的DNS请求数目;其中所述第一多个DNS请求的所述DNS请求数目与第一多个连接的连接数目相同。
7.根据权利要求1所述的方法,其中所述第一多个DNS服务器是基于所述第一多个连接的可访问性来选择。
8.根据权利要求1所述的方法,其中所述第一多个DNS服务器是基于至少一个预定义DNS服务器选择策略来选择。
9.根据权利要求1所述的方法,其中所述第一多个DNS请求包含针对所述第一多个DNS服务器中的第一DNS服务器的至少两个DNS请求。
10.根据权利要求9所述的方法,其中通过所述第一多个连接的不同连接发送所述至少两个DNS请求。
11.一种网关包括:
多个网络接口;
至少一个处理单元;
至少一个主存储器;
至少一个非暂时性计算机可读存储媒体,其存储通过所述至少一个处理单元可执行的程序指令以用于:
a.通过第一多个连接发送第一多个DNS请求到第一多个DNS服务器;其中所述第一多个DNS请求是基于第二DNS请求产生;
b.在时间阈值内接收一个或多个第一DNS响应;
c.从所述一个或多个第一DNS响应选择第二DNS响应;以及
d.产生和发送第三DNS响应,其中所述第三DNS响应是基于所述第二DNS响应和相对应的所述第二DNS请求。
12.根据权利要求11所述的网关,其中从所述一个或多个第一DNS响应的第二DNS响应的选择是基于至少一个预定义DNS响应选择策略。
13.根据权利要求11所述的网关,其中所述第一多个连接通过一个或多个WAN接口建立。
14.根据权利要求11所述的网关,其中所述第一多个连接包括至少一个隧道。
15.根据权利要求11所述的网关,其中所述第一多个连接包括至少一个接入网络和至少一个隧道。
16.根据权利要求11所述的网关,其中所述至少一个非暂时性计算机可读存储媒体,其存储通过所述至少一个处理单元可执行的程序指令以用于:通过多个接口接收DNS请求;以及通过所述第一多个连接的不同连接发送所述第二DNS请求。
17.根据权利要求1所述的网关,其中所述第一多个DNS服务器是基于所述第一多个连接的可访问性来选择。
18.根据权利要求11所述的网关,其中所述第一多个DNS服务器是基于至少一个预定义DNS服务器选择策略来选择。
19.根据权利要求11所述的网关,其中所述第一多个DNS请求包含针对所述第一多个DNS服务器中的第一DNS服务器的至少两个DNS请求。
20.根据权利要求19所述的网关,其中通过所述第一多个连接的不同连接发送所述至少两个DNS请求。
CN201910022554.4A 2014-04-22 2014-04-22 用于处理dns请求的方法和系统 Active CN109889618B (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 (3)

Application Number Priority Date Filing Date Title
CN201910022554.4A CN109889618B (zh) 2014-04-22 2014-04-22 用于处理dns请求的方法和系统
PCT/IB2014/060891 WO2015162451A1 (en) 2014-04-22 2014-04-22 Methods and systems for processing a dns request
CN201480009088.1A CN105453488B (zh) 2014-04-22 2014-04-22 用于处理dns请求的方法和系统

Related Parent Applications (1)

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

Publications (2)

Publication Number Publication Date
CN109889618A true CN109889618A (zh) 2019-06-14
CN109889618B CN109889618B (zh) 2022-08-16

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 Before (1)

Application Number Title Priority Date Filing Date
CN201480009088.1A Active CN105453488B (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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114553821A (zh) * 2022-02-24 2022-05-27 杭州迪普科技股份有限公司 Vpn客户端代理dns解析方法及装置

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015162450A1 (en) * 2014-04-22 2015-10-29 Pismo Labs Technology Limited Methods and systems for processing a dns request
WO2015167381A1 (en) * 2014-04-30 2015-11-05 Telefonaktiebolaget L M 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
CN112565481B (zh) * 2018-11-21 2022-04-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 北京沃东天骏信息技术有限公司 一种基于微服务的接口调用方法、系统、设备及介质
US11323349B2 (en) * 2019-11-19 2022-05-03 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
US20230362132A1 (en) * 2022-05-05 2023-11-09 HYAS Infosec Inc. Rule selection management based on currently available domain name system (dns) servers

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1669270A (zh) * 2002-07-08 2005-09-14 帕克特弗兰特瑞典股份公司 网络设备的动态端口配置
CN101238453A (zh) * 2003-09-19 2008-08-06 摩托罗拉公司 建立用于归属到归属通信的名字解析系统
CN101895589A (zh) * 2010-07-26 2010-11-24 杭州华三通信技术有限公司 广域网路由器和广域网路由器中路由表项建立的方法
CN102111458A (zh) * 2009-12-23 2011-06-29 中国移动通信集团公司 一种获取移动终端ip地址的方法及设备
EP2426894A1 (en) * 2010-09-03 2012-03-07 Deutsche Telekom AG System and method of processing DNS request and DNS reply
CN102404416A (zh) * 2010-09-16 2012-04-04 中兴通讯股份有限公司 一种获取dns的方法和隧道网关设备

Family Cites Families (41)

* 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
AU2001236915A1 (en) * 2000-02-11 2001-08-20 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
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
CN1301611C (zh) * 2003-01-21 2007-02-21 三星电子株式会社 用于在不同的专用网的网络设备之间支持通信的网关
US20040249973A1 (en) * 2003-03-31 2004-12-09 Alkhatib Hasan S. Group agent
AU2003251265A1 (en) * 2003-04-01 2004-10-25 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for centrally allocating addresses and port numbers
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 株式会社日立国際電気 冗長切替システム、冗長管理装置およびアプリケーション処理装置
WO2010029759A1 (ja) * 2008-09-11 2010-03-18 パナソニック株式会社 情報処理端末装置及びネットワーク接続方法
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站点通信的方法、装置及系统
CN101764855A (zh) 2009-12-30 2010-06-30 福建星网锐捷网络有限公司 一种提供域名解析服务的方法、装置及系统
CN102130820A (zh) * 2010-01-14 2011-07-20 深圳市深信服电子科技有限公司 一种网络服务访问方法以及接入网关设备
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 中兴通讯股份有限公司 一种实现域名解析代理功能的方法和装置
CN101873358B (zh) * 2010-06-11 2014-09-10 杭州华三通信技术有限公司 一种基于域名解析的链路负载均衡方法和设备
US8850526B2 (en) * 2010-06-23 2014-09-30 K7 Computing Private Limited Online protection of information and resources
WO2012087263A1 (en) * 2010-12-21 2012-06-28 Thomson Licensing Dns forwarder for multi-core platforms
US9154994B2 (en) * 2011-06-24 2015-10-06 Vodafone Ip Licensing Limited Telecommunication networks
CN102244613A (zh) * 2011-08-11 2011-11-16 深信服网络科技(深圳)有限公司 基于dns进行多链路流量均衡的方法、网关和网络
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 (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1669270A (zh) * 2002-07-08 2005-09-14 帕克特弗兰特瑞典股份公司 网络设备的动态端口配置
CN101238453A (zh) * 2003-09-19 2008-08-06 摩托罗拉公司 建立用于归属到归属通信的名字解析系统
CN102111458A (zh) * 2009-12-23 2011-06-29 中国移动通信集团公司 一种获取移动终端ip地址的方法及设备
CN101895589A (zh) * 2010-07-26 2010-11-24 杭州华三通信技术有限公司 广域网路由器和广域网路由器中路由表项建立的方法
EP2426894A1 (en) * 2010-09-03 2012-03-07 Deutsche Telekom AG System and method of processing DNS request and DNS reply
CN102404416A (zh) * 2010-09-16 2012-04-04 中兴通讯股份有限公司 一种获取dns的方法和隧道网关设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114553821A (zh) * 2022-02-24 2022-05-27 杭州迪普科技股份有限公司 Vpn客户端代理dns解析方法及装置
CN114553821B (zh) * 2022-02-24 2023-06-27 杭州迪普科技股份有限公司 Vpn客户端代理dns解析方法及装置

Also Published As

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

Similar Documents

Publication Publication Date Title
CN105453488B (zh) 用于处理dns请求的方法和系统
CN105210330B (zh) 用于处理dns请求的方法和系统
US9876760B2 (en) Peer-to-peer connection establishment using turn
US10715482B2 (en) Wide area service discovery for internet of things
WO2019201043A1 (zh) 网络通信方法、系统、设备及存储介质
US7992201B2 (en) Dynamic network tunnel endpoint selection
EP3243304B1 (en) Selective routing of network traffic for remote inspection in computer networks
US11374900B2 (en) Network address translation (NAT) traversal and proxy between user plane function (UPF) and session management function (SMF)
JP2018504847A (ja) 負荷平衡化インターネット・プロトコル・セキュリティ・トンネル
WO2016018557A1 (en) Dynamic dns-based service discovery
CN110612707A (zh) 基于dns路由网络流量
WO2015192563A1 (zh) 一种实现负载均衡的方法、装置及负载均衡服务系统
US10827345B1 (en) Methods and systems for LoRaWAN traffic routing and control
EP3016423A1 (en) Network safety monitoring method and system
WO2018119592A1 (zh) 网络切片确定方法及装置
Lemogue et al. Federated iot roaming using private dns resolutions
US20230038620A1 (en) Method of setting user-defined virtual network
CN115865802A (zh) 虚拟实例的流量镜像方法、装置、虚拟机平台及存储介质
CN116527627A (zh) 一种nat类型的确定方法、客户端、系统和存储介质
Fesl et al. New Techniques of IEEE 802.11 Family Hotspots Attacks, Principles and Defense

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40010633

Country of ref document: HK

CB02 Change of applicant information

Address after: Room A8, 5th floor, phase 6, Hong Kong yarn factory industrial building, 481 Castle Peak Road, Cheung Sha Wan, Kowloon, China

Applicant after: PISMO LABS TECHNOLOGY Ltd.

Address before: Chinese Hongkong Kowloon Bay Changsha Castle Peak Road No. 481 Hongkong mills Arts crafts emporium 6 floor A5 room 5

Applicant before: PISMO LABS TECHNOLOGY Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant