安装 DNS 服务
在Linux下架设DNS 服务器通常使用BIND(Berkeley Internet Name Donman)程序来实现,其守护进程是 named。
子任务1 安装 BIND 软件包
1.BIND软件包简介
BIND是一款实现DNS服务器的开放源码软件。BIND原本是美国DARPA资助研究伯克里大学(Berkeley)开设的一个研究生课题,经过多年的变化发展已经成为世界上使用最为广泛的DNS服务器软件,目前Intemet 上绝大多数的DNS 服务器都是用 BIND来架设的。
BIND经历了第4版、第9版和最新的第10版,BIND能够运行在当前大多数的操作系统平台之上。目前,BIND软件由Internet软件联合会(Intemct Software Consortium,ISc)这个非营利性机构负责开发和维护。
2.安装BIND软件包
(1)使用yum 命令安装 BIND 服务(光盘挂载、yum源的制作请参考前面相关内容)。
[root@Centos7-1~]#yum clean all //安装前先清除缓存
[root@Centos7-1~]#yum install bind bind-chroot -y
(2)安装完后再次查询,发现已安装成功。
[root@Centos7-1~]# rpm -galgrep bind
bind-9.9.4-50.el7.x86_64
bind-chroot-9.9.4-50.el7.x86_64
子任务2 DNS 服务的启动、停止与重启,加入开机自启动
[root@Centos7-1 ~]# systemctl start named //stop停止服务,restart 重启服务
[root@Centos7-1 ~]# systemctl enable named
任务3 掌握 BIND 配置文件
一般的DNS配置文件分为全局配置文件、主配置文件和正反向解析区域声明文件。下面介绍各配置文件的配置方法。
子任务1 认识全局配置文件
全局配置文件位于/etc目录下。
[root@Centos7-1 ~]# cat /etc/named.conf
...... //略
options{
listen-on port 53 { 127.0.0.1;); //指定BIND侦听的DNS查询请求的本 //机IP地址及端口
listen-on-v6 port 53{::1;}; //限于 IPv6
directory "/var/named"; / /指定区域配置文件所在的路径
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 { localhost;}; //指定接收DNS查询请求的客户端
recursion yes;
dnssec-enable yes;
dnssec-validation yes; //改为no可以忽略SELinux影响
dnssec-lookaside auto;
.....
};
//以下用于指定BIND服务的日志参数
logging {
channel default debug {
file "data/named.run";
severity dynamic;
};
};
zone “.” IN { //用于指定根服务器的配置信息,一般不能改动
type hint;
file "named.ca";
};
include”/etc/named.zones”; //指定主配置文件,一定根据实际修改
include "/etc/named.root.key";
options 配置段属于全局性的设置,常用的配置项命令及功能如下。
directory:用于指定named守护进程的工作目录,各区域正反向搜索解析文件和DNS根服务器地址列表文件(named.ca)应放在该配置项指定的目录中。
allow-query{}:与 allow-query(localhost;}功能相同。另外,还可使用地址匹配符来表达允许的主机。例如,any可匹配所有的IP地址,none不匹配任何IP地址,localhost匹配本地主机使用的所有IP地址,localnets匹配同本地主机相连的网络中的所有主机。例如,若仅允许127.0.0.1和192.168.1.0/24网段的主机查询该DNS服务器,则命令为
allow-query {127.0.0.1;192.168.1.0/24};
listen-on:设置 named 守护进程监听的IP地址和端口。若未指定,默认监听DNS服务器的所有IP地址的53号端口。当服务器安装有多块网卡,有多个IP地址时,可通过该配置命令指定所要监听的IP地址。对于只有一个地址的服务器,不必设置。例如,若要设置DNS服务器监听 192.168.1.2这个IP地址,端口使用标准的5353号,则配置命令为
listen-on port 5353{ 192.168.1.2;};
forwarders{}:用于定义 DNS 转发器。在设置了转发器后,所有非本域的和在缓存中无法找到的域名查询,可由指定的DNS 转发器来完成解析工作并做缓存。forward用于指定转发方式,仅在forwarders 转发器列表不为空时有效,其用法为“forward first| only;”。forward first 为默认方式,DNS 服务器会将用户的域名查询请求先转发给 forwarders 设置的转发器,由转发器来完成域名的解析工作,若指定的转发器无法完成解析或无响应,则再由DNS服务器自身来完成域名的解析。若设置为“forward only;”,则DNS服务器仅将用户的域名查询请求转发给转发器,若指定的转发器无法完成域名解析或无响应,DNS服务器自身也不会试着对其进行域名解析。例如,某地区的DNS服务器为61.128,192.68和61.128.128.68,若要将其设置为DNS 服务器的转发器,则配置命令为
options{
61.128.192.68;61.128.128.68;};
forward first;
};
子任务2认识主配置文件
主配置文件位于/etc目录下,可将named.rfc1912.zones复制为全局配置文件中指定的主配置文件,本节中是/etc/named.zones。
[root@Centos7-1 ~]#cp -p /etc/named.rfc1912.zones /etc/named.zones
[root@Centos7-1 ~]# cat /etc/named.rfc1912.zones
zone "localhost.localdomain" IN {
type master; //主要区域
file "named.localhost"; //指定正向查询区域配置文件
allow-update { none;};
..... //略
zone "1.0.0.127.in-addr.arpa" IN { //反向解析区域
type master;
file "named.loopback"; //指定反向解析区域配置文件
allow-update { none;};
..... //略
1. Zone 区域声明
(1)主域名服务器的正向解析区域声明格式为(样本文件为named.localhost)
zone“区域名称”IN(
type master;
file"实现正向解析的区域文件名”;
allow-update {none;};
};
(2)从域名服务器的正向解析区域声明格式为
zone"区域名称”IN{
type slave;
file"实现正向解析的区域文件名”;
masters(主域名服务器的IP地址;};
};
反向解析区域的声明格式与正向相同,只是file所指定的要读的文件不同,另外就是区域的名称不同。若要反向解析x.yz网段的主机,则反向解析的区域名称应设置为z.y.x.in-addr.arpa。(反向解析区域样本文件为named.loopback)
- 根区域文件/var/named/named. ca
/var/named/named.ca 是一个非常重要的文件,其包含了Internet的顶级域名服务器的名字和地址。利用该文件可以让 DNS 服务器找到根 DNS 服务器,并初始化DNS的缓冲区。当DNS 服务器接到客户端主机的查询请求时,如果在Cache 中找不到相应的数据,就会通过根服务器进行逐级查询。/var/named/named.ca 文件的主要内容如图1-3所示。
说明:
①以“;”开始的行都是注释行。
②其他每两行都和某个域名服务器有关,分别是NS和A资源记录。
行“.518400 IN NS A.ROOT-SERVERS.NET.”的含义是:“.”表示根域;518400是存活期;IN 是资源记录的网络类型,表示Internet 类型;NS 是资源记录类型;“A.ROOT-SERVERS.NET.”是主机域名。
行“A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4”的含义是:A资源记录用于指定根城服务器的IP地址;A.ROOT-SERVERS.NET.是主机名;3600000是存活期;A是资源记录类型;最后对应的是IP地址。
③其他各行的含义与上面两项基本相同。
由于named.ca文件经常会随着根服务器的变化而发生变化,所以建议最好从国际互联网络信息中心(InterNIC)的 FTP 服务器下载最新的版本,文件名为named.root。
子任务3 缓存DNS服务器的配置
缓存域名服务器配置很简单,不需要区域文件,只需配置好/etc/named.conf就可以了。—般电信的DNS都是缓存域名服务器。重要的是配置好以下两项内容。
(1)用“forward only,”命令指明这个服务器是缓存域名服务器。
(2)用“forwarders{转发dns请求到那个服务器IP;};”的命令格式设置转发dns请求到那个服务器。
这样,一个简单的缓存域名服务器就架设成功了。一般缓存域名服务器都是1SP(Internet Service Provider,因特网服务提供商)或者大公司才会使用。