DNS服务器笔记

Posted 醉人与轩

tags:

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

一、DNS域名解析服务
1、DNS服务器的作用和类型
    1)DNS服务器的作用
        将域名解析为IP地址
        将IP地址解析为域名
    2)DNS服务器的类型
        hosts:平面文件维护复杂解析瓶颈
        DNS服务器:采用树形结构设计,数据分布式保存,解析速度快
2、DNS服务器层次结构
    1)·根
        互联网起始位置
        全球13个根
    2)顶级域
        国家地区域:两个字符
        组织域:三个字符
        cn:中国
        hk:香港
        us:美国
        com:商用
        edu:教育
        gov:政府
    3)二级域
        顶级域下一级二级域
    4)FQDN
        FQDN=主机名+域的后缀
        FQDN完全合格域名
3、DNS服务器的类型 
    1)缓存服务器
        不提供域名解析服务
        缓存用户历史访问的数据
        加快用户解析速度
        减少公网带宽资源占用
    2)主域名服务器
        保存区域的正本数据
        可以添加删除修改区域中的数据
    3)从域名服务器
        保存的是区域的副本数据
        不可以添加删除修改区域中的数据
4、DNS资源记录类型
    1)SOA
        起始授权机构
        域名的后缀名字
    2)NS
        DNS服务器器 
    3)A记录
        主机名
    4)CNMAE 
        别名
        一台计算机映射多个名字
    5)PTR 
        反向指针
        反向DNS解析使用
    6)MX记录
        邮件交换记录
        收发电子邮件使用
    7)SRV
        Windows域控制器使用
二、安装和配置DNS服务器
1、安装DNS服务器 
    1)安装服务 
        [root@centos02 ~]# yum -y install bind bind-utils bind-chroot
    2)设置服务开机自动启动
        [root@centos02 ~]# systemctl enable named
2、DNS配置文件位置
    1)主配置文件 
        /etc/named.conf
    2)区域配置文件
        /var/named/
    3)主配置文件常见配置选项
        listen-on port 53 { 127.0.0.1; };            //监听端口53,监听IP地址127.0.0.1
        directory       "/var/named";                //区域数据保存的位置
        allow-query     { localhost; };                //允许本地使用DNS服务器
3、配置主DNS服务器
    1)修改主配置文件
        [root@centos02 ~]# vim /etc/named.conf
        options {                                    //全局配置
         listen-on port 53 { any; };                //监听端口和所有IP地址
         directory "/var/named/";                    //区域数据 
        };
        zone "benet.com" IN {                        //正向解析域名benet.com 
         type master;                                //指定为主DNS服务器
         file " benet.com.zone";                    //正向解析区域数据库名字
         allow-transfer { 192.168.100.30; };        //允许192.168.100.30同步正向解析数据
        };
        zone "100.168.192.in-addr.arpa" IN {        //反向解析网络地址倒着写
         type master;                                //指定为主DNS服务器 
         file "192.168.100.arpa";                    //反向区域数据库名字
         allow-transfer { 192.168.100.30; };        //允许192.168.100.30同步反向区域数据库
        };
    2)检查主配置文件是否错误
        [root@centos02 ~]# named-checkconf /etc/named.conf
    3)创建正向解析文件
        [root@centos02 ~]# vim /var/named/benet.com.zone
        $TTL            86400                                                //缓存时间1天
        @               SOA             benet.com.      root.benet.com. (    //域名benet.com
                        2021032310                                            //更新序列号
                        1H                                                    //更新频率1小时
                        15M                                                    //失败重新尝试15分钟
                        1W                                                    //失效时间1周
                        1D                                                    //缓存1天
        )
        @               NS              centos02.benet.com.                    //第一台DNS服务器
                        NS              centos03.benet.com.                    //第二台DNS服务器
        centos02        A               192.168.100.20                        //第一台DNS服务器IP
        centos03        A               192.168.100.30                        //第二台DNS服务器
        www             A               192.168.100.20                        //网站主机IP地址
        ftp             CNAME           www                                    //网站别名是ftp
        *               A               192.168.100.100                        //通配符域名
    4)检查正常区域配置文件 
        [root@centos02 ~]# named-checkzone benet.com /var/named/benet.com.zone 
    5)配置反向解析配置文件
        [root@centos02 ~]# vim /var/named/192.168.100.arpa 
        $TTL            86400
        @               SOA             benet.com.      root.benet.com. (
                        2021032310
                        1H
                        15M
                        1W
                        1D
        )
        @               NS              centos02.benet.com.
                        NS              centos03.benet.com.
        20              PTR             centos02.benet.com.
        30              PTR             centos03.benet.com.
        20              PTR             www.benet.com.
        20              PTR             ftp.benet.com.
    6)检查反向区域配置文件 
        [root@centos02 ~]# named-checkzone 100.168.192.in-addr.arpa /var/named/192.168.100.arpa 
    7)启动DNS服务
        [root@centos02 ~]# systemctl start named
    8)监听53号端口
        [root@centos02 ~]# netstat -anptu | grep 53
