首页 > 代码库 > 如何手动编译bind,如何使用view实现智能DNS解析,以及如何对DNS服务器进行压力测试。

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

        今天带大家来看看如何手动编译源码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

这些就是源程序:

wKioL1N6OfODZPZqAAHJxDFid2Y914.jpg

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

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

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

wKiom1N6POuTxmmQAAH1sJweKs8014.jpg

检测完成以后:

wKioL1N6PWzzbWqfAALfKwBpLtY899.jpg

# make && make install

等待编译安装完成。

wKiom1N6PhXTn2eRAAJ4VrM2waU477.jpg

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

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

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

wKioL1N6Qnfy8NCQAAVXEFD0B98552.jpg

好,脚本完成了,接下来修改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

参考或者写入以下内容:

wKiom1N6RkyhWMgwAAKZv6vcQ7c007.jpg

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

根文件:

# mkdir /var/named

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

wKioL1N6RzzDWzz0AAMPbcPUwRQ713.jpg

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

wKiom1N6R9fjGc2IAACHqXLoTz4145.jpg

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

wKioL1N6SAHDs3LmAACCgNwejnQ636.jpg

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

wKiom1N6SK7SrOxsAADWQ4f2RbU071.jpg

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

wKiom1N6SRqwzyudAADRXzXMVAc183.jpg

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

# /etc/init.d/named start

看下,是不是已经启动。

wKioL1N6SeXhxrcvAAEtZ5iT0Ko263.jpg

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

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

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

wKiom1N6St7T5Eq3AAHRmvfLYP0537.jpg

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

# dig -t A www.tuchao.com

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

wKiom1N6Ta2zOQtuAAHGMQ9Xcuc386.jpg

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

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

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

# ./configure

# make

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

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

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

wKiom1N6UTLTNiUmAABruAu6zOE787.jpg

 

基本用法:

        queryperf -d  指定查询列表文件

                          -s 指定Server

现在来测试下试试:

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

wKioL1N6U8DQI1yoAAI4MgCKuw0993.jpg

 

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

平均每秒可以响应22974次。

性能还不错哦!

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

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