DNS域名解析服务

一、DNS系统的作用及类型

在整个以太网中连接了数以亿计的服务器、个人主机,其中大部分的网站,邮箱都使用了域名形式的地址。也就是使用名字就可以直接访问网站,而不需要使用IP地址去访问网站,即方便人们记忆,表现形式也更加直观。DNS系统在网络中的作用就是维护一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以方便为客户提供正向或反向的地址查询服务,即正向解析和反向解析。

正向解析:根据域名查询IP地址,就是将指定的域名解析为相对应的IP地址。域名的正向解析是DNS服务器最基本的功能,也是最常用的功能。

反向解析:与正向解析相反,就是用IP地址去查询域名。域名的反向解析不常用,只有在特殊场合才会使用,比如反垃圾邮件的验证

根据所管理的区域地址数据的来源不同,DNS系统可分为不同的类型/在同一天DNS服务器中相对于不同的区域来说,也有不同的身份。常见的类型如下:

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

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

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

二、BIND的安装和控制

BIND不是唯一能够提供域名服务的DNS服务程序,但他确是应用最为广泛的,BIND可以运行在大多数Linux和UNIX主机中。

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。

各软件包的主要作用如下:
bind:提供了域名服务的主要程序及相关文件。
bind-utils:提供了对 DNS 服务器的测试工具程序,如 nslookup 等。
bind-libs :提供了 bind bind-utils 需要使用的库函数。
bind-chroot :为 BIND 服务提供一个伪装的根目录(将 /var/named/chroot/ 文件夹
作为 BIND 服务的根目录),以提高安全性。
当然如果觉得麻烦可以用“yum”的方式安装BIND软件服务,使用代码(yum -y install bind*)便可以将所有有关于BIND服务的程序下载下来,也会自动解决所需要的依赖关系。
如果不确定自己安装程序是否完成可以使用命令(rpm -qa | grep ”^bind“)查询,如图:

此命令就是查询所有已安装的bind程序

2.BIND服务的配置文件

主配置文件 named.conf 通常位于/etc/目录下,在 named.conf 文件中,主要包括全局

配置、区域配置两个部分,每一条配置记录的行尾以分号“;”表示结束,以“#”号或“//”开始的

部分表示注释文字(大段注释可以使用“/* …… */”的格式)。

(1)全局配置文件与区域配置文件

vim /etc/named.conf ###进入编辑器编辑配置文件

全局配置文件信息

