用于处理dns请求的方法和系统的制作方法

文档序号:9693626阅读:364来源:国知局
用于处理dns请求的方法和系统的制作方法
【技术领域】
[0001]本发明大体上涉及计算机网络的领域。更具体来说,本发明涉及用于在网关中处理域名服务(DNS)请求的方法以及系统。所述网关基于第二主机的因特网协议(IP)地址的地理位置确定是否使用第二隧道来向第二主机传送数据的决定,其中第二主机的IP地址在第一 DNS响应中指定。
【背景技术】
[0002]域名系统(DNS)是用于计算机、服务、或连接到因特网或专用网络的任何资源的分层分布式命名系统。它使各种类型的信息与分配给参与实体中的每一者的域名相关联。出于在全世界定位计算机服务以及装置的目的,DNS将这些名称的请求解析成因特网协议(IP)地址。例如由于内容分布式网络、管理员的干预、以及是否包括DNS服务器的原因,不同的DNS服务器可以不同方式解析特定的DNS请求。在另一实例中,由于政治性原因或法规,位于国家A中的DNS服务器可能不能为在国家A中受限的网站提供准确IP地址。通常已知在国家A中受限的网站的IP地址可能不可由位于国家A中的主机或网关访问。还常见的是,在国家A中受限的网站的IP地址的地理位置最可能在国家A外部。为了克服此问题,IP地址的IP包可以通过虚拟专用网络(VPN)连接等隧道来发送或接收。技术中的一者是在网关处建立规则或策略以通过隧道或VPN具有指向受限IP地址、域名和/或网站的数据。对于管理员而言,如果存在许多受限IP地址、域名和/或网站,特别地如果不知道哪些是受限的,那么建立规则以及策略可能变得非常不便。

【发明内容】

