设为首页 收藏本站
查看: 1048|回复: 0

[经验分享] Centos6编译安装bind文件,注意事项

  [复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-9-29 09:03:11 | 显示全部楼层 |阅读模式
编译安装
1、下载并安装Centos6 64位系统,记住不要最小化安装,最好安装带图形界面。内核2.6
2、系统安装好后,配置阿里云yum源,可连接外网。如果是内网自己去找yum源,这里简单介绍下配置阿里云yum源
直接给出命令
  cd /etc/yum.repos.d
  mkdir files
  mv *repo* files
  vim base.repo
      [base]
      baseurl=http://mirrors.aliyun.com/centos/7/os/x86_64/
      gpgcheck=0
保存退出VIM编辑器
      执行yumclean all
      执行yummakecache
      执行yumrepolist all
注意;如果报错根据报错信息,逐个排错
典型的故障是yum安全锁,执行
      rm -rf /var/run/yum.pid
3、安装开发包组
1
[size=1em]# yum groupinstall "Development Tools"
4、bind源码包,请致3w.isc.org官网下载(我自己选择的编译版本是bind-9.10.1-P1.tar.gz)
5、下载(这里是内网下载的,上面isc地址,自己去下)及解压
1
2
# tar -xf bind-9.10.1-P1.tar.gz
6、检查并准备编译环境
1
2
3
4
5
6
7
8
9
10
11
# cd bind-9.10.1-P1
# ./configure --prefix=/usr/local/bind9 --sysconfdir=/etc/named/ --enable-threads --enable-epoll --disable-chroot
#             程序安装路径                  配置文件路径             开启多线程          多路复用IO      不使用chroot
checking for OpenSSL library... configure: error: OpenSSL was not found in any of /usr /usr/local /usr/local/ssl /usr/pkg /usr/sfw; use --with-openssl=/path
If you don't want OpenSSL, use --without-openssl
[size=1em]# 缺少openssl 库,一般来讲编译环境缺少的都会是开发包,安装openssl开发包
[size=1em]# 注意;为避免重复报错,请执行以下openssl*的参数。全部安装关于openssl软件
[size=1em]# yum -y install openssl*
[size=1em]...
Complete! # openssl安装完成
# 重新检查编译环境
# ./configure --prefix=/usr/local/bind9 --sysconfdir=/etc/named/ --enable-threads --enable-epoll --disable-chroot
7、编译
1
# make
8、安装
1
# make install
9、编辑配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# vim /etc/named/named.conf
# 写入下面的内容
options {
        directory "/var/named";
        pid-file "/usr/local/bind9/var/run/named.pid";
};
zone "." IN {
        type hint;
        file "named.ca";
};
zone "localhost" IN {
        type master;
        file "named.localhost";
        allow-transfer { none; };
};
zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-transfer { none; };
};
10、编辑数据文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# mkdir /var/named
[size=1em]# dig -t NS . @114.114.114.114 > /var/named/named.ca
[size=1em]
# 注意;这条命令的意思是;从DNS114域里去抓取13条根记录,抓取的内容并追加到named.ca文件内
# vim /var/named/named.localhost
# 写入下面内容
$TTL 86400
@ IN SOA localhost. admin.localhost. (
                20160927
                2H
                10M
                7D
                1D
                )
       IN   NS  localhost.
localhost. IN A 127.0.0.1
                                                                                                                                                                                                                                                                                                                           
# vim /var/named/named.loopback
# 写入下面的内容
$TTL 86400
@ IN SOA localhost. admin.localhost. (
                20160927
                2H
                10M
                7D
                1D
                )
        IN   NS    localhost.
1       IN   PTR   localhost.
11、设置运行环境
1
2
3
4
# groupadd -g 53 -r named
# useradd -g named -r named
# chown root:named /etc/named/named.conf  /var/named/*
# chmod 640 /etc/named/named.conf /var/named/*
12、导出环境变量
1
2
3
4
5
6
7
8
9
10
11
12
13
# PATH环境变量
# echo 'export PATH=/usr/local/bind9/bin:/usr/local/bind9/sbin:$PATH' > /etc/profile.d/named.sh
# source /etc/profile.d/named.sh
# 创建头文件
# ln -sv /usr/local/bind9/include  /usr/include/named
# 创建库文件
# vim /etc/ld.so.d/named.conf
    /usr/local/bind9/lib64
# 创建并指定man帮助文档
# man -M /usr/local/bind9/share/man named
# 或者
# vim /etc/man.config
    MANPATH /usr/local/bind9/share/man
