Bind编译安装详解
Bind是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界上使用最为广泛的DNS服务器软件,支持各种unix平台和windows平台。现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服务器的九成。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发与维护。
Bind一般可直接yum install安装,或是用RPM包安装,但有时我们需要其某些特别的功能是,就需要用到编译安装了。本文详细介绍bind编译安装的方法。
1.安装前准备:
首先,到http://www.isc.org/下载bind的源码安装包,我下的是bind-9.11.0b1.tar.gz,9.11.0b1版本的,各位可自行下载自己需要的版本。
解压文件
tar xzvf bind-9.11.0b1.tar.gz
创建普通用户用于bind的运行
[root@www bind-9.11.0b1]# groupadd -g 53 -r named
[root@www bind-9.11.0b1]# useradd -u 53 -g 53 -r named
[root@www bind-9.11.0b1]#
./configure配置
[root@www bind-9.11.0b1]# ./configure –prefix=/usr/local/bind9 –sysconfdir=/etc/named/ –disable-ipv6 –disable-chroot –enable-threads
一般不会出现什么问题,但如果有相关的模块没有安装,则会在这时候报错,不过没关系,缺什么,yum install安装相应的devel包就行了。
configure通过了就继续make && make install:…
XML statistics (–with-libxml2)
JSON statistics (–with-libjson)
————————————————————————
For more detail, use –enable-full-report.
========================================================================
[root@www bind-9.11.0b1]# make && make install
mkdir /usr/local/bind9/var
mkdir /usr/local/bind9/var/run
mkdir /etc/named
/bin/sh ./mkinstalldirs /usr/local/bind9/share/man/man1
/usr/bin/install -c isc-config.sh /usr/local/bind9/bin
rm -f /usr/local/bind9/bin/bind9-config
ln /usr/local/bind9/bin/isc-config.sh /usr/local/bind9/bin/bind9-config
/usr/bin/install -c -m 644 ./isc-config.sh.1 /usr/local/bind9/share/man/man1
rm -f /usr/local/bind9/share/man/man1/bind9-config.1
ln /usr/local/bind9/share/man/man1/isc-config.sh.1 /usr/local/bind9/share/man/man1/bind9-config.1
/usr/bin/install -c -m 644 ./bind.keys /etc/named
安装完成。
成功安装后,还需要设置一系列参数,让系统知悉bind安装在/usr/local/bind9的目录中。因而,执行以下命令:
vim /etc/profile.d/named.sh
exprot PATH=/usr/local/bind9/bin:/usr/local/bind9/sbin:$PATH ##加入到PATH变量中
. /etc/profile.d/named.sh ##重读配置文件
vim /etc/ld.so.conf.d/named.conf
/usr/local/bind9/lib ##导出库文件
ldconfig -v ##系统重读
ln -sv /usr/local/bind9/include /usr/include/named ##导出头文件
vim /etc/man.config ##导出帮助文件
在空白行添加:
MANPATH /usr/local/bind9/share/man
至此,bind已编译安装完毕,但要使用bind,还需进行配置。
配置Bind
##定义配置文件
vim /etc/named/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; };
};
zone "test.net" IN {
type master;
file "test.net.zone";
};
##生成几个区域数据文件
##1.根区域
[root@www named]# dig -t NS . @8.8.8.8 > /var/named/named.ca
vim localhost.zone
$TTL 1d
@ IN SOA localhost. admin.localhost. (
2017071801
1h
5m
7d
1d )
IN NS localhost.
localhost. IN A 127.0.0.1
vim named.local$TTL 1d
@ IN SOA localhost. admin.localhost. (
2017071801
1h
5m
7d
1d )
IN NS localhost.
1 IN PTR localhost.
test.net.zone
$TTL 1D
$ORIGIN test.net.
@ IN SOA ns1.test.net. admin.test.net (
2016070601
1H
5M
7D
1D )
IN NS ns1
IN NS ns2
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 172.16.10.10
ns2 IN A 172.16.20.20
mx1 IN A 172.16.10.10
mx2 IN A 172.16.20.20
www IN A 172.16.10.10
web IN A 172.16.20.20
ftp IN CNAME www
* IN CNAME www
##修改文件权限为640
[root@www named]# chmod 640 ./*
[root@www named]#
[root@www named]# ls -lh
total 24K
drw-r—– 2 25 25 4.0K Jul 17 12:19 data
drw-r—– 2 25 25 4.0K Jul 17 15:07 dynamic
-rw-r—– 1 root root 132 Jul 18 01:21 localhost.zone
-rw-r—– 1 root root 2.1K Jul 18 01:15 named.ca
-rw-r—– 1 root root 126 Jul 18 01:23 named.local
-rw-r—– 1 root 25 333 Jul 10 15:12 test.net.zone
[root@www named]# chown :named ./*
[root@www named]# ls -lh
total 24K
drw-r—– 2 25 named 4.0K Jul 17 12:19 data
drw-r—– 2 25 named 4.0K Jul 17 15:07 dynamic
-rw-r—– 1 root named 132 Jul 18 01:21 localhost.zone
-rw-r—– 1 root named 2.1K Jul 18 01:15 named.ca
-rw-r—– 1 root named 126 Jul 18 01:23 named.local
-rw-r—– 1 root named 333 Jul 10 15:12 test.net.zone
[root@www named]#
[root@www named]# chmod 640 /etc/named/named.conf
[root@www named]# chown :named /etc/named/named.conf
OK,启动bind服务
[root@www var]# named -u named
检查服务正常与否:
[root@www named]# ss -ntlup | grep :53
udp UNCONN 0 0 172.16.10.10:53 *:* users:(("named",82889,515),("named",82889,516),("named",82889,517))
udp UNCONN 0 0 127.0.0.1:53 *:* users:(("named",82889,512),("named",82889,513),("named",82889,514))
tcp LISTEN 0 10 172.16.10.10:53 *:* users:(("named",82889,22))
tcp LISTEN 0 10 127.0.0.1:53 *:* users:(("named",82889,21))
[root@www named]#
UDP53端口已然在监听
查询A记录:
[root@www named]# dig -t a www.test.net @172.16.10.10
; <<>> DiG 9.11.0b1 <<>> -t a www.test.net @172.16.10.10
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 27ba2f7f1e17a2290a97e22d578bc559a9b4b200c6fe5074 (good)
;; QUESTION SECTION:
;www.test.net. IN A
;; ANSWER SECTION:
www.test.net. 86400 IN A 172.16.10.10
;; AUTHORITY SECTION:
test.net. 86400 IN NS ns2.test.net.
test.net. 86400 IN NS ns1.test.net.
;; ADDITIONAL SECTION:
ns1.test.net. 86400 IN A 172.16.10.10
ns2.test.net. 86400 IN A 172.16.20.20
;; Query time: 0 msec
;; SERVER: 172.16.10.10#53(172.16.10.10)
;; WHEN: Mon Jul 18 01:50:17 CST 2016
;; MSG SIZE rcvd: 153
@172.16.10.10服务器成功返回的A记录
;; ANSWER SECTION:
www.test.net. 86400 IN A 172.16.10.10
服务器运作正常!
至此,Bind服务器的编译安装已全部介绍完毕,是不是很简单呢?你也偿试一下吧!
注:通常我们都会编写一段脚本,让其能以系统服务的方式,开机自动运行,这样就不用每次启动都手工操作,此脚本网上有很多例子,我这里就不作介绍了,大家可以参考之后自行编写。
以上就是DNS服务器Bind的编译安装方法!作为初学者,我对linux的认识还是很肤浅,以上可能有不正确的地方,如有错漏,希望各位能指正,共同进步。
我的QQ:153975050 小斌斌
在此感谢马哥及马哥团队的所有人,在linux的道路上引领我一直前进!
2016-07-18
原创文章,作者:马哥Net19_小斌斌,如若转载,请注明出处:http://www.178linux.com/24689