DNS域名解析服务

Posted dragonbo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

安装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.50; };        //本地监听地址和端口
        #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; };        //都允许谁通过我解析域名

 区域配置部分:

zone "benet.com" IN {        //正向“benet.com”区域
        type master;        //类型为主区域
        file "benet.com.zone";        //区域数据文件为benet.com.zone
        allow-transfer { 192.168.234.100 };       //允许下载的从服务器地址(也可以写在全局配置里)
};
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
};

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

[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      MX      10      mail.benet.com.   //MX(Mail  Exchange,邮件交换);记录当前区域的邮件服务器的主机地址,数字10表示(当有多个MX记录时)选择邮件服务器的优先级,数字越大,优先级越低
ns1     IN      A       11.111.111.11   //A(Address,地址)记录正向解析条目
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.(
                                                9       ;
                                                3H      ;
                                                15M     ;
                                                1W      ;       
                                                1D)     ;
        IN      NS      ns1.benet.com.
11      IN      PTR     ns1.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 slaves]# nslookup www.benet.com
Server:        192.168.234.50
Address:    192.168.234.50#53

Name:    www.benet.com
Address: 192.168.234.50

[root@localhost slaves]# nslookup ftp.benet.com
Server:        192.168.234.50
Address:    192.168.234.50#53

ftp.benet.com    canonical name = werfgkljfjg.benet.com.
Name:    werfgkljfjg.benet.com
Address: 123.123.123.123

 

构建从域名服务器

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

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

vim /etc/named.conf

全局配置段不用修改

zone "benet.com" IN {
        type slave;  //类型为从区域
        masters { 192.168.234.50; };  //指向主DNS服务器IP
        file "slaves/benet.com.zone";  //下载的区域文件保存到slaves/目录
};
zone "234.168.192.in-addr.arpa" IN {
        type slave;
        masters { 192.168.234.50; };
        file "slaves/234.168.192.arpa";
};

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

 

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

shell脚本实现批量解析域名IP地址(支持多DNS)

DNS分离解析和智能解析 1构建DNS域名服务器的分离解析 DNS分离解析域名服务器概述 DNS分离解析域名服务器实际也是主域名DNS服务器,这里所说的分离解

CentOS7 搭建 DNS 域名解析服务器

DNS解析原理

Linux网络——DNS域名解析服务(正向解析实验)

DNS域名解析服务