unbound DNS服务器的搭建配置详解

rhce7版本带有老的bind DNS软件包,也带有新的unbound软件包,不过默认是unbound DNS ,在新版本的RHCE里考核的也是unbound DNS。Unbound 是一款验证(validating)、递归(recursive)及缓存(caching) DNS 解析器(resolver)。以 BSD 许可证发布,轻量级+模块(iterator、validator、cache,配置:module-config)化设计,充分考虑安全,拥有出色的性能。

一、DNS中的七大资源记录

在进行近一步的配置之前,我们先了解下DNS用于解析的七大资源记录信息。

1、A记录

A记录也称为主机记录,A记录的基本作用就是说明一个域名对应的IP是多少,在配置中我们也经常叫做正向解析。

2、PTR记录

PTR记录也被称为指针记录,PTR记录是A记录的逆向记录,作用是把IP地址解析为域名。一般我们也叫做反向解析记录。

3、NS记录

NS记录和SOA记录是任何一个DNS区域都不可或缺的两条记录,NS记录也叫名称服务器记录,用于说明这个区域有哪些DNS服务器负责解析。

4、SOA记录

SOA名叫起始授权机构记录,SOA记录说明负责解析的DNS服务器中哪一个是主服务器。

5、MX记录

全称是邮件交换记录,在使用邮件服务器的时候,MX记录是无可或缺的,比如A用户向B用户发送一封邮件,那么他需要向DNS查询B的MX记录,DNS在定位到了B的MX记录后反馈给A用户,然后A用户把邮件投递到B用户的MX记录服务器里!

6、cname记录

别名记录,举个简单的例子,比如王小明(大名),小名叫做钢蛋。其中钢蛋就是王小明的别名记录。

7、SRV记录

SRV记录的作用是说明一个服务器能够提供什么样的服务!SRV记录在微软的Active Directory中有着重要地位 。

二、unbound的安装配置

1、安装

# yum -y install unbound
2、常见配置项

unbound的主配置文件为/etc/unbound/unbound.conf ,打开该配置文件主要修改如下几项。

监听接口,默认监听的接口为127.0.0.1,通过如下的配置,使其监听所有网络接口。

interface: 0.0.0.0
访问控制,unbound的配置是相当安全的,可以通过access-control 可以指定给哪些网段提供DNS服务。如果对所有主机提供DNS服务,则后面的地址写为0.0.0.0/0 。当然,除了配置allow规则 ,也可以配置refuse (拒绝)网段。

access-control: 127.0.0.0/8 allow
access-control: 192.168.0.0/24 allow
区域配置,本地区域配置主要分为local-zone、local-data 和 local-data-ptr 。这里假设配置一个域名为111cn.net 的域名,其A记录、MX记录配置结果如下

local-zone: "111cn.net" static
local-data: "www.111cn.net. IN A 192.168.0.103"
local-data-ptr: "192.168.0.103 www.111cn.net"
local-data: "111cn.net. IN MX 5 mail.111cn.net"
local-data: "mail.111cn.net. IN A 192.168.0.103"
注意local-data配置中域名最后的点符号,在ptr 配置中域名最后没有这个点符号。

转发配置,按上面的配置,我们可以指定111cn.net、361way.com这样类似的域名设置,不过互联网上的域名如此名,我们不可能一一都配置进去。这时候就需要指定上一级DNS转发如www.baidu.com、www.163.com这样的域名请求。这需要配置forward-zone,具体类似如下:

forward-zone:
        name: .
        forward-addr: 114.114.114.114
        forward-addr: 8.8.8.8
上面name后面用点表示根域,即转发除上面local -zone中配置的域名之外,所有的其他域名都是请求forward-addr地址 ,这里也可以指定非53端口的DNS主机,需要在主机IP后跟上端口。如果name后面跟的不是点,而是其他域名,如361way.com,则表示,只有在请求361way.com 域名时,转到114.114.114.114和8.8.8.8两个上级DNS 。

这样配置完成后,重启unbound服务就可以使用了。这里列下完整形的配置---除了上面提到的相关配置,其他都是默认配置。

