• DNS域名解析服务


    DNS域名解析

    介绍:

    DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。 域名是Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。域名是由一串用点分隔的名字组成的,通常包含组织名,而且始终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地区

    域名级别:https://baike.baidu.com/item/%E5%9F%9F%E5%90%8D%E7%BA%A7%E5%88%AB/15536218#2

    DNS的作用及类型

    DNS系统在网络中的作用就是维护一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户出现提供正向或反向的地址查询服务,及正向解析与反向解析

      正向解析:根据域名查IP地址,即将指定的域名解析为相对应的IP地址。

      反向解析:根据IP地址查域名,即将指定的IP地址解析为相对应的域名。

    DNS服务器分类

    (1)缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但是没有自己控制的区域地址数据

    (2)主域名服务器:维护某一个特定DNS区域的地址数据库,对其中的解析记录具有自主控制权,是指定区域中唯一存在的权威服务器、官方服务器

    (3)从域名服务器:与主域名服务器提供完全相同的DNS解析服务,通常用与DNS服务器的热备份。

    Linux里提供DNS服务的软件BIND

    环境描述:

    CentOS 7  服务软件BIND

    主域名解析服务器IP:192.168.234.20

    从域名解析服务器IP:192.168.234.10

    以上两台服务器均关闭selinux和防火墙

    安装BIND

    配置yum源

    1 [Server]
    2 name=okok
    3 baseurl=file:///mnt/cdrom    //本地安装指定光盘的本地位置
    4 enable=1
    5 gpgcheck=0

    安装并使用rpm工具查看是否安装成功

    [root@localhost ~]# yum -y install bind
    rpm查看
    [root@localhost ~]# rpm -qa bind*
    bind-libs-lite-9.11.4-9.P2.el7.x86_64
    bind-utils-9.11.4-9.P2.el7.x86_64
    bind-libs-9.11.4-9.P2.el7.x86_64
    bind-9.11.4-9.P2.el7.x86_64
    bind-export-libs-9.11.4-9.P2.el7.x86_64
    bind-license-9.11.4-9.P2.el7.noarch

    bind安装完毕之后会自动添加一个名为named的服务,通过配置它来实现DNS解析

    主配置文件/etc/named.conf

    区域配置文件默认在/var/named下自行创建

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

    1.全局配置部分:

    listen-on port 53 { 192.168.234.10; };        //本地监听地址和端口
            #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     { any; };        //都允许谁通过我解析域名

     区域配置部分:

    zone "benet.com" IN {        //正向“benet.com”区域
            type master;        //类型为主区域
            file "benet.com.zone";        //区域数据文件为benet.com.zone
            allow-transfer { 192.168.234.20 };       //允许下载的从服务器地址(也可以写在全局配置里)
    };
    zone "234.168.192.in-addr.arpa" IN {     //反向192.168.234.0/24 区域(ip的网络位)
            type master;
            file "234.168.192.arpa";       //区域数据文件为234.168.192.arpa
            allow-transfer { 192.168.234.20 };       //允许下载的从服务器地址(也可以写在全局配置里)
    };

     在修改完主配置文件后,可以使用下面的命令进行语法检查(没有语法错误,没有任何提示)

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

    2.区域数据配置文件

    在/var/named下创建file后的同名文件

    正向区域:

    vim    /var/named/benet.com.zone

    $TTL    86400         //有效解析记录的生存周期
    @       IN      SOA     benet.com.      rooot.benet.com.(    //SOA标记、域名、管理邮箱
                                                    9       ;          //更新序列号,可以是10以内的整数
                                                    3H      ;       //刷新时间,重新下载地址数据的间隔
                                                    15M     ;     //重试时间,下载失败后的重试间隔
                                                    1W      ;       //失效时间,超过改时间仍无法下载则放弃
                                                    1D)     ;      //无效解析记录的生存周期
    @       IN      NS      ns1.benet.com.          //(Name Server,域名服务器);记录当前区域的DNS服务器的主机地址
            IN      NS      ns2.benet.com.          //(Name Server,域名服务器);记录从区域的DNS服务器的主机地址
    IN      MX      10      mail.benet.com.      //MX(Mail  Exchange,邮件交换);记录当前区域的邮件服务器的主机地址
    ns1     IN      A       192.168.234.20     //A(Address,地址)记录正向解析条目
    ns2     IN      A       192.168.234.10
    www     IN      A       192.168.234.50
    mail    IN      A       192.168.234.20
    werfgkljfjg     IN      A       123.123.123.123
    ftp     IN      CNAME   werfgkljfjg         //CNAME(Canonical Name,别名);记录一个正向解析条目的其他名称

    使用下面的命令对区域数据文件进行语法检查,没有错误将给出OK的提示(正向区域里的IP如果和本机的IP没有在同一个网络位,那么就不能正确提供反向解析)

    [root@localhost ~]# named-checkzone benet.com /var/named/benet.com.zone 
    zone benet.com/IN: loaded serial 9
    OK

    反向区域:

    vim   /var/named/234.168.192.arpa

    $TTL    86400
    @       IN      SOA     benet.com.      rooot.benet.com.(
                                                    11       ;
                                                    3H      ;
                                                    15M     ;
                                                    1W      ;       
                                                    1D)     ;
            IN      NS      ns1.benet.com.
            IN      NS      ns2.benet.com.
    20      IN      PTR     ns1.benet.com.
    10      IN      PTR     ns2.benet.com.
    50      IN      PTR     www.benet.com.
    20      IN      PTR     mail.benet.com.
    123     IN      PTR     werfgkljfjg.benet.com.

    在反向区域数据文件中,不会用到A记录,而是使用PTR指针(Point)记录。

    使用PTR记录时,第一列只需要指明对应IP的“主机地址”部分即可,如50或20等。系统在查找地址记录时会自动将当前反向区域的网络地址作为前缀。

    例如:50 IN PTR www.benet.com. 表示IP地址为192.168.234.50的主机的域名是www.benet.com

    验证:使用nslookup验证(使用Windows或Linux都行,不管用谁dns都得指向dns主机的IP(Linux /etc/resolv.conf 里添加 nameserver  dnsIP))

    [root@localhost ~]# nslookup www.benet.com
    Server:        192.168.234.20
    Address:    192.168.234.20#53
    
    Name:    www.benet.com
    Address: 192.168.234.50
    
    [root@localhost ~]# nslookup ftp.benet.com
    Server:        192.168.234.20
    Address:    192.168.234.20#53
    
    ftp.benet.com    canonical name = werfgkljfjg.benet.com.
    Name:    werfgkljfjg.benet.com
    Address: 123.123.123.123
    
    [root@localhost ~]# nslookup 192.168.234.50
    50.234.168.192.in-addr.arpa    name = www.benet.com.

    构建从域名服务器(192.168.234.10)

    依托于上面的主域名服务器

    新起一台机器安装上BIND软件

    vim /etc/named.conf

    全局配置:
    listen-on port 53 { 192.168.234.10; };
            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 "benet.com" IN {
            type slave;    //类型为从区域
            masters { 192.168.234.20; };    //指向主DNS服务器IP
            file "slaves/bdqn.com.zone";    //下载的区域文件保存到slaves/目录
    };
    zone "234.168.192.in-addr.arpa" IN {
            type slave;
            masters { 192.168.234.20; };
            file "slaves/234.168.192.zone";
    };

    由于从服务器的区域数据文件是从服务器中下载而来,但要注意的是,named服务默认以名为“named”的用户身份运行,因此要确认named用户对存放目录有写入权限

    [root@linux ~]# ls -lh /var/named/slaves/
    总用量 8.0K
    -rw-r--r-- 1 named named 491 4月   7 05:17 234.168.192.zone
    -rw-r--r-- 1 named named 498 4月   7 05:51 bdqn.com.zone

    验证:把首选DNS指向从域名服务器,看效果

    C:UsersBENET>nslookup
    默认服务器:  ns1.benet.com
    Address:  192.168.234.20
    
    > quit
    
    C:UsersBENET>nslookup
    默认服务器:  ns2.benet.com
    Address:  192.168.234.10
    
    > www.benet.com
    服务器:  ns2.benet.com
    Address:  192.168.234.10
    
    名称:    www.benet.com
    Address:  192.168.234.50
    
    > 192.168.234.50
    服务器:  ns2.benet.com
    Address:  192.168.234.10
    
    名称:    www.benet.com
    Address:  192.168.234.50
    
    >
  • 相关阅读:
    kernel 于ioctl申请书
    顺时针打印矩阵
    HDU 1557 权利指数 国家压缩 暴力
    从混沌到有序--熵
    分层思想总结
    什么是分层架构模式
    分层设计
    分层设计思想
    软件的生长方式
    设计模式、SOLID原则:组件与联系
  • 原文地址:https://www.cnblogs.com/DragonBo/p/12640257.html
Copyright © 2020-2023  润新知