Unbound服务的安装与运行管理
一、Unbound服务的安装与运行管理
1.获取Unbound软件包
RHEL7.x自带了Bind和Unbound两种DNS服务包,Unbound是红帽公司推荐使用的DNS服务器。目前,虽然Bind在全球拥有最多的用户,但这个老牌产品是针对简单网络设计的,随着网络的迅速发展,Bind系统已经越来越不适应在如今复杂的大规模网络环境下提供DNS服务了。Unbound是FreeBSD(类Unix)操作系统下的默认DNS服务器软件,它是一个功能强大、安全性高、跨平台(类Unix、Linux、Windows)、易于配置,以及支持验证、递归(转发)、缓存等功能的DNS服务软件,其主要安装文件有:
(1) unbound-1.4.20-28.el7.x86_64.rpm:DNS的主程序包。
(2) unbound-libs-1.4.20-28.el7.x86_64:进行域名解析必备的库文件。
2.检查是否已安装Unbound软件包
[root@dyzx ~]# rpm -qa unbound*
unbound-libs-1.4.20-28.el7.x86_64
3. 安装Unbound软件包
[root@dyzx ~]# mount /dev/cdrom /mnt
[root@dyzx ~]# rpm -ivh /mnt/Packages/unbound-1.4.20-28.el7.x86_64.rpm
4.Unbound服务的运行管理
(1)Unbound服务的启动、停止、重启、重新加载和状态查询
systemctl start|stop|restart|reload|status unbound.service
(2) Unbound服务在系统开机时自动启动或不启动
systemctl enable|disable unbound.service
(3)检查Unbound进程
ps -ef | grep unbound
(4)查看Unbound服务启动后侦听的端口
ss -tunap | grep unbound
使用Unbound软件部署DNS服务器时,相关的配置文件及目录。
|
位置及名称 |
作用 |
|
/etc/unbound/unbound.conf |
主(全局)配置文件 |
|
/etc/unbound/local.d/ |
子配置文件所在目录。其中的*.conf文件用于定义正向解析记录和反向解析记录以及设置转发 |
|
/etc/hosts |
用于指定IP地址与主机名的映射关系 |
|
/etc/resolv.conf |
为Linux客户端指定DNS服务器的IP地址的配置文件 |
|
/etc/nsswitch.conf |
/etc/nsswitch.conf文件的第39行“hosts: files dns”规定了一台主机解析的顺序,首先找的是本地文件/etc/hosts,然后再是DNS。 |
二、授权DNS服务器的配置
1、案例需求
为学校搭建一台授权DNS服务器,该服务器能访问互联网中其他DNS服务器,能解析校园网内搭建的所有服务器的域名,并通过配置转发地址使校园网内的用户使用域名访问校园网内外的服务器,网络连接方式及配置参数如图所示:

