伍仕杰 徐倩
摘 要:DNS是计算机网络重要的应用系统,本文研究了基于OpenSUSE15 Linux和BIND9的DNS Server配置,介绍了平台概况,详细描述了配置的过程,重点对相关的关键选项或是参数的配置进行了分析,为DNS 服务器的配置维护提供参考。
关键词:DNS BIND配置
前言:
DNS 是计算机网络重要的应用系统,对于计算机网络的应用和服务有着重要的意义。Windows和Linux平台都有相关的软件可以搭建DNS服务器, OpenSUSE15 Linux和BIND9的组合稳定且方便维护。
一、平台概况
BIND是一款開放源码的DNS服务器软件,是由美国加州大学Berkeley分校开发和维护的,全名为Berkeley Internet Name Domain,它是目前世界上使用最为广泛的开源DNS服务器软件,支持各种unix平台和windows平台。BIND9是最新的版本。
YaST是OpenSUSE及SUSE Linux中的工具,是在Linux环境下最有效的安装和系统管理工具。它是一个由Novell公司发起和积极推动的开源项目。YaST是以RPM为基础的操作系统安装与设置工具,它的特性主要在于,可以设置很多系统的各个部分。一些服务,包括多个配置文件需要捆绑在一起。管理员不必找出是哪些配置文件,因为YaST提供了一个通用的接口,适用修改所有相关的文件,让管理员可以方便地配置复杂的配置文件。
SuSE YaST并不意味着管理员必须将SUSE运行在图形窗口模式下使用。SUSE是使用标准的SSH协议,可以通过SecureCRT,Putty等标准SSH工具都可以远程进行管理,而且YaST和无图形窗口模式100%兼容,对于远程连接服务器来说也非常方便。这样即使是对于没有经验的Linux管理员,YaST也是事半功倍的好用的工具。
Yast-DNS-Server是Yast的一个组件,可以方便灵活地对DNS服务进行配置和管理。
二、安装环境
(一)安装OpenSUSE15.1
OpenSUSE15.1是OpenSUSE的最新版本,安装过程中选择系统角色即使用用途,选择“KDE Plasma桌面系统”即可安装图形化界面。
(二)安装YaST-DNS-Server
OpenSUSE 的zyper命令能提供互联网上的在线安装,但我们是在内网使用,为确保安全,采用线下安装的方式。首先下载DNS-Server的rpm,拷贝到服务器,将文件名改短,如“yast-dns-server.rpm”,在terminal中进入此路径,输入命令#yast –in yast-dns-server.rpm进行安装。
在安装过程中,安装程序会自动提示安装BIND,确认安装就可以了。
三、配置
(一)配置权威服务器
1、增加域及记录
权威服务器,打开YaST,找到Network Service,其中安装了DNS-Server,点击打开,点击“DNS Zones”,在“Name”填写框中填写“cs.”,“Type”默认选择“Master”,表明这是一个主域服务器。点击后面的“Add”按钮。下面“Configured DNS Zones”框中增加“cs.”域,选择该域,点击框右边的“Edit”按钮,进入域编辑器“Zone Editor”。
点击标签“Records”,在下面的输入框输入相应的项,“Record Key”中填入域名,“Type”中选择“A:IPv4 Domain Name Translation”,“Value”项填写IP地址。完毕后,点击右侧“Add”按钮,记录被记录,陈列在下边“Configured Resource Records”表中。点击右下角“OK”按钮,回到“DNS Zones”,点击右下角“OK”按钮,DNS-Server完成配置保存、缓存清理等后关闭。
DNS-Server在 /etc/named.conf配置文件中,定义一个主域服务器:
2、测试。
在terminal中使用“nslookup 域名 127.0.0.1” 命令,测试刚才加入的域名是否能正确解析。
3、访问控制
在测试过程中发现,在服务器所在局域网能使用该服务器解析域名,但在局域往外解析失败,返回“Query refused”。这是对请求查询的主机进行了限制。
找到DNS-Server中“Basic Options”,在“Add or Change Option”选择“allow-query”项,填值“{0.0.0.0/0}”,允许所有主机的查询。
(二)配置缓存 DNS 服务器
已经配置了主域服务器,仍有必要定义一个缓存服务器。因为缓存服务器上不存放特定域名的配置文件。当客户端请求缓存服务器来解析域名时,该服务器将首先检查其本地缓存。如果找不到匹配项便会询问主服务器,接着这条响应将被缓存起来。这样可以减少 DNS 权威服务器的查询次数。
1、定义一个缓存服务器
在新的服务器上安装YaST-DNS-Server,由于缓存服务器上不定义特定域名,所以只需定义一个转发。
作为缓存服务器,在很多情况下都使用转发器forwarder,所有非本域的和在缓存中无法找到的域名查询都将转发到设置的DNS转发器上,由这台DNS来完成解析工作并做缓存。但这种方式,对域没有选择性,只要自己不能解析的都往设置的DNS转发器上发,对指定的权威服务器势必也造成负担。在BIND9.1.0以后引入了一个新的特性:转发区(forward zone),它允许把DNS配置成只有查找特定域名的时候才使用转发器。
缓存服务器采用转发区(forward zone)是比较好的方式,将指定区域的查询请求转发到该区域的权威服务器上,权威服务器只负责查询所在区域的查询,而不必去管非本区域的查询。
点击“DNS Zones”,在Name填写框中填写“cs.”,Type选择“Forward”,点击后面的“Add”按钮。下面“Configured DNS Zones”框中增加“cs.”域,但与主域名服务器不同的是,其類型为“Forward”。
可以看到,配置文件named.conf中增加了
跟实际应用最紧密的是前两个,其中第一个指向根的区域选择器最为重要。
(三)指向根域
BIND是互联网上的域名系统服务软件,对于根的指向默认指向的是世界互联网上的 13 个根域名服务器。对于我们内网来讲,尤其是对使用我们内网域名系统来讲,必须要重新配置。
相对来讲,根域往往是固定的,不需要经常修改,所以在Yast-DNS-Server中没有提供配置接口,只能通过BIND配置文件来进行修改。
在BIND配置文件named.conf中定义了根的区域选择器:
可以看到,定义根的指向是“root.hint”。文件“root.hint”里面默认定义了从a.root-server.net、b.root-server.net到m.root-server.net的13个互联网根服务器。在内网域名系统里面,需要把它修改为内网的根服务器:
(四)日志设置
YaST-DNS-Server提供了日志管理,同在左侧菜单栏“Logging”。默认“Log Type”是选择“System Log”,既是记录在系统日志“messages”中,其路径为“/var/log/messages”。“messages”主要记录启动、关闭的日志记录和一些严重错误,如果把DNS-Server的日志也记录在这个文件里,存在的弊端就是DNS的日志和系统日志混在一起,而且DNS查询请求往往比较多,日志条目会非常多,不利于日志分析,所以应设置专门的DNS日志。
我们选择“File”选项, “Filename”填写文件名及路径 “var/lib/named/log/query.log”,“Maximum Size”为单个日志文件最大体积,“Maximum Version”为文件数量。由于DNS请求较多,把“Maximum Size”设定为100MB,把“Maximum Version”设定为“5”,则会建立query.log.0至query.log.4等5个文件,而当前正在记录的文件为query.log。这些文件会根据生成时间自动更替保证为记录最新的日志。
可以将右侧框“Additional Logging”内的三个选项“Log All DNS Queries”、“Log Zone Updates”、“Log Zone Transfers”选上,将三类日志记录在日志文件中。
四、总结
BIND9作为比较流行的DNS服务器,提供了功能良好的底层应用,但其配置等需要对相关配置文件进行修改,而YaST提供了直观明了的图形界面,能方便对部分常用的配置进行增、删、改,尤其是涉及到增加、修改、删除域及其记录时。YaST和BIND是兼顾性能与方便操作的组合。本文研究了基于OpenSUSE15 Linux和BIND9的DNS Server配置,详细描述了配置的过程,对相关的关键选项或是参数的配置重点进行了分析,希望能为DNS 服务器的配置维护提供参考。
参考文献:
[1]周增国,庞有军.Linux平台校园网DNS服务的设计与实现.《大连大学学报》,2008年03期.
[2]秦宝龙,淑琴.利用BIND9为内外网用户提供域名解析服务.内蒙古电大学刊, 2012年03期.