DNS 域名解析服务

目录

DNS 系统的作用及类型

BIND 的安装和控制

1.安装 BIND 软件

2.BIND 服务控制

BIND 服务的配置文件

1.主配置文件

2.区域数据配置文件

1)TTL 配置及 SOA 记录部分

2)地址解析记录部分

使用 BIND 构建域名服务器

 1.构建缓存域名服务器

(1)建立主配置文件 named.conf

(2)确认根域的区域数据文件 named.ca

(3)启动 named 服务

(4)验证缓存域名服务器

2:构建主域名服务器

(1)确认本机的网络地址、主机映射、默认 DNS 服务器地址

(2)建立主配置文件 named.conf

(3)建立正向区域数据文件

(4)建立反向区域数据文件

(5)为区域文件设置属主与属组

(6)检测配置文件和区域文件

(7)重启动或重载服务

(8)客户端验证主域名服务器


DNS 系统的作用及类型

  • 正向解析:根据域名查 IP 地址,即将指定的域名解析为相对应的 IP 地址。域名的 正向解析是 DNS 服务器最基本的功能,也是最常用的功能。
  • 反向解析:根据 IP 地址查域名,即将指定的 IP 地址解析为相对应的域名。域名的反向解析不是很常用,只在一些特殊场才会用到,比如可用于反垃圾邮件的验证。

缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定其他 DNS 服务器作为解析来源。

主域名服务器:维护某一个特定 DNS 区域的地址数据库,对其中的解析记录具有自主控制权,是指定区域中唯一存在的权威服务器、官方服务器。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。

从域名服务器:与主域名服务器提供完全相同的 DNS 解析服务,通常用于 DNS服务器的热备份。对客户机来说,无论使用主域名服务器还是从域名服务器,查询的结果都是一样的。关键区别在于,从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。

BIND 的安装和控制

1.安装 BIND 软件

在 CentOS 系统中,系统光盘自带了 BIND 服务的安装文件,主要包括以下几个

软件包。

bind-9.9.4-37.el7.x86_64.rpm。

bind-utils-9.9.4-37.el7.x86_64.rpm。

bind-libs-9.9.4-37.el7.x86_64.rpm。

bind-chroot-9.9.4-37.el7.x86_64.rpm。

[root@localhost ~]# yum -y install bind bind-utils bind-libs bind-chroot  //安装软件包

备注:

bind:提供了域名服务的主要程序及相关文件。

bind-utils:提供了对 DNS 服务器的测试工具程序,如 nslookup 等。

bind-libs:提供了 bind、bind-utils 需要使用的库函数。

bind-chroot:为 BIND 服务提供一个伪装的根目录(将/var/named/chroot/文件夹作为 BIND 服务的根目录),以提高安全性。

2BIND 服务控制

BIND 软件包安装完毕以后,会自动增加一个名为 named 的系统服务,通过 systemctl工具可以控制 DNS 域名服务的运行。例如,执行以下操作可以查询 named 服务的运行状态

[root@localhost ~]# systemctl status named

● named.service - Berkeley Internet Name Domain (DNS)

Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)

Active: inactive (dead)

BIND 服务的配置文件

1.主配置文件

主配置文件 named.conf 通常位于/etc/目录下,在 named.conf 文件中,主要包括全局配置、区域配置两个部分,每一条配置记录的行尾以分号“;”表示结束,以“#”号或“//”开始的部分表示注释文字。

1)全局配置部分

全局配置参数包括在形如“options { };”的大括号中,如可以设置监听的地址和端口、区

域数据文件存放的目录、允许哪些客户机查询等。

options {

listen-on port 53 { 173.16.16.1; };    //监听地址和端口

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";         ##服务器输出的内存使用统计文件的路径名,注意:还没有在 BIND9 中实现

recursing-file  "/var/named/data/named.recursing";         ##服务器dump安全根到文件的路径

secroots-file   "/var/named/data/named.secroots";         ##服务器dump正在执行的递归查询的文件路径

allow-query { 192.168.1.0/24; 173.16.16.0/24;};    //允许使用本 DNS 服务的网段

};

上述配置内容中,除了 directory 配置项通常会保留以外,其他的配置项都可以省略。若不指定 listen-on 配置项,则 named 默认在所有接口的 UDP 53 端口监听服务;若不指定allow-query 配置项,则默认会响应所有客户机的查询请求。

2)区域配置部分

区域配置参数使用“zone …… { };”的配置格式,一台 DNS 服务器可以为多个区域提供解析,因此在 named.conf 文件中也可以有多个 zone 配置段。区域类型按照解析方向可分为正向区域、反向区域。

zone "bdqn.com" IN {        //正向"bdqn.com"区域

                     type master;         //类型为主区域

                    file "bdqn.com.zone";     //区域数据文件为 bdqn.com.zone

                 allow-transfer { 173.16.16.2; };   //允许下载的从服务器地址

};

zone "16.16.173.in-addr.arpa" IN {      //反向"173.16.16.0/24"区域

                            type master;

                             file "173.16.16.arpa";       //区域数据文件为 173.16.16.arpa

};

在上述配置内容中,有几个地方需要注意:

  • 每个 zone 区域都是可选的(包括根域、回环域、反向域),具体根据实际需要而定,zone 配置部分的“IN”关键字也可以省略。
  • 反向区域的名称由倒序的网络地址和“.in-addr.arpa”组合而成。例如,对于
  • 192.168.1.0/24 网段,其反向区域名称表示为“1.168.192.in-addr.arpa”。
  • file 配置项用于指定实际的区域数据文件,文件名称由管理员自行设置。
  • 区域配置中的部分参数(如 allow-transfer)也可以放在全局配置中。

修改完主配置文件以后,可以执行“named-checkconf”命令对 named.conf 文件进行语法检查。如果文件中没有语法错误,该命令将不给出任何提示;反之,则会给出相应的提示信息,然后根据出错提示修正文件中的错误即可。带“-z”选项的“named-checkconf”命令还可以尝试加载主配置文件中对应的区域数据库文件,并检查该文件是否存在问题。例如,当出现“…file not found”的错误时,表示找不到对应的文件

[root@localhost ~]# named-checkconf -z /etc/named.conf

zone bdqn.com/IN: loading from master file bdqn.com.zone failed: file not found

zone bdqn.com/IN: not loaded due to errors.

_default/bdqn.com/IN: file not found

……

//省略部分内容

2.区域数据配置文件

        区域数据配置文件通常位于/var/named/目录下,每个区域数据文件对应一个 DNS 解析区域,文件名及内容由该域的管理员自行设置。

         根域“.”的区域数据文件比较特殊。Internet 中所有的 DNS 服务器都使用同一份根区域数据文件,其中列出了所有根服务器的域名和 IP 地址。根区域数据文件可以从国际互联网络信息中心(InterNIC)的官方网站地址 InterNIC | The Internet's Network Information Center下载。

        在区域数据文件中,主要包括 TTL(Time To Live,生存时间)配置项、SOA(Start Of Authority,授权信息开始)记录、地址解析记录。文件中的注释信息以“;”(分号)开始。

1)TTL 配置及 SOA 记录部分

第一行的 TTL 配置用于设置默认生存周期,即缓存解析结果的有效时间。SOA 记录部分用于设置区域名称、管理邮箱,以及为从域名服务指定更新参数。

$TTL    86400      //有效解析记录的生存周期

@ IN SOA bdqn.com. admin.bdqn.com.(     //SOA 标记、域名、管理邮箱

                2011030501       //更新序列号,可以是10 位以内的整数

                3H                //刷新时间,重新下载地址数据的间隔

                15M                //重试延时,下载失败后的重试间隔

                1W                //失效时间,超过该时间仍无法下载则放弃

                1D                //无效解析记录的生存周期

)

上述配置内容中,时间单位默认为秒(s),也可以使用 M(分)、H(时)、W(周)、D(天)等单位。文件中的“@”符号表示当前的 DNS 区域名,相当于“bdqn.com.”或“admin.bdqn.com.”,表示域管理员的电子邮箱地址(由于“@”符号已有其他含义,因此将电子邮件地址中的“@”用“.”代替)。SOA 记录中的更新序列号用来同步主、从服务器的区域数据,当从服务器判断区域更新时,若发现主服务器中的序列号与本地区域数据中的序列号相同,则不会进行下载。

2)地址解析记录部分

地址解析记录用来设置 DNS 区域内的域名、IP 地址映射关系,包括正向解析记录和反向解析记录。反向解析记录只能用在反向区域数据文件中。

@        IN        NS        ns1.bdqn.com.

IN        MX        10        mail.bdqn.com.

ns1        IN        A        58.119.74.203

www        IN        A        173.16.16.1

mail        IN        A        173.16.16.4

ftp        IN        CNAME        www

上述配置内容中,用到以下四种常见的地址解析记录。

  • NS(Name Server,域名服务器):记录当前区域的 DNS 服务器的主机地址。
  • MX(Mail Exchange,邮件交换):记录当前区域的邮件服务器的主机地址,数字10 表示(当有多个 MX 记录时)选择邮件服务器的优先级,数字越大,优先级越低。
  • A(Address,地址):记录正向解析条目。例如,“www IN A 173.16.16.1”表示域名 www.bdqn.com 对应的 IP 地址是 173.16.16.1。
  • CNAME(Canonical Name,别名):记录某一个正向解析条目的其他名称。例如,“ftp IN CNAME www”表示域名 ftp.bdqn.com 是 www.bdqn.com 的别名。

其中,NS、MX 记录行首的“@”符号可以省略(默认继承 SOA 记录行首的@信息),但是必须保留一个空格或 Tab 制表符。

在反向区域数据文件中,不会用到 A 记录,而是使用 PTR 指针(Point)记录。例如,对于反向区域 16.16.173.in-addr.arpa,添加的反向解析记录可以是以下形式。

1        IN        PTR        www.bdqn.com.

4        IN        PTR        mail.bdqn.com.

        使用 PTR 记录时,第一列只需要指明对应 IP 地址的“主机地址”部分即可,如“1”或“4”等,系统在查找地址记录时会自动将当前反向域的网络地址作为前缀。例如,上述文件中的“4 IN PTR mail.bdqn.com.”表示 IP 地址为 173.16.16.4 的主机的域名是 mail.bdqn.com.。

        在区域数据配置文件中,凡是不以点号“.”结尾的主机地址,系统在查找地址记录时都会自动将当前的域名作为后缀。例如,若当前的 DNS 域为“bdqn.com”,则在文件中的主机地址“www”相当于“www.bdqn.com.”。因此,当使用完整的 FQDN(Fully Qualified DomainName,完全合格域名/全称域名)地址时,务必记得地址末尾的点号“.”不能省略。

        修改完区域数据文件以后,可以执行“named-checkzone”命令对该文件进行语法检查。依次指定区域名称、数据文件名作为参数。如果文件中没有语法错误,系统将给出“OK”的提示信息。例如,若要检查 DNS 区域 bdqn.com 的区域数据文件 bdqn.com.zone,可以执行以下操作。

[root@localhost ~]# cd /var/named/

[root@localhost named]# named-checkzone bdqn.com bdqn.com.zone

zone bdqn.com/IN: loaded serial 2011030501

OK

        当一台服务器需要同时承载某个 DNS 区域内的许多个不同的域名(如 IDC 的虚拟主机服务器、提供个人主页空间的网站服务器等)时,可以在区域数据文件的最后一行添加泛域名解析记录,即使用  “ * ” 以匹配任意主机名。

*         IN         A         173.16.16.173

使用 BIND 构建域名服务器

 1.构建缓存域名服务器

(1)建立主配置文件 named.conf

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

修改红色部分的,区域部分默认即可

options {

        listen-on port 53 { 192.168.10.101; };

        listen-on-v6 port 53 { ::1; };

        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";

        recursing-file  "/var/named/data/named.recursing";

        secroots-file   "/var/named/data/named.secroots";

        allow-query     { any; };

}

zone "." IN {

        type hint;

        file "named.ca";

};

备注:

也可以不指向根服务器,去掉“zone '.' IN {……};”的设置,在option中添加如下内容

[root@localhost ~]# vi /etc/named.conf

options {

…… //省略部分内容

forwarders { 114.114.114.114; 8.8.8.8; };

};