options {
  listen-on-v6 poet 53 { 192.168.161.136 ; };              #监听53端口,IP地址使用提供服务的本地IP,也可用any代表所有
 #   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
  { any; };                                                #允许使用本DNS解析服务的网段,也可用any代表所有

区域配置文件信息

zone "." IN {                                            #正向解析“. "根区域
    type hint;                                       #类型为根区域
    file "named.ca";                                 #区域数据文件为named.ca,记录了13台根域服务器的域名和IP地址等信息
};

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

每个 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”的错误时,表示找不到对应的文件。

(2)区域数据配置文件

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

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

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

TTL 配置及 SOA 记录部分

$TTL 1D                                                  #设置缓存解析结果的有效时间
@       IN SOA liang.com. admin.liang.com. (            //SOA 标记、域名、管理邮箱 
                                       0; serial .                            //更新序列号,可以是 10 位以内的整数
                                       1D; refresh                         //刷新时间,重新下载地址数据的间隔
                                       1H; retry                             //重试延时,下载失败后的重试间隔
                                       1W; expire                         //失效时间,超过该时间仍无法下载则放弃
                                       3H ) ; minimum                  //无效解析记录的生存周期

地址解析记录部分
 @          NS            ns1.bdqn.com.                      #记录当前区域的DNS服务器的名称
               A               192.168.161.136                  #记录主机IP地址
IN   MX  10              mail.bdqn.com.                 #MX为邮件交换记录,数字越大优先级越低
www  IN  A              192.168.161.136                  #记录正向解析www.liang.com对应的IP
mail   IN  A             192.168.161.100
ftp      IN CNAME  www                              #CNAME使用别名,ftp是www的别名
*        IN   A           192.168.161.200                  #泛域名解析,“*"代表任意主机名

三、使用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

a.root-servers.net. 518400 IN A 198.41.0.4

##VeriSign, Inc.VeriSign公司(美国,弗吉尼亚州)

b.root-servers.net. 518400 IN A 199.9.14.201

##美国加州,玛丽那德尔湾

c.root-servers.net. 518400 IN A 192.33.4.12

##Cogent Communications(美国,弗吉尼亚州)

d.root-servers.net. 518400 IN A 199.7.91.13

##美国 马里兰州立大学公园

e.root-servers.net. 518400 IN A 192.203.230.10

##NASA Ames Research Center美国航空航天管理局(美国加利福尼亚州)

f.root-servers.net. 518400 IN A 192.5.5.241

##Internet Systems Consortium, Inc.因特网软件联盟(美国加利福尼亚州)

g.root-servers.net. 518400 IN A 192.112.36.4

##U.S. DOD Network Information Center美国国防部网络信息中心(美国弗吉尼亚州)

h.root-servers.net. 518400 IN A 198.97.190.53

##美国 马里兰州 阿帕丁

i.root-servers.net. 518400 IN A 192.36.148.17

##Autonomica公司(瑞典,斯德哥尔摩)

j.root-servers.net. 518400 IN A 192.58.128.30

##VeriSign公司(美国,弗吉尼亚州)

k.root-servers.net. 518400 IN A 193.0.14.129

##RIPE NCC(英国,伦敦)

l.root-servers.net. 518400 IN A 199.7.83.42

##ICANN(美国政府授权的互联网域名与号码分配机构)

m.root-servers.net. 518400 IN A 202.12.27.33

##WIDE Project(日本,东京)

由于我们国家互联网起步比较晚,因此13个DNS根服务器没有一个在中国,我们国家虽然错过了ipv4的13个根服务器,但ipv6根DNS服务器中,中国拥有4台服务器,其中,一台为主根,其他三台为辅根。

(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 ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33

将dns服务地址改为192.168.10.101

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

[root@client ~]# nslookup qq.com

构建完成便会发现先客户机用的DNS服务来自于自己设置好的机器。

2:构建主域名服务器

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

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

DNS1的配置

[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

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

(6)重启动或重载服务

[root@ns1 named]# systemctl restart named

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

[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

Name: 123.bdqn.com

Address: 192.168.10.106

3:构建从域名服务器

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

DNS2的配置

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

192.168.10.101 ns1.bdqn.com  ns1

192.168.10.102 ns2.bdqn.com  ns2

(2)安装bind服务

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# systemctl disable firewalld

[root@localhost ~]# setenforce 0

[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux

[root@localhost ~]# yum -y install bind bind-utils bind-libs bind-chroot

(2)修改主配置文件

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

options {

        listen-on port 53 { 192.168.10.102; };

        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 "bdqn.com" IN {

        type slave;

        masters { 192.168.10.101; };

        file "slaves/bdqn.com.zone";

};

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

        type slave;

        masters {192.168.10.101; };

        file "slaves/192.168.10.arpa";

};

(3)启动 named 服务,查看区域数据文件是否下载成功

[root@ns2 ~]# systemctl start named

[root@ns2 ~]# ll /var/named/slaves/

总用量 8

-rw-r--r--. 1 named named 544 7月   3 10:00 192.168.10.arpa

-rw-r--r--. 1 named named 488 7月   3 09:58 bdqn.com.zone

(4)验证从域名服务器

将客户端的DNS服务器修改为192.168.10.102

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

Server: 192.168.10.102

Address: 192.168.10.102#53

Name: www.bdqn.com

Address: 192.168.10.106

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值