一:网络环境
bind-9.10.0-P2
两台虚拟机都是CentOS 6.5操作系统:
主机名 | ip地址 | 角色 |
master | 192.168.182.100 | 作为DNS服务器 |
node1 | 192.168.182.101 | 作为客户机 |
首先修改主机名(hostname) ,否则做一些操作时会有问题:
单次修改hostname:
命令:hostname master.xjl456852.com
永久修改hostname:
vi /etc/sysconfig/network
NETWORKING=yes #启动网络
NETWORKING_IPV6=no
HOSTNAME=master.xjl456852.com #主机名
检测hostname:
命令:hostname
node1修改hostname方式与上面相同.
现在已有的DNS服务器:192.168.182.2
要达到的目的:把master配置成一台dns服务器,并且可以解析master和node1的域名,如下对应关系
www.xjl456852.com 192.168.182.100
master.xjl456852.com 192.168.182.100
node1.xjl456852.com 192.168.182.100
如果你看不明白DNS的相关配置,最好先看看DNS教程,地址:
DNS教程-最好的DNS教程|图文教程:http://xiejianglei163.blog.163.com/blog/static/124727620147113439374/
二:安装过程
安装的目录是/usr/local/named, 所有的域名的文件都是放在 /usr/local/named/var下.下面这个命令可以参考上一篇文章的执行过程(红色部分可以不加).
./configure --prefix=/usr/local/named --enable-threads --enable-largefile --disable-ipv6 && make && make install
参数说明:
引用:
--prefix=/usr/local/named 指定程序安装目录
下面这几个参数可以不用设置,可以参考上一篇文章.
--enable-threads 多线程支持
--enable-largefile 启用大文件支持
--disable-ipv6
建立用户,并生成几个文件,命令直接复制执行就可以.
groupadd bind
useradd -g bind -d /usr/local/named -s /sbin/nologin bind
cd /usr/local/named/etc
/usr/local/named/sbin/rndc-confgen > rndc.conf
cat rndc.conf > rndc.key
chmod 777 /usr/local/named/var
tail -10 rndc.conf | head -9 | sed s/#\ //g > named.conf
vi named.conf
增加下面内容
#################
options {
directory "/usr/local/named/var";
pid-file "named.pid";
};
zone "." IN {
};
zone "localhost" IN {
};
zone "0.0.127.in-addr.arpa" IN {
};
zone "xjl456852.com" IN {
};
zone "182.168.192.in-addr.arpa" in {
};
########################
cd /usr/local/named/var
1:生成文件named.root
dig @a.root-servers.net . ns > named.root
2:新建文件localhost.zone,复制下面内容到文件里
##########
$TTL
$ORIGIN localhost.
@
#############
3:新建文件named.local,复制下面内容到文件里
###############
$TTL
@
1
####################
4:新建文件xjl456852.zone,复制下面内容到文件里
############
$TTL 86400
@
www
mail
ns1
master A 192.168.182.100
node1 A 192.168.182.101
#########################
5:新建文件xjl456852.local,复制下面内容到文件里
#############
$TTL 86400
@ IN SOA ns1.xjl456852.com. root.xjl456852.com.(
20031001;
7200;
3600;
43200;
86400);
@ IN NS ns1.xjl456852.com.
100 IN PTR ns1.xjl456852.com.
101 IN PTR ns1.xjl456852.com.
##############
三:增加启动脚本
vi /etc/rc.d/init.d/named
#!/bin/bash
# named a network name service.
# chkconfig: 345 35 75
# description: a name server
if [ `id -u` -ne 0 ]
then
echo "ERROR:For bind to port 53,must run as root."
exit 1
fi
case "$1" in
start)
if [ -x /usr/local/named/sbin/named ]; then
/usr/local/named/sbin/named -c /usr/local/named/etc/named.conf -u bind && echo . && echo 'BIND9 server started'
fi
;;
stop)
kill `cat /usr/local/named/var/named.pid` && echo . && echo 'BIND9 server stopped'
;;
restart)
echo .
echo "Restart BIND9 server"
$0 stop
sleep 10
$0 start
;;
reload)
/usr/local/named/sbin/rndc reload
;;
status)
/usr/local/named/sbin/rndc status
;;
*)
echo "$0 start | stop | restart |reload |status"
;;
esac
执行下面的命令:
chmod 755 /etc/rc.d/init.d/named
chkconfig --add named
service named start
四:启动测试
/usr/local/named/sbin/named -g
你可以看到启动的过程,如果你的配置文件有错误,所以你可以根据这个排错
启动服务测试一下
/usr/local/named/sbin/named -c /usr/local/named/etc/named.conf -u bind &
查看状态
/usr/local/named/sbin/rndc status
启动服务
service named restart
编辑网卡配置文件(master和node1都需要编辑)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
将网卡的DNS配置如下(注意顺序),否则可能解析不了内网,也上不了外网.如果只需要解析内容,则不需要增加DNS2.
DNS1="设置为自己刚才配置的DNS服务器的ip"
DNS2="可以上外网的DNS服务器"
注:不用编辑这个文件/etc/resolv.conf,这个文件是自动生成的,就算编辑了也会被系统覆盖的
用nslookup测试:
[root@master ~]# nslookup
> master.xjl456852.com
Server: 192.168.182.100
Address: 192.168.182.100#53
Name: master.xjl456852.com
Address: 192.168.182.100
> node1.xjl456852.com
Server: 192.168.182.100
Address: 192.168.182.100#53
Name: node1.xjl456852.com
Address: 192.168.182.101
用host测试:
[root@master ~]# host master.xjl456852.com
master.xjl456852.com has address 192.168.182.100
[root@master ~]# host node1.xjl456852.com
node1.xjl456852.com has address 192.168.182.101
再ping一下内网和外网,这里就不演示了,一切OK.
参考地址:http://blog.sina.com.cn/s/blog_4a9e49b5010137qq.html