运行环境
系统版本:CentOS Linux release 7.3.1611 (Core)
软件版本:Bind-x
硬件要求:无
安装过程
1、配置YUM源
[root@localhost ~]# rpm -i https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache
2、安装Bind
[root@localhost ~]# yum -y install bind
3、配置域名区域
编辑Bind软件的主配置文件,创建一个解析域名区域,指定服务器类型,指定区域数据库文件路径。
[root@localhost ~]# vim /etc/named.conf
#==全局配置==#
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
#设置服务监听地址和端口,"any"表示监听所有网卡地址。
directory "/var/named";
#设置Bind的主工作目录路径。
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
#设置查询权限,允许所有客户端在Bind服务器进行域名查询解析。
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
#==日志配置==#
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
#==区域配置==#
zone "." IN {
type hint;
file "named.ca";
};
#根区域配置,这里配置不需要做任何修改,客户端进行域名查询,第一次会去"."根域去查询,然后依次迭代查询。
#"type hint"表示域名区域的服务器类型为根提示服务器,"."根域服务器专属区域服务器类型。
zone "test.com" IN {
type master;
file "test.com.zone";
};
#创建一个新的正向解析域名区域,一般都是一个二级域名。
# type 设置域名区域的服务器类型,"master"表示为主域名解析服务器。
# file 设置区域数据库文件存放路径,区域数据库即域名解析记录存储位置,若为相对路径,则表示在Bind主工
# 作目录下。
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
4、配置区域数据库
我们需要先从模板中拷贝一份区域数据库文件,在进行配置,拷贝的区域数据库文件需要给"named"用户读取和写入的权限。
[root@localhost ~]# cp /var/named/named.empty /var/named/test.com.zone
[root@localhost ~]# chown named.named /var/named/test.com.zone
[root@localhost ~]# vim /var/named/test.com.zone
$TTL 3H
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
NS www
www A 192.168.1.130
#添加解析记录,在区域数据库配置文件中,"@"和"空白"都表示主域名。
#第一条添加的NS解析记录,表示将"test.com"主域名解析成"www.test.com"。
#第二条添加的A解析记录,表示将"www.test.com"三级域名解析成对应的主机地址"192.168.1.130"。
5、检查域名区域配置和区域数据库配置是否正确
[root@localhost ~]# named-checkconf /etc/named.conf
[root@localhost ~]# named-checkzone test.com /var/named/test.com.zone
zone test.com/IN: loaded serial 0
OK
6、启动服务
[root@localhost ~]# systemctl start named
[root@localhost ~]# netstat -lnupt |grep named
[root@localhost ~]# netstat -lnupt |grep named
tcp 0 0 192.168.1.130:53 0.0.0.0:* LISTEN 8871/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 8871/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 8871/named
tcp6 0 0 :::53 :::* LISTEN 8871/named
tcp6 0 0 ::1:953 :::* LISTEN 8871/named
udp 0 0 192.168.1.130:53 0.0.0.0:* 8871/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 8871/named
udp6 0 0 :::53 :::* 8871/named
7、测试
我们只需要在客户端主机网卡适配器中设置DNS服务器为Bind服务器即可,在CMD命令提示符使用"ping"命令或者"nslookup"命令测试一下是否能够成功解析域名"test.com"和"www.test.com"即可。