7.DNS服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7.DNS服务相关的知识,希望对你有一定的参考价值。

一、概述

DNSDomain Name System)域名系统在TCP/IP网络中提供域名与IP地址的解析服务。

1、域和域名

1DNS树的每个节点代表一个域,通过这些节点,对整个域名空间进行划分,成为一个层次结构。域名空间的每个域的名字,通过域名进行表示。

2)域名:通常由一个完全合格域名(FQDN)标识。FQDN能准确表示出其相对于DNS域树根的位置,也就是节点到DNS树根的完全表述方式,从节点到树根采用反向书写,并将每个节点用”.”分隔,对于DNSgoogle来说,其完全正式域名(FQDN)为google.com

例:geoglecom域的子域,其表示方法为google.com,而wwwgoogle域中的子域,可以使用www.google.com表示。

注:通常情况下,FQDN有严格的命名限制,长度不能超过256字节,只允许使用字符a-z0-9A-Z和减号(-)。点号(.)只允许在域名标志之间或者FQDN的结尾使用,域名不区分大小。

3)分类

域由顶层到下层,可以分为:根域、顶级域、二级域、子域。

ADNS根域下面是顶级域,由internet域名注册授权机构管理,共有以下三种类型的顶级域:

组织域:采用3个字符的代号,表示DNS域中所包含的主要功能或活动。比如,com为商业机构组织,edu为教育机构组织,gov为政府机构组织,mail为军事机构组织,net为网络机构组织,org为非盈利性机构组织,int为国际机构组织;

B、地址域:采用两个字符的国家或地区代号。如cn为中国,kr为韩国,us为美国;

C、反向域:这是个特殊域,名字为in-addr.arpa,用于将IP地址映射到名字(反向查询);

2、区(Zone),资源记录

区是DNS名称空间的一部分,其包含了一组存储在DNS服务器上的资源记录。

使用区的概念,DNS服务器回答关于自己区中主机的查询,每个区都有自己的授权服务器。

3、主域名服务器与辅助域名服务器

当区的辅助服务器启动时,它与该区的主控服务器进行连接并启动一次区传输,区辅助服务器定期与区主控服务器通信,查看区数据是否改变。如果改变了,它就启动一次数据更新传输。

4、辅助服务器的优点:

1)容错能力

配置辅助服务器后,在该区主服务器崩溃的情况下,客户机仍能解析该区的名称。一般把区的主服务器和区的辅助服务器安装在不同的子网上,这样如果到一个子网的连接中断,DNS客户机还能直接查询另一个子网上的名称服务器。

2)减少广域链路的通信量

如果某个区在远程有大量的客户机,用户就可以在远程添加该区的辅助服务器,并把远程的客户机配置成先查询这些服务器,这样就能防止客户机通过慢链路通信来进行DNS查询。

3)减轻主服务器的负载

辅助服务器可以回答该区的查询,从而减少该区主服务器必须回答的查询数。

ADNS服务器

运行DNS服务器程序的计算机,存储DNS数据库信息。DNS服务器会尝试解析客户机的查询请求。

BDNS缓存

DNS服务器在解析客户机请求时,如果本地没有DNS信息,则可以会询问DNS服务器,当其他域名服务器返回查询结果时,该DNS服务器将结果记录在本地的缓存中,成为DNS缓存。当下一次客户机提交相同的请求时,DNS服务器能够直接使用缓存中的DNS信息进行解析。

5DNS查询方式:递归查询和迭代查询

1)递归查询

         递归查询是一种DNS服务器的查询模式,在该模式下DNS服务器接受到客户机请求,必须使用一个准确的查询结果回复给客户机。如果DNS服务器本地没有存储查询DNS信息,那么该服务器会查询其他服务器,并将返回的查询结果提交给客户机。

2)迭代查询

         DNS服务器另外一种查询方式为迭代查询,当客户机发送查询请求时,DNS服务器并不直接回复查询结果,而是告诉客户机另一台DNS服务器地址,客户机再向这台DNS服务器提交请求,依次循环直到返回查询的结果为止。

总结:一般情况下,从PC客户端到本地DNS服务器是属于递归查询,而DNS服务器之间的交互查询就是迭代查询。

6、正向解析与反向解析

1)正向解析

正向解析是指域名到IP地址的解析过程。

2)反向解析

反向解析是从地址到域名的解析过程,反向解析的作用为服务器的身份认证。

7DNS资源记录

1SOA资源记录

每个区在区的开始处都包含了一个起始授权记录(startof authority record),简称SOA记录。

SOA定义了域的全局参数,进行整个域的管理设置。一个区域文件只允许存在唯一的SOA记录。

2NS资源记录

NSName Server)记录是域名服务器记录,用来指定该域名由那个DNS服务器来进行解析,每个区在区根处至少包含一个NS记录。

3A资源记录

地址(A)资源记录把FQDN映射到IP地址。因为有此记录,所以DNS服务器能解析FQDN域名对应的IP地址。

4PTR资源记录

相对于A资源记录,指针(PTR)记录把IP地址映射到FQDN。用于反向查询,通过IP地址找到域名。

5CNAME资源记录

别名记录(CNAME)资源记录创建特定FQDN的别名。用户可以使用CNAME记录来隐藏用户网络的实现细节,使连接的客户机无法知道真正的域名。

例:ping百度时,解析到了百度的别名服务器,百度有个cname=www.a.shifen.com.的别名。

技术分享

6MX资源记录

邮件交换(MX)资源记录,为DNS域名指定的邮件交换服务器。

二、安装DNS

1BIND简介

BIND全称为Berkeley Internet Name Domain(伯克利因特网名称域系统)。BIND主要有三个版本:BIND4BIND8BIND9

BIND8融合了许多提高效率、稳定性和安全性的技术,而BIND9增加了一些超前的理念:IPv6支持、密钥加密、多处理器支持、线程安全操作、增量区传送等等。

2、安装

[[email protected] Desktop]# rpm -ivh/mnt/Packages/ bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm

#改包为DNS服务器的主程序包

[[email protected]]# rpm -ivh/mnt/Packages/bind-chroot-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm

#提高安全性

#bind-chrootbind的一个功能,使bind可以在一个chroot的模式下运行,也就是说,bind运行时的/(根)目录,并不是真正的/(根)目录,只是系统中的一个子目录而已。这样做的目的是为了提高安全性。因为在chroot的模式下,bind可以访问的范围仅限于这个子目录的范围里,无法进一步的提升,进入到系统的其他目录中。

[[email protected] Desktop]# rpm -ivh/mnt/Packages/bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm

#该包为客户端工具,默认安装,用于搜索域名指令。

3DNS服务器相关配置文件

/etc/named.confBIND的核心配置文件,它包含了BIND的基本配置,但其并不包括区域数据

4、启动服务

1)要先启动named服务,否则/var/named/chroot/目录下的文件不会被挂载上

[[email protected] Desktop]# /etc/init.d/namedstart

[[email protected] Desktop]# mount

……

/etc/named on /var/named/chroot/etc/namedtype none (rw,bind)

/var/named on /var/named/chroot/var/namedtype none (rw,bind)

/etc/named.conf on/var/named/chroot/etc/named.conf type none (rw,bind)

/etc/named.rfc1912.zones on/var/named/chroot/etc/named.rfc1912.zones type none (rw,bind)

……..

2)在客户端配置好DNS服务器地址

方法1

[[email protected] Desktop]# cat/etc/resolv.conf

# Generated by NetworkManager

domain localdomain

search localdomain example.com

nameserver 192.168.18.129

方法2:

/etc/sysconfig/network-scripts/ifcfg-eth0文件中添加以下内容:

DNS1=192.168.18.129

三、实战演练

1:配置DNS服务器解析:zhang.cn

1)修改配置文件

[[email protected] Desktop]# cd /var/named/chroot/etc

[email protected] etc]# vim named.conf

11        listen-on port 53 { any; };

12        listen-on-v6 port 53 { any; };

17        allow-query     { any; };

42 zone "zhang.cn" IN {

43        type master;

44        file "zhang.cn.zone";

45 };

注:也可以修改/etc/named.conf,但是为了安全起见,建议修改上述文件

此文件中整体分为以下三段:

Options:对全局生效

Zone:针对某个区域生效

2)配置正向解析区域

[[email protected] etc]# cd/var/named/chroot/var/named/

[[email protected] named]# cp -p named.localhostzhang.cn.zone