13、试启动
1
2
3
4
5
6
# named -u named
# 以named用户运行程序
# 查看监听端口
# ss -tnul
# 查看日志
# tail /var/log/messages
14、配置rndc(远程管理工具,很显然需要密钥)。
1
2
3
4
5
# 生成密钥
# rndc-confgen -r /dev/urandom > /etc/named/rndc.conf
# 改变密钥文件属性
# chown root:named /etc/named/rndc.conf
# chmod 640 /etc/named/rndc.conf # 其他用户没有任何权限
15、打开rndc.conf按要求操作。
1
# vim /etc/named/rndc.conf QQ截图20160929090225.png
1
# vim /etc/named.conf
QQ截图20160929090235.png
16、重启服务,并测试rndc(本地测试)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# killall named
# named -u named
# rndc status
version: 9.9.5 <id:f9b8a50e>
CPUs found: 2
worker threads: 2
UDP listeners per interface: 2
number of zones: 100
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
17、编辑服务配置脚本。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# vim /etc/init.d/named
# 写入脚本
#!/bin/bash
# description: daemon named
# chkconfig: 345 20 50
#
pidFile=/usr/local/bind9/var/run/named.pid
lockFile=/var/lock/subsys/named
confFile=/etc/named/named.conf
[ -r /etc/rc.d/init.d/functions ] && . /etc/rc.d/init.d/functions
start() {
        if [ -e $lockFile ]; then
                echo "named is already running..."
        else
                echo -n "Starting named:"
                daemon --pidfile "$pidFile" /usr/local/bind9/sbin/named -u named -c "$confFile"
                RETVAL=$?
                if [ $RETVAL -eq 0 ]; then
                        touch $lockFile
                        success
                else
                        rm -f $lockFile $pidFile
                        failure
                fi
                echo
        fi
}
stop() {
        if [ ! -e $lockFile ]; then
                echo "named is stopped."
        else
                echo -n "Stopping named:"
                killproc named
                RETVAL=$?
                if [ $RETVAL -eq 0 ];then
                        rm -f $lockFile $pidFile
                        success
                else
                        echo "Cannot stop named."
                        failure
                fi
                echo
        fi
}
restart() {
        stop
        sleep 2
        start
}
reload() {
        echo -n "Reloading named: "
        killproc named -HUP
        echo
}
status() {
        if pidof named &> /dev/null; then
                echo -n "named is running..."
        else
                echo -n "named is stopped..."
        fi
        echo
}
usage() {
        echo "Usage: named {start|stop|restart|status|reload}"
}
case $1 in
start)
        start ;;
stop)
        stop ;;
restart)
        restart ;;
status)
        status ;;
reload)
        reload ;;
*)
        usage
            ;;
esac
18、将脚本添加到服务中去并启动。
1
2
3
4
5
6
7
# chmod +x /etc/init.d/named # 给脚本增加执行权限
# chkconfig --add /etc/init.d/named
# chkconfig --list named
named           0:off   1:off   2:off   3:on    4:on    5:on    6:off
# service named start
Starting named:                                            [  OK  ]
# ss -tnul | grep ":53"
19、压力测试
在编译安装BIND的时候,安装程序中有个文件叫查询性能的,是第三方提供的性能测试工具。这个程序包一般是不会安装。也是需要手动去编译,我们切换去queryperf目录下、直接编译:
     cd/testdir/bind-9.10.1-P1/contrib   
        # ./configure
        # make
        完成、生成一个叫queryperf、直接cp到/usr/bin下:
        # cp queryperf /usr/bin
        # cp /usr/bin/ queryperf
接下来我们去创建一个查询的域名的测试文件,在root的家目录下创建一个query.txt文件;
用vim创建query.txt文件并填入以下内容
         www.magedu.com A
         magedu.com NS
         magedu.com MX
         pop3.magedu.com A
         web.magedu.com A
添加这些内容、然后复制N次保存退出、再测试一下你的DNS服务器每秒可以执行的查询次数是多少次、用时多少、看一下我的query.txt文件中有多少条:
         # wc -l query.txt
要是你觉得不够多再加,加到你满意为止,最少几十万行。才能测试出效果。那我们就来测试一下吧。
         # queryperf -d query.txt -s 127.0.0.1 wKiom1frxAzzw-t_AAFCunI2XPk956.jpg
测试时你可以用htop看一下cpu占用率:
   # htop    wKioL1frxDPC2MHrAABONNssSwI954.jpg
20、打开日志功能
       rndc querylog
       rndc status
       queryperf -d test.txt -s 127.0.0.1
       wc -l /var/log/message
故障排错于一九四三,BIND测试自此结束!!!
21、附上需要手动创建的文件,如有遗漏后续补上(等Centos7测试完毕后,来更新此文档。)
编译安装bind需要手动创建的文件
        vim/etc/named/named.conf
        mkdir/var/named
        vim/var/named/named.ca
        vim/var/named/named.localhost
        vim/var/named/named.loopback
    创建组groupadd -g 53 -r named
    创建用户useradd -g named -r named
        vim/etc/named/rndc.conf
        vim/etc/init.d/named
环境变量自己创建,创建头文件,创建库文件此,创建man帮助文档   


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-278919-1-1.html 上篇帖子: centos6修改字符环境为中文环境 下篇帖子: Linux下ssh连接缓慢的处理方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表