著录项信息
专利名称 | 一种域名系统DNS解析方法及装置 |
申请号 | CN201110228443.2 | 申请日期 | 2011-08-10 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2011-11-30 | 公开/公告号 | CN102263837A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/12 | IPC分类号 | H;0;4;L;2;9;/;1;2查看分类表>
|
申请人 | 北京天融信科技有限公司 | 申请人地址 | 北京市海淀区上地东路1号院3号楼3层北侧301室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京天融信科技有限公司 | 当前权利人 | 北京天融信科技有限公司 |
发明人 | 何超;申锟铠;罗元;邓辉 |
代理机构 | 工业和信息化部电子专利中心 | 代理人 | 梁军 |
摘要
本发明公开了一种DNS解析方法及装置。该方法包括网络数据过滤模块对本机DNS解析请求包进行过滤,将符合预先设置的本地DNS解析策略的本机DNS解析请求包转发到本机DNS解析模块,将不符合本地DNS解析策略的本机DNS解析请求包转发到操作系统底层模块;本机DNS解析模块对接收的本机DNS解析请求包进行解析,获取解析结果,并将解析结果携带在本机DNS解析应答包中发送给操作系统底层模块。借助于本发明的技术方案,能够实现复杂的DNS解析策略。
1.一种域名系统DNS解析方法,其特征在于,包括:
网络数据过滤模块对本机DNS解析请求包进行过滤,将符合预先设置的本地DNS解析策略的本机DNS解析请求包转发到本机DNS解析模块,将不符合所述本地DNS解析策略的本机DNS解析请求包转发到操作系统底层模块;
所述本机DNS解析模块对接收的所述本机DNS解析请求包进行解析,获取解析结果,并将所述解析结果携带在本机DNS解析应答包中发送给所述操作系统底层模块;
所述网络数据过滤模块对本机DNS解析请求包进行过滤之前,所述方法还包括:
所述本机DNS解析模块设置监听端口;
所述本机DNS解析模块将所述监听端口和所述本地DNS解析策略置入所述网络数据过滤模块。
2.如权利要求1所述的方法,其特征在于,所述网络数据过滤模块对本机DNS解析请求包进行过滤,将符合预先设置的本地DNS解析策略的本机DNS解析请求包转发到本机DNS解析模块具体包括:
所述网络数据过滤模块根据所述本地DNS解析策略对所述本机DNS解析请求包进行过滤,判断所述本机DNS解析请求包是否需要进行本地DNS解析;
在确定所述本机DNS解析请求包需要进行本地处理的情况下,所述网络数据过滤模块将所述本机DNS解析请求包的原目的地址修改为本机地址,并将所述本机DNS解析请求包的原目的端口修改为所述本机DNS解析模块设置的监听端口,并将所述本机DNS解析请求包转发给所述本机DNS解析模块;
所述网络数据过滤模块将所述本机DNS解析请求包的源端口、所述原目的地址、以及所述原目的端口进行保存。
3.如权利要求2所述的方法,其特征在于,所述本机DNS解析模块对接收的所述本机DNS解析请求包进行解析,获取解析结果,并将所述解析结果携带在本机DNS解析应答包中发送给所述操作系统底层模块具体包括:
所述本机DNS解析模块根据用户定义的域名与网络协议IP地址对应关系,将所述本机DNS解析请求包中的域名地址解析为对应的IP地址;
所述本机DNS解析模块根据所述本机DNS解析请求包中的所述源端口,向所述网络数据过滤模块查询所述本机DNS解析请求包的所述原目的地址、以及所述原目的端口;
所述本机DNS解析模块根据解析后的所述IP地址、所述原目的地址、以及所述原目的端口构造所述本机DNS解析应答包,并通过原始套接字将所述本机DNS解析应答包发送给所述操作系统底层模块。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述本机DNS解析模块接收DNS策略服务器分发的当前本地DNS解析策略;
所述本机DNS解析模块根据所述当前本地DNS解析策略对原本地DNS解析策略进行更新,并将更新后的所述本地DNS解析策略置入所述网络数据过滤模块。
5.一种域名系统DNS解析装置,其特征在于,包括:
网络数据过滤模块,用于对本机DNS解析请求包进行过滤,将符合预先设置的本地DNS解析策略的本机DNS解析请求包转发到本机DNS解析模块,将不符合所述本地DNS解析策略的本机DNS解析请求包转发到操作系统底层模块;
所述本机DNS解析模块,用于对接收的所述本机DNS解析请求包进行解析,获取解析结果,并将所述解析结果携带在本机DNS解析应答包中发送给所述操作系统底层模块;
所述装置还包括:
设置模块,用于设置监听端口,并将所述监听端口和所述本地DNS解析策略置入所述网络数据过滤模块。
6.如权利要求5所述的装置,其特征在于,所述网络数据过滤模块具体用于:
根据所述本地DNS解析策略对所述本机DNS解析请求包进行过滤,判断所述本机DNS解析请求包是否需要进行本地DNS解析;
在确定所述本机DNS解析请求包需要进行本地处理的情况下,将所述本机DNS解析请求包的原目的地址修改为本机地址,并将所述本机DNS解析请求包的原目的端口修改为所述本机DNS解析模块的监听端口,并将所述本机DNS解析请求包转发给所述本机DNS解析模块;
将所述本机DNS解析请求包的源端口、所述原目的地址、以及所述原目的端口进行保存。
7.如权利要求6所述的装置,其特征在于,所述本机DNS解析模块具体用于:
根据用户定义的域名与网络协议IP地址对应关系,将所述本机DNS解析请求包中的域名地址解析为对应的IP地址;
根据所述本机DNS解析请求包中的所述源端口,向所述网络数据过滤模块查询所述本机DNS解析请求包的所述原目的地址、以及所述原目的端口;
根据解析后的所述IP地址、所述原目的地址、以及所述原目的端口构造所述本机DNS解析应答包,并通过原始套接字将所述本机DNS解析应答包发送给所述操作系统底层模块。
8.如权利要求5所述的装置,其特征在于,所述装置还包括:
更新模块,用于接收DNS策略服务器分发的当前本地DNS解析策略,并根据所述当前本地DNS解析策略对原本地DNS解析策略进行更新,将更新后的所述本地DNS解析策略置入所述网络数据过滤模块。
一种域名系统DNS解析方法及装置\n技术领域\n[0001] 本发明涉及移动通讯领域,特别是涉及一种域名系统(Domain Name System,简称为DNS)解析方法及装置。\n背景技术\n[0002] 在计算机通信网络中,域名(Domain Name,简称为DN)(形如www.baidu.com)与网络协议(Internet Protocol,简称为IP)地址(形如61.135.169.105)之间存在一对一或者多对一的映射关系。用户通常使用便于记忆的域名访问网络上的计算机,但计算机间却必须使用IP地址进行数据通信。因此,通信网络中需要存在为用户提供域名到IP地址转换的服务系统,该服务系统称为域名解析系统或DNS。为用户提供这种转换服务的主机,称为DNS服务器。域名到IP地址的转换过程,称为DNS解析或地址解析。\n[0003] 以用户通过因特网(Internet)访问百度(www.baidu.com)为例:当操作系统收到用户的浏览请求后,首先向DNS服务器发送查询报文,询问www.baidu.com所对应的IP地址。\n当操作系统收到DNS服务器的应答包后,先解析出www.baidu.com所对应的IP地址,再与这个IP地址进行网络通信,用户方可正常访问百度网站了。\n[0004] 大型企业在部署其内部网络时,为保证网络的易用性和易维护性,通常采用域名系统来部署服务器。用户指定网络上的某台主机作为DNS服务器,通过DNS服务器进行DNS解析,而不是直接在本机进行解析。但在某些特殊情况下,远程DNS服务器提供的解析服务可能无法满足用户需求,这些情况包括:1、用户需要将域名解析为某个特定地址,而DNS服务器无法正确进行这种解析;2、用户没有指定DNS服务器,又必须进行DNS解析;3、用户需要解析的域名地址,没有在DNS服务器上登记;4、其它一些特殊情况。因此,用户需要一种能够在本地进行DNS解析的技术,在上述特殊情况下进行DNS地址解析。\n[0005] 在现有技术中,主流操作系统均内置有本地DNS解析的解决方案。图1是现有技术中操作系统内置配置文件的本地DNS解析处理流程图,如图1所示,这种方案通常是在操作系统中内置一个域名到IP地址对应关系列表的配置文件。当操作系统需要对某个域名进行DNS解析时,首先在此配置文件中检索该域名,如检索成功,则直接将该域名对应的IP地址作为DNS解析结果返回;如检索失败,再向DNS服务器发送DNS解析请求。\n[0006] 此外,用户还可以手动或程序修改该配置文件,将自定义的域名-IP地址对应关系写入该文件,实现对特定域名的本地DNS解析。在Windows操作系统中,该域名到IP地址对应关系配置文件为\windows\system32\drivers\etc目录下的hosts文件。\n[0007] 但是,上述技术方案由于域名到IP地址对应关系配置文件为系统核心文件,因此在安全性要求较高的系统中,通常禁止修改此文件;此外修改该配置文件通常会触发防病毒软件,造成修改失败;用户只能明确指定域名到IP地址对应关系,而不能定义复杂的本地DNS解析策略。例如,“除news.sina.com外的所有sina.com二级域名(形如*.sina.com)均解析为127.0.0.1”这样的解析策略,是无法通过修改配置文件实现的;并且,由于修改配置文件属于文件操作,因此高频次的动态修改此文件,会影响系统性能。\n[0008] 在现有技术中,还可以通过在本地安装DNS服务器,实现本机DNS解析。在此技术方案中,图2是现有技术中本地安装DNS服务器的本地DNS解析处理流程图,如图2所示,用户首先在本地安装DNS服务器,并将自定义的DNS解析规则写入服务器配置文件,最后将本机主DNS服务器地址设置为本机地址。这样,当本机需要进行DNS解析时,会首先通过本地DNS服务器进行地址解析。如本机DNS解析失败,操作系统会继续向后续DNS服务器发送DNS解析请求。\n[0009] 上述技术方案的缺点如下:用户需要在本地安装DNS服务器软件,并对其进行配置;如本机已经安装了DNS服务器,则无法采用此种技术方案;若本机DNS解析失败,操作系统必须在收到本机DNS服务器回应包后,才会进行后继DNS解析操作,从而延长了DNS解析的时间;不能定义复杂的本地DNS解析策略。\n发明内容\n[0010] 本发明提供一种DNS解析方法及装置,以解决现有技术中本地DNS解析时间长,且不能够定义复杂的本地DNS解析策略的问题。\n[0011] 本发明提供一种DNS解析方法,包括:\n[0012] 网络数据过滤模块对本机DNS解析请求包进行过滤,将符合预先设置的本地DNS解析策略的本机DNS解析请求包转发到本机DNS解析模块,将不符合本地DNS解析策略的本机DNS解析请求包转发到操作系统底层模块;\n[0013] 本机DNS解析模块对接收的本机DNS解析请求包进行解析,获取解析结果,并将解析结果携带在本机DNS解析应答包中发送给操作系统底层模块。\n[0014] 本发明还提供了一种DNS解析装置,包括:\n[0015] 网络数据过滤模块,用于对本机DNS解析请求包进行过滤,将符合预先设置的本地DNS解析策略的本机DNS解析请求包转发到本机DNS解析模块,将不符合本地DNS解析策略的本机DNS解析请求包转发到操作系统底层模块;\n[0016] 本机DNS解析模块,用于对接收的本机DNS解析请求包进行解析,获取解析结果,并将解析结果携带在本机DNS解析应答包中发送给操作系统底层模块。\n[0017] 本发明有益效果如下:\n[0018] 通过网络数据过滤模块过滤本机DNS解析请求包,将符合本机DNS解析策略的请求数据转发到本机DNS解析模块进行处理,解决了现有技术中本地DNS解析时间长,且不能够定义复杂的本地DNS解析策略的问题,本发明实施例由于使用网络数据过滤模块对DNS请求数据进行过滤,因此能够实现复杂的DNS解析策略;由于网络数据过滤模块可直接转发不符合本机DNS解析策略的数据包,因此可提高DNS解析速度;由于网络数据过滤模块无需监听端口,因此与本机已安装的DNS服务器软件不会存在冲突;此外,无需修改域名到IP地址对应关系配置文件,不会触发防病毒软件动作,并可提高本地DNS解析的执行效率。\n附图说明\n[0019] 图1是现有技术中操作系统内置配置文件的本地DNS解析处理流程图;\n[0020] 图2是现有技术中本地安装DNS服务器的本地DNS解析处理流程图;\n[0021] 图3是本发明实施例的DNS解析方法的流程图;\n[0022] 图4是本发明实施例的DNS解析方法的详细处理流程图;\n[0023] 图5是本发明实施例的DNS解析策略配置更新的流程图;\n[0024] 图6是本发明实施例的DNS解析装置的结构示意图。\n具体实施方式\n[0025] 为了解决现有技术中本地DNS解析时间长,且不能够定义复杂的本地DNS解析策略的问题,本发明提供了一种DNS解析方法及装置,即,在企业内部网络中实现本机DNS解析的技术方案。该技术方案通过网络数据过滤模块过滤本机DNS解析请求包,将符合本机DNS解析策略的请求数据转发到本机DNS解析模块。本机DNS解析模块收到转发的DNS解析请求数据后,直接将解析结果写回操作系统,完成DNS解析的流程。如果DNS请求数据不符合本机DNS解析策略,则网络数据过滤模块直接将此数据发送给操作系统底层模块,从而提高非本地DNS解析的解析速度。以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。\n[0026] 方法实施例\n[0027] 根据本发明的实施例,提供了一种DNS解析方法,图3是本发明实施例的DNS解析方法的流程图,如图3所示,根据本发明实施例的DNS解析方法包括如下处理:\n[0028] 步骤301,网络数据过滤模块对本机DNS解析请求包进行过滤,将符合预先设置的本地DNS解析策略的本机DNS解析请求包转发到本机DNS解析模块,将不符合本地DNS解析策略的本机DNS解析请求包转发到操作系统底层模块;\n[0029] 在执行步骤301之前,本机DNS解析模块需要设置监听端口并将监听端口和本地DNS解析策略置入网络数据过滤模块。\n[0030] 在步骤301中,网络数据过滤模块需要根据本地DNS解析策略对本机DNS解析请求包进行过滤,即,判断本机DNS解析请求包是否需要进行本地DNS解析;在确定本机DNS解析请求包需要进行本地处理的情况下,网络数据过滤模块将本机DNS解析请求包的原目的地址修改为本机地址,并将本机DNS解析请求包的原目的端口修改为本机DNS解析模块设置的监听端口,并将本机DNS解析请求包转发给本机DNS解析模块;随后,为了方便后续的查询,网络数据过滤模块将本机DNS解析请求包的源端口、原目的地址、以及原目的端口进行保存。\n[0031] 步骤302,本机DNS解析模块对接收的本机DNS解析请求包进行解析,获取解析结果,并将解析结果携带在本机DNS解析应答包中发送给操作系统底层模块。\n[0032] 在步骤302中,本机DNS解析模块需要根据用户定义的域名与网络协议IP地址对应关系,将本机DNS解析请求包中的域名地址解析为对应的IP地址;随后,本机DNS解析模块根据本机DNS解析请求包中的源端口,向网络数据过滤模块查询本机DNS解析请求包的原目的地址、以及原目的端口;最后,本机DNS解析模块根据解析后的IP地址、原目的地址、以及原目的端口构造本机DNS解析应答包,并通过原始套接字将本机DNS解析应答包发送给操作系统底层模块。\n[0033] 在实际应用中,可以对本地DNS解析策略进行扩展,具体地:本机DNS解析模块接收DNS策略服务器分发的当前本地DNS解析策略;本机DNS解析模块根据当前本地DNS解析策略对原本地DNS解析策略进行更新,并将更新后的本地DNS解析策略置入网络数据过滤模块。\n[0034] 下面结合附图,以Windows系统为例,对本发明实施例的技术方案进行详细说明。\n[0035] 在Windows系统中,网络数据过滤模块为传输驱动程序接口过滤器(Transport Driver Interface Filter,简称为TDI Filter)。图4是本发明实施例的DNS解析方法的详细处理流程图,如图4所示,包括如下处理:\n[0036] TDI Filter作为网络数据过滤模块在Windows操作系统上的实现,主要完成网络数据的过滤、匹配及转发工作。当操作系统发出DNS解析请求后,TDI Filter会截获该请求数据,并根据预置其内部的DNS解析策略,判断是否需要进行本地解析。如无需进行本地解析,则TDI Filter会直接将该数据转发给操作系统底层模块进行后续处理;如需要进行本地解析,则TDI Filter会修改该请求数据的目的地址和端口,将其转发给DNS本地解析模块。\n[0037] DNS本地解析模块(即,上述本机DNS解析模块)主要是接收TDI Filter转发到DNS解析请求数据,并根据用户定义的域名到IP地址对应关系,将请求解析的域名地址转换成IP地址,然后根据解析结果构造一个DNS解析应答包,通过原始套接字(RAW Socket)写回给操作系统。\n[0038] 在本实例中,DNS本地解析模块启动后会首先在本机监听某个UDP端口。该UDP端口可预先约定,也可由DNS本地解析模块启动时随机选定。\n[0039] 当DNS本地解析模块启动成功后,会将UDP端口号(UDP 53)和本地DNS解析策略置入TDI Filter。\n[0040] 当TDI Filter接收到DNS本地解析模块置入的UDP端口号和本地DNS解析策略后,即认为DNS本地解析模块已启动成功,可以开启本地DNS解析功能。自此后,TDI Filter即开始过滤流经UDP 53端口上的所有数据。\n[0041] 当TDI Filter截获到流经UDP 53端口的数据后,首先根据网络协议类型和端口号,判断该数据是否为DNS解析请求数据。如否,则调用TDI Filter发送函数,将数据转发操作系统底层组件进行后续处理。如为DNS解析请求数据,则根据置入的本地DNS解析策略,判断是否为符合本地DNS解析策略的数据。如否,则调用TDI Filter发送函数,将数据转发操作系统底层组件进行后续处理。\n[0042] 当TDI Filter截获到符合本地DNS解析策略的DNS解析请求数据后,则修改该请求数据的目的地址和目的端口。将目的地址修改为本机地址,目的端口设置为DNS本地解析模块的监听端口,然后调用TDI Filter发送函数,将数据转发操作系统底层组件进行后续处理。TDI Filter同时会将该数据包的源端口,原始目的地址和原始目的端口保存备查。\n[0043] 被TDI Filter修改并经操作系统处理后的DNS解析请求数据,最终会被DNS本地解析模块收到。DNS本地解析模块在分析请求数据后,提取需要解析的域名地址,并根据用户预置的域名到IP的对应关系,取得该域名对应的IP地址。\n[0044] 当DNS本地解析模块完成域名解析后,会根据DNS解析请求数据的源端口,向TDI Filter查询该请求数据的原始目的地址和原始目的端口。在查询成功后,会根据原始目的地址,原始目的端口,解析后的IP地址等数据,构造一个完整的DNS解析请求回应包,通过RAW Socket写回系统,完成本地DNS解析流程。\n[0045] 在上述实例中,DNS解析策略是预置的,是不可更改的。但是,对于某些复杂的企业内部网络,静态的DNS解析策略可能无法满足其需要。因此,可对本发明实施例进行扩展,对DNS解析策略进行远程部署和管理。图5是本发明实施例的DNS解析策略配置更新的流程图,如图5所示:\n[0046] 首先,管理员通过DNS策略服务器,编辑DNS解析策略,在形成DNS解析策略文件后,通过DNS策略服务器分发此策略文件。DNS本地解析模块在收到DNS策略服务器分发的DNS解析策略文件后,会实时更新其DNS解析策略,并将策略写入TDI Filter中。通过在企业内部DNS策略服务器,可以对用户的本地DNS解析策略进行远程管理和更新,提高可管理性和易用性。需要说明的是,本地DNS解析策略所包含的内容是:将预定类型的域名作本地DNS解析,或者,将预定类型的域名作外部DNS解析。\n[0047] 综上所述,本发明实施例提出一种在企业内部网络中实现本地DNS解析的技术方案。与已有技术不同,本发明实施例通过在操作系统中插入网络数据过滤模块(本发明以Windows TDI Filter为例),将符合本地DNS解析策略的DNS解析请求数据转发给DNS本地解析模块。在DNS本地解析模块完成DNS解析后,再通过RAW Socket将解析结果写回系统,实现本地DNS解析。\n[0048] 在本发明中,网络数据过滤模块在截获到DNS解析请求数据后,可根据用户设置的本地DNS解析策略确定是否需要将请求数据转发给DNS本地解析模块,从而实现复杂的本地DNS解析策略。例如,用户可以将本地DNS解析策略设置为:“所有域名均作本地DNS解析,只有形如*.sina.com的域名进行外部DNS解析”。\n[0049] 在本发明实施例中,网络数据过滤模块在匹配本地DNS解析策略后,如判断为非本地DNS解析请求数据,则直接将DNS请求数据发送给操作系统底层模块进行后续处理。与已有技术方案相比,本发明无需为非本地DNS请求数据给出DNS解析错误的回应数据,从而加快非本地DNS解析的解析速度。此外,在本发明实施例中,本地DNS解析规则可以预先指定,也可以由DNS策略管理器远程发布。\n[0050] 需要说明的是,在本发明实施例中,以Windows操作系统为例,描述了本发明实施例的处理流程。但本发明实施例并不局限于Windows操作系统。\n[0051] 装置实施例\n[0052] 根据本发明的实施例,提供了一种DNS解析装置,图6是本发明实施例的DNS解析装置的结构示意图,如图6所示,根据本发明实施例的DNS解析装置包括:网络数据过滤模块\n60、本机DNS解析模块62,以下对本发明实施例的各个模块进行详细的说明。\n[0053] 网络数据过滤模块60用于对本机DNS解析请求包进行过滤,将符合预先设置的本地DNS解析策略的本机DNS解析请求包转发到本机DNS解析模块62,将不符合本地DNS解析策略的本机DNS解析请求包转发到操作系统底层模块;\n[0054] 网络数据过滤模块60具体用于:\n[0055] 根据本地DNS解析策略对本机DNS解析请求包进行过滤,判断本机DNS解析请求包是否需要进行本地DNS解析;在确定本机DNS解析请求包需要进行本地处理的情况下,将本机DNS解析请求包的原目的地址修改为本机地址,并将本机DNS解析请求包的原目的端口修改为本机DNS解析模块的监听端口,并将本机DNS解析请求包转发给本机DNS解析模块62;将本机DNS解析请求包的源端口、原目的地址、以及原目的端口进行保存。\n[0056] 本机DNS解析模块62用于对接收的本机DNS解析请求包进行解析,获取解析结果,并将解析结果携带在本机DNS解析应答包中发送给操作系统底层模块。\n[0057] 本机DNS解析模块62具体用于:\n[0058] 根据用户定义的域名与网络协议IP地址对应关系,将本机DNS解析请求包中的域名地址解析为对应的IP地址;根据本机DNS解析请求包中的源端口,向网络数据过滤模块查询本机DNS解析请求包的原目的地址、以及原目的端口;根据解析后的IP地址、原目的地址、以及原目的端口构造本机DNS解析应答包,并通过原始套接字将本机DNS解析应答包发送给操作系统底层模块。\n[0059] 本发明实施例的DNS解析装置还包括:\n[0060] 设置模块,用于设置监听端口,并将监听端口和本地DNS解析策略置入网络数据过滤模块。\n[0061] 更新模块,用于接收DNS策略服务器分发的当前本地DNS解析策略,并根据当前本地DNS解析策略对原本地DNS解析策略进行更新,将更新后的本地DNS解析策略置入网络数据过滤模块。\n[0062] 下面结合附图,以Windows系统为例,对本发明实施例的技术方案进行详细说明。\n[0063] 在Windows系统中,网络数据过滤模块60为传输驱动程序接口过滤器(Transport Driver Interface Filter,简称为TDI Filter)。如图4所示,包括如下处理:\n[0064] TDI Filter作为网络数据过滤模块60在Windows操作系统上的实现,主要完成网络数据的过滤、匹配及转发工作。当操作系统发出DNS解析请求后,TDI Filter会截获该请求数据,并根据预置其内部的DNS解析策略,判断是否需要进行本地解析。如无需进行本地解析,则TDI Filter会直接将该数据转发给操作系统底层模块进行后续处理;如需要进行本地解析,则TDI Filter会修改该请求数据的目的地址和端口,将其转发给本机DNS解析模块62。\n[0065] 本机DNS解析模块62主要是接收TDI Filter转发到DNS解析请求数据,并根据用户定义的域名到IP地址对应关系,将请求解析的域名地址转换成IP地址,然后根据解析结果构造一个DNS解析应答包,通过原始套接字(RAW Socket)写回给操作系统。\n[0066] 在本实例中,本机DNS解析模块62启动后会首先在本机监听某个UDP端口。该UDP端口可预先约定,也可由本机DNS解析模块62启动时随机选定。\n[0067] 当本机DNS解析模块62启动成功后,会将UDP端口号(UDP 53)和本地DNS解析策略置入TDI Filter。\n[0068] 当TDI Filter接收到本机DNS解析模块62置入的UDP端口号和本地DNS解析策略后,即认为本机DNS解析模块62已启动成功,可以开启本地DNS解析功能。自此后,TDI Filter即开始过滤流经UDP 53端口上的所有数据。\n[0069] 当TDI Filter截获到流经UDP 53端口的数据后,首先根据网络协议类型和端口号,判断该数据是否为DNS解析请求数据。如否,则调用TDI Filter发送函数,将数据转发操作系统底层组件进行后续处理。如为DNS解析请求数据,则根据置入的本地DNS解析策略,判断是否为符合本地DNS解析策略的数据。如否,则调用TDI Filter发送函数,将数据转发操作系统底层组件进行后续处理。\n[0070] 当TDI Filter截获到符合本地DNS解析策略的DNS解析请求数据后,则修改该请求数据的目的地址和目的端口。将目的地址修改为本机地址,目的端口设置为DNS本地解析模块的监听端口,然后调用TDI Filter发送函数,将数据转发操作系统底层组件进行后续处理。TDI Filter同时会将该数据包的源端口,原始目的地址和原始目的端口保存备查。\n[0071] 被TDI Filter修改并经操作系统处理后的DNS解析请求数据,最终会被本机DNS解析模块62收到。本机DNS解析模块62在分析请求数据后,提取需要解析的域名地址,并根据用户预置的域名到IP的对应关系,取得该域名对应的IP地址。\n[0072] 当本机DNS解析模块62完成域名解析后,会根据DNS解析请求数据的源端口,向TDI Filter查询该请求数据的原始目的地址和原始目的端口。在查询成功后,会根据原始目的地址,原始目的端口,解析后的IP地址等数据,构造一个完整的DNS解析请求回应包,通过RAW Socket写回系统,完成本地DNS解析流程。\n[0073] 在上述实例中,DNS解析策略是预置的,是不可更改的。但是,对于某些复杂的企业内部网络,静态的DNS解析策略可能无法满足其需要。因此,可对本发明实施例进行扩展,对DNS解析策略进行远程部署和管理。如图5所示:首先,管理员通过DNS策略服务器,编辑DNS解析策略,在形成DNS解析策略文件后,通过DNS策略服务器分发此策略文件。本机DNS解析模块62在收到DNS策略服务器分发的DNS解析策略文件后,会实时更新其DNS解析策略,并将策略写入TDI Filter中。通过在企业内部DNS策略服务器,可以对用户的本地DNS解析策略进行远程管理和更新,提高可管理性和易用性。需要说明的是,本地DNS解析策略所包含的内容是:将预定类型的域名作本地DNS解析,或者,将预定类型的域名作外部DNS解析。\n[0074] 综上所述,本发明实施例提出一种在企业内部网络中实现本地DNS解析的技术方案。与已有技术不同,本发明实施例通过在操作系统中插入网络数据过滤模块60(本发明以Windows TDI Filter为例),将符合本地DNS解析策略的DNS解析请求数据转发给本机DNS解析模块62。在本机DNS解析模块62完成DNS解析后,再通过RAW Socket将解析结果写回系统,实现本地DNS解析。\n[0075] 在本发明中,网络数据过滤模块60在截获到DNS解析请求数据后,可根据用户设置的本地DNS解析策略确定是否需要将请求数据转发给本机DNS解析模块62,从而实现复杂的本地DNS解析策略。例如,用户可以将本地DNS解析策略设置为:“所有域名均作本地DNS解析,只有形如*.sina.com的域名进行外部DNS解析”。\n[0076] 在本发明实施例中,网络数据过滤模块60在匹配本地DNS解析策略后,如判断为非本地DNS解析请求数据,则直接将DNS请求数据发送给操作系统底层模块进行后续处理。与已有技术方案相比,本发明无需为非本地DNS请求数据给出DNS解析错误的回应数据,从而加快非本地DNS解析的解析速度。此外,在本发明实施例中,本地DNS解析规则可以预先指定,也可以由DNS策略管理器远程发布。\n[0077] 需要说明的是,在本发明实施例中,以Windows操作系统为例,描述了本发明实施例的处理流程。但本发明实施例并不局限于Windows操作系统。\n[0078] 本发明实施例通过网络数据过滤模块过滤本机DNS解析请求包,将符合本机DNS解析策略的请求数据转发到本机DNS解析模块进行处理,解决了现有技术中本地DNS解析时间长,且不能够定义复杂的本地DNS解析策略的问题,本发明实施例由于使用网络数据过滤模块对DNS请求数据进行过滤,因此能够实现复杂的DNS解析策略;由于网络数据过滤模块可直接转发不符合本机DNS解析策略的数据包,因此可提高DNS解析速度;由于网络数据过滤模块无需监听端口,因此与本机已安装的DNS服务器软件不会存在冲突;此外,无需修改域名到IP地址对应关系配置文件,不会触发防病毒软件动作,并可提高本地DNS解析的执行效率。\n[0079] 尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。
法律信息
- 2017-09-19
- 2017-09-08
著录事项变更
申请人由北京天融信科技股份有限公司变更为北京天融信科技有限公司
地址由100085 北京市海淀区上地东路1号院3号楼3层北侧301室变更为100085 北京市海淀区上地东路1号院3号楼3层北侧301室
- 2015-10-28
著录事项变更
申请人由北京天融信科技有限公司变更为北京天融信科技股份有限公司
地址由100085 北京市海淀区上地东路1号院3号楼3层北侧301室变更为100085 北京市海淀区上地东路1号院3号楼3层北侧301室
- 2015-03-25
著录事项变更
申请人由北京天融信科技股份有限公司变更为北京天融信科技有限公司
地址由100085 北京市海淀区上地东路1号院3号楼3层北侧301室变更为100085 北京市海淀区上地东路1号院3号楼3层北侧301室
- 2014-08-06
著录事项变更
申请人由北京天融信科技有限公司变更为北京天融信科技股份有限公司
地址由100085 北京市海淀区上地东路1号院3号楼3层北侧301室变更为100085 北京市海淀区上地东路1号院3号楼3层北侧301室
- 2014-04-16
实质审查的生效
IPC(主分类): H04L 29/12
专利申请号: 201110228443.2
申请日: 2011.08.10
- 2011-11-30
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| | 暂无 |
2006-07-19
| | |
2
| |
2008-10-01
|
2008-05-14
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |