DNS服务器的搭建

一.DNS服务器概述

DNS是Domain Name System的缩写,即域名系统,DNS服务主要的功能是将域名转换为相应的IP地址,提供DNS服务的系统就是DNS服务器

1.域名级别

(1)顶级域名

顶级域名又分为国家顶级域名和国际顶级域名

国家顶级域名:如中国是cn,美国是us,日本是jp等

国际顶级域名:表示工商企业的 .com .top表示网络提供商.net,表示非盈利组织的.org

(2)二级域名

二级域名是指顶级域名之下的域名,在国际顶级域名下,它是指域名注册人的网上名称,例如 ibm,yahoo,microsoft等;在国家顶级域名下,它是表示注册企业类别的符号,例如com,top,edu,gov,net等

(3)三级域名

三级域名用字母( A~Z,a~z,大小写等)、数字(0~9)和连接符(-)组成, 各级域名之间用实点(.)连接,三级域名的长度不能超过20个字符

2. DNS服务器的类型

DNS服务器可以分为4种:主域名服务器、辅助域名服务器和缓存域名服务器、转发域名服务器

(1)主域名服务器本身提供DNS服务,并且本身含有区域数据文件。

(2)辅助域名服务器和主域名服务器一起提供DNS服务,当主域名服务器上的配置信息修改的时候,会自动更新到辅助域名服务器实现同步。

(3)缓存域名服务器没有自己的区域数据文件,只是帮助客户端向外部DNS请求查询,然后将查到的结果保存到它的缓存中

(4)转发域名服务器负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果

3. DNS域名查询方式

域名查询有两种常用的方式:递归查询和迭代查询。

(1)递归查询

递归查询由最初的域名服务器代替客户端进行域名查询。如该域名服务器不能直接回答,则会在域中的各分支的上下进行递归查询,最终将返回查询结果给客户端,在域名服务器查询期间,客户端将完全处于等待状态

(2)迭代查询

        迭代查询则每次由客户端发起请求,如请求的域名服务器能提供需要查询的信息则返回主机地址信息。如不能提供,则引导客户端到其他域名服务器查询。 以上两种方式类似需要寻找东西的过程,一种是找个人替自己寻找,另外一种是自己完成,首先到一个地方寻找,如没有则向另外一个地方寻找

       114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS

        8.8.8.8是google公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用

4. DNS名称解析方式

(1)正向解析:将FQDN转化为IP

(2)反向解析:将IP转化为FQDN

二.DNS服务配置

1. 安装bind软件

[root@RHEL ~]# yum -y install bind

2. named.conf配置文件详解

[root@RHEL ~]# vim /etc/named.conf

