dns-server部署和配置

DNS概述入门

DNS (Domain Name System,域名系统),域名与IP的相互映射,提供用户访问互联网; DNS端口:53 UDP协议 DNS的分布式数据库是以域名为索引的,每个域名实际上就是一颗很大的逆向树,树深最大127层,每个节点都有63个字符的文本标号;

DNS解析过程

首先,客户端先在本地缓存查找有没有域名缓存,如果没有,客户端发出DNS请求翻译IP地址或主机名。DNS服务器在收到客户机的请求后:

(4步描述) (1)检查DNS服务器的缓存,若查到请求的地址或名字,即向客户机发出应答信息; (2)若没有查到,则在数据库中查找,若查到请求的地址或名字,即向客户机发出应答信息; (3)若没有查到,则将请求发给根域DNS服务器,并依序从根域查找顶级域,由顶级查找二级域,二级域查找三级,直至找到要解析的地址或名字,即向客户机所在网络的DNS服务器发出应答信息,DNS服务器收到应答后现在缓存中存储,然后,将解析结果发给客户机。 (4)若没有找到,则返回错误信息。

 

 

Dns的分类

主DNS服务器:就是一台存储着原始资料的DNS服务器。 从DNS服务器:使用自动更新方式从主DNS服务器同步数据的DNS服务器。也成辅助DNS服务器。 缓存服务器:不负责本地解析,采用递归方式转发客户机查询请求,并返回结果给客户机的DNS服务器。同时缓存查询回来的结果,也叫递归服务器。 转发器:这台DNS发现非本机负责的查询请求时,不再向根域发起请求,而是直接转发给指定的一台或者多台服务器。自身并不缓存查询结果。

DNS记录类型

A记录:
将域名指向一个IPv4地址(例如:10.10.10.10),需要增加A记录
CNAME记录:
如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录
MX记录:
建立电子邮箱服务,将指向邮件服务器地址,需要设置MX记录
NS记录:
域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置NS记录
TXT记录:
可任意填写(可为空),通常用做SPF记录(反垃圾邮件)使用
AAAA记录:
将主机名(或域名)指向一个IPv6地址(例如:ff03:0:0:0:0:0:0:c1),需要添加AAAA记录
SRV记录:
记录了哪台计算机提供了哪个服务。格式为:服务的名字.协议的类型(例如:_example-server._tcp)
显性URL:
将域名指向一个http(s)协议地址,访问域名时,自动跳转至目标地址(例如:将www.net.cn显性转发到www.hichina.com后,访问www.net.cn时,地址栏显示的地址为:www.hichina.com)。
隐性URL:
与显性URL类似,但隐性转发会隐藏真实的目标地址(例如:将www.net.cn隐性转发到www.hichina.com后,访问www.net.cn时,地址栏显示的地址仍然为:www.net.cn)。

DNS安装部署

环境介绍 

[root@linux ~]# uname -a
Linux linux 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@linux ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 

部署bind

安装bind9

 yum -y install bind*.x86_64
 yum -y install bind bind-chroot bind-utils bind-libs
 systemctl enable named
 systemctl start named
 systemctl status named

检查端口状态

[root@linux ~]# ss -ltnp|grep 53
LISTEN     0      10     172.17.0.1:53                       *:*                   users:(("named",pid=23252,fd=23))
LISTEN     0      10     192.168.1.214:53                       *:*                   users:(("named",pid=23252,fd=22))
LISTEN     0      10     127.0.0.1:53                       *:*                   users:(("named",pid=23252,fd=21))
LISTEN     0      128    127.0.0.1:953                      *:*                   users:(("named",pid=23252,fd=25))
LISTEN     0      10         ::1:53                      :::*                   users:(("named",pid=23252,fd=24))
LISTEN     0      128        ::1:953                     :::*                   users:(("named",pid=23252,fd=26))

调整访问权限

改options中的listen-on那一行的 “127.0.0.1” 为 “any”,allow-query 中的“localhost” 为”any”,意思是接受其他主机的访问和查询,如下:

[root@linux ~]#  vim /etc/named.conf
options {
    listen-on port 53 { any; };
    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; };

    recursion no;

重启bind服务

[root@linux ~]# systemctl restart named

添加配置zone

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

zone "dns.com." IN {
        type master;
        file "dns.com.zone";
};

配置正向解析

[root@localhost ~]#  cd /var/named/
[root@localhost named]# cp named.localhost ceshi.com.zone
[root@localhost named]# chown named.named ceshi.com.zone
[root@localhost named]# chmod 640 ceshi.com.zone
改为如下配置:
$TTL 1D

@       IN SOA  ns.ceshi.com. xx.ceshi.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns.test.com.
ns      A       192.168.56.11
master  A       192.168.56.11
www    CNAME    master
web    CNAME    slave

配置反向解析

编辑 /etc/named.conf 在第3步添加的 zone 下面 添加

zone "0.168.192.in-addr.arpa." IN {
        type master;
        file "192.168.1.rev";
};

 

 创建rev文件

 cd /var/named/
cp ceshi.com.zone 192.168.1.rev
chown named.named 192.168.1.rev

 

 编辑 192.168.56.rev

