一、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服务的安装与运行管理的更多相关文章

  1. 【Apache】Apache服务的安装(一)

    Apache简介 Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行 ...

  2. Linux下RabbitMQ安装、运行与管理

    Linux下RabbitMQ安装.运行与管理 安装erlang 安装参考官网 RabbitMQ的安装需要Erlang的基础环境,必须按照RabbitMQ Erlang版本要求进行安装. 关于Erlan ...

  3. 使用工具安装,运行,停止,卸载Window服务

    WSWinForm.exe介绍 WSWinForm.exe是我自己开发的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说WSWinForm只是其注册程序的服务外壳,这个特性对 ...

  4. JavaWeb学习之tomcat安装与运行、tomcat的目录结构、配置tomcat的管理用户、web项目目录、虚拟目录、虚拟主机(1)

    1.tomcat安装与运行双击tomcat目录下的bin/startup.bat,启动之后,输入http://localhost:8080,出现安装成功的提示,表示安装tomcat成功 2.tomca ...

  5. 运行tomcat7w.exe tomcat7.exe ,提示 指定的服务未安装 unable to open the service 'tomcat7'

    运行tomcat7w.exe tomcat7.exe ,提示 指定的服务未安装 unable to open the service 'tomcat7'(用的是绿色的Tomcat7) 解决方法: 打开 ...

  6. 运行tomcat6w.exe ,提示 指定的服务未安装 unable to open the service 'tomcat66'

    错误:运行tomcat6w.exe ,提示 指定的服务未安装 unable to open the service 'tomcat6'(我用的是官网下载的解压版) 解决方法: 打开命令行提示符窗口=& ...

  7. SharePoint 2016 工作流报错“未安装应用程序管理共享服务代理”

    前言 最近为SharePoint 2016环境,配置了状态机工作流,然后,用spd创建的时候可以保存,但是发布的时候报错,经过排查解决了问题,记录一下. 报错截图 下面是SharePoint Desi ...

  8. 运行tomcat7w.exe,提示:指定的服务未安装unable to open the service tomcat7

    这是服务没安装,到tomcat的bin目录下运行 service.bat install 即可

  9. 运行tomcat6w.exe ,提示 指定的服务未安装 unable to open the service 'tomcat6'

    错误:运行tomcat6w.exe ,提示 指定的服务未安装 unable to open the service 'tomcat6'(我用的是官网下载的解压版) 解决方法: 打开命令行提示符窗口=& ...

随机推荐

  1. c#中的 数组

    数组即是一组相同类型组合在一起,使用一个通用的名称,通过分配的下标访问的数据集合中的元素. 数组是具有相同类型的一组数据.当访问数组中的数据时,可以通过下标来指明.c#中数组元素可以为任何数据类型,数 ...

  2. 再看copy_on_write缩小临界区的例子

    本例子是模拟的读者写者问题,采用shared_ptr+写时拷贝实现,其中我觉得一个比较值得注意的地方是考虑到对象可能在临界区析构而将析构移除临界区,这对于多线程来说要多看多思. #include< ...

  3. Round() 四舍五入 js银行家算法

    首先问一下round(0.825,2) 返回的结果,大家猜一猜, 首先SQL server 返回的是 0.83 js的返回结果 是0.83,code 如下: var b = 0.825;        ...

  4. [leetcode]Word Search @ Python

    原题地址:https://oj.leetcode.com/problems/word-search/ 题意: Given a 2D board and a word, find if the word ...

  5. 读书笔记,《Java 8实战》第五章,使用流

    本章我们将会了解到关于Stream API的很多操作,这些操作能够完成很多复杂的查询,比如,比如筛选,切片,映射,查找,匹配和规约, 第一节,筛选和切片    首先我们来看看用谓词来选择流动的元素,主 ...

  6. 极光推送 JPush 简介 集成 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  7. laravel中的自定义函数的加载和第三方扩展库加载

    l 1. 创建文件 app/Helpers/functions.php <?php // 示例函数 function foo() { return "foo"; } 2. 修 ...

  8. 转:无监督特征学习——Unsupervised feature learning and deep learning

    http://blog.csdn.net/abcjennifer/article/details/7804962 无监督学习近年来很热,先后应用于computer vision, audio clas ...

  9. JAVA-SpringMVC开发第一个应用

    找到eclipse工具路径 打开eclipse.exe 选择workspace的存放位置,点击ok 点击file-new 选择web-dynamic web project(动态web项目)-next ...

  10. java之类的初始化

    概述 在java中,一个类能够包括的元素有变量,方法,代码块.这当中变量能够分为普通变量和静态变量,代码块也有静态代码块和普通代码块.在创建一个对象的时候,这个对象是怎么初始化的呢.这里我们就開始来解 ...