CN107231409B - Dns数据处理方法、装置、存储介质及计算机设备 - Google Patents
Dns数据处理方法、装置、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN107231409B CN107231409B CN201710318805.4A CN201710318805A CN107231409B CN 107231409 B CN107231409 B CN 107231409B CN 201710318805 A CN201710318805 A CN 201710318805A CN 107231409 B CN107231409 B CN 107231409B
- Authority
- CN
- China
- Prior art keywords
- address information
- dns
- dns request
- request data
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1014—Server selection for load balancing based on the content of a request
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种DNS数据处理方法、装置、存储介质及计算机设备。所述方法包括:获得虚拟机发出的第一DNS请求数据,所述第一DNS请求数据中包括第一地址信息;如果确定所述第一地址信息与预设匹配规则匹配成功,则拦截匹配成功后的第一DNS请求数据;根据拦截的匹配成功后的所述第一DNS请求数据,生成对应的响应数据;发送所述响应数据至所述虚拟机。
Description
技术领域
本发明涉及网络通信技术,具体涉及一种域名系统(DNS,Domain Name System)数据处理方法、装置、存储介质及计算机设备。
背景技术
DNS作为互联网基础设施提供的一项服务,包括域名和网络互联协议(IP,Internet Protocol)地址相互映射的分布式数据库,通过实现域名和IP地址转换的能力,使用户更方便的访问互联网。随着互联网的发展,DNS遇到了规模性问题,导致服务器负载过重、网络负载过大等问题。为了提升DNS服务的可靠性和服务容量,现有技术中的一种实现方案是使用Anycast(Anycast可称为任播)技术实现负载均衡,即使用动态路由协议,把对同一个IP地址的请求发送到不同的服务器上,以分散压力。
但是,Anycast方案需要使用动态路由协议,部署相对复杂,尤其是在云环境中可能存在很多虚拟网络,进一步增加了复杂度。
发明内容
为解决现有存在的技术问题,本发明实施例提供了一种DNS数据处理方法、装置、存储介质及计算机设备。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种DNS数据处理方法,所述方法包括:
获得虚拟机发出的第一DNS请求数据,所述第一DNS请求数据中包括第一地址信息;
如果确定所述第一地址信息与预设匹配规则匹配成功,则拦截匹配成功后的第一DNS请求数据;
根据拦截的匹配成功后的所述第一DNS请求数据,生成对应的响应数据;
发送所述响应数据至所述虚拟机。
上述方案中,所述如果确定所述第一地址信息与预设匹配规则匹配成功,则拦截匹配成功后的第一DNS请求数据,包括:
基于预设匹配规则将所述第一DNS请求数据中的第一地址信息修改为第二地址信息,生成第二DNS请求数据,拦截所述第二DNS请求数据;其中,所述第一地址信息和所述第二地址信息的映射关系配置在所述预设匹配规则中。
上述方案中,所述根据拦截的匹配成功后的所述第一DNS请求数据,生成对应的响应数据,包括:
根据所述第二DNS请求数据生成对应的响应数据。
上述方案中,所述发送所述响应数据至所述虚拟机,包括:
基于所述预设匹配规则将解析获得的响应数据中作为源地址的所述第二地址信息修改为所述第一地址信息;
发送地址信息修改后的响应数据至所述虚拟机。
上述方案中,所述如果确定所述第一地址信息与预设匹配规则匹配成功,则拦截匹配成功后的第一DNS请求数据,包括:
如果确定所述第一地址信息与预设匹配规则匹配成功,发送所述第一DNS请求数据至物理机虚拟得到的虚拟网卡。
上述方案中,所述发送所述响应数据至所述虚拟机,包括:
将所述响应数据发送至所述虚拟网卡;
接收所述虚拟网卡中的所述响应数据,按照所述预设匹配规则进行匹配,匹配成功后将所述响应数据发送至所述虚拟机。
上述方案中,所述第一地址信息包括第一目的IP地址和第一目的端口信息,所述第二地址信息包括第二目的IP地址和第二目的端口信息;
相应的,所述将所述第一地址信息修改为第二地址信息,包括:
将所述第一地址信息中的第一目的IP地址修改为第二目的IP地址,以及将所述第一地址信息中的第一目的端口信息修改为第二目的端口信息。
本发明实施例还提供了一种DNS数据处理装置,所述装置包括:至少一个虚拟机模块、拦截模块和DNS服务模块;其中,
所述虚拟机模块,用于发出第一DNS请求数据;
所述拦截模块,用于获得所述虚拟机模块发出的第一DNS请求数据,所述第一DNS请求数据中包括第一地址信息;如果确定所述第一地址信息与预设匹配规则匹配成功,则拦截匹配成功后的第一DNS请求数据;
所述DNS服务模块,用于根据所述拦截模块拦截的匹配成功后的所述第一DNS请求数据,生成对应的响应数据;
所述拦截模块,还用于发送所述响应数据至所述虚拟机模块。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,该程序被处理器执行时实现本发明实施例所述DNS数据处理方法的步骤。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现本发明实施例所述的DNS数据处理方法的步骤。
本发明实施例提供的DNS数据处理方法、装置、存储介质及计算机设备,所述方法包括:监听虚拟得到的虚拟机发出的第一DNS请求数据,获得所述第一DNS请求数据的第一地址信息;如果确定所述第一地址信息与预设匹配规则匹配成功,则拦截所述第一DNS请求数据;根据拦截的匹配成功后的所述第一DNS请求数据,生成对应的响应数据;发送所述响应数据至所述虚拟机。采用本发明实施例的技术方案,通过在每个物理机中部署DNS服务模块使每个物理机具有DNS功能,首先,部署和运行维护简单,对外部网络无影响无依赖。第二,网络负载压力更分散,同时单节点故障影响范围更小;在公有云环境下,可能有用户对DNS服务发起海量请求甚至攻击,本发明实施例的技术方案可以更有效地定位和拦截。第三,服务响应速度更快,请求无需经过多级网络设备。
附图说明
图1为本发明实施例的DNS数据处理方法的流程示意图一;
图2为本发明实施例的DNS数据处理方法的流程示意图二;
图3为本发明实施例的DNS数据处理方法的流程示意图三
图4为本发明实施例的DNS数据处理装置的组成结构示意图一;
图5为本发明实施例的DNS数据处理装置的组成结构示意图二。
具体实施方式
下面结合附图及具体实施例对本发明作进一步详细的说明。
本发明实施例提供了一种DNS数据处理方法。图1为本发明实施例的DNS数据处理方法的流程示意图一;如图1所示,所述方法包括:
步骤101:获得虚拟机发出的第一DNS请求数据,所述第一DNS请求数据包括第一地址信息。
步骤102:如果确定所述第一地址信息与预设匹配规则匹配成功,则拦截匹配成功后的第一DNS请求数据。
步骤103:根据拦截的匹配成功后的所述第一DNS请求数据,生成对应的响应数据。
步骤104:发送所述响应数据至所述虚拟机。
本发明实施例的DNS数据处理方法应用于物理机中,即本发明实施例的DNS数据处理方法的执行主体为物理机;所述物理机具体可以是服务器;在一种实施方式中,所述服务器具体可以是应用于云技术的服务器。
本实施例中,物理机中预先虚拟出至少一个虚拟机,所述至少一个虚拟机运行在物理机上,本发明实施例中的虚拟机可以是物理机虚拟出的至少一个虚拟机中的任一虚拟机。所述物理机中还可部署有DNS服务模块,所述DNS服务模块用于对虚拟机发出的DNS请求数据进行DNS解析。
本实施例中,作为一种实施方式,所述物理机能够获得每个虚拟机发出的第一DNS请求数据,所述第一DNS请求数据中包括第一地址信息,所述第一地址信息表征外部的DNS服务器的地址;其中,所述第一地址信息包括第一目的IP地址和第一目的端口信息,可以理解为,本发明实施例所述的第一目的IP地址和第一目的端口信息均表征DNS服务器的地址。
作为一种实施方式,所述物理机中可运行开源的虚拟交换机(OVS,Open vSwitch)应用,通过所述OVS应用实现对所述第一DNS请求数据的劫持。在具体实现过程中,可预先在所述OVS应用中设置匹配规则实现不同的转发行为,例如将数据转发至特定接口,或者直接丢弃数据,或者修改数据字段等等。基于此,本实施例可在所述OVS应用中设置预设匹配规则,所述预设匹配规则中包括待劫持的第一DNS请求数据中所包含的第一地址信息,所述第一地址信息具体可以是表征外部的DNS服务器的地址信息;也即当获得满足所述预设匹配规则中设置的地址信息(例如第一地址信息)后,确定所述第一地址信息与预设匹配规则匹配成功,进一步拦截匹配成功后的第一DNS请求数据。
另一方面,在拦截匹配成功后的第一DNS请求数据后,所述物理机中部署的DNS服务模块获得拦截的所述第一DNS请求数据,对所述第一DNS请求数据进行DNS解析,获得解析后的响应数据,将所述响应数据发送至所述虚拟机中(作为一种实施方式,所述DNS服务模块可通过OVS应用将解析后的响应数据发送至所述虚拟机)。这样,通过对DNS请求数据的劫持以及转发,使虚拟机对上述过程无感知,并且使部署在物理机中的DNS服务模块响应虚拟机发出的DNS请求。
采用本发明实施例的技术方案,通过在每个物理机中部署DNS服务模块使每个物理机具有DNS解析功能,首先,部署和运行维护简单,对外部网络无影响无依赖。第二,网络负载压力更分散,同时单节点故障影响范围更小;在公有云环境下,可能有用户对DNS服务发起海量请求甚至攻击,本发明实施例的技术方案可以更有效地定位和拦截。第三,服务响应速度更快,请求无需经过多级网络设备。
上述对虚拟机发出的请求数据的劫持过程具体可通过两种方式实现。作为第一种实施方式,图2为本发明实施例的DNS数据处理方法的流程示意图二;如图2所示,包括:
步骤201:获得虚拟机发出的第一DNS请求数据,所述第一请求数据包括第一地址信息。
步骤202:将所述第一地址信息与预设匹配规则进行匹配。
步骤203:当匹配成功后,将所述第一DNS请求数据中的第一地址信息修改为第二地址信息,生成第二DNS请求数据,拦截所述第二DNS请求数据;其中,所述第一地址信息和所述第二地址信息的映射关系配置在所述预设匹配规则中。
步骤204:根据所述第二DNS请求数据生成对应的响应数据。
步骤205:基于所述预设匹配规则将解析获得的响应数据中的所述第二地址信息修改为所述第一地址信息,按照所述第一地址信息发送所述响应数据至所述虚拟机。
本发明实施例中的匹配成功后的所述第一DNS请求数据,即为所述第二DNS请求数据,本发明实施例的DNS数据处理方法应用于物理机中,即本发明实施例的DNS数据处理方法的执行主体为物理机;所述物理机具体可以是服务器;在一种实施方式中,所述服务器具体可以是应用于云技术的服务器。
本实施例中,物理机中预先虚拟出至少一个虚拟机,所述至少一个虚拟机运行在物理机上,本发明实施例中的虚拟机可以是物理机虚拟出的至少一个虚拟机中的任一虚拟机。所述物理机中还可部署有DNS服务模块,所述DNS服务模块用于对虚拟机发出的DNS请求数据进行DNS解析。
本实施例中,所述物理机能够获得每个虚拟机发出的第一DNS请求数据,所述第一DNS请求数据中包括第一地址信息,所述第一地址信息表征外部的DNS服务器的地址;其中,所述第一地址信息包括第一目的IP地址和第一目的端口信息,可以理解为,本发明实施例所述的第一目的IP地址和第一目的端口信息均表征DNS服务器的地址。
本实施例中,对第一DNS请求数据的劫持过程通过系统协议栈的方式实现;具体可通过OVS应用按照所述预设匹配规则对所述第一地址信息进行匹配成功后,所述OVS应用修改所述第一DNS请求数据中的第一地址信息为所述第二地址信息生成第二DNS请求数据,所述第二地址信息表征所述物理机的地址,具体可以是所述物理机的内核模块的地址。其中,所述预设匹配规则中预先配置所述第一地址信息和所述第二地址信息的映射关系。所述第一地址信息包括第一目的IP地址和第一目的端口信息;所述第二地址信息包括第二目的IP地址和第二目的端口信息。
具体的,所述物理机中可运行开源的OVS应用,通过所述OVS应用实现对所述第一DNS请求数据的劫持。具体实现过程中,可在所述OVS应用中设置匹配规则实现不同的转发行为,例如本实施例中是修改数据字段等等。基于此,一方面,本实施例通过所述OVS应用劫持每个虚拟机发出的满足所述预设匹配规则中的所述第一地址信息第一DNS请求数据。另一方面,所述预设匹配规则中还设置有与表征DNS服务器的地址信息(即第一地址信息)相对应的物理机的地址信息(即第二地址信息)的映射关系,所述表征DNS服务器的地址信息与物理机的地址信息的映射关系表明:获得满足所述表征DNS服务器的地址信息的第一地址信息后,将所述第一地址信息修改为表征所述物理机的地址信息的第二地址信息,从而生成包含有所述第二地址信息的第二DNS请求数据;基于此,劫持满足所述第一地址信息的第一DNS请求数据后,按照所述预设匹配规则中的映射关系将所述第一地址信息修改为第二地址信息,地址信息修改后的DNS请求数据记为第二DNS请求数据,拦截所述第二DNS请求数据。其中,所述第二地址信息所包括的第二目的IP地址和第二目的端口信息具体可以是物理机的IP地址和端口信息。
进一步地,所述物理机中部署的DNS服务模块获得所述第二DNS请求数据,对所述第二DNS请求数据进行DNS解析,获得解析后的响应数据,将所述响应数据发送至所述OVS应用,由所述OVS应用基于所述预设匹配规则将原本响应数据中的第二地址信息修改为所述第一地址信息,基于所述第一地址信息将所述响应数据发送至相应的虚拟机中。其中,作为一种实施方式,OVS应用基于所述第二地址信息将所述第二DNS请求数据发送至物理机的内核模块,所述内核模块进一步将所述第二DNS请求数据发送至DNS服务模块,由所述DNS服务模块对所述第二DNS请求数据进行DNS解析并获得响应数据;进一步地,所述DNS服务模块将DNS解析后的响应数据发送至所述内核模块,由所述内核模块将所述响应数据发送至OVS应用;所述OVS应用依据预先配置的所述映射关系将所述第二地址信息修改为所述第一地址信息,将地址信息修改后的响应数据发送至虚拟机。这样,通过对DNS请求的劫持以及对地址信息的修改,使虚拟机对上述DNS解析过程无感知,并且使部署在物理机中的DNS服务模块响应虚拟机发出的DNS请求数据。
以具体的应用场景为例,假设要劫持的DNS请求的IP地址是192.168.0.2,而物理机的IP地址是10.5.3.16,则:
1、虚拟机发出DNS请求,所述DNS请求中的目的IP地址是192.168.0.2。
2、OVS检测到DNS请求,按照预设匹配规则匹配所述DNS请求;若所述DNS请求匹配成功,则修改目的IP地址为10.5.3.16,将IP地址修改后的DNS请求发送到物理机内核;其中,所述OVS中预先设置的匹配规则至少包括:IP地址是192.168.0.2与物理机IP地址10.5.3.16的映射关系。
3、物理机内核将DNS请求发送至DNS服务模块处理;所述DNS服务模块对DNS请求进行DNS解析后生成响应数据包,将响应数据包发送至物理机内核,所述物理机内核将响应数据包发送至OVS。
4、OVS按照预设匹配规则匹配响应数据包,将所述响应数据包中的源IP由10.5.3.16修改为192.168.0.2,将修改后的响应数据包发送到虚拟机。
作为第二种实施方式,图3为本发明实施例的DNS数据处理方法的流程示意图三;如图3所示,包括:
步骤301:获得虚拟机发出的第一DNS请求数据,所述第一DNS请求数据包括第一地址信息。
步骤302:将所述第一地址信息与预设匹配规则进行匹配。
步骤303:当匹配成功后,拦截所述第一DNS请求数据,发送所述第一DNS请求数据至物理机虚拟得到的虚拟网卡。
步骤304:从所述虚拟网卡中读取所述第一DNS请求数据,解析所述第一DNS请求数据,获得包含有解析结果的响应数据。
步骤305:将所述响应数据写入所述虚拟网卡。
步骤306:接收所述虚拟网卡中的所述响应数据,基于所述预设匹配规则将匹配成功后的响应数据发送至所述虚拟机。
本发明实施例的DNS数据处理方法应用于物理机中,即本发明实施例的DNS数据处理方法的执行主体为物理机;所述物理机具体可以是服务器;在一种实施方式中,所述服务器具体可以是应用于云技术的服务器。
本实施例中,物理机中预先虚拟出至少一个虚拟机,所述至少一个虚拟机运行在物理机上,本发明实施例中的虚拟机可以是物理机虚拟出的至少一个虚拟机中的任一虚拟机。所述物理机中还可部署有DNS服务模块,所述DNS服务模块用于对虚拟机发出的DNS请求数据进行DNS解析。
本实施例中,所述物理机能够获得每个虚拟机发出的第一DNS请求数据,所述第一DNS请求数据中包括第一地址信息,所述第一地址信息表征外部的DNS服务器的地址;其中,所述第一地址信息包括第一目的IP地址和第一目的端口信息,可以理解为,本发明实施例所述的第一目的IP地址和第一目的端口信息均表征DNS服务器的地址。
本实施例中,对第一DNS请求数据的劫持过程不经过系统协议栈的方式实现;具体可通过在物理机中虚拟得到虚拟网卡;通过OVS应用匹配所述DNS请求数据成功后,直接将所述第一DNS请求数据发送至所述虚拟网卡中,由所述DNS服务模块直接从所述虚拟网卡中读取所述第一DNS请求数据并对所述第一DNS请求数据进行解析获得包含有解析结果的响应数据。相应的,所述DNS服务模块将解析获得的响应数据写入所述虚拟网卡,由所述OVS应用接收所述虚拟网卡中的响应数据,并按照所述预设匹配规则将所述响应数据发送至所述虚拟机中。
具体的,所述物理机中可运行OVS应用,通过所述OVS应用实现对所述第一DNS请求数据的劫持。具体实现过程中,可在所述OVS应用中设置匹配规则实现不同的转发行为,例如本实施例中是将数据转发至特定接口,即将数据转发至虚拟网卡中。基于此,本实施例通过所述OVS应用劫持每个虚拟机发出的满足所述预设匹配规则中的所述第一地址信息第一DNS请求数据,拦截匹配成功的第一DNS请求数据,将匹配成功的第一DNS请求数据发送至虚拟网卡中。
物理机中部署的DNS服务模块从所述虚拟网卡中读取所述第一DNS请求数据,对所述第一DNS请求数据进行DNS解析并获得响应数据;进一步地,所述DNS服务模块将DNS解析后的响应数据发送至所述虚拟网卡。OVS应用从所述虚拟网卡中获得响应数据,依据存储的预设匹配规则进行匹配,即对响应数据中的第一地址信息进行匹配,匹配成功后,将所述响应数据发送至虚拟机。这样,通过新增的虚拟网卡实现对DNS请求的劫持,使虚拟机对上述DNS解析过程无感知,并且使部署在物理机中的DNS服务模块响应虚拟机发出的DNS请求数据。
以具体的应用场景为例,假设要劫持的DNS请求的IP地址是192.168.0.2,则:
1、虚拟机发出DNS请求,所述DNS请求中的目的IP地址是192.168.0.2。
2、OVS检测到DNS请求,按照预设匹配规则匹配所述DNS请求;若所述DNS请求匹配成功,则将所述DNS请求直接发送到虚拟网卡。其中,所述OVS中预先设置的匹配规则至少包括:IP地址是192.168.0.2。
3、DNS服务模块从虚拟网卡中读取到所述DNS请求,对DNS请求进行DNS解析后生成响应数据包,将响应数据包发送至虚拟网卡。
4、OVS从所述虚拟网卡中接收所述响应数据包,按照预设匹配规则匹配响应数据包,将匹配成功的响应数据包发送到所述虚拟机。
本发明实施例还提供了一种DNS数据处理装置。图4为本发明实施例的DNS数据处理装置的组成结构示意图一;如图4所示,所述装置包括:至少一个虚拟机模块41、拦截模块42和DNS服务模块43;其中,
所述虚拟机模块41,用于发出第一DNS请求数据;
所述拦截模块42,用于获得所述虚拟机模块41发出的第一DNS请求数据,所述第一DNS请求数据中包括第一地址信息;如果确定所述第一地址信息与预设匹配规则匹配成功,则拦截匹配成功后的第一DNS请求数据;
所述DNS服务模块43,用于根据所述拦截模块42拦截的匹配成功后的所述第一DNS请求数据,生成对应的响应数据;
所述拦截模块42,还用于发送所述响应数据至所述虚拟机模块41。
上述对虚拟机模块发出的第一DNS请求数据的劫持过程具体可通过两种方式实现。作为第一种实施方式,如图4所示,所述装置包括:至少一个虚拟机模块41、拦截模块42和DNS服务模块43;其中,
所述虚拟机模块41,用于发出第一DNS请求数据;
所述拦截模块42,用于获得所述虚拟机模块41发出的第一DNS请求数据,所述第一DNS请求数据中包括第一地址信息;将所述第一地址信息与预设匹配规则进行匹配;当匹配成功后,将所述第一地址信息修改为第二地址信息,生成第二DNS请求数据,拦截所述第二DNS请求数据;其中,所述第一地址信息和所述第二地址信息的映射关系配置在所述预设匹配规则中;还用于发送所述第二DNS请求数据至所述DNS服务模块43;
所述DNS服务模块43,用于根据所述第二DNS请求数据生成对应的响应数据;
所述拦截模块42,还用于基于所述预设匹配规则将所述响应数据中的所述第二地址信息修改为所述第一地址信息,按照所述第一地址信息发送所述响应数据至所述虚拟机模块41。
作为一种实施方式,所述第一地址信息包括第一目的IP地址和第一目的端口信息;所述第二地址信息包括第二目的IP地址和第二目的端口信息;
所述拦截模块42,用于将所述第一地址信息中的第一目的IP地址修改为第二目的IP地址,以及将所述第一地址信息中的第一目的端口信息修改为第二目的端口信息。
作为第二种实施方式,图5为本发明实施例的DNS数据处理装置的组成结构示意图二;如图5所示,所述装置包括:至少一个虚拟机模块41、拦截模块42、虚拟网卡模块44和DNS服务模块43;其中,
所述虚拟机模块41,用于发出第一DNS请求数据;
所述拦截模块42,用于获得所述虚拟机模块41发出的第一DNS请求数据,所述第一DNS请求数据中包括第一地址信息;将所述第一地址信息与预设匹配规则进行匹配;匹配成功后,发送所述第一DNS请求数据至所述虚拟网卡模块44;
所述虚拟网卡模块44,用于中转所述第一DNS请求数据;
所述DNS服务模块43,用于从所述虚拟网卡模块44中读取所述第一DNS请求数据,根据所述第一DNS请求数据生成对应的响应数据,将所述响应数据发送至所述虚拟网卡模块44;
所述虚拟网卡模块44,还用于中转所述响应数据;
所述拦截模块42,还用于接收所述虚拟网卡模块44中的所述响应数据,按照所述预设匹配规则进行匹配,匹配成功后,发送所述响应数据至所述虚拟机模块41。
本领域技术人员应当理解,本发明实施例的DNS数据处理装置中各处理单元的功能,可参照前述DNS数据处理方法的相关描述而理解,本发明实施例的DNS数据处理装置中各处理单元,可通过实现本发明实施例所述的功能的模拟电路而实现,也可以通过执行本发明实施例所述的功能的软件在智能终端上的运行而实现。
本发明实施例中,所述DNS数据处理装置在实际应用中可应用于物理机中;所述DNS数据处理装置中的虚拟机模块41、拦截模块42、DNS服务模块43和虚拟网卡模块44,在实际应用中均可由所述物理机中的中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital Signal Processor)、微控制单元(MCU,Microcontroller Unit)或可编程门阵列(FPGA,Field-Programmable Gate Array)实现。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,该程序被处理器执行时实现本发明前述实施例所述DNS数据处理方法的步骤。
本发明实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:获得虚拟机发出的第一DNS请求数据,所述第一DNS请求数据包括第一地址信息;如果确定所述第一地址信息与预设匹配规则匹配成功,则拦截匹配成功后的第一DNS请求数据;根据拦截的匹配成功后的所述第一DNS请求数据,生成对应的响应数据;发送所述响应数据至所述虚拟机。
作为一种实施方式,所述处理器执行所述程序时实现以下步骤:基于预设匹配规则将所述第一DNS请求数据中的第一地址信息修改为第二地址信息,生成第二DNS请求数据,拦截所述第二DNS请求数据;其中,所述第一地址信息和所述第二地址信息的映射关系配置在所述预设匹配规则中。
进一步地,所述处理器执行所述程序时实现以下步骤:根据所述第二DNS请求数据生成对应的响应数据。
进一步地,所述处理器执行所述程序时实现以下步骤:基于所述预设匹配规则将解析获得的响应数据中作为源地址的所述第二地址信息修改为所述第一地址信息;发送地址信息修改后的响应数据至所述虚拟机。
作为另一种实施方式,所述处理器执行所述程序时实现以下步骤:如果确定所述第一地址信息与预设匹配规则匹配成功,发送所述第一DNS请求数据至物理机虚拟得到的虚拟网卡。
进一步地,所述处理器执行所述程序时实现以下步骤:将所述响应数据发送至所述虚拟网卡;接收所述虚拟网卡中的所述响应数据,按照所述预设匹配规则进行匹配,匹配成功后将所述响应数据发送至所述虚拟机。
本实施例中,所述第一地址信息包括第一目的IP地址和第一目的端口信息,所述第二地址信息包括第二目的IP地址和第二目的端口信息;所述处理器执行所述程序时实现以下步骤:将所述第一地址信息中的第一目的IP地址修改为第二目的IP地址,以及将所述第一地址信息中的第一目的端口信息修改为第二目的端口信息。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种DNS数据处理方法,其特征在于,所述DNS数据处理方法应用于物理机,所述物理机包括至少一个虚拟机,所述方法包括:
获得每个虚拟机发出的第一DNS请求数据,所述第一DNS请求数据中包括第一地址信息,所述第一地址信息表征外部的DNS服务器的地址;
如果确定所述第一地址信息与预设匹配规则匹配成功,则拦截匹配成功后的第一DNS请求数据;
根据拦截的匹配成功后的所述第一DNS请求数据,生成对应的响应数据;
发送所述响应数据至对应的所述虚拟机。
2.根据权利要求1所述的方法,其特征在于,所述如果确定所述第一地址信息与预设匹配规则匹配成功,则拦截匹配成功后的第一DNS请求数据,包括:
基于预设匹配规则将所述第一DNS请求数据中的第一地址信息修改为第二地址信息,生成第二DNS请求数据,拦截所述第二DNS请求数据;其中,所述第一地址信息和所述第二地址信息的映射关系配置在所述预设匹配规则中。
3.根据权利要求2所述的方法,其特征在于,所述根据拦截的匹配成功后的所述第一DNS请求数据,生成对应的响应数据,包括:
根据所述第二DNS请求数据生成对应的响应数据。
4.根据权利要求2所述的方法,其特征在于,所述发送所述响应数据至所述虚拟机,包括:
基于所述预设匹配规则将解析获得的响应数据中作为源地址的所述第二地址信息修改为所述第一地址信息;
发送地址信息修改后的响应数据至对应的所述虚拟机。
5.根据权利要求1所述的方法,其特征在于,所述如果确定所述第一地址信息与预设匹配规则匹配成功,则拦截匹配成功后的第一DNS请求数据,包括:
如果确定所述第一地址信息与预设匹配规则匹配成功,发送所述第一DNS请求数据至物理机虚拟得到的虚拟网卡。
6.根据权利要求5所述的方法,其特征在于,所述发送所述响应数据至所述虚拟机,包括:
将所述响应数据发送至所述虚拟网卡;
接收所述虚拟网卡中的所述响应数据,按照所述预设匹配规则进行匹配,匹配成功后将所述响应数据发送至所述虚拟机。
7.根据权利要求2至4任一项所述的方法,其特征在于,所述第一地址信息包括第一目的IP地址和第一目的端口信息,所述第二地址信息包括第二目的IP地址和第二目的端口信息;
相应的,所述将所述第一地址信息修改为第二地址信息,包括:
将所述第一地址信息中的第一目的IP地址修改为第二目的IP地址,以及将所述第一地址信息中的第一目的端口信息修改为第二目的端口信息。
8.一种DNS数据处理装置,其特征在于,所述装置应用于物理机,所述物理机包括:至少一个虚拟机模块、拦截模块和DNS服务模块;其中,
所述虚拟机模块,用于发出第一DNS请求数据;
所述拦截模块,用于获得所述虚拟机模块发出的第一DNS请求数据,所述第一DNS请求数据中包括第一地址信息;如果确定所述第一地址信息与预设匹配规则匹配成功,则拦截匹配成功后的第一DNS请求数据,其中,所述第一地址信息表征外部的DNS服务器的地址;
所述DNS服务模块,用于根据所述拦截模块拦截的匹配成功后的所述第一DNS请求数据,生成对应的响应数据;
所述拦截模块,还用于发送所述响应数据至所述虚拟机模块。
9.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至7任一项所述DNS数据处理方法的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述的DNS数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710318805.4A CN107231409B (zh) | 2017-05-08 | 2017-05-08 | Dns数据处理方法、装置、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710318805.4A CN107231409B (zh) | 2017-05-08 | 2017-05-08 | Dns数据处理方法、装置、存储介质及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107231409A CN107231409A (zh) | 2017-10-03 |
CN107231409B true CN107231409B (zh) | 2020-01-03 |
Family
ID=59934129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710318805.4A Active CN107231409B (zh) | 2017-05-08 | 2017-05-08 | Dns数据处理方法、装置、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107231409B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111371861A (zh) * | 2020-02-25 | 2020-07-03 | 普信恒业科技发展(北京)有限公司 | 一种请求操作方法及装置 |
CN115604223A (zh) * | 2022-08-25 | 2023-01-13 | 紫光云技术有限公司(Cn) | 一种实现dns支持vpc私有域名解析的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102263837A (zh) * | 2011-08-10 | 2011-11-30 | 北京天融信科技有限公司 | 一种域名系统dns解析方法及装置 |
CN102970387A (zh) * | 2012-11-15 | 2013-03-13 | 上海牙木通讯技术有限公司 | 一种域名解析方法、装置及系统 |
US9294391B1 (en) * | 2013-06-04 | 2016-03-22 | Amazon Technologies, Inc. | Managing network computing components utilizing request routing |
CN105763668A (zh) * | 2016-02-26 | 2016-07-13 | 杭州华三通信技术有限公司 | 一种域名解析方法和装置 |
-
2017
- 2017-05-08 CN CN201710318805.4A patent/CN107231409B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102263837A (zh) * | 2011-08-10 | 2011-11-30 | 北京天融信科技有限公司 | 一种域名系统dns解析方法及装置 |
CN102970387A (zh) * | 2012-11-15 | 2013-03-13 | 上海牙木通讯技术有限公司 | 一种域名解析方法、装置及系统 |
US9294391B1 (en) * | 2013-06-04 | 2016-03-22 | Amazon Technologies, Inc. | Managing network computing components utilizing request routing |
CN105763668A (zh) * | 2016-02-26 | 2016-07-13 | 杭州华三通信技术有限公司 | 一种域名解析方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107231409A (zh) | 2017-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11075884B2 (en) | Network context monitoring within service mesh containerization environment | |
US10467043B2 (en) | Transparent network security for application containers | |
US10700979B2 (en) | Load balancing for a virtual networking system | |
US10320674B2 (en) | Independent network interfaces for virtual network environments | |
US9935829B1 (en) | Scalable packet processing service | |
US11044230B2 (en) | Dynamically opening ports for trusted application processes hosted in containers | |
US9509760B2 (en) | Virtual packet analyzer for a cloud computing environment | |
US9880870B1 (en) | Live migration of virtual machines using packet duplication | |
EP2972784B1 (en) | Service bridges | |
US11095716B2 (en) | Data replication for a virtual networking system | |
CN106657180B (zh) | 用于云服务的信息传输方法、装置、终端设备及系统 | |
EP4325807A3 (en) | Duplicate address detection for global ip address or range of link local ip addresses | |
US11575689B2 (en) | System, method, and computer program product for dynamically configuring a virtual environment for identifying unwanted data | |
US11785054B2 (en) | Deriving system architecture from security group relationships | |
CN107231409B (zh) | Dns数据处理方法、装置、存储介质及计算机设备 | |
CN113923008B (zh) | 一种恶意网站拦截方法、装置、设备及存储介质 | |
US11245717B1 (en) | Automated detection, alarming, and removal of subdomain takeovers | |
CN111818081A (zh) | 虚拟加密机管理方法、装置、计算机设备和存储介质 | |
US11750475B1 (en) | Monitoring customer application status in a provider network | |
US11038954B2 (en) | Secure public connectivity to virtual machines of a cloud computing environment | |
US11861007B1 (en) | Detecting container threats through extracting kernel events to process in reserved scanner containers | |
US20240015132A1 (en) | Leveraging contextual metadata communication to improve dns security | |
US20240028376A1 (en) | Log forwarding for an agent platform appliance and software-defined data centers that are managed through the agent platform appliance | |
KR102101602B1 (ko) | 트래픽 관리 장치 및 방법 | |
JP6487870B2 (ja) | 名前解決装置、名前解決方法及び名前解決プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |