DNS
发布日期:2021-06-30 20:53:58 浏览次数:3 分类:技术文章

本文共 14548 字,大约阅读时间需要 48 分钟。

简介:

简介: DNS用于实现域名和IP地址的相互转换。当在客户机的浏览器中输入要访问的主机名(域名)时,就会触发一个IP地址的查询请求,该请求就会自动发送到默认的DNS服务器,DNS服务器就会从数据库中查询该主机名所对应的的IP地址,并将找到的IP地址作为查询结果返回。浏览器获得IP地址后,就根据IP地址在网络中定位所要访问的资源。 DNS服务器分为高速缓存服务器 主服务器 辅助服务器 DNS的区域可以分为:向所搜区域和反向所搜区域,正向所搜区域就是DNS服务器要实现的主要功能,它根据计算机的域名解析出相应的IP地址;而反向搜索就是根据计算机的IP地址解析出它的DNS名称。

使用bind作为服务器软件的DNS服务器约占DNS服务器的九成。

配置文件概括

/var/named/chroot/etc/named.conf

这是DNS服务器的主配置文件,在该文件中可以设置同用参数来是实现对DNS服务器的配置。

/var/named/chroot/var/named/named.ca

该文件是根域DNS服务器指向的文件,利用该文件可以让DNS服务器找到根服务器并初始化DNS的缓冲区。用户一般不要随便修改该文件。

/var/named/chroot/etc/named.rfc1912.zones

该文件是named.conf的辅助区域配置文件。除了根区域外,其他所有区域的配置建议在named.rfc1912.zones文件中配置,主要是为了方便管理,不轻易破坏主文named.conf

(4)区域配置文件
分为两类:

/var/named/chroot/var/named/named.localhost

本机主机正向解析文件

/var/named/chroot/var/named/named.loopback

本机反向解析文件

对于DNS主配置文件,在bind9中有特殊的约定,系统在安装后,并没有启用chroot机制,只有/etc/named.conf文件,没有建立/var/named/chroot/etc/named.conf文件。启动服务后自动建立。

我在实验时并没有发现/var/named/chroot/etc/目录中有named.conf文件,推测是需要自己复制过来。

配置文件解析

主配置文件/etc/named.conf

//// named.conf//// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS// server as a caching only nameserver (as a localhost DNS resolver only).//// See /usr/share/doc/bind*/sample/ for example named configuration files.//// See the BIND Administrator's Reference Manual (ARM) for details about the// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.htmloptions {        listen-on port 53 { 127.0.0.1; };         #指定服务侦听的IP地址和端口        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";           recursing-file  "/var/named/data/named.recursing";             secroots-file   "/var/named/data/named.secroots";                 allow-query     { localhost; };      #指定允许查询的机器列表          If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.         - If you are building a RECURSIVE (caching) DNS server, you need to enable           recursion.         - If your recursive DNS server has a public IP address, you MUST enable access           control to limit queries to your legitimate users. Failing to do so will           cause your server to become part of large scale DNS amplification           attacks. Implementing BCP38 within your network would greatly           reduce such attack surface           recursion yes;         #指定是否允许递归查询   dnssec-enable yes;    dnssec-validation yes;   /* Path to ISC DLV key */        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 {        channel default_debug {                file "data/named.run";                severity dynamic;        };};zone "." IN {            #定义“.”(根)区域        type hint;        #定义区域类型为根区域服务器        file "named.ca";     #指定该区域的数据库文件为named.ca};include "/etc/named.rfc1912.zones";    #定义named.conf辅助区域配置文件include "/etc/named.root.key";

options配段

options字段主要用来设置全局选项,如定义文件的默认保存目录等。
directory:用来定义服务器的区域文件的默认路径
区域声明
区域声明使用zone,基本格式为:
zone “区域名称” IN {
type 配置项;
file 配置项;
其他配置项;
};
在zone配置段中通常使用一下两个配置项命令
(1)type:设置区域的类型一般有master(主DNS服务器) slave(辅助DNS服务器) hint(根区域服务器)三种
(2)file:指定区域文件的名称,应在文件名两边使用双引号

注意以上配置语句除了第一句外均以“;”结束

正向区域配置文件/var/named/named.localhost