4、配置辅助DNS服务器 
    1)修改主配置文件 
        [root@centos03 ~]# vim /etc/named.conf
        options {
         listen-on port 53 { any; };
         directory "/var/named/";
        };
        zone "benet.com" IN {
         type slave;                                //备份从DNS服务器
         file "slaves/benet.com.zone";                //正向DNS区域数据
         masters { 192.168.100.20; };                //主DNS服务器
        };
        zone "100.168.192.in-addr.arpa" IN {
         type slave;                                //备份从DNS服务器
         file "slaves/192.168.100.arpa";            //反向DNS区域数据
         masters { 192.168.100.20; };                //主DNS服务器 
        };
    2)检查主配置文件 
        [root@centos03 ~]# named-checkconf /etc/named.conf
    3)启动服务 
        [root@centos03 ~]# systemctl start named
        [root@centos03 ~]# systemctl enable named

DNS功能:
正向解析:根据域名查找IP地址是DNS服务器最常用的基本功能。
反向解析:根据IP查找域名。

DNS作用:将域名解析为IP地址,将IP地址解析为域名。

DNS服务器分类
缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高数据查询速度和效率,但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定其它DNS服务器作为解析来源。
主域名服务器:维护某一个特定DNS区域的地址数据库,对其中的解析记录有自主控制权,是指定区域中唯一存在的权威服务器、官方服务器。构建主域名服务器时,需要自行建立所有负责区域的地址数据文件。
从域名服务器:功能和主域名服务器一致,通常用于DNS服务器的热备份。对于客户机来说,无论使用的是主域名服务器还是从域名服务器,查询结果都是一样的。

DNS的查询方式:
递归查询:
查询DNS的客户端叫resolver。Resolver向DNS A查询,DNS A 向DNS B 查询,DNS B向DNS C 查询。此时查询到结果,然后DNS C 返回给DNS B,DNS B再返回给DNS A.DNS A 返回给resolver。
本机向本地域名服务器发出一次查询请求,就静待最终的结果。如果本地域名服务器无法解析,自己会以DNS客户机的身份向其它域名服务器查询,直到得到最终的IP地址告诉本机 
迭代查询:
如果DNS2不能相应DNS1的请求,则他会将DNS3的IP地址给DNS2,DNS2再向DNS3发起请求。
本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询。
DNS记录类型
NS 管理这个域的记录

       A 域名和IP的对应的记录

       MX 邮件交换记录 收发电子邮件使用

       CNAME 别名记录

       PTR 反向解析记录

       *泛解析,特殊的A记录(找不到对应的A记录时,使用“*”进行匹配) 
       
       SRV:Windows域控制器使用
       时间单位默认为秒(S),也可以使用M(分)、H(时)、W(周)、D(天)
NS(Name Server,域名服务器):记录当前区域的DNS服务器的主机地址
MX(Mail Exchange,邮件交换):记录当前区域的邮件服务器的主机地址,数字表示(当有多个MX记录时)选择邮件服务器的优先级(数字越大,优先级越低)
A(Address,地址):记录正向解析条目
CNAME(Canonical Name,别名):记录某一个正向解析条目的其他名称
PTR指针记录,只用在反向解析区域中,记录的第一列指定IP地址中的主机地址部分即可
*  泛域名解析,找不到精确的A记录时,使用“*” 匹配
       
相关文件
    /usr/sbin/named        主要执行程序
    默认·端口:53
    主配置文件: /etc/named.conf
    保存DNS解析记录的数据文件位于 /var/named