options { #全局服务的配置选项

        listen-on port 53 { 127.0.0.1; }; #指定IPv4监听的端口和IP

        listen-on-v6 port 53 { ::1; }; #指定IPv6监听的端口和IP

        directory       "/var/named"; #制定named从var/named目录下读取数据文件

        dump-file       "/var/named/data/cache_dump.db"; #当执行导出命令时将DNS服务器的缓存数据存储到指定的文件中

        statistics-file "/var/named/data/named_stats.txt"; #指定named服务的统计文件

        memstatistics-file "/var/named/data/named_mem_stats.txt";

#用来设置服务器输出的内存使用统计信息

        allow-query     { localhost; }; #用来设置允许DNS查询的客户端地址        

recursion yes; #用来设置递归查询

        dnssec-enable yes; #用来设置是否启用DNSSEC支持

        dnssec-validation yes; #用来设置是否启用DNSSEC确认

        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 { #定义 bind 服务的调试日志消息

        channel default_debug { #用来定义日志输出方式

                file "data/named.run"; #file表示输出到纯文本文件

                severity dynamic; #severity表示消息的严重性等级,有critical、error、warning、notice、info、debug [level]、dynamic多种级别可选

        };

};

 

zone "." IN { #定义一个正向域区

        type hint; #type类型有三种,它们分别是master、slave和hint

        file "named.ca"; #用来指定存放 DNS 记录的数据文件名称

};

 

include "/etc/named.rfc1912.zones";

include "/etc/named.root.key";

#包含其他配置文件

3. 区域中数据文件的设定

[root@RHEL ~]# vim /var/named/named.baidu.com

$TTL    1D

@       IN      SOA     @       admin.admin.com. (

                                                2019012302

                                                1M

                                                1M

                                                1M

                                                3M )

@ IN      NS      ns.baidu.com.

   IN      MX 10  mail.baidu.com. #10为优先级

ns        IN      A       192.168.1.151

mail IN      A       192.168.1.151

www IN      A       192.168.1.151

ftp IN      A       192.168.1.151

vsftpd IN      CNAME  ftp

第1行是一个TTL设定,定义区域中数据文件里面的各项记录的默认TTL值为86400秒,缺少此行不影响使用,但是会出现警告消息

第2行是一个SOA记录的设定。其中,“@”代表相应的域名, IN表示后面的数据使用的是Internet标准。SOA的全称是“Start Of Authority”,表示目前区域授权开始。每一个区域数据文件只能有一个SOA,不能重复,而且必须是所负责区域中的第一个“记录”。在SOA后面分别指定了这个区域的授权主机名称和管理者的信箱。特别注意,授权主机名和管理员信箱后面都要有一个“.”,而且授权主机名称必须能够在DNS设置中找到一个A记录。由于“@”在区域数据文件中有其他含义,因此管理员信箱邮件地址中用“.”代替“@”符号。

接下来包含在括弧中的5组数字是作为与从服务器同步信息而设置的,含义如下。

serial:表示配置文件的修改版本,格式是年、月、日加上修改的次数。每次修改这个配置文件时都应该修改这个数字。因为辅助DNS进行信息同步时,会比较这个数值,如果这个数值比自身的数值大,就进行更新,否则,忽略更新。注意,这个设置很重要,如果你在修改区域中数据文件后,没有更新该值,那么所做的更改就不会更新到网上的其他DNS服务器。

refresh:用来设定辅助DNS与主DNS进行同步的间隔时间。

retry:如果辅助DNS在进行更新失败后,要隔多久再进行重试。

expiry:设定辅助DNS在与主DNS同步失败后,多长时间后清除对应的记录。

minimum:这是默认的最小 TTL值,如果在前面没有指定 TTL值,就以这个为基准。

以上数字都以秒为单位,但也可以用H(小时)、D(天)、W(周)来做单位。

第8~14行是对域名解析的具体设置。第一列表示不同的主机域名,但是省略了后面的域信息。例如“www”其实是 www.baidu.com,“mail”是指 mail.baidu.com。其他设置具有相同的含义。“IN”后面指令的含义如下

NS:用来定义这个主机是个域名服务器。

MX:定义一个邮件交换器。

A指针:定义一个A记录,即域名到IP的记录。

CNAME:定义域名的别名。

之后开启该服务:[root@RHEL ~]# systemctl start named

三.配置案例

1. 正向解析

[root@CentOS7 ~]# vim /etc/named.conf

[root@CentOS7 ~]# vim /var/named/named.baidu.com

用另一台linux客户端将DNS设置为本DNS服务器的IP

重启该服务

测试

 

2.反向解析

[root@CentOS7 ~]# vim /etc/named.conf

[root@CentOS7 ~]# vim /var/named/named.192.168.1

 

3.完全区域传送

[root@CentOS7 ~]# vim /etc/named.conf

[root@RedHat ~]# vim /etc/named.conf

 

重启服务会动态同步主服务其中的区域数据文件,这时在从服务器(slave)上可以看到

4.增量区域传送

[root@CentOS7 ~]# vim /var/named/named.baidu.com

重启服务

测试

通过tail -f /var/log/messages来查看从服务器的日志

5.批量解析

[root@CentOS7 ~]# vim /etc/named.conf

重启服务

测试

猜你喜欢

转载自blog.csdn.net/weixin_43265596/article/details/86634915