沈达峰
(淮阴工学院现代教育技术中心,江苏淮安223003)
DNS是Internet基石之一,几乎所有的Internet的应用都要使用DNS。校园网是Internet中重要的一环,而DNS是其不可缺少的组成部分。校园网必然要提供很多的对外服务,因此校园的DNS既要为网络内部客户机提供解析服务,也将为外网提供解析服务,而外网的客户机可能位于世界的各个地方。以国内网络来说,来访的可能是电信、网通的用户。由于国内网络的特殊状况,中国教育科研网(CERNET)、中国电信(CHINANET)、中国网通(CNC)等几大ISP之间存在严重的网络瓶颈。网络繁忙时将导致某些客户网络的DNS服务器不能与校园网DNS服务器之间进行通信,使用户无法访问校园网资源。目前,大部分高校为提高校园网的效率,都采用了同时接入CERNET、CHINANET和CNC的多出口解决方案。多出口方案的实施,为提高校园网和其他网络的互访速度提供了物理基础,而如何可靠、有效地实现校园网和其他网络的高速互访,需要在多个方面进行综合考虑,有多种方案可以实施。本文以某校园网为模型,就多出口网络如何合理部署DNS进行分析研究。
Internet域名服务系统(DNS)是一种分布式的等级制查询服务,用以在域名和互联网协议(IP)地址间进行翻译转换。Internet上的所有数据包和路由都有IP地址,因此,DNS起到IP层与应用层间的桥梁作用。
DNS的域分为不同等级。一般说来,顶级域包括 com、net、org的通用顶级域(gTLDs)和 cn、us等的国家顶级域(ccTLDs)。DNS的根服务器在顶级域之上,存储DNS体系中最高层次的zone file,提供各通用顶级域和国家顶级域的记录信息。
域名解析的工作原理和根服务器的工作步骤如下:
第1步,客户机提出域名解析请求,并将该请求发送给本地的域名服务器(递归服务器);
第2步,当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该记录项,则本地的域名服务器就直接把查询的结果返回;
第3步,如果本地的缓存中没有该记录,则本地域名服务器就把请求发送给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域,如CN)的顶级域名服务器的地址;
第4步,本地服务器再向查询返回的域名服务器(权威服务器)发送请求,收到该请求的服务器查询其数据库,并返回与此请求所对应的资源记录(下级域名服务器的地址或者域名所对应的IP地址等);
第5步,重复第4步,直到找到正确的记录;
第6步,本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
策略域名可以根据不同IP的请求将同一个域名解析为不同的IP地址或采用不同的安全策略(比如对内网用户提供递归解析服务的同时忽略外网用户的递归解析请求)。换言之,对于CERNET ISP的接入用户和CHINANET ISP的接入用户,企业的相同域名最后对应的IP地址是不同的。因此,在用户访问企业电子商务网站时,由企业的DNS服务器根据用户接入的ISP而解析出对应该ISP的地址,让用户能高速访问到自己的网站,不再需要用户去了解自己接入的ISP,再去选择企业对应的域名。
根据DNS协议,每个域的权威服务器可以有多个,递归服务器以一定的遍历顺序访问这些权威服务器,如果访问第一个服务器失败,则顺序访问第二个,直到访问成功为止。
国内校园网一般都是首先接入中国教育科研网CERNET,再根据需要逐步接入中国电信(CERNET)、中国网通(CNCNET)等。鉴于此,很多学校的DNS部署都采用了类似图1所示的拓扑方案:主、辅DNS服务器部署于连接CERNET的防火墙之 DMZ区中,使用 CERNET的地址 xxx.xxx.xxx.x1 和 xxx.xxx.xxx.x2,并使用策略域名技术。这种方案在一定程度上提高了网络性能,但仍然存在两个方面的问题。
图1 mdu.edu.cn校园网模型核心拓扑一
(1)使用学校DNS的校内用户是否能正常访问互联网依赖于教科研网是否能正常访问,如果教科研网无法访问,则会因学校DNS服务器无法访问根域名服务器而无法给用户的计算机反馈相应的解析结果,从而使用户无法正常访问互联网。
(2)学校部署于各个防火墙DMZ中的服务器能否正常提供服务同样依赖于教科研网是否畅通。如果网络不通或拥堵时间太长,也会使外面要访问学校服务器的用户因其DNS服务器与学校的DNS之间无法通信或延时太大而无法获得相应服务的IP地址,从而无法访问校园网。
针对传统部署方案中存在的问题,按图2布置DNS,每个连接不同ISP防火墙的DMZ中都有使用相应ISP地址的DNS服务器。这种部署方案解决了上述问题,极大地提高了网络运行的可靠性。
图2 mdu.edu.cn校园网核心拓扑模型二
DNS服务器间的数据同步是在网络中部署DNS的一个重要方面,如果没有同步机制,极有可能造成部分DNS服务器的数据得不到及时更新或数据错误,给用户造成无法访问校园网的后果。
目前常使用BIND(Berkeley Internet Name Domain)来部署DNS,用BIND提供的VIEW功能实现策略域名解析。TRANSFER-SOURCE同步是基于使用文本文件存数的BIND系统中同步主从服务器间数据的一种方法。
3.1.1 同步过程
BIND使用TRANSFER-SOURCE进行同步的步骤如下:
第1步,主服务器向从服务器发送notify消息;
第2步,从服务器收到主服务器发送notify消息,向主服务器返回一个notifyresponse消息;
第3步,从服务器向主服务器发送SOAquery消息;
第4步,主服务器向从服务器返回 SOAre-sponse消息;
第5步,从服务器收到SOAresponse消息后,比对自身的Serial值,如果发现主服务器的Serial值大于自身的Serial值,那么就发送Zonetransferrequest消息;
第6步,主服务器返回Zonetransferresponse消息;
第7步,主服务器执行Zonetransfer。
3.1.2 实现方法
对于部署多VIEW策略域名系统,顺利实现同步的核心是“从服务器需要设置和VIEW一一对应的IP地址”。
针对图2所示的mdu.edu.cn拓扑模型,部署有4个VIEW:Internal(校内用户)、Cernet(教科研网用户)、Cncnet(中国网通用户)和Othernet(其余用户),考虑数据同步的及时性和可靠性,用服务器第二块网卡组成一个同步网络,按表1部署IP地址。
表1 DNS服务器IP地址表
3.2.1 DLZ
DLZ (Dynamically Loadable Zones)对于早期BIND9来说是一个补丁程序,为BIND提供基于数据库的数据支持,支持PostgreSQL、MySQL等多种类型的数据库,具有实时性强、方便管理的特点,新版BIND已包含有DLZ功能。
3.2.2 BIND -DLZ 部署
BIND是基于Linux/UN*X平台的域名系统软件。Linux/UN*X平台有很多种,这里使用Solaris 10,它用 SMF(Service Management Facility)来管理服务,非常方便。针对图2所示的网络模型,IP地址部署情况如表2所示。
表2 DNS服务器IP地址表DNS
(1)基础软件部署
使用BIND-DLZ部署系统域名,软件列表见表3。
phpMyAdmin是一套用来管理MySQL-server以及单一数据库的PHP程序,借助于它可以不必去记冗长而繁琐的Mysql命令,这对于搭建平台、管理DNS数据记录非常方便。
表3 软件列表
(2)同步部署
1)使用phpMyAdmin在三台服务器上建立数据库dns,并在其中建立mdu表,其结构见表4。
表4 mdu表结构
2)在主服务器10.20.20.1的数据库中添加权限,见表5。
表5 权限设置
3)配置同步
DNS:
编辑 mf.cnf,在[mysqld]部分添加:
binlog-do-db=dns//要同步的数据库
binlog_ignore_db=mysql,information_schema//不同步的数据库
DNS1:
编辑 mf.cnf,在[mysqld]部分添加:
master- host=10.20.20.1
master-user=rep1
master-password=123456789
master-port=3306
replicate-do-db=dns
log-warnings
master-connect-retry=60
将server-id=1改为server-id=2
DNS2:略。
(3)BIND部署
1)安装支持DLZ的BIND;
2)配置BIND;
3)配置SMF。
BIND与MYSQL有依赖关系,编辑bind.xml:
……
<dependency
name= 'mysql'
grouping= 'require_all'
restart_on= 'refresh'
type= 'service'
<service_fmri value='svc:/application/database/mysql'/>
</dependency>
……
配置同步可以保证BIND不会因MYSQL启动时间比较长等原因而无法进入正常状态。
针对多出口网络如何合理部署DNS服务器在拓扑和数据同步两个方面提出了解决方法,并在具体网络或虚拟平台上得到完全实现。实验结果表明,根据本文提出的方案部署DNS服务器,显著提高了多出口网络中域名服务器的响应速度,改善了域名数据更新的实时性,提升了网络的综合性能。基于TRANSFER-SOURCE方式同步实现较简单,性能较强,但数据维护难度稍大;基于数据库方式的同步调试过程稍显繁琐,但维护方便。
[1]黄勇萍.根据客户网络应答的DNS服务器设计与实现[J].微计算机应用,2012,20(1):16 -19.
[2]王伟,李晓东,孙国念.域名镜像服务器部署分析[J].计算机工程与应用,2008,44(7):161 -163.
[3]雷明彬.策略DNS在多出口电子商务网站中的应用[J].商场现代化,2008,545:132.
[4]徐阳,刘庆松.两种方法实现DNS主从服务器数据同步[J].中国教育网络,2009(8):76-77.
[5]白兴瑞.基于SUN Solaris 10的域名服务器配置[J].现代计算机,2008,283:98 -99.
[6]李文正.基于智能DNS的网络负载均衡的研究[J].北京工商大学学报:自然科学版,2008,26(3):57-60.
[7]于群英,杨文荣.数据分析与DNS服务器维护策略[J].计算机技术与发展,2008,18(6):210 -213.
[8]池水明.互联网站点实现来自不同ISP用户的快速访问—智能DNS解决方案[J].电子工程师,2008,34(5):25-28.