[0003]本发明揭示了用于在网关中处理域名服务(DNS)请求的方法,所述网关包括至少一个局域网(LAN)接口以及至少一个广域网(WAN)接口。所述网关经由网关的至少一个LAN接口中的一者从第一主机接收第一 DNS请求。所述网关选择至少一个DNS服务器。如果至少一个DNS服务器是通过至少一个隧道可访问的,那么通过至少一个隧道向至少一个DNS服务器发送至少一个新DNS请求。或者,如果至少一个DNS服务器是通过任何隧道都不可访问的,那么在不使用隧道的情况下向至少一个DNS服务器发送至少一个新DNS请求。至少一个新DNS请求是基于第一 DNS请求,使得至少一个新DNS请求的内容与第一 DNS请求的内容相同。
[0004]根据本发明的实施例中的一者,选择至少一个DNS服务器的步骤包括确定由网关通过至少一个隧道可访问的一或多个DNS服务器。所述网关随后从一或多个DNS服务器选择至少一个DNS服务器。
[0005]根据本发明的实施例中的一者,用于在网关中处理DNS请求的方法进一步包括所述网关从至少一个DNS服务器接收第一DNS响应。所述网关随后经由网关的LAN接口中的一者向主机发送新DNS响应。新DNS响应是基于第一 DNS响应。所述网关通过使用IP地理位置数据库来确定在第一 DNS响应中指定的IP地址的地理位置,且确定是否使用第二隧道在第一主机与第二主机之间传送数据的决定。第二主机是通过在第一 DNS响应中指定的IP地址可访问的。如果所述决定是使用第二隧道,那么所述网关使用第二隧道在第一主机与第二主机之间传送数据。或者,如果所述决定是不使用第二隧道或如果不存在决定,那么所述网关不使用第二隧道在第一主机与第二主机之间传送数据。
[0006]根据本发明的实施例中的一者,第一DNS响应通过第一隧道接收。第一隧道是用于发送至少一个新DNS请求的至少一个隧道中的一者。在一个变型例中,第一隧道与第二隧道相同。或者,第一隧道不与第二隧道相同。
[0007]根据本发明的实施例中的一者,如果网关确定使用第二隧道,那么第二隧道进一步用于在网关与第二主机之间传送数据。
[0008]根据本发明的实施例中的一者,确定是否在网关与第二主机之间或在第一主机与第二主机之间传送数据的步骤是基于在第一 DNS响应中指定的IP地址的地理位置。
[0009]根据本发明的实施例中的一者,至少一个新DNS请求的数目是至少两个,使得通过网关发送至少两个新DNS请求。多个DNS响应在网关处被接收且第一 DNS响应选自所述多个DNS响应。如果存在通过至少一个隧道接收的至少一个DNS响应,那么第一 DNS响应选自通过至少一个隧道接收的至少一个DNS响应。或者,如果没有DNS响应通过至少一个隧道中的任一者接收,那么第一 DNS响应选自所接收的多个DNS响应。多个DNS响应可以在预定义时间段内被接收。
[0010]根据本发明的实施例中的一者,确定是否在网关与第二主机之间或在第一主机与第二主机之间传送数据的步骤是基于在多个DNS响应中的至少两者中指定的IP地址是否相同。
[0011]根据本发明的实施例中的一者,是否在第一主机与第二主机之间传送数据的决定存储在计算机可读存储媒体中。当在第一DNS响应的生存时间(TTL)字段中指定的时间段已经期满时,从计算机可读存储媒体删除所述决定。
[0012]根据本发明的实施例中的一者,是否在第一主机与第二主机之间传送数据的决定存储在计算机可读存储媒体中。所述决定含有在第一 DNS响应中指定的IP地址。当在第一DNS响应的TTL字段中指定的时间段已经期满时,将至少一个第二新DNS请求发送到至少一个DNS服务器。与至少一个第二新DNS请求相对应的第二 DNS响应被接收。在所述决定中的IP地址随后更新成在第二 DNS响应中指定的IP地址。
【具体实施方式】
[0013]以下说明仅提供优选的示例性实施例且并不意图限制本发明的范围、适用性或配置。实际上,以下优选的示例性实施例的说明将为所属领域的技术人员提供用于实施本发明的优选的示例性实施例的有用描述。应理解,在不脱离如在所附权利要求书中阐述的本发明的精神和范围的情况下可以对元件的功能以及布置进行各种改变。
[0014]在以下描述中给出具体细节以提供对实施例的透彻理解。然而,所属领域的技术人员应理解,所述实例可在没有这些具体细节的情况下实践。例如,可以框图示出电路以便不以不必要的细节混淆实施例。在其它实例中,在没有不必要的细节的情况下示出熟知的电路、过程、算法、结构以及技术以便避免混淆实施例。
[0015]同样,应注意,实施例可以描述为过程,所述过程描绘为流程图、流程图表、数据流图、结构图或框图。尽管流程图可以将操作描述为顺序过程,但是许多操作可以并行或同时执行。另外,可以重新布置操作的次序。当操作完成时,过程终止,但是过程可以具有不包含在图中的另外步骤。过程可以与方法、函数、步骤、子例程、子程序等相对应。当过程与函数相对应时,其终止与所述函数返回到调用函数或主函数相对应。
[0016]实施例或其各部分可以程序指令来实施,所述程序指令可在处理单元上操作以用于执行如本文中所描述的功能以及操作。构成各种实施例的程序指令可以存储在存储媒体中。
[0017]构成各种实施例的程序指令可以存储在存储媒体中。此外,如本文中所揭示,术语“计算机可读存储媒体”可以表示用于存储数据的一或多个装置,包含只读存储器(R0M)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、随机存取存储器(RAM)、磁RAM、磁芯存储器、软盘、软磁盘、硬盘、磁带、CD-ROM、闪存存储器装置、存储卡和/或用于存储信息的其它机器可读媒体。术语“计算机可读存储媒体”还可以包含但不限于,便携式或固定存储装置、光学存储媒体、磁性媒体、存储器芯片或盒式磁盘、无线信道以及能够存储、含有或携载指令和/或数据的各种其它媒体。计算机可读存储媒体可以通过虚拟化来实现,且可以是虚拟计算机可读存储媒体,包含在基于云的实例中的虚拟计算机可读存储媒体。
[0018]如本文所使用的术语“计算机可读媒体”是指任何参与向处理单元提供指令以供执行的媒体。计算机可读媒体仅是机器可读媒体的一个实例,所述机器可读媒体可以携载指令以用于实施本文中所描述的方法和/或技术中的任一者。此媒体可以采用许多形式,包含但不限于非易失性媒体、易失性媒体和传输媒体。非易失性媒体包含(例如)光盘或磁盘。易失性媒体包含动态存储器。传输媒体包含同轴电缆、铜线以及光纤。传输媒体还可以采用声波或光波的形式,例如在无线电波以及红外线数据通信期间产生的声波或光波。
[0019]易失性存储器可以用于在通过处理单元执行指令期间存储临时变量或其它中间信息。非易失性存储器或静态存储器可以用于存储用于处理器的静态信息以及指令,以及各种系统配置参数。
[0020]存储媒体可以包含多个软件模块,所述软件模块可以实施为通过处理单元使用任何合适的计算机指令类型来执行的软件代码。软件代码可以作为一系列指令或命令、或作为程序存储在存储媒体中。
[0021]在将一或多个指令的一或多个序列携载到处理器以用于执行时,可以涉及各种形式的计算机可读媒体。例如,最初可以在磁盘上从远程计算机携载指令。替代地,远程计算机可以将所述指令加载到其动态存储器中,且向运行一或多个指令的一或多个序列的系统发送指令。
[0022]处理单元可以是微处理器、微控制器、数字信号处理器(DSP)、那些装置的任何组合、或经配置以处理信息的任何其它电路。
[0023]处理单元执行程序指令或代码段以用于实施本发明的实施例。此外,实施例可以由硬件、软件、固件、中间件、微码、硬件描述语言或其任何组合来实施。当用软件、固件、中间件或微码实施时,执行必需的任务的程序代码或代码段可以存储在计算机可读存储媒体中。处理单元可以执行必需的任务。处理单元可以通过虚拟化来实现,且可以是虚拟处理单元,包含在基于云的实例中的虚拟处理单元。
[0024]本发明的实施例涉及使用计算机系统来实施本文中所描述的技术。在实施例中,本发明的处理单元可以存在于计算机平台等机器上。根据本发明的一个实施例,本文中所描述的技术由计算机系统执行,以响应于处理单元执行易失性存储器中所含有的一或多个指令的一或多个序列。此类指令可以从另一计算机可读媒体读取到易失性存储器中。对易失性存储器中所含有的指令的序列的执行使得处理单元执行本文中所描述的过程步骤。在替代实施例中,硬接线电路可以用于取代或结合软件指令以实施本发明。因此,本发明的实施例不限于硬件电路以及软件的任何特定组合。
[0025]代码段或程序指令可以表示步骤、函数、子程序、程序、例程、子例程、模块、软件包、类、或指令、数据结构、或程序语句的任何组合。通过传递和/或接收信息、数据、引数、参数或存储器内容,代码段可以耦合到另一代码段、程序指令或硬件。信息、引数、参数、数据等可以经由包含存储器共享、消息传递、令牌传递、网络传输等任何合适的方法传递、传输或传输。
[0026]或者,硬接线电路可以用于取代或结合软件指令以实施符合本发明的原理的过程。因此,符合本发明的原理的实施方案不限于硬件电路以及软件的任何特定组合。
[0027]接入网络允许网关连接到其它网络,例如因特网以及外联网。为了确定网络是否是可访问的,网关可以定期发送出包以测试可访问性。例如,网关可以向主机发送ICMP回应请求包且测量ICMP回应回复包的到达时间以确定网络是否是可访问的。所属领域的技术人员将清楚,可以使用更多的方法以及技术来确定网络是否是可访问的。
[0028]本发明的当前优选的实施例可以利用网关。网关是在网络上的装置或节点,其执行不同类型网络或应用之间的协议转换且能够处理DNS请求以及响应。术语“网关”并不意图限于单一类型的装置,因为出于本申请案的目的,可以充当用户与网络之间的网桥的任何装置、硬件或软件都可以被认为是网关。网关可以与多个多网络耦合。出于本发明的目的,路由器、交换机、网桥、无线接入点、计算装置中的虚拟机或能够充当朝向另一网络的接入点且处理DNS请求以及响应的任何设备都可以被认为是网关。
[0029]网络接口可以通过独立的电子组件实施或者可以与其它电子组件整合。根据配置,网络接口可以不具有网络连接或具有至少一个网络连接。网络接口仅连接到一个接入网络。因此,可以存在通过一个接入网络携载的超过一个网络连接。网络接口可以是以太网接口、帧中继接口、光纤接口、电缆接口、DSL接口、令牌环接口、串行总线接口、通用串行总线(USB)接口、火线接口、外围组件互连(PCI)接口等。
[0030]网络接口可以连接到有线或无线接入网络。接入网络可以携载一或多个网络协议数据。有线接入网络可以使用以太网、光纤、电缆、DSL、帧中继、令牌环、串行总线、USB、火线、PCI或可以传递信息的任何材料来实施。无线接入网络可以使用红外线、高速分组接入(HSPA)、HSPA+、长期演进(LTE)、WiMax、GPRS、EDGE、GSM、CDMA、WiF1、CDMA2000、WCDMA、TD-SCDMA、蓝牙、WiBRO、演进数据优化(EV-DO);数字增强型无绳通信(DECT);数字AMPS(IS-136/TDMA);集成数字增强型(iDEN)或任何其它无线技术来实施。
[0031]接入网络可以携载一或多个网络协议数据,包含但不限于因特网协议(IP)、IPv4或IPv6。接入网络可以是有线网络或无线网络。可接入无线网络可以使用光纤、电缆或可以传递信息的任何材料来实施。可接入无线网络还可以使用红外线、以太网、DSL、高速分组接入(HSPA)、HSPA+、长期演进(LTE)、WiMax、GPRS、EDGE、GSM、CDMA、WiF1、CDMA2000、WCDMA、TD-SCDMA、蓝牙、WiBRO或任何其它无线技术来实施。
[0032]实施例或其各部分可以计算机数据信号来实施,所述计算机数据信号可以采用用于经由传输媒体进行通信的
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1