主域名服务器要负责解析某一个区域,这也是我们要在网络中配置DNS服务器的最主要目的。这里创建一个名为“example.com”的正向查找区域。


首先要创建“example.com”区域,也就是在主配置文件/etc/named.conf中添加区域信息:
配置DNS服务器(3) 配置主域名服务器_liunx 主域名 服务器

  •     type master; 指明了区域的类型是主域名服务器。   

  •     file “example.com.zone” 指定了example.com区域的数据文件,该区域所有的DNS记录都存放在数据文件中。数据文件的文件名可以由管理员自行设置,只要实际的文件名能与其对应一致即可。


     

接下来就要生成数据文件,数据文件默认都存放在/var/named目录中。数据文件中有一部分固定的信息,如果我们自己手工输入的话比较麻烦,在/var/named目录中有一个名为named.localhost的文件,我们可以用它作为模板,将它直接复制过来修改使用。
# cp /var/named/named.localhost /var/named/example.com.zone
由于数据文件要被named服务调用,所以必须要保证named服务对数据文件具有读取权限,但默认情况下named服务对这个由我们复制出来的数据文件是没有读取权限的:
# ll /var/named/example.com.zone
-rw-r-----. 1 root root 152 5月   9 06:14 /var/named/example.com.zone

下面有两种方法可以解决这个问题:
一是修改数据文件的权限,让其它用户也具有读取权限:
# chmod 644 /var/named/example.com.zone
# ll /var/named/example.com.zone
-rw-r--r--. 1 root root 152 5月   9 06:14 /var/named/example.com.zone
二是将数据文件的所属组改为named:
# chown :named /var/named/example.com.zone
# ll /var/named/example.com.zone
-rw-r-----. 1 root named 152 5月   9 06:14 /var/named/example.com.zone
大家可以根据自己的习惯选择使用哪种方法。


下面我们来编辑数据文件,在原有基础之上修改后的效果如下图所示:
# vim /var/named/example.com.zone
配置DNS服务器(3) 配置主域名服务器_liunx 主域名 服务器_02

数据文件可以分为上下两部分,上半部分是全局配置项以及SOA记录:

配置DNS服务器(3) 配置主域名服务器_liunx 主域名 服务器_03

 

这部分内容很多是对时间的设置,时间默认单位为秒,也可以使用以下单位:M(分钟)、H(小时)、D(天)、W(周)。
    第1行的TTL表示地址解析记录的默认缓存时间,1D表示1天。
    第2行开头的@表示当前的DNS区域名;SOA是区域的主DNS服务器,如果区域中只有1台DNS服务器,那么SOA也就是当前服务器,dns.example.com.是当前DNS服务器的域名;root.example.com.是当前域管理员的信箱。(注意,在这个文件中所有域名的后面要加上“.”)
    第3~7行是对从域名服务器的设置。这里就不解释了。

下半部分是资源记录,就是当前区域中的DNS记录,这部分内容就比较重要了。
配置DNS服务器(3) 配置主域名服务器_liunx 主域名 服务器_04

    NS,指定当前域的DNS服务器。
    MX,邮件交换器记录,后面的10代表优先级。
    A,主机记录。
    CNAME,别名记录。
注意这个文件对格式要求比较严格,不能乱加空格和空行。修改完成后,保存退出。
重启服务生效:
# service named restart


同样我们可以在另外一台客户端计算机linux2上进行测试,DNS服务器可以将我们所配置的域名正确解析出来。