主配置文件
options {                            //全局配置
        listen-on port 53 { 127.0.0.1; };                  //监听端口默认53,监听ip地址
        directory       "/var/named";                     //区域数据文件路径
        allow-query     { localhost; };                   //允许那些主机访问dns服务

zone "benet.com" IN {                  //区域配置,正向“benet.com”区域
        type master;                      //类型为主区域
        file "benet.com.zone";              //区域数据文件为benet.com.zone
        allow-transfer { 192.168.100.10 };     //允许下载的从服务器地址

zone "100.168.192.in-addr.arpa" IN {         //反向192.168.100.0/24区域
        type master;                         //类型为主区域
        file "192.168.100.arpa";             //区域数据文件为192.168.100.arpa
        allow-transfer { 192.168.100.20; };
};

区域数据文件
vi /etc/named/benet.com.zone                        
$TTL 86400                                          //生存周期即缓存解析结果的有效时间
@ SOA benet.com. admin.benet.com (                     //@表示当前区域,SOA(授权信息开始记录)标记,域名,管理邮箱                                        
20160301                                            //更新序列号(10位以内的整数)用来同步主、从服务器的区域数据。
1H                                                  //刷新时间:重新下载数据的间隔
15M                                                 //重试延时:下载失败后的重试间隔
1W                                                 //失效时间,超过该时间仍无法下载则放弃
1D                                                  //无效解析记录的生存周期
)

named-checkconf     检查主配置文件的错误
named-checkzone benet.com benet.com.zone  检查区域配置文件的错误
搭建简单的dns服务器
1,挂载光盘
    [root@centos01 ~]# mount /dev/cdrom /mnt/
2,安装dns服务
    [root@centos01 ~]# yum -y install bind bind-chroot bind-utils
3,备份并清空主配置文件
    [root@centos01 ~]# cp /etc/named.conf /etc/named.conf.bak
    [root@centos01 ~]# echo "" > /etc/named.conf
4,修改主配置文件
    [root@centos01 ~]# vim /etc/named.conf
options    {
    listen-on port 53 { any; };
    directory "/var/named/";
};
zone    "benet.com"  IN  {
    type master;
    file "benet.com.zone"; 
};
5,写区域配置文件
    [root@centos01 ~]# vim /var/named/benet.com.zone
$TTL  86400       
@        SOA     benet.com.      root.benet.com. (
         2020060501
         1H
         15M
         1W
         1D
)
@            IN      NS       centos01.benet.com.
centos01     IN      A        192.168.100.10
www          IN      A        192.168.100.10
6,修改属主,属组,加执行权限
    [root@centos01 ~]# chown named:named /var/named/benet.com.zone
    [root@centos01 ~]# chmod +x /var/named/benet.com.zone
7,启动dns服务
    [root@centos01 ~]# systemctl start named
搭建主dns服务器
1,挂载光盘
    [root@centos01 ~]# mount /dev/cdrom /mnt/
2,安装dns服务
    [root@centos01 ~]# rpm -ivh /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm
    [root@centos01 ~]# rpm -ivh /mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm 
3.修改/etc/hosts
[root@centos01 named]# vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.10         centos01.bdqn.com        centos01
192.168.100.20         centos02.bdqn.com        centos02
4.修改/etc/resolv.conf
[root@centos01 named]# vi /etc/resolv.conf 

# Generated by NetworkManager
nameserver 192.168.100.10
nameserver 192.168.100.20

5,修改主配置文件
[root@centos01 ~]# vi /etc/named.conf 
    options {                                                    //全局配置
        listen-on port 53 { any; };                              //监听端口默认53,监听ip地址
        directory "/var/named/";                                 //区域数据文件路径
        allow-query { any; };                                     //允许那些主机访问dns服务
};
zone    "bdqn.com" IN   {                                             //区域配置,正向“bdqn.com”区域
        type master;                                                    //类型为主区域
        file "bdqn.com.zone";                                           //区域数据文件为benet.com.zone
        allow-transfer { 192.168.100.20; };                          //允许同步正向解析数据的从服务器地址
};
zone "100.168.192.in-addr.arpa" IN {                                 //反向192.168.100.0/24区域
        type master;                                                 //类型为主区域
        file "192.168.100.arpa";                                      //区域数据文件为192.168.100.arpa
        allow-transfer { 192.168.100.20; };                           //允许同步正向解析数据的从服务器地址
};

6.建立区域数据文件
(1)创建正向区域数据文件
[root@centos01 ~]# cd /var/named/
$TTL 86400
@  SOA  bdqn.com. root.bdqn.com.  (
        2020060301
        1H
        15M
        1W
        1D
)
@           IN      NS       centos01.bdqn.com.
            IN      NS       centos02.bdqn.com.
centos01    IN      A        192.168.100.10
centos02    IN      A        192.168.100.20
www         IN      A        192.168.100.101
mail        IN      A        192.168.100.102
*           IN      A        192.168.100.103
[root@centos01 named]# named-checkzone bdqn.com bdqn.com.zone
(2)创建反向区域数据文件
[root@centos01 named]# vi 192.168.100.arpa
$TTL 86400
@  SOA  bdqn.com. root.bdqn.com.  (
        2020060301
        1H
        15M
        1W
        1D
)
            IN      NS       centos01.bdqn.com.
            IN      NS       centos02.bdqn.com.
10          IN      PTR      centos01.bdqn.com.
20          IN      PTR      centos02.bdqn.com.
101         IN      PTR      www.bdqn.com
102         IN      PTR      mail.bdqn.com
5.修改区域配置文件的权限
[root@centos01 named]# chown :named bdqn.com.zone 
[root@centos01 named]# chown :named 192.168.100.arpa 
[root@centos01 named]# ls -ld bdqn.com.zone 192.168.100.arpa 
-rw-r--r-- 1 root named 491 6月   4 14:54 192.168.100.arpa
-rw-r--r-- 1 root named 489 6月   4 14:41 bdqn.com.zone
[root@centos01 named]# 
构建从域名服务器
1,挂载光盘
    [root@centos01 ~]# mount /dev/cdrom /mnt/
2,安装dns服务
    [root@centos01 ~]# rpm -ivh /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm
    [root@centos01 ~]# rpm -ivh /mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm 
3,修改主配置文件
options {                                                   //全局配置
directory  "/var/named";                                    //区域数据文件路径
};

zone "bdqn.com" IN {                                        //区域配置,正向“bdqn.com”区域
type slave;                                                 //类型为从区域
masters { 192.168.100.10; };                                //指定主服务器的ip地址
file "slaves/bdqn.com.zone";                                 //下载的区域文件保存到/var/named/slaves/目录
};

zone "100.168.192.in-addr.arpa" IN {                       //反向192.168.100.0/24区域
type slave;                                                 //类型为从区域
masters { 192.168.100.10; };                                //指定主服务器的ip地址
file "slaves/192.168.100.arpa";                             //下载的区域文件保存到/var/named/slaves/目录
};
4.验证从域名服务器
[root@centos02 ~]# ls -ld /var/named/slaves/
drwxrwx--- 2 named named 6 8月   4 2017 /var/named/slaves/
[root@centos02 ~]# service named start
Redirecting to /bin/systemctl start named.service
[root@centos02 ~]# ls -lh /var/named/slaves/
总用量 8.0K
-rw-r--r-- 1 named named 528 6月   4 15:47 192.168.100.arpa
-rw-r--r-- 1 named named 382 6月   4 15:34 bdqn.com.zone
构建缓存域名服务器
1,挂载光盘
    [root@centos01 ~]# mount /dev/cdrom /mnt/
2,安装dns服务
    [root@centos01 ~]# rpm -ivh /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm
    [root@centos01 ~]# rpm -ivh /mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm 
3.修改配置文件
[root@centos03 ~]# vi /etc/named.conf

options {                                                                        //全局配置         
        listen-on port 53 { any; };                                                 //监听端口默认53,监听ip地址
        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";          
        query-source port 53;                                                     
        allow-query { 192.168.100.0/24; };                                         //允许那些主机访问dns服务
        recursion yes;                             
};
zone "." IN {            //正向“.”根区域
type hint;               //类型为根区域
file "named.ca";         //区域数据文件为named.ca
};
    
[root@centos03 ~]# named-checkconf 
[root@centos03 ~]# systemctl start named

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

DNS服务学习笔记

部署DNS 服务---运维笔记

DNS学习笔记

西部开源学习笔记BOOK3《DNS本地高速缓存服务器》

DNS服务相关概念_学习笔记

Linux 第十周上课笔记 DNS集群的部署