APP下载

基于MySQL的高可靠性缓存DNS系统的设计与实现

2014-06-13宋国柱车秀梅

太原科技大学学报 2014年6期
关键词:数据库信息系统

宋国柱,杨 华,车秀梅

(山西农业大学 网络中心,山西 太谷 030801)

域名系统(Domain Name System,DNS)是一个可以将域名和IP地址相互映射的分布式数据库[1]。BIND 作为目前最流行的DNS服务软件,其日志记录了详细的DNS 查询请求信息,其格式如下:

25-Nov-2011 09:30:06.057 queries:client 211.82.12.167#59227:view sxau:query:it.sohu.com IN A +SE (211.82.8.5)

其中,“25-Nov-2011 09:30:06.057”为查询请求到达的时间;“211.82.12.167#59227”为客户机的IP地址和端口号;“it.sohu.com”为查询的域名;“IN”为资源类别(class);“A”为资源类型(type);“+”为设置了期望递归(Recursion Desired);“SE”为是否使用EDNS(E)或请求是否签名(S);“(211.82.8.5)”为本地权威DNS服务器地址。[2]

本地权威DNS服务器生成的DNS查询日志数据需及时上传到中心节点,以山西农业大学校园网为例,DNS服务器每天产生1.5 GB左右的日志,因此,DNS的解析及日志数据的上传会占用一定的出口带宽资源。针对这一问题,本文提出了基于MySQL数据库的高可靠性缓存DNS系统,不仅可以有效地节约出口带宽资源,而且还大大改善了DNS服务的响应时间,从而提高了网络服务质量。

1 系统结构及工作流程

缓存DNS是将它收到的DNS信息进行存储,并再将它提供给用户进行DNS解析,直至这些信息过期。[3]

缓存DNS系统由检查模块、缓存模块和转发模块组成。如图1所示。

检查模块主要是为了保证缓存DNS系统的安全,如不合法的报文,同一IP地址查询请求数异常多[4],不存在的域名进行重复请求等,这些数据包均会被系统丢弃。

缓存模块主要完成缓存DNS信息的存储与维护。DNS信息存储在MySQL数据库中,由name(域名)、ttl(生存期)、rdtype(资源类型,表示资源记录中的查询类型)、rdata(IP地址,表示该域名解析出的IP地址)、num(次数,表示该域名被解析的次数)[5]和rdate(日期,表示最近被解析的日期)字段组成。……

登录APP查看全文

猜你喜欢

数据库信息系统
Smartflower POP 一体式光伏系统
WJ-700无人机系统
ZC系列无人机遥感系统
连通与提升系统的最后一块拼图 Audiolab 傲立 M-DAC mini
订阅信息
数据库
数据库
数据库
数据库
展会信息