DNS服务器的搭建

一.DNS服务器概述

1.域名级别

(1)顶级域名

(2)二级域名

(3)三级域名

2. DNS服务器的类型

3. DNS域名查询方式

(1)递归查询

(2)迭代查询

4. DNS名称解析方式

二.DNS服务配置

1. 安装bind软件

2. named.conf配置文件详解

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

三.配置案例

1. 正向解析

2.反向解析

3.完全区域传送

4.增量区域传送

5.批量解析


一.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

重启服务

测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值