(2)确认根域的区域数据文件 named.ca

[root@localhost ~]# cat /var/named/named.ca

(3)启动 named 服务

[root@localhost ~]# systemctl start named

[root@localhost ~]# netstat -anptu | grep named

备注:

IPv4的DNS使用TCP53端口和UDP53端口

IPv4的DNS使用TCP953端口和UDP953端口

TCP是用来做区域传送

TDP是用来做DNS解析的

(4)验证缓存域名服务器

在局域网内的客户机中,将首选 DNS 服务器的地址设为 192.168.10.101,生效后,执行“nslookup qq.com”命令对其进行解析,验证其是否能够获得该域名对应的 IP 地址信息。

[root@client ~]# yum -y install bind-utils

[root@client ~]# nslookup qq.com

2:构建主域名服务器

(1)确认本机的网络地址、主机映射、默认 DNS 服务器地址

将主从服务器的IP地址和主机名直接写入到hosts文件,这样可以加快两个服务器之间的域名解析速度

DNS1的配置

[root@localhost ~]# hostnamectl set-hostname ns1.bdqn.com

[root@localhost ~]# bash

[root@ns1 ~]# vim /etc/hosts

192.168.10.101 ns1.bdqn.com  ns1

192.168.10.102 ns2.bdqn.com  ns2

(2)建立主配置文件 named.conf

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

zone "bdqn.com" IN {

        type master;

        file "bdqn.com.zone";

        allow-transfer { 192.168.10.102; };

};

zone "10.168.192.in-addr.arpa" IN {

        type master;

        file "192.168.10.arpa";

        allow-transfer { 192.168.10.102; };     

};

备注:

将文件中原来的zone选项删掉。

(3)建立正向区域数据文件

[root@ns1 ~]# cd /var/named

[root@ns1 named]# vim bdqn.com.zone

$TTL 86400

@ SOA bdqn.com. admin.bdqn.com. (

        2011030301

        4H

        30M

        12H

        1D

)

@     IN  NS      ns1.bdqn.com.

IN         NS      ns2.bdqn.com.

IN         MX  10  mail.bdqn.com.

ns1    IN  A       192.168.10.101

ns2    IN  A       192.168.10.102

ftp     IN  A       192.168.10.104

mail    IN  A       192.168.10.105

www   IN  A       192.168.10.106

*       IN  A       192.168.10.106

(4)建立反向区域数据文件

[root@ns1 named]# vim 192.168.10.arpa

$TTL 86400

@ SOA bdqn.com. admin.bdqn.com. (

2011030301

4H

30M

12H

1D

)

        IN   NS   ns1.bdqn.com.

        IN   NS   ns2.bdqn.com.

106     IN   PTR  www.bdqn.com.

105     IN   PTR  mail.bdqn.com.

104     IN   PTR  ftp.bdqn.com

101     IN   PTR  ns1.bdqn.com.

102     IN   PTR  ns2.bdqn.com.

(5)为区域文件设置属主与属组

[root@ns1 named]# chown :named bdqn.com.zone

[root@ns1 named]# chown :named 192.168.10.arpa

(6)检测配置文件和区域文件

[root@ns1 named]# named-checkconf /etc/named.conf

[root@ns1 named]# named-checkzone bdqn.com /var/named/bdqn.com.zone

zone bdqn.com/IN: loaded serial 2011030301

OK

[root@ns1 named]# named-checkzone 10.168.192.in-addr.arpa /var/named/192.168.10.arpa

zone 10.168.192.in-addr.arpa/IN: loaded serial 2011030301

OK

注意:在检测区域文件的时候,要分别使用正向区域名对正向区域文件检测,使用反向区域名对反向区域文件进行检测。不能都用正向区域名。

(7)重启动或重载服务

[root@ns1 named]# systemctl restart named

(8)客户端验证主域名服务器

[root@client ~]# nslookup www.bdqn.com

Server: 192.168.10.101

Address: 192.168.10.101#53

Name: www.bdqn.com

Address: 192.168.10.106

泛域名解析的测试:

[root@client ~]# nslookup 123.bdqn.com

Server: 192.168.10.101

Address: 192.168.10.101#53

  • 49
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值