构建DNS服务的最基础的软件是bind,DNS服务的进程名是named。为了增强安全性,我们要安装最新版的bind软件,但最新版的bind版本为bind-9.11.2,网上只有源代码包,此时,我们只能通过手动编译安装bind了。
centos7 编译安装DNS
下载地址 http://www.isc.org/downloads/bind/
搭建yum源
[root@centos7 /etc/yum.repos.d]#vim base.repo
创建 /misc/cd并挂载光盘
[root@centos7 ~]#mkdir -p /misc/cd
[root@centos7 ~]#mount /dev/sr0 /misc/cd
编译源码通常都需要安装Devel包等~~~
解压包组
[root@centos7 ~]#yum grouplist "Development Tools" -y
bind-9.11.0-P1.tar.gz
[root@centos7 ~]#tar xvf bind-9.11.0-P1.tar.gz
创建系统用户组账号 吧 -m强制生成家目录
[root@centos7 ~]#getent passwd named
[root@centos7 ~]# useradd -r -m -d /var/named -s /sbin/nologin named
执行configure脚本并安装
[root@centos7 ~/bind-9.11.0-P1]#./configure --prefix=/app/bind9 --sysconfdir=/etc/named/ --without-openssl
[root@centos7 ~]#make -j 4 && make install
将centons6的主机的named.ca文件拷贝到centons7主机
[root@centons6 ~]#dig -t ns . @172.18.0.1 >/app/named.ca
[root@centons6 ~]#scp /app/named.ca 172.18.70.40:/var/named/
[root@centos7 /etc/named]#ls
bind.keys
把/etc/bind9/下bin,sbin写到PATH路径里面
[root@centos7 /var/named]#vim /etc/profile.d/env.sh
执行PATH环境变量
[root@centos7 /var/named]#. /etc/profile.d/env.sh
编辑named.conf文件
[root@centos7 /var/named]#vim /etc/named/named.conf
编写区域解析库文件
[root@centos7 /var/named]vim test.com.zone
编辑man帮助
[root@centos7 /var/named]#vim /etc/man_db.conf
开启服务
[root@centos7 ~]#named -u named -f -g -d 3
-u谁来开启服务,-f前段运行,-g前段运行并显示标准错误,有助于排错,-d是debug级别,级别越高,显示的信息越详细
centos6测试 关闭防火墙
[root@centons6 ~]#dig www.test.com @172.18.70.40
安装rndc配置文件
querylog: 开启或关闭查询日志文件
[root@centons7 ~]#rndc querylog 执行一次开启 ,再执行关闭
[root@centons6 ~]#dig www.qq.com @172.18.70.40 centos6向centos7发起测试
[root@centons7 ~]#tail -f /var/log/messages 查询日志会有收到查询信息,大量用户查询了负载还是很大的,
除非排错才开启rndc querylog功能
[root@centos7 ~]#rndc trace每执行一次记录详细程度越高 trace: 递增debug一个级别
[root@centos7 ~]#rndc status查看详细信息 (缺少配置文件)
提示有任何一个文件都可以
rndc是基于共享秘钥的方式来进行管理,rndc相当于客户端工具,它管理服务器随便一个机器执行这个命令把本主机服务器配置文件可以加载或者其他是有危险性,因此rndc需要配置客户端和服务器,两边进行管理就要配置共享秘钥(生成相同的key才能管理)
开始安装rndc配置文件 工具生成文件rndc.conf
[root@centos7 ~]#rndc-confgen -r /dev/urandom > /etc/named/rndc.conf(生成相同的key才能管理)
[root@centos7 ~]#vim /etc/named/named.conf
里面存放共享秘钥,上面是客户端,下面是服务器端
把服务器共享秘钥移动至named配置文件中
[root@centos7 ~]#vim /etc/named/named.conf
:!tail -n 12 /etc/named/rndc.conf 把rndc.conf文件倒数12行移动到文件中
重新开启服务并测试
[root@centos7 ~]#named -u named -f -g -d 3
[root@centos7 ~]#rndc querylog复制终端执行
[root@centos7 ~]#rndc status
编译压力测试工具
上线前做dns压力测试非常关键,可以判断出服务器最大负荷,每秒可以接收多少客户请求
[root@centos7 ~]#cd bind-9.11.0-P1/contrib/queryperf/ queryperf源码包
[root@centos7 ~/bind-9.11.0-P1/contrib/queryperf]#./configure 运行脚本
make 安装太小可以直接使用不用编译
[root@centos7 ~/bind-9.11.0-P1/contrib/queryperf]#vim /app/test.txt 复制3000行
A记录 解析成ip地址
查询test.com NS 记录
测试性能拒绝查询www.magedu.com A
指定某个机器终端进行压力测试
[root@centos7 ~/bind-9.11.0-P1/contrib/queryperf]#./queryperf -d /app/test.txt -s 172.18.70.70
Queries per second: 537 可以看出一秒钟能并发处理多少个请求
注意: 开启rndc querylog,性能会极大的产生影响,可以看到打开querylog(查询日志),性能只有原来的3/1,所以一般情况下querylog为关闭状态
在另外一个终端输入如下面命令
[root@centons6 ~]#top top命令经常用来监控linux的系统状况,比如cpu、内存的使用
OK