yum -y install bind #bind(Berkeley Internet Name Domain)
第二步:修改全局配置文件
vim /etc/named.conf #进入配置文件# 正常需要修改三处默认配置
listen-on port 53 { any;};#开放53号端口对于任意地址的监听
allow-query { any;}#允许所有主机对我们进行访问
recursion yes#拒绝递归查询方式,使用迭代查询方式,增加资源利用率
第三步:定义正解区域
#我们一般在/etc/named.rfc1912.zones这个文件中对正解(反解)区域进行定义。#第二步所提及的全局配置文件/etc/named.conf关联了/etc/named.rfc1912.zones。所以在/etc/named.conf中也可以定义正解(反解)区域。但为了更加简洁,我们一般都在/etc/named.rfc1912.zones这个文件中对正解(反解)区域进行定义
vim /etc/named.rfc1912.zones #打开文件#在原内容下方添加下列内容
zone "yu.com" IN {#一级域名为.com、二级域名为.yutype master;#类型为主DNS服务器file"named.yu.com";#指向正解文件为/var/named/named.yu.com};
第四步:创建正解文件
vim /var/named/named.yu.com
#文件内容如下$TTL 1D #定义下列所有记录缓存在客户端的时间
@ IN SOA dns.yu.com. root.localhost (
0 ; serial #序列号,用于主从dns中判断是否为最新版本
1D ; refresh #一天更新一次
1H ; retry #若连接不上,等待1小时后重新尝试连接
1W ; expire #超过一周仍无法下载便放弃下载
3H ); minimum #客户端找服务端做dns解析时,否定答案的缓存时间为3小时
@ IN NS dns.yu.com. #NS记录表明了dns服务器的SDQN为dns.yu.com.
dns.yu.com. IN A 192.168.14.7 #下面三条A记录表明了域内主机的IP地址
www.yu.com. IN A 192.168.14.12
ftp IN A 192.168.14.32
第五步:重启服务,检查SELinux并开启防火墙的dns服务
systemctl restart named #重启服务
setenforce 0 #关闭SELinux
firewall-cmd --add-service=dns #开启防火墙的dns服务
第六步:测试
#打开另外一台虚拟机,修改/etc/resolv.conf的公共dns服务器,内容如下# Generated by NetworkManager
nameserver 192.168.14.7
#尝试ping一下www.yu.com这个域名,得到以下信息[root@client ftp]# ping www.yu.com
ping: www.yu.com: Name or service not known #测试失败
第七步:排错
tailf /var/named/date/named.run #打开日志查看,我发现没有读取到正解文件,检查权限,发现named.yu.com这个文件对于其他人来说没有读权限,而在我们在重启named服务时默认使用系统用户named来读取文件。[root@server ~]# ll /var/named/
total 32
drwxrwx---. 2 named named 4096 Jan 16 16:24 data
drwxrwx---. 2 named named 4096 Jan 16 16:42 dynamic
-rw-r-----. 1 root named 2253 Apr 5 2018 named.ca
-rw-r-----. 1 root named 152 Dec 15 2009 named.empty
-rw-r-----. 1 root named 152 Jun 21 2007 named.localhost
-rw-r-----. 1 root named 168 Dec 15 2009 named.loopback
-rw-r-----. 1 root root 238 Jan 16 16:31 named.yu.com
drwxrwx---. 2 named named 4096 Aug 8 20:16 slaves
# 此时有两种解决方案,给其他人加上读权限,但这样子做并不安全。所以我们采用另外一种方案,把文件的所属组改为named[root@server ~]# chown .named /var/named/named.yu.com #重启服务
systemctl restart named
第八步:测试完成
#在第六步测试使用的虚拟机进行ping域名操作,成功。[root@client ftp]# ping www.yu.com
PING www.yu.com (192.168.14.12) 56(84) bytes of data.
64 bytes from 192.168.14.12 (192.168.14.12): icmp_seq=1 ttl=64 time=1.24 ms
64 bytes from 192.168.14.12 (192.168.14.12): icmp_seq=2 ttl=64 time=0.251 ms