|
服务器 |
完全合格域名 |
IP地址 |
|
授权DNS服务器 |
dns1.dyzx.edu |
192.168.8.1 |
|
纯缓存DNS服务器 |
dns2.dyzx.edu |
192.168.8.2 |
|
Web服务器 |
www.dyzx.edu |
192.168.8.3 |
|
FTP服务器 |
ftp.dyzx.edu |
192.168.8.3 |
|
邮件服务器 |
mail.dyzx.edu |
192.168.8.4 |
2、授权DNS服务器的配置
步骤1:以root用户身份登录RHEL7系统→配置DNS服务器网卡的IP地址为192.168.8.1/24、主机名为dns1.dyzx.edu。
步骤2:安装.Unbound软件包→启动和开机自动启动Unbound服务。
|
[root@dns1 ~]# mount /dev/cdrom /mnt [root@dns1 ~]# rpm -ivh /mnt/Packages/unbound-1.4.20-28.el7.x86_64.rpm [root@dns1 ~]# systemctl start unbound [root@dns1 ~]# systemctl enable unbound |
步骤3:使用vim编辑配置文件unbound.conf,对服务器全局参数进行配置
|
[root@dns1~]# vim /etc/unbound/unbound.conf //配置区域的全局参数: interface: 192.168.8.1 //38行:设置监听的网络接口(默认监听localhost网络接口) access-control: 192.168.8.0/24 allow //176行:允许allow或拒绝refuse给哪些地址提供解析服务 username: "” //211行:改成空字符串,表示任何用户均可访问 domain-insecure: "dyzx.edu" //372行:跳过验证域“dyzx.edu”,以避免信任链验证失败 include: /etc/unbound/local.d/*.conf //472行:将指定的其他可能的配置文件包含进当前文件 |
步骤4:配置正向解析记录和反向解析记录。可以在全局配置文件中配置,也可以在/etc/unbound/local.d目录中定义一个以.conf结尾的文件中(如/etc/unbound/local.d/domain.conf)配置(以全局配置文件中的第454行~第470行为格式模板)。在此,继续在全局配置文件中配置正向和反向解析记录。
|
[root@dns1~]# vim /etc/unbound/unbound.conf local-zone: "dyzx.edu." static //455行:设置解析的区域名 //添加以下7行local-data,以定义正向解析记录 local-data: "dyzx.edu. 86400 IN SOA dns1.dyzx.edu. root.dyzx.edu 1 1D 1H 1W 1H" local-data: "dns1.dyzx.edu. IN A 192.168.8.1" local-data: "dns2.dyzx.edu. IN A 192.168.8.2" local-data: "www.dyzx.edu. IN A 192.168.8.3" local-data: "ftp.dyzx.edu. IN CNAME www.dyzx.edu." local-data: "mail.dyzx.edu. IN A 192.168.8.4" local-data: "dyzx.edu. IN MX 5 mail.dyzx.edu." //添加以下5行local-data-ptr,以定义反向解析记录 local-data-ptr: "192.168.8.1 dns1.dyzx.edu" local-data-ptr: "192.168.8.2 dns2.dyzx.edu" local-data-ptr: "192.168.8.3 www.dyzx.edu" local-data-ptr: "192.168.8.3 ftp.dyzx.edu" |
步骤5:配置转发。任何一台DNS服务器能直接提供的解析记录都是有限的,当用户请求的解析记录超出了某台DNS服务器所能解析的范围时,就需要在该DNS服务器上设置转发功能,以便把超范围的用户解析请求转发给其他DNS服务器代为解析。若要将本DNS服务器的解析请求转发给由ISP提供的IP地址为8.8.8.8的公共DNS服务器,则只要在unbound.conf作以下修改便可。
|
[root@dns1 ~]# vim /etc/unbound/unbound.conf forward-zone: //547行:定义转发forward name: "." //转发所有的查询 forward-addr: 8.8.8.8 //将解析请求转发到指定IP地址的DNS服务器 |
步骤6:检测配置文件是否有语法错误,没有错误后,重启服务:
|
[root@ dns1 ~]# unbound-checkconf unbound-checkconf: no errors in /etc/unbound/unbound.conf [root@ dns1 ~]# systemctl restart unbound |
步骤7:在服务器端的防火墙中开放DNS服务。
[root@ dns1 ~]# firewall-cmd --permanent --add-service=dns //设置防火墙开放DNS服务
[root@ dns1 ~]# firewall-cmd –reload
步骤8:Linux客户端测试。在客户端修改/etc/resolv.conf文件,将DNS服务器的IP地址指向上述所配置的授权DNS服务器的IP地址→使用nslookup命令验证DNS查询结果。
|
[root@client ~]# vim /etc/resolv.conf nameserver 192.168.8.1 [root@client ~]# nslookup > www.dyzx.edu //验证正向解析记录 Server: 192.168.8.1 Address: 192.168.8.1#53 Name: www.dyzx.edu Address: 192.168.8.3 > 192.168.8.1 //验证反向解析记录 Server: 192.168.8.1 Address: 192.168.8.1#53 1.1.168.192.in-addr.arpa name = dns1.dyzx.edu. > set type=cname //验证别名记录的解析结果 > ftp.dyzx.edu Server: 192.168.8.1 Address: 192.168.8.1#53 ftp.dyzx.edu canonical name = www.dyzx.edu |
测试2:
|
> set type=mx //验证MX记录的解析结果 > dyzx.edu Server: 192.168.8.1 Address: 192.168.8.1#53 dyzx.edu mail exchanger = 5 mail.dyzx.edu. > www.baidu.com //验证转发功能的解析结果 Server: 192.168.8.1 Address: 192.168.8.1#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 58.217.200.112 Name: www.a.shifen.com Address: 58.217.200.113 > exit //退出nslookup命令,结束测试 |
三、纯缓存DNS服务器的配置
为了提高校园网内域名解析的效率,减少校园网出口流量,现搭建一台纯缓存DNS服务器,配置参数如下图所示,其中递归查询转发到校园网内地址为192.168.8.1的授权DNS服务器。
步骤1:以root用户身份登录RHEL7系统→配置DNS服务器网卡的IP地址为192.168.8.2/24、主机名为dns2.dyzx.edu。
步骤2:安装.Unbound软件包→启动和开机自动启动。
[root@ dns2 ~]# systemctl start unbound
[root@ dns2 ~]# systemctl enable unbound
步骤3:使用vim编辑全局配置文件unbound.conf。
|
[root@dns2~]# vim /etc/unbound/unbound.conf //配置区域的全局参数: interface: 192.168.8.2 //38行:设置DNS服务监听所有网络接口 msg-cache-size: 8m //108行:缓存大小 access-control: 0.0.0.0/0 allow //177行:允许所有地址访问,refuse表示拒绝;allow表示允许 username: "" //211行:改成空字符串,表示任何用户均可访问 domain-insecure: "dyzx.edu” //372行:跳过验证域"dyzx.edu",以避免信任链验证失败 forward-zone: //547行:除掉行首"#"号,配置转发 name: ".” //548行:除掉行首"#"号,并将"example.com"改为"." forward-addr: 192.168.8.1 //549行:将所有解析请求转发给192.168.8.1的授权DNS服务器 |
步骤4:检测配置文件是否有语法错误,确认无误后重新加载unbound服务:
|
[root@ dns2 ~]# unbound-checkconf unbound-checkconf: no errors in /etc/unbound/unbound.conf [root@ dns2~]# unbound-control reload |
步骤5:配置防火墙允许DNS流量。
|
[root@ dns2 ~]# firewall-cmd --permanent --add-service=dns //设置防火墙开放DNS服务 [root@ dns2 ~]# firewall-cmd --reload |
步骤6:验证纯缓存DNS服务器。将客户端的DNS服务器的IP地址设为纯缓存DNS服务器的IP地址,然后使用nslookup命令测试正向解析和反向解析的效果。
Unbound服务的安装与运行管理的更多相关文章
- 【Apache】Apache服务的安装(一)
Apache简介 Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行 ...
- Linux下RabbitMQ安装、运行与管理
Linux下RabbitMQ安装.运行与管理 安装erlang 安装参考官网 RabbitMQ的安装需要Erlang的基础环境,必须按照RabbitMQ Erlang版本要求进行安装. 关于Erlan ...
- 使用工具安装,运行,停止,卸载Window服务
WSWinForm.exe介绍 WSWinForm.exe是我自己开发的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说WSWinForm只是其注册程序的服务外壳,这个特性对 ...
- JavaWeb学习之tomcat安装与运行、tomcat的目录结构、配置tomcat的管理用户、web项目目录、虚拟目录、虚拟主机(1)
1.tomcat安装与运行双击tomcat目录下的bin/startup.bat,启动之后,输入http://localhost:8080,出现安装成功的提示,表示安装tomcat成功 2.tomca ...
- 运行tomcat7w.exe tomcat7.exe ,提示 指定的服务未安装 unable to open the service 'tomcat7'
运行tomcat7w.exe tomcat7.exe ,提示 指定的服务未安装 unable to open the service 'tomcat7'(用的是绿色的Tomcat7) 解决方法: 打开 ...
- 运行tomcat6w.exe ,提示 指定的服务未安装 unable to open the service 'tomcat66'
错误:运行tomcat6w.exe ,提示 指定的服务未安装 unable to open the service 'tomcat6'(我用的是官网下载的解压版) 解决方法: 打开命令行提示符窗口=& ...
- SharePoint 2016 工作流报错“未安装应用程序管理共享服务代理”
前言 最近为SharePoint 2016环境,配置了状态机工作流,然后,用spd创建的时候可以保存,但是发布的时候报错,经过排查解决了问题,记录一下. 报错截图 下面是SharePoint Desi ...
- 运行tomcat7w.exe,提示:指定的服务未安装unable to open the service tomcat7
这是服务没安装,到tomcat的bin目录下运行 service.bat install 即可
- 运行tomcat6w.exe ,提示 指定的服务未安装 unable to open the service 'tomcat6'
错误:运行tomcat6w.exe ,提示 指定的服务未安装 unable to open the service 'tomcat6'(我用的是官网下载的解压版) 解决方法: 打开命令行提示符窗口=& ...
随机推荐
- C++二维数组 取地址 复制给 二维指针
本来应该是个简单的问题,但是我就不明白了,为什么会段错误了... #include<stdio.h> #define UINT32 unsigned int UINT32 NType1_X ...
- JavaScript:RegExp 对象
ylbtech-JavaScript:RegExp 对象 1.返回顶部 RegExp 对象 RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具. 直接量语法 /pattern/att ...
- swift:简单使用翻页控制器UIPageViewController
一.小叙 UIPageViewController是一个实现图书阅读的控制器,使用它可以设置书脊位置.单双页.过渡效果等,它是通过代理的方式来实现翻页,也即上一页.下一页.最终这个UIPageView ...
- Commands to help you to Start Using ScaleIO Storage
To start using your storage: Log in to the MDM: scli --login --username admin --password <passwor ...
- 大数据开发实战:Hive优化实战3-大表join大表优化
5.大表join大表优化 如果Hive优化实战2中mapjoin中小表dim_seller很大呢?比如超过了1GB大小?这种就是大表join大表的问题.首先引入一个具体的问题场景,然后基于此介绍各自优 ...
- bp算法中为什么会产生梯度消失?
作者:维吉特伯链接:https://www.zhihu.com/question/49812013/answer/148825073来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...
- 【R】函数-数学函数
- 关于Spring mvc 一次请求Controller执行两次的问题
资源路径为空时也会导致重复请求.< span style="background-image:url('');" >相关推荐< /span >,此时就会出现 ...
- 命令行下从bak文件恢复sqlserver数据库方法
命令行下从bak文件恢复sqlserver数据库方法 注:本文所示访问从SqlServer 2000 - 2014版都是通用的 参考:http://blog.sina.com.cn/s/blog_5c ...
- jQuery对象
$(document).ready(function(){ //第二种获取方法,通过标签的名<h2>Dom来获取 var h1 = document.getElementsByTagNam ...