$TTL 1D@       IN SOA  @ rname.invalid. (                                        0       ; serial                                        1D      ; refresh                                        1H      ; retry                                        1W      ; expire                                        3H )    ; minimum        NS      @        A       127.0.0.1        AAAA    ::1

(1) $TTL 1D

该行用来设置域的默认生存时间TTL,时间为天。1D代表1天,也可以用秒表示。
(2) @ IN SOA @ rname.invalid. (
@ 符号表示当前的域 也就是在zone中配置定义的域名;IN代表地址类别;SOA是主域名服务器区域文件中一定要设置的,用于开始权威的域名信息记录。
SOA后的 @ 代表DNS的主机名;再之后就是填写域名服务器管理员的e-mail的地址,格式从ranme@invalid. 变为 ranme.invalid.
ranme.invalid. 是有点的 自己在这吃过亏
(3) 接下来括号中的值位于3~7行,其含义是:
分好为注释符,之后的文字是用于对该行的数值进行注释说明。
serial行前面的值代表该区域文件的版本号或序列号。
refresh行前面的值代表更新时间的周期。
retry行前面的值代表在更新出现通信故障时的重试时间
expire行前面的值代表重新执行更新动作后仍然无法完成更新任务而终止更新的时间
(4) NS @
指定域名服务器,NS之后放置当前域名服务器的名称,@代表当前域名服务器。
(5) A 127.0.0.1
地址记录,该条记录的含义就是将localhost解析为127.0.0.1
(6) AAAA ::1
表示ipv6的地址记录。将localhost解析为::1

反向区域配置文件/var/named/named.loopback

$TTL 1D@       IN SOA  @ rname.invalid. (                                        0       ; serial                                        1D      ; refresh                                        1H      ; retry                                        1W      ; expire                                        3H )    ; minimum        NS      @        A       127.0.0.1        AAAA    ::1        PTR     localhost.

该文件中的内容与正向区域文件基本相同,只是多了最后一行内容。

最后一行的RTP用于定义一个RPT记录,即定义一条反向解析记录。该行的localhost,代表将127.0.0.1这个地址解析为localhost域名。

实验测试

安装DNS服务器程序

yum install -y bind*

服务器对应的IP地址以及域名

DNS服务器         dns.tengyi.com.cn      <----->  10.67.65.160Web服务器          www.tengyi.com.cn     <----->   10.67.65.15FTP服务器           ftp.tengyi.com.cn       <----->      10.67.65.30邮件服务器         mail.tengyi.com.cn       <----->       10.67.65.16

配置DNS服务器网卡

配置DNS服务器网卡的IP地址为10.67.65.160

编辑/etc/named.conf主配置文件

options {        listen-on port 53 { any; };       #更改为“any”,表示侦听任何IP地址的53号端口        listen-on-v6 port 53 { any; };     #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";        recursing-file  "/var/named/data/named.recursing";        secroots-file   "/var/named/data/named.secroots";        allow-query     { any; };         #允许所有机器查询DNS服务        /*         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.         - If you are building a RECURSIVE (caching) DNS server, you need to enable           recursion.         - If your recursive DNS server has a public IP address, you MUST enable access           control to limit queries to your legitimate users. Failing to do so will           cause your server to become part of large scale DNS amplification           attacks. Implementing BCP38 within your network would greatly           reduce such attack surface        */        recursion yes;        dnssec-enable yes;        dnssec-validation yes;        /* Path to ISC DLV key */        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 {        channel default_debug {                file "data/named.run";                severity dynamic;        };};zone "." IN {        type hint;        file "named.ca";};include "/etc/named.rfc1912.zones";include "/etc/named.root.key";

编辑/etc/named.rfc1912.zones辅助区域配置文件

在文件尾部添加如下内容

zone "tengyi.com.cn" IN {    #定义正向解析区域       type master;                 #设置为主DNS服务器       file "tengyi.com.cn.zone";     #设置区域配置文件名称       allow-update { none; };};zone "65.67.10.in-addr.arpa" IN {      #定义反向解析区域       type master;                    file "10.67.65.zone";                 #设置区域配置文件名称       allow-update { none; };};

file “tengyi.com.cn.zone”; #设置区域配置文件名称

file “10.67.65.zone”; #设置区域配置文件名称
在辅助区域设置的文件夹名称,在/var/named目录下一定要有对应的数据文件。

配置正向区域文件/var/named/tengyi.com.cn.zone

在/var/named/目录下创建正向区域文件,可以将模板named.localhost复制过来。

cd /var/namedcp -p /var/named/named.localhost  tengyi.com.cn.zone$TTL 1D@       IN SOA  dns.tengyi.com.cn.  rname.invalid. (                                        0       ; serial                                        1D      ; refresh                                        1H      ; retry                                        1W      ; expire                                        3H )    ; minimum        NS      dns.tengyi.com.cn.        A       127.0.0.1        AAAA    ::1        MX   10   mail.tengyi.com.cn      #指定区域的,X记录dns     A         10.67.65.160              #指定域名为dns.tengyi.com.cn的A记录www     A         10.67.65.15                #指定域名为www.tengyi.com.cn的A记录ftp     A         10.67.65.30                   #指定域名为ftp.tengyi.com.cn的A记录mail    A         10.67.65.16                  #指定域名为mail.tengyi.com.cn的A记录

配置反向区域文件/var/named/10.67.65.zone

cp -p /var/named/named.loopback     10.67.65.zonevim 10.67.65.zone$TTL 1D@       IN SOA  dns.tengyi.com.cn.  rname.invalid. (                                        0       ; serial                                        1D      ; refresh                                        1H      ; retry                                        1W      ; expire                                        3H )    ; minimum        NS      dns.tengyi.com.cn.        A       127.0.0.1        AAAA    ::1        MX  10   mail.tengyi.com.cn        PTR     localhost.       ######一下四条记录为反向解析记录########160     PTR     dns.tengyi.com.cn15      PTR     www.tengyi.com.cn30      PTR     ftp.tengyi.com.cn16      PTR     mail.tengyi.com.cn

160 PTR dns.tengyi.com.cn

15 PTR www.tengyi.com.cn
30 PTR ftp.tengyi.com.cn
16 PTR mail.tengyi.com.cn

注意它们的头部都是IP地址的尾部,不可以不写。自己就曾在这儿犯错

== PTR localhost. 不能缺少==

配置DNS客户端

修改客户端的网卡配置文件,将DNS地址改为10.67.65.160

vim /etc/sysconfig/network-scripts/ifcfg-ens33

重启客户端

reboot

使用命令重启DNS服务

systemctl restart named

验证

在这里插入图片描述

使用bind工具排错

named-checkconf用于检测主配置文件/etc/named.conf,如果配置有错误将会给出提示,配置正确则无任何提示。

named-checkconf /etc/named.conf

如图:

在这里插入图片描述

named-checkzone用于检测区域配置文件,如果有错误将给予提示,并报告错误。

named-checkzone tengyi.com.cn   tengyi.com.cn  /var/named/tengyi.com.cn.zone

在这里插入图片描述

辅助DNS服务器

准备再配置一台辅助DNS服务器,其IP地址设置为192.168.89.130.首先需要在服务器中安装BIND包,然后修改主配置文件即可,不需另外创建每个域名对应的区域配置文件。

修改主服务器的named.conf文件

添加一下内容

options {    directory"/var/named";              allow-transfer   { 192.168.89.130; };     };

注意:也可以将allow-transfer中的IP地址写为any

编辑主服务器的正向解析文件

cd /var/named/tengyi.con.cn.zone$TTL 1D@       IN SOA  dns.tengyi.com.cn.  rname.invalid. (                                        0       ; serial                                        1D      ; refresh                                        1H      ; retry                                        1W      ; expire                                        3H )    ; minimum        NS      dns.tengyi.com.cn.              NS      slave.tengyi.com.cn.              #添加辅助DNS的NS记录        A       127.0.0.1        AAAA    ::1        MX   10   mail.tengyi.com.cndns     A         10.67.65.160www     A         10.67.65.15ftp     A         10.67.65.30mail    A         10.67.65.16slave   A        192.168.89.130                 #添加辅助DNS的A的记录

编辑主服务器的反向区域文件

vim  /var/named/10.67.65.zone$TTL 1D@       IN SOA  dns.tengyi.com.cn.  rname.invalid. (                                        0       ; serial                                        1D      ; refresh                                        1H      ; retry                                        1W      ; expire                                        3H )    ; minimum        NS      dns.tengyi.com.cn.        NS      slave.tengyi.com.cn.        #添加辅助DNS的NS记录        A       127.0.0.1        AAAA    ::1        MX  10   mail.tengyi.com.cn        PTR     localhost.160     PTR     dns.tengyi.com.cn15      PTR     www.tengyi.com.cn30      PTR     ftp.tengyi.com.cn16      PTR     mail.tengyi.com.cn130     PTR    slave.tengyi.com.cn.          #添加辅助DNS的PTR的PTR记录

在需要配置辅助DNS的服务器上安装BIND包

与主服务器上安装的过程一样,不再赘述。

在辅助服务器上启动DNS服务

systemctl restart named

在辅助DNS服务器上编辑named.conf文件

vim  /etc/named.confoptions {        listen-on port 53 { any; };        listen-on-v6 port 53 { any; };        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; };       recursion yes;   dnssec-enable yes;        dnssec-validation yes;  /* Path to ISC DLV key */        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 {        channel default_debug {                file "data/named.run";                severity dynamic;        };};zone "." IN {        type hint;        file "named.ca";};include "/etc/named.rfc1912.zones";include "/etc/named.root.key";

在辅助DNS服务器上编辑named.rfc1912.zones文件

zone "tengyi.com.cn" IN {       type slave;      #指定区域类型为辅助区域       file "slaves/tengyi.com.cn.zone";     #设置保存区域文件的位置为/var/named/slaves目录       masters { 10.67.65.160; };     #指定该辅助区域对应的主DNS服务器的IP地址     };zone "65.67.10.in-addr.arpa" IN {       type slave;       file "slaves/10.67.65.zone";       masters { 10.67.65.160; };};

查看/var/named/slaves目录

ls /var/named/slaves/

重启服务

重启服务后再次查看/var/named/slaves目录可以看到内容。

注意:如果主服务器的区域文件没有复制过来,应该是防火墙或者selinux没关,如果DNS服务器上记录信息发生变更,一定要将区域文件中的‘serial’参数+1 并使用如下命令重新加载named,以使辅助DNS服务器能够同步主DNS服务的记录信息

简单DNS负载均衡

通过将DNS进行配置将访问FTP服务器的用户进行分流,以达到均衡负载的目的。后添加的两台FTP服务器的IP地址为10.67.65.245和10.67.65.246,这三台FTP服务器统一使用域名ftp.tengyi.com.cn

对于DNS的主配置文件不需要进行任何配置,只需要修改区域配置文件tengyi.com.cn.zone和10.67.65.zone即可。

修改正向区域文件

vim /var/named/tengyi.com.cn.zone$TTL 1D@       IN SOA  dns.tengyi.com.cn.  rname.invalid. (                                        0       ; serial                                        1D      ; refresh                                        1H      ; retry                                        1W      ; expire                                        3H )    ; minimum        NS      dns.tengyi.com.cn.        A       127.0.0.1        AAAA    ::1        MX   10   mail.tengyi.com.cndns     A         10.67.65.160www     A         10.67.65.15ftp     A         10.67.65.30      #原FTP服务器的A记录mail    A         10.67.65.16#后面添加的两台ftp服务器的A记录ftp     A         10.67.65.245ftp     A         10.67.65.246

修改反向区域文件

同样在反向区域文件10.67.65.zone中添加两行

245   PTR     ftp.tengyi.com.cn246   PTR     ftp.tengyi.com.cn

重启测试

host ftp.tengyi.com.cn

DNS转发

如果DNS服务器配置为DNS转发模式,其实就是创建成缓存服务器。对于DNS转发服务器,与辅助DNS服务器类似,只需要简单的配置named.conf文件,不需要单独配置区域文件。与辅助服务器不同的是,在DNS转发服务器上不需要zone语句设置区域。

获取DNS服务器IP地址

要配置DNS转发服务器,首先必须要获取一个或多个有效的DSN服务器IP地址。本例的DNS转发器设置为61.128.192.68和61.128.128.68
编辑named.conf文件

options {   directory  "/var/named";    forwarders   { 61.128.192.68;61.128.128.68; };      #设置DNS转发服务器的IP地址    forward  first;          #设置DNS转发的工作方式为first };

重启DNS服务

转载地址:https://liushiya.blog.csdn.net/article/details/89918266 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:centos7 pptp
下一篇:Samba

发表评论

最新留言

不错!
[***.144.177.141]2024年04月15日 03时43分24秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章