[root@localhost named]# cat 192.168.1.rev
$TTL 1D
@       IN SOA  ns.ceshi.com. xx.ceshi.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       NS    ns.ceshi.com.
1     PTR    ns.ceshi.com.    
1     PTR    master.ceshi.com.
2     PTR    slave.ceshi.com 

 检查配置文件

[root@localhost named]# named-checkconf /etc/named.conf
[root@localhost named]# named-checkzone "0.168.192.in-addr.arpa" /var/named/192.168.1.rev
zone 56.168.192.in-addr.arpa/IN: loaded serial 0
OK  ##正常

bind配置文件详解

主服务端(访问外网)
安装DNS服务所需要的软件包
yum -y install bind bind-chroot bind-util bind-libs
备注:
  bind           提供了域名服务的主要程序及相关文件  
  bind-utils     提供了对DNS服务器的测试工具程序(如nslookup、dig等)
  bind-chroot    为bind提供一个伪装的根目录以增强安全性(将“/var/named/chroot/”文件夹作为BIND的根目录)

 cat /etc/named.conf
 options {
        listen-on port 53 { any; };      #使用53端口监听,默认监听的是127.0.0.1,这里修改为any(或者直接修改为服务端的ip地址)
        listen-on-v6 port 53 { ::1; };            #监听ipv6的IP地址选项
        directory       "/var/named";             #DNS的根目录,由于安装了bind-chroot的所致,因此服务的实际工作目录为/var/named/chroot/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; };         #允许查询的主机,默认为localhost,这里修改为any
        recursion yes;                    #可以递归查询

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;
        bindkeys-file "/etc/named.iscdlv.key";
        managed-keys-directory "/var/named/dynamic";
};

logging {                               #named服务的日志文件信息
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {                        #根(.)域的配置及信息(也可以通过其它上级域名转发功能来配置缓存域名服务器,可以去了解下)

        type hint;
        file "named.ca";
};

zone "test.com" IN {                       #指定区名。正向解析
        type master;                            #服务器类别,master为主域名
        file "test.com.zone";              #正向解析区域文件名wangshibo.com_zone,在/var/named目录下创建
        allow-transfer {192.168.1.253;};         #指定从(辅助)域名服务器IP。即DNS从服务器的ip是192.168.1.253
};
zone "1.168.192.in-addr.arpa" IN {        #域名对应的ip地址网段为192.168.1.0,此处必须按照相 。反向解析                                          同的格式写
        type master;
        file "192.168.1.zone";               #反向解析文件名192.168.1.zone
        allow-transfer {192.168.1.23;};
};

正向解析
cat /var/named/test.com.zone
$TTL1D
@       IN SOA  ns1.test.com. mail.test.com. (
                                        2021121401    #主DNS的此解析文件没改动一次,都要修改一次这个值,然后重启naned或rndc reload重启,从DNS就会自动同步过去
                                        1D   
                                        1H    
                                        1W   
                                        3H ) 
@                IN      NS       ns1.test.com.             #主域名的域名地址。NS是域名服务器
ns1.test.com.    IN      A        192.168.1.254             #主域名的ip地址
@                IN      NS       ns2.test.com.             #从域名的域名地址。NS是域名服务器
ns2.test.com.    IN      A        192.168.1.253             #从域名的ip地址
@                IN      MX 10    mail.test.com.            #邮件服务器的域名地址
mail.test.com.   IN      A        192.168.1.252          
www.test.com.    IN      A        192.168.1.100
cc.test.com.     IN      CNAME    ns1.test.com.

反向解析
cat /var/named/192.168.1.zone
$TTL 1D                      
@       IN SOA  ns1.test.com. mail.test.com. (
                                        2021121401    #主DNS的此解析文件没改动一次,都要修改一次这个值,然后重启naned或rndc reload重启,从DNS就会自动同步过去
                                        1D
                                        1H
                                        1W    
                                        3H )  
@               IN      NS      ns1.test.com.
@               IN      NS      ns2.test.com.
254             IN      PTR     ns1.test.com.
253             IN      PTR     ns2.test.com.
@               IN      MX 10   mail.test.com.
252             IN      PTR     mail.test.com.
200             IN      PTR     www.test.com.

systemctl restart named

验证BIND

检查配置文件

[root@localhost named]# named-checkconf /etc/named.conf
[root@localhost named]# named-checkzone "qiu.com." /var/named/qiu.com.zone
zone qiu.com/IN: loaded serial 0
OK

测试域名解析

在windows客户端上修改DNS地址为DNS服务器的IP地址
ping www.qiu.com

 在DNS服务器上添加域名和IP的解析

vim /var/named/qiu.com.zone

$TTL 1D


@ IN SOA ns.qiu.com. xx.qiu.com. (
        0 ; serial
        1D ; refresh
        1H ; retry
        1W ; expire
        3H ) ; minimum
     NS      ns.test.com.
ns    A    192.168.0.95
master  A    192.168.0.95
www    CNAME  master
web  CNAME  slave

ysp   A    192.168.0.121                     //添加A记录ysp,解析到192.168.0.121

abc     A    192.168.0.121                   //添加A记录abc 

 

在windows客户机上测试解析ysp.qiu.com可以解析到192.168.0.121

 

posted @ 2023-02-15 17:23  粉色纽扣  阅读(1023)  评论(0编辑  收藏  举报