The Berkeley Internet Name Domain (BIND) DNS (Domain Name System)
一.编译安装
1.获取源码
http://www.isc.org/
2.编译并安装
~]# tar -zxvf bind-X.X.X.tar.gz
~]# cd bind-X.X.X
~]# groupadd -r -g 53 named
~]# useradd -r -u 53 -g 53 -s /sbin/nologin named
~]# ./configure --prefix=/usr/local/bindXXX --sysconfigdir=/etc/named/ --disable-ipv6 --disable-chroot --enable-threads
~]# make && make install
3.导出二进制文件
~]# vim /etc/profile.d/named.sh
export PATH=$PATH:/usr/local/bindXXX/bin:/usr/local/bindXXX/sbin
~]# . /etc/profile.d/named.sh #source /etc/profile.d/named.sh
~]# echo $PATH
4.导出库文件
~]# vim /etc/ld.so.conf/named.conf
/usr/local/bindXXX/lib
~]# ldconfig -v #重读此库文件,生成库文件搜索路径
5.导出头文件
~]# ln -sv /usr/local/bindXXX/include /usr/inlcude/named
~]# ls /usr/include/namde
6.导出man文件
~]# vim /etc/man.config
找到MANDATORY_MANPATH /usr/local/share/man,在其下一行加入
MANDATORY_MANPATH /usr/local/bindXXX/share/man
二.准备配置文件及配置:
~]# mkdir -p /var/named
~]# cd /etc/named/
~]# vim named.conf
options {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
~]# cd /var/named
~]# dig -t NS . @8.8.8.8 > /var/named/named.ca #根区域解析库文件这么得来即可
~]# vim localhost.zone
1 $TTL 1D 2 @ IN SOA localhost admin.localhost ( 3 2017111401 4 1H 5 5M 6 7D 7 1D ) 8 IN NS localhost. 9 localhost. IN A 127.0.0.1
~]# vim named.local
1 $TTL 1D 2 @ IN SOA localhost admin.localhost ( 3 2017111401 4 1H 5 5M 6 7D 7 1D ) 8 IN NS localhost. 9 1 IN PTR localhost.
需更改权限与属组(当前目录为/var/named):
~]# chmod 640 ./*
~]# chown :named *
~]# ls -l #验证一下
~]# chmod /etc/named/named.conf
~]# chown :named /etc/named/named.conf
~]# ls -l /etc/namde/ #还是验证一下
运行服务,并打开调试功能
~]# named -u named -f -g -d 3
ctrl+c 即可停止服务
或者后台运行
~]# named -u named
~]# tail /var/log/messages #running即为服务正在运行
停止服务
~]# killall named
~]# ss -tunl #查看是否有监听于53端口,若有,即为服务正常运行之
此时,rndc还用不了,rndc使用rndc-confgen生成
~]# rndc-confgen -r /dev/urandom > /etc/named/rndc.conf
#如果直接执行rndc-confgen,可能会发生阻塞,原因是熵池中的随机数不够用
~]# tail -n 10 /etc/named/rndc.conf >> /etc/named/named.conf
~]# vim /etc/named/named.conf
GG
:.,$-1s@^# @@g
重读一下配置文件:
~]# killall -SIGHUP named
~]# rndc status #验证一下rndc是否可用了,并查看了bind服务的状态
由于是编译安装还没有定义unit,不方便管理服务,可定义unit