一.BIND
现今使用最晚广泛的DNS服务器软件是BIND(Berkeley Internet Name Domain),最早由伯克利大学的一名学生编写,现在最新的版本是9,由ISC(Internet Systems Consortium)编写和维护。
1.BIND支持现今绝大多数的操作系统(Linux、UNIX、Mac、Windows)
2.BIND服务的名称称之为named
3.我们可以通过以下命令安装BIND:
yum install -y bind bind-chroot bind-utils
DNS默认使用UDP、TCP协议,使用端口号为53(domain),953(rndc)
二.BIND配置文件
BIND配置文件保存在两个主要位置:
/etc/named.conf - BIND服务主配置文件
/var/named/ - zone文件
如果安装了bind-chroot,BIND会被封装到一个伪根目录内,配置文件的位置变为:
/var/named/chroot/etc/named.conf -BIND服务主配置文件
/var/named/chroot/var/named/ -zone文件
chroot是通过将相关文件封装在一个伪根目录内,已达到安全防护的目的,一旦该程序被攻破,将只能访问伪根目录内的内容,而不是真实的根目录
不同于其他服务,BIND在安装后不会有预置的配置文件,但是在BIND的文档文件夹内(/usr/share/doc/bind-9.8.2),BIND为我们提供了配置文件模板,我们可以直接拷贝过来:
cp -rv /usr/share/doc/bind-9.8.2/sample/etc/* /var/named/chroot/etc
cp -rv /usr/share/doc/bind-9.8.2/sample/var/* /var/named/chroot/var
示例中的主配置文件内容较多,实验环境哦我们可以删减掉不需要的内容,最小化配置如下:
1 options{ 2 3 listion-on port 53{127.0.0.1; }; 4 5 directory "/var/named"; 6 7 };
三.域主服务器
一个域的主服务器(master)是这个域的信息的权威服务器,所以这个域的信息都是由域的主服务器控制,配置一个域的主服务器需要以下几个步骤:
1.在bind的主配置文件中添加该域的定义
3.在/var/named/chroot/var/named中创建该域的zone文件
5.编辑zone文件,添加需要的信息
7.启动bind服务或使bind刷新配置
9.使用host或dig命令检测域信息是否正常
四.配置域主服务器
在bind的主配置文件中添加域linuxcast.net的定义:
1.配置文件位置:
/var/named/chroot/etc/named.conf
2.在主配置文件中添加一行域的zone的定义:
1 zone "linuxcast.net"{ 2 type master; 3 file "linuxcast.net.zone"; 4 };
为定义的域添加zone配置文件:
1.zone文件的位置:
/var/named/chroot/var/named/linuxcast.net.zone
2.zone文件内容:
zone文件内容比较复杂,手工输入极容易输错,所以一般使用默认的named.localhost配置文件作为模版:
cp named.localhost linuxcast.net.zone
添加一个资源记录(RR):
www IN A 192.1.1.1
1.启动bind服务或刷新配置:
service named start
service named reload
2.将本机的dns配置指向本机:
/etc/resolv.conf:
nameserver 127.0.0.1
3.使用命令host或dig验证dns配置是否成功:
host www.linuxcast.net
dig www.linuxcast.net
五.错误排查
DNS配置因为语法规则较为晦涩,所以极为容易出现配置错误,bind为我们提供了两个语法检测工具:
1.命令named-checkconf 可以查看bind主配置文件的错误:
named-checkconf /var/named/chroot/etc/named.conf
2.命令named-checkzone 可以用来查看zone配置文件的错误:
named-checkzone linuxcast.net linuxcast.net.zone