[[email protected] named]# vim zhang.cn.zone

  1$TTL 1D

  2zhang.cn.       IN SOA  dns.zhang.cn. root.zhang.cn. (

 3                                        0       ; serial

 4                                        1D      ; refresh

 5                                        1H      ; retry

 6                                         1W      ; expire

 7                                        3H )    ; minimum

  8zhang.cn.       NS      dns.zhang.cn.

  9dns.zhang.cn.   A       192.168.18.129

 10www.zhang.cn.   A       192.168.18.129

 11www1.zhang.cn.  CNAME   www.zhang.cn.

配置文件参数说明:

$TTL 1D   设置有效地址解析记录的默认缓存时间,默认为1天也就是1D

#原来的@表示当前的域zhang.cn.,为了方便理解此处直接写为zhang.cn.

设置SOA记录为:dns.zhang.cn.           #在配置文件写域名时,都把.写上

域管理邮箱root.zhang.cn.             #由于@有其他的含义,所以此处用.代替@

  1. ;更新序列号,用于标识数据库的变换,可以在10位以内,如果存在辅助DNS区域,建议每次更新完数据库,手动加1

    1D    ;刷新时间,从域名服务器更新该地址数据库文件的间隔时间,默认为1天;

    1H    ;重试延时,从域名服务器更新地址数据库失败以后,等待多长时间,默认为1小时;

    1W   ;到期,失效时间,超过该时间仍无法更新数据库,则不再尝试,默认为一周;

    3H    ;设置无效地址解析记录(该数据库中不存在的地址)默认缓存时间。设置无效记录,最少缓存时间为3小时;

    SOA           区域授权起始记录,区域文件第一条记录,而且区域文件只能有一条;

    NS              域的授权名称服务器;

    MX            域的邮件交换器,要跟着一个优先级值,越小越高;

    A                IPV4主机地址;

    AAAA        IPV6主机地址;

    PTR           解析IP的指针;

    CNAME    定义别名记录;

    [[email protected] named]# ll zhang.cn.zone

    -rw-r----- 1 root named 269 Aug 28 20:21zhang.cn.zone

    [[email protected] named]# cd

    [[email protected] ~]# service named restart

    ##测试

    [[email protected] ~]# vim/etc/sysconfig/network-scripts/ifcfg-eth0

    5 DNS1=192.168.18.129

    [[email protected] ~]# /etc/init.d/networkrestart

    [[email protected] ~]# ping www.zhang.cn

    PING www.zhang.cn (192.168.18.129) 56(84)bytes of data.

    64 bytes from server1.example.com(192.168.18.129): icmp_seq=1 ttl=64 time=0.026 ms

    64 bytes from server1.example.com(192.168.18.129): icmp_seq=2 ttl=64 time=0.033 ms

    2:使DNS支持递归查询

    [[email protected] ~]# vim/var/named/chroot/etc/named.conf

    18        recursion yes;             #默认是支持递归查询的

    19

    20 #      dnssec-enable yes;

    21 #      dnssec-validation yes;

    22 #      dnssec-lookaside auto;

    使DNS支持递归查询时,需要将以上三条内容注释,这样客户端才能通过这个DNS进行递归查询,把DNS加密通讯功能关闭,才可以和根服务器进行实时的迭代查询。

    [[email protected] ~]# /etc/init.d/named restart

    ##测试

    [[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

    DNS1=192.168.18.129

    [[email protected] ~]# /etc/init.d/networkrestart

    [[email protected] ~]# ping www.baidu.com

    3DNS转发服务器

    [[email protected] ~]# vim/var/named/chroot/etc/named.conf

    20 #       dnssec-enable yes;

     21#       dnssec-validation yes;

     22#       dnssec-lookaside auto;

     23

     24        /* Path to ISC DLV key */

     25        forward  only;         #仅执行转发操作;(only,仅转发;first,先查找本地zone,再转发)

     26        forwarders {8.8.8.8;};      #指定转发查询请求的DNS服务器列表

     27

     28        bindkeys-file "/etc/named.iscdlv.key";

     29

     30        managed-keys-directory "/var/named/dynamic";

     31};

    #25,26两行应该加到option

    [[email protected] ~]# /etc/init.d/named restart

    4:搭建DNS主从服务器

    1)搭建一个主DNS服务器A,文件配置如下:

    [[email protected] ~]# vim/var/named/chroot/etc/named.conf

    45 zone "zhang.cn" IN {

     46        type master;

     47        file "zhang.cn.zone";

     48        allow-transfer{192.168.18.0/24;};

     49};

    2)从DNS服务器配置如下:

    [[email protected] ~]# rpm -ivh/mnt/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm

    [[email protected] ~]# rpm -ivh/mnt/Packages/bind-chroot-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm

    [[email protected] ~]# rpm -ivh/mnt/Packages/bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm

    [[email protected] ~]# service named start

    [[email protected] ~]# vim/var/named/chroot/etc/named.conf

    10 options {

     11        listen-on port 53 { any; };

     12        listen-on-v6 port 53 { any; };

    17         allow-query     { any; };

     18        recursion yes;

    41 zone "zhang.cn." IN {

     42        type slave;

     43        file "slaves/zhang.cn.zone.file";

     44         masters{ 192.168.18.129; };

     45};

    注:重启DNS服务器时会在:/var/named/chroot/var/named/slaves文件夹下自动创建一个zhang.com.zone.file这个文件,此文件是从主DNS服务器上获取的数据。

    [[email protected] ~]# ls/var/named/chroot/var/named/slaves/

    [[email protected] ~]# service named restart

    [[email protected] ~]# ls/var/named/chroot/var/named/slaves/

    zhang.cn.zone.file

    [[email protected] ~]# ll/var/named/chroot/var/named/slaves/zhang.cn.zone.file

    -rw-r--r-- 1 named named 341 Aug 29 04:54/var/named/chroot/var/named/slaves/zhang.cn.zone.file

    5DNS实现负载均衡

    在例4的基础上操作

    [[email protected] ~]# vim/var/named/chroot/var/named/zhang.cn.zone

    技术分享


    [[email protected] ~]# /etc/init.d/named restart

    ##测试

    技术分享

  1. 技术分享



    6DNS主从密钥认证

    1)保证主从服务器时间同步

     [[email protected] ~]# vim /etc/ntp.conf             #查看ntp服务器

     [[email protected] ~]# ntpdate 0.rhel.pool.ntp.orgiburst          #同步时间

    2)在DNS服务器上生成密钥,进行主从认证

    [[email protected] named]# cd /var/named/chroot/

    [[email protected] chroot]# ls

    dev etc  usr  var

    [[email protected] chroot]# dnssec-keygen -ahmac-md5 -b 128 -n HOST zyz

    Kzyz.+157+50159

    -a hmac-md5             #采用hmac-md5加密算法

    -b 128                          #生成的密钥长度为128

    -n                                #密钥类型,我们此处选择主机类型

    zyz                               #密钥名称

    [[email protected] chroot]# ls

    dev Kzyz.+157+50159.key      usr

    etc Kzyz.+157+50159.private  var

    [[email protected] chroot]# catKzyz.+157+50159.key

    zyz. IN KEY 512 3 157ZFE59lCbuD08q0hbIylvAg==

    [[email protected] chroot]# vim etc/named.conf

     45key zyzkey {

     46        algorithm hmac-md5;

     47        secret "ZFE59lCbuD08q0hbIylvAg==";

     48};

     49zone "zhang.cn" IN {

     50        type master;

     51        file "zhang.cn.zone";

     52        allow-transfer{key zyzkey;};

     53};

    [[email protected] named]# /etc/init.d/namedrestart

    ##检测

    [email protected] Desktop]# vim/var/named/chroot/etc/named.conf

     42key zyzkey {

     43        algorithm hmac-md5;

     44        secret "ZFE59lCbuD08q0hbIylvAg==";

     45};

     46zone "zhang.cn." IN {

     47        type slave;

     48         file "slaves/zhang.cn.zone.file";

     49        masters{ 192.168.18.129 key zyzkey; };

     50};

    [[email protected] Desktop]# rm -fr/var/named/chroot/var/named/slaves/zhang.cn.zone.file

    [[email protected] Desktop]# /etc/init.d/namedrestart

    [[email protected] Desktop]# ls/var/named/chroot/var/named/slaves/

    zhang.cn.zone.file

    附:

    dig/nslookup             #域名解析测试工具


本文出自 “12025595” 博客,转载请与作者联系!

以上是关于7.DNS服务的主要内容,如果未能解决你的问题,请参考以下文章

Linux(DNS)中

DNS互联网架构的实现

dns&bind

centos6.7DNS服务器搭建

Linux 7.5 DNS 主从安装配置 正向反向解析

DNS分离解析