编译安装bind
(1)下载源码包
https://www.isc.org/downloads/
(2)解压缩源码包
[[email protected]~]#mv bind-9.10.6.tar.gz /usr/src/ [[email protected]~]#cd /usr/src/ [[email protected]/usr/src]#tar xvf bind-9.10.6.tar.gz
(3)来我们先看看bind包原来有没有安装脚本呢?
[[email protected] ~]# rpm -q --scripts bind
从图中我们可以看出,安装前需要自己创建用户,那么我们来创建一个用户吧
[[email protected]/usr/src/bind-9.10.6]#useradd -r -d /var/named -s /sbin/nologin -m named #这里由于是系统用户,如果不加“-m”的话,是不能创建家目录的,切记!!!
(4)我们接下来看看如何安装bind
[[email protected]/usr/src/bind-9.10.6]#cat README
如果直接向定制bind程序,显然这样做是不能满足我们的需求的,我们可以使用如下操作定制我们bind程序
[[email protected]/usr/src/bind-9.10.6]#./configure --help
如上图所示,这里只是截取部分图,这里可以选择我们要安装的包位置,启用或关闭某些功能,实现定制bind,相信很多第一次编译的像我这样的人来说认真研究一种程序源码安装过程,基本可以掌握别的源码包的安装。
[[email protected]/usr/src/bind-9.10.6]#./configure --prefix=/app/bind10 --sysconfdir=/etc/bind10
来来看看,我说什么了,当出现这是不是不知道如何操作,没有人家说的很清楚了,没有gcc,那该如何解决呢?那么我们来安装一个开发包来解决这个问题
[[email protected]/usr/src/bind-9.10.6]#yum groupinstall -y "development tools"
那我们再来尝试一次,看看这次会出现什么幺蛾子。
[[email protected]/usr/src/bind-9.10.6]#./configure --prefix=/app/bind10 --sysconfdir=/etc/bind10
看看我说什么来着,这次又出错啦,为什么呢?它提示我们说没有openssl程序,如果想依赖这个程序,可以安装openssl-devel;一般源码包遇到的情况,都安装相对的开发包即可。
那我们再来测试一次,看看还会出现什么情况呢?
当当当,哈哈,竟然成功啦 ;不过这只是成功了一部分,如果想继续成功那就实行下面步骤吧
(5)进行编译安装
[[email protected]/usr/src/bind-9.10.6]#make ;make install make 的作用是开始进行源代码编译,以及一些功能的提供,这些功能由他的 Makefile 设置文件提供相关的功能; make install 一般表示进行安装,相当于创建软连接,创建目录等等一些操作。
(6)这样安装的话是没有命令PATH和man帮助的,那如何实现呢?
[[email protected]~]#vim /etc/profile.d/env.sh [[email protected]~]#source !$ source /etc/profile.d/env.sh
export PATH=/app/bind10/bin:/app/bind10/sbin:$PATH
[[email protected]~]#vim /etc/man_db.conf
(7)刚刚在(2)比步骤是不是看看还有安装后脚本呀,对的你没有看错,那么我们来进行安装后脚本需要的操作。安装后脚本需要我们使用命令rndc-confgen创建相当于”暗号“,创建了暗号才能访问,那么我们就看看如何创建暗号呢?
[[email protected]~]#rndc-confgen -r /dev/urandom > /etc/bind10/rndc.conf #如果不重定向只能在终端上显示,写不到文件中
不过我们现在还没有主配置文件named.conf文件,怎么办呢?那就手动创建一个喽
[[email protected]~]#vim /etc/bind10/named.conf
不过刚刚我们了解到bind程序运行者是named用户,但是我们来看看这个文件所有者和所属组是who
[[email protected]~]#ll /etc/bind10/named.conf -rw-r--r--. 1 root root 200 Sep 22 10:19 /etc/bind10/named.conf [[email protected]~]#chgrp named /etc/bind10/named.conf #修改所属组 [[email protected]/etc/bind10]#chgrp named bind10/ -R #修改文件都为named所属组
(8)不过DNS中解析当然需要根啦那么我们就创建一个喽
[[email protected] named]# scp named.ca 192.168.4.152:/var/named/ #从远程主机上拷贝一个 [[email protected]/var]#chgrp named named/ -R #修改权限
[[email protected]~]#vim /etc/bind10/named.conf
[[email protected]/var/named]#vim test.com.zone #编辑测试域
[[email protected]/var/named]#chgrp named test.com.zone #修改权限
(9)那我们接下来尝试着看看能不能起来服务
[[email protected]~]#named -u named -g -f -d 3 [[email protected]~]#ss -tnul
端口53/tcp 53/udp 953/tcp 已经处于监听状态,说明启动已经成功
(10)我们尝试看看可以解析么?
那么接下来测测我们dns的性能如何喽
对压力测试工具编译安装
[[email protected] ~]# cd /usr/src/bind-9.10.6/contrib/queryperf #切换至源码包位置 [[email protected]/usr/src/bind-9.10.6/contrib/queryperf]#./configure #进行编译 [[email protected]/usr/src/bind-9.10.6/contrib/queryperf]#make [[email protected]/usr/src/bind-9.10.6/contrib/queryperf]#cp queryperf /app/bind10/bin/ #将程序复制到bind执行程序的目录下
创建一个测试文本
[[email protected]~]#vim test
测试
[[email protected]~]#queryperf -d test -s 127.0.0.1