今天带大家来看看如何手动编译源码bind,自己手动编译安装的很多文件都要自己去建立,配置文件也要从零写起,而且没有服务启动脚本,需要自己编写启动脚本。

实验规划:

        1、在192.168.1.200这台主机上编译安装bind,完成后为named服务编写启动脚本,加入到service。

        2、配置view实现智能DNS解析:当请求解析www.tuchao.com,来源为192.168.1.0/24时候,解析到192.168.1.100。其他的来源都解析到外网地址,1.1.1.1

        3、使用queryperf 对服务器进行压力测试,看看每秒最多能回应多少请求。

 

我们先按顺序一个一个来,首先准备编译bind,在编译之前请确保系统已经安装了开发组件。

# tar -zxvf bind-9.10.0-P1

# cd bind-9.10.0-P1

# ls

这些就是源程序:

如何手动编译bind,如何使用view实现智能DNS解析,以及如何对DNS服务器进行压力测试。_第1张图片

# ./configure --help    查看配置的帮助信息

# ./configure --sysconfdir=/etc/named --prefix=/usr/local/bind --enable-epoll --disable-ipv6 --disable-chroot --enable-threads    

这就已经在检测编译环境,按配置需求生成makefile了。

如何手动编译bind,如何使用view实现智能DNS解析,以及如何对DNS服务器进行压力测试。_第2张图片

检测完成以后:

如何手动编译bind,如何使用view实现智能DNS解析,以及如何对DNS服务器进行压力测试。_第3张图片

# make && make install

等待编译安装完成。

如何手动编译bind,如何使用view实现智能DNS解析,以及如何对DNS服务器进行压力测试。_第4张图片

为了启动方便,我们先为named编写服务脚本。

# vim /etc/rc.d/init.d/named

下面是小菜写的脚本,可能不是很完善,不过可以给大家做做参考。

如何手动编译bind,如何使用view实现智能DNS解析,以及如何对DNS服务器进行压力测试。_第5张图片

好,脚本完成了,接下来修改PATH环境变量。

# vim /etc/profile.d/bind.sh

export PATH=/usr/local/bind/bin:/usr/local/bind/sbin:$PATH

包含man文件。

# vim /etc/man.config

MANPATH /usr/local/bind/share/man

 

接下来,创建/etc/named/named.conf主配置文件。

# vim /etc/named/named.conf

参考或者写入以下内容:

如何手动编译bind,如何使用view实现智能DNS解析,以及如何对DNS服务器进行压力测试。_第6张图片

然后去创建区域解析文件。

根文件:

# mkdir /var/named

# dig -t NS . >/var/named/named.ca

如何手动编译bind,如何使用view实现智能DNS解析,以及如何对DNS服务器进行压力测试。_第7张图片

localhost.zone 本机正向区域解析文件:

如何手动编译bind,如何使用view实现智能DNS解析,以及如何对DNS服务器进行压力测试。_第8张图片

named.local  本机反向区域解析文件:

如何手动编译bind,如何使用view实现智能DNS解析,以及如何对DNS服务器进行压力测试。_第9张图片

internal.tuchao.com.zone   "tuchao.com" 区域解析文件:

如何手动编译bind,如何使用view实现智能DNS解析,以及如何对DNS服务器进行压力测试。_第10张图片

external.tuchao.com.zone   “tuchao.com”区域解析文件:

如何手动编译bind,如何使用view实现智能DNS解析,以及如何对DNS服务器进行压力测试。_第11张图片

 全部都配置完成了,接下来用我们刚刚写的脚本,启动下named服务。

# /etc/init.d/named start

看下,是不是已经启动。

如何手动编译bind,如何使用view实现智能DNS解析,以及如何对DNS服务器进行压力测试。_第12张图片

看下能不能实现智能解析:

我们先用本机解析下www.tuchao.com

解析成功了哈,解析的结果是192.168.1.100。

如何手动编译bind,如何使用view实现智能DNS解析,以及如何对DNS服务器进行压力测试。_第13张图片

 这次我们把来源换成172.16.0.2 这台主机请求,看看解析地址会不会变成外网的。

# dig -t A www.tuchao.com

结果是不是变成了1.1.1.1 ,这就是智能DNS可以根据来源,判断以哪个区域文件进行解析。

如何手动编译bind,如何使用view实现智能DNS解析,以及如何对DNS服务器进行压力测试。_第14张图片

想必看到这里,大家都有点累了吧,其实小菜也写累了,但是坚持一下一鼓作气搞完。

如何对服务器进行压力测试,我们要用的就是queryperf 这个工具,我们先去编译它。

# cd /root/bind-9.10.0-P1/contrib/queryperf

# ./configure

# make

编译好后,直接拷贝到/bin目录下就可以使用了。

先创建一个查询文件,如# vim /tmp/cha.txt

写入类似内容,复制至数万行,才能达到测试效果。

如何手动编译bind,如何使用view实现智能DNS解析,以及如何对DNS服务器进行压力测试。_第15张图片

 

基本用法:

        queryperf -d  指定查询列表文件

                          -s 指定Server

现在来测试下试试:

 # queryperf -d /tmp/cha.txt  -s 192.168.10.200

如何手动编译bind,如何使用view实现智能DNS解析,以及如何对DNS服务器进行压力测试。_第16张图片

 

总共查询了665062次,完成665062次。

平均每秒可以响应22974次。

性能还不错哦!

好了,任务完成了,该睡觉了。

以上内容纯小菜手打,实验亲测截图,有问题欢迎与我交流QQ:1183710107