# grep -v '#' unbound.conf|grep -v ^$
server:
        verbosity: 1
        statistics-interval: 0
        statistics-cumulative: no
        extended-statistics: yes
        num-threads: 2
        interface: 0.0.0.0
        interface-automatic: no
        access-control: 127.0.0.0/8 allow
        access-control: 192.168.0.0/24 allow
        chroot: ""
        username: "unbound"
        directory: "/etc/unbound"
        log-time-ascii: yes
        pidfile: "/var/run/unbound/unbound.pid"
        harden-glue: yes
        harden-dnssec-stripped: yes
        harden-below-nxdomain: yes
        harden-referral-path: yes
        use-caps-for-id: no
        unwanted-reply-threshold: 10000000
        prefetch: yes
        prefetch-key: yes
        rrset-roundrobin: yes
        minimal-responses: yes
        dlv-anchor-file: "/etc/unbound/dlv.isc.org.key"
        trusted-keys-file: /etc/unbound/keys.d/*.key
        auto-trust-anchor-file: "/var/lib/unbound/root.key"
        val-clean-additional: yes
        val-permissive-mode: no
        val-log-level: 1
        local-zone: "111cn.net" static
        local-data: "www.111cn.net. IN A 192.168.0.103"
        local-data-ptr: "192.168.0.103 www.111cn.net"
        local-data: "111cn.net. IN MX 5 mail.111cn.net"
        local-data: "mail.111cn.net. IN A 192.168.0.103"
        include: /etc/unbound/local.d/*.conf
remote-control:
        control-enable: yes
        server-key-file: "/etc/unbound/unbound_server.key"
        server-cert-file: "/etc/unbound/unbound_server.pem"
        control-key-file: "/etc/unbound/unbound_control.key"
        control-cert-file: "/etc/unbound/unbound_control.pem"
include: /etc/unbound/conf.d/*.conf
forward-zone:
        name: .
        forward-addr: 114.114.114.114
通过unbound-check工具检测配置文件中是否存在语法错误:

# unbound-checkconf
unbound-checkconf: no errors in /etc/unbound/unbound.conf
3、防火墙配置

重启unbound服务,加载上面的配置
# systemctl restart unbound.service
防火墙配置
# firewall-cmd --permanent --add-service=dns
# firewall-cmd --reload
查看本地DNS cache记录,可以通过unbound-control flush清空
# unbound-control dump_cache
4、DNS测试

在同网段的其他主机的/etc/resolv.conf文件中增加如下配置(这里的0.110地址,是上面配置的DNS服务器的地址)

nameserver 192.168.0.110
或者在ifcfg-ethX网络接口配置文件中增加如下行:

DNS1=“192.168.0.110”
配置完后,在本地通过nslookup、dig、ping 等进行测试,如下:

nslookup www.111cn.net
dig www.111cn.net
nslookup -type=mx 111cn.net
dig -t mx 111cn.net
ping www.111cn.net
ping www.111cn.net

在测试时,有时需要清空本地DNS cache,在windows下可以通过ipconfig /flushdns ,在linux下可以通安装nscd服务,并通过nscd -i hosts ,或都通过 dig @dns_server example.com 的方法更新DNS 。

三、unbound的其他相关项

Unbound 有一些统计相关的参数:statistics-interval,统计信息打印到纪录文件的时间间隔;statistics-cumulative 则是用于决定统计信息是否累计;extended-statistics,是否纪录一些扩展的统计信息。这些可以配合发行包 contrib/ 下的 Munin 和 Cacti 扩展来进行统计绘图。

num-threads、so-*buf、*-cache-slabs、*-cache-size,outgoing-range 和 Unbound 的性能优化相关。其中 outgoing-range 是每个线程打开的文件描述符的数量,实际打开的总数为 num-threads * outgoing-range,在没有 libevent 的情况下最大 1024。Unbound 可以运行在几种“模式”下:普通线程模式(num-threads 设置为 1 时可以停用线程,即单进程单线程)、libevent/线程模式(需要提供 --with-libevent) 、fork(据文档,因为没有线程锁开销,性能会有所提高;需要提供 --without-pthreads、--without-solaris-threads)。

关于 interface 配置,interface 用于应答,而 outgoing-interface 则是配置对权威 DNS 服务器查询从哪个 interface 走。对返回的 DNS 查询结果,Unbound 会过滤掉不合理的纪录——如果某上级 DNS 服务器返回私有 IP 地址,则该应答无效。对于需要返回这类地址的情况,可以将域加入 private-domain,同时 local-data 允许私有 IP 地址的出现。prefetch 用于配置缓存内容预取来保证缓存的新鲜。

Unbound 有一系列命令行工具,unbound-checkconf(8) 和 named-checkconf(8) 类似,用于检查配置文件。unbound-host(1) 和 host(1) 类似,用于查询,并返回一些额外的安全信息。unbound-control(8) 是一个用于控制远程 Unbound 服务器的工具。还有 LibUnbound 库用于将 Unbound 嵌入程序

时间: 2024-10-25 22:03:06

unbound DNS服务器的搭建配置详解的相关文章

CentOS 7系统下的LEMP环境搭建配置详解

最近由于项目需求,将服务器从CentOS6升级到CentOS7,对应的PHP版本也升级到PHP5.6.我们熟悉的有LEMP环境一键安装包,但是本文我们将单独安装各个组件模块,并搭建一个完整的PHP运行平台. 我们常说的LNMP环境是指Linux/nginx/MySQL/PHP组合,而LEMP是什么呢?其实Nginx的发音是Engine-X = E,LEMP包是由Linux.nginx.MariaDB/MySQL和PHP组成的,那么看来LEMP和LNMP是一样的,而现在业内习惯性的称作LEMP.M

http服务器目录安全性配置详解

HTTP(Hypertext Transfer Protocol,超文本传输协议)是WWW浏览器和WWW.服务器之间的应用层通讯协议.HTTP协议是用于分布式协作超文本信息系统的.通用的.面向对象的协议.通过扩展命令,可用于类似的任务,如域名服务或分布式面向对象系统. HTTP会话过程包括四个步骤: 连接(Connection) ,请求(Request) ,应答(Response) ,关闭(Close) www目录安全性有一下几种方法: 1.身份验证 a.  <directory   站点目录>

MySQL主从环境搭建配置详解

=Start= 缘由: 工作需要,学习需要. 正文: MySQL的主从架构: 由一个MySQL实例作为主库,接受读写请求,另外一个或多个MySQL实例通过MySQL的复制机制,将主库的数据同步到从库,从库会设置只读,防止主从数据不一致. 主从架构的好处: 如果主服务器出现问题,可以快速切换到从服务器提供服务: 可以在从服务器上执行查询,降低主服务器的压力: 可以在从服务器上执行备份,以避免备份期间影响主服务器的性能. 主从架构的局限: 由于MySQL实现的是异步复制,所以主从服务器之间的数据存在

apache服务器MPM模块配置详解

以下内容仅供参考,对MPM的操作还没有摸透,此记录只为了方便以后使用. 1.window下确定apache是使用哪种工作模式 在apache目录bin下cmd运行:httpd -l  ,查看成功加载了哪些模块用 httpd -M linux下用 apachectl -l prefork模块:基于进程的;worker模块:基于线程的; 2.启用MPM模块配置文件 我们需要在httpd.conf文件中启用该配置文件,如下所示: #Include conf/extra/httpd-mpm.conf (

DELL R900 服务器 RAID阵列 配置详解_服务器其它

磁盘阵列可以在安装系统之前或之后产生,系统会视之为一个(大型)硬盘,而它具有容错及冗余的功能.磁盘阵列不单只可以加入一个现成的系统,它更可以支持容量扩展,方法也很简单,只需要加入一个新的硬盘并执行一些简单的指令,系统便可以实时利用这新加的容量. ·RAID 的种类及应用 IDE和SCSI是计算机的两种不同的接口,前者普遍用于PC机,后者一般用于服务器.基于这两种接口,RAID分为两种类型:基于IDE接口的RAID应用,称为IDE RAID:而基于SCSI接口的RAID应用则相应称为SCSI RA

MySQL数据库服务器集群配置详解介绍

一.介绍 这篇文档旨在介绍如何安装配置基于2台服务器的MySQL数据库集群.并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行. 注意! 虽然这是基于2台服务器的MySQL集群,但也必须有额外的第三台服务器作为管理节点,但这台服务器可以在集群启动完成后关闭.同时需要注意的是 并不推荐在集群启动完成后关闭作为管理节点的服务器.尽管理论上可以建立基于只有2台服务器的MySQL集群,但是这样的架构,一旦一台服务器宕机之后集 群就无法继续正常工作了,这样也就失去了集群的意义了.出于这个原因

CENTOS中SVN服务器SUBVERSION的配置详解

配置起来就稍稍复杂了一些,但也不是很难,主要就是几个配置文件. 我们看一下subversion的配置文件. 1.svnserve.conf 这是每个版本库的配置文件. 位置在每个库的conf目录中,目录结构如下. repository-path/conf/svnserve.conf 通过man svnserve.conf我制作了下面的conf文件供大家参考. [general] #设定未授权用户的权限,none无权限,read只读,write读写.默认为只读权限.可以根据自己的情况设定. #an

CentOS 5.6下的DNS服务安装和配置详解

采用光盘安装方式: [root@localhost ~]# mkdir -p /media/cdrom/[root@localhost ~]# mount /dev/cdrom /media/cdrom/[root@localhost ~]# rpm -ivh /media/cdrom/CentOS/bind-9.3.6-16.P1.el5.i386.rpm[root@localhost ~]# rpm -ivh /media/cdrom/CentOS/bind-utils-9.3.6-16.P

Centos6.5搭建java开发环境配置详解_Linux

一.安装jdk 1.查看Linux自带的JDK是否已安装 java –version 如果出现openjdk,最好还是先卸载掉openjdk,在安装sun公司的jdk. 2.查看jdk信息 rpm -qa|grep java 3.卸载OpenJDK,执行以下操作: rpm -e --nodeps tzdata-java-2012c-1.el6.noarch rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-1.45.1.11.1.el6.x86_64 4.新