DNS域名解析服务

目录

 一.DNS的介绍

1.DNS的定义

2.DNS的结构

3.DNS系统的解析方式和工作原理

(1)正向解析:

(2)反向解析:

(3)工作原理:

4.DNS域名解析查询方式

(1)递归查询

​编辑

(2)迭代查询

​编辑

5.DNS服务器类型

(1)主域名服务器

(2)从域名服务器

(3)缓存域名服务器

二.DNS 软件的安装和搭建配置

1.BIND软件安装

2.配置正向解析的配置

3.配置反向解析的配置

4.拓展:Windows用户端进行测试

三.主从DNS域名服务器的配置

1.主DNS服务器的配置

2.从DNS 服务器的配置

3.主从服务器的验证

(1)以Linux系统为例

(2)以Windows系统为例

(3)断开主DNS服务器,进行验证

四.总结:

 一.DNS的介绍

背景

在日常生活中人们习惯使用域名访问服务器,但机器间互相只认IP地址,域名与IP地址之间是多对一的关系,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。

1.DNS的定义

DNS(Domain Name System,域名系统)是互联网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网;每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

DNS服务使用TCP和UDP的53端口:

TCP的53端口用于   连接DNS服务器

UDP的53端口用于  解析DNS

2.DNS的结构

以新浪微博地址为例:结构如下

http://www.sina.com.cn./

http://主机名.子域.二级域.顶级域.根域/

域名结构是一种树形结构,以 根域. 为起点;树状结构最顶层称为根域,用“.”表示,相应服务器称为根服务器,整个域名空间解析权都归根服务器所有,但根服务器无法承担庞大的负载,采用“委派”机制,在根域下设置了一些顶级域,然后将不同顶级域解析权分别委派给相应的顶级域服务器,如将com域的解析权委派给com域服务器,以后但凡根服务器收到以com结尾的域名解析请求,都会转发给com域服务器,同样道理,为了减轻顶级域的压力,又下设了若干二级域,二级域又下设三级域或主机。

(1)根域

位于域名空间最顶层,一般用一个 “.” 表示

(2)顶级域

一般代表一种类型的组织机构或国家地区,
比如 .net(网络供应商)、.com(工商企业)、.org(团体组织)、.edu(教育机构)、.gov(政府部门)、.cn(中国国家域名)

(3)二级域

用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理;如 .cn 顶级域名下面设置的二级域名:.com.cn、.net.cn、.edu.cn 、

(4)子域

二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名

(5)主机

主机位于域名空间最下层,就是一台具体的计算机,
如 www、mail都是具体的计算机名字,可用www.sina.com.cn.、mail.sina.com.cn. 来表示,这种表示方式称为 FQDN (完全合格域名,是指包含了所有域的主机名,其中包括根域),也是这台主机在域名中的全名

3.DNS系统的解析方式和工作原理

(1)正向解析:

根据域名查找对应的IP地址

(2)反向解析:

根据IP地址查找对应的域名

(3)工作原理:

【1】客户端会先将DNS解析请求发送给本地缓存域名服务器,如果本地缓存域名服务器有相关记录则直接返回给客户端,否则会将DNS解析请求发送给根域名服务器进行解析;

【2】根域名服务器会根据域名的顶级域再将DNS解析请求委派给相对应的顶级域名服务器进行解析;

【3】顶级域名服务器也会根据域名的二级域或子域再将DNS解析请求委派给相对应的二级域名或子域名服务器进行解析;

【4】最后子域名服务器会根据域名的主机名解析出相对应的IP地址,再返回给本地缓存域名服务器和客户端。

4.DNS域名解析查询方式

(1)递归查询

本地域名服务器先将DNS解析请求发送给根域名服务器,根域名服务器再将解析请求转发给相对应的顶级域名服务器,顶级域名服务器再将解析请求转发给相对应的二级域名或子域名服务器,最后子域名服务器会根据域名的主机名解析出相对应的IP地址后,再逐层返回给本地域名服务器。

(2)迭代查询

【1】本地域名服务器先将DNS解析请求发送给根域名服务器,根域名服务器会返回响应消息给本地域名服务器并告知去找相对应的顶级域名服务器;
【2】本地域名服务器再将DNS解析请求发送给相对应的顶级域名服务器,顶级域名服务器会返回响应消息给本地域名服务器并告知去找相对应的二级域名或子域名服务器
【3】最后本地域名服务器将DNS解析请求发送给相对应的子域名服务器,子域名服务器会根据域名的主机名解析出相对应的IP地址后,直接返回给本地域名服务器

5.DNS服务器类型

(1)主域名服务器

负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。

(2)从域名服务器

当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。

(3)缓存域名服务器

只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但没有域名数据库。它从某个远程服务器取得每次域名服务器查询的结果,并将它放在高速缓存中,以后查询相同的信息时用它予以响应。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。

二.DNS 软件的安装和搭建配置

1.BIND软件安装

安装前先进行系统初始化

[root@192 ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@192 ~]# df
文件系统                   1K-块    已用     可用 已用% 挂载点
devtmpfs                 1913548       0  1913548    0% /dev
tmpfs                    1930624       0  1930624    0% /dev/shm
tmpfs                    1930624   12560  1918064    1% /run
tmpfs                    1930624       0  1930624    0% /sys/fs/cgroup
/dev/mapper/centos-root 37202180 4530192 32671988   13% /
/dev/sda1                 520868  184528   336340   36% /boot
tmpfs                     386128       8   386120    1% /run/user/42
tmpfs                     386128       0   386128    0% /run/user/0
/dev/sr0                 4635056 4635056        0  100% /mnt
[root@192 mnt]# cd /mnt/Packages/
[root@192 Packages]# ls | grep bind

bind-9.11.4-26.P2.el7_9.9.x86_64.rpm
bind-chroot-9.11.4-26.P2.el7_9.9.x86_64.rpm
bind-dyndb-ldap-11.1-7.el7.x86_64.rpm
bind-export-libs-9.11.4-26.P2.el7_9.9.x86_64.rpm
bind-libs-9.11.4-26.P2.el7_9.9.x86_64.rpm
bind-libs-lite-9.11.4-26.P2.el7_9.9.x86_64.rpm
bind-license-9.11.4-26.P2.el7_9.9.noarch.rpm
bind-pkcs11-9.11.4-26.P2.el7_9.9.x86_64.rpm
bind-pkcs11-libs-9.11.4-26.P2.el7_9.9.x86_64.rpm
bind-pkcs11-utils-9.11.4-26.P2.el7_9.9.x86_64.rpm
bind-utils-9.11.4-26.P2.el7_9.9.x86_64.rpm
cmpi-bindings-pywbem-0.9.5-6.el7.x86_64.rpm
keybinder3-0.3.0-1.el7.x86_64.rpm
rpcbind-0.2.0-49.el7.x86_64.rpm
samba-winbind-4.10.16-19.el7_9.x86_64.rpm
samba-winbind-modules-4.10.16-19.el7_9.x86_64.rpm
ypbind-1.37.1-9.el7.x86_64.rpm

[root@192 Packages]# rpm -ivh bind-9.11.4-26.P2.el7_9.9.x86_64.rpm

警告:bind-9.11.4-26.P2.el7_9.9.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:bind-32:9.11.4-26.P2.el7_9.9     ################################# [100%]
[root@192 Packages]# rpm -q bind
bind-9.11.4-26.P2.el7_9.9.x86_64

2.配置正向解析的配置

[root@192 Packages]# rpm -qc bind       #查看关于 bind 的文件

/etc/logrotate.d/named
/etc/named.conf
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback

[root@192 Packages]# vim /etc/named.conf     #先进入到这个文件进行修改

[root@192 Packages]# vim /etc/named.rfc1912.zones   #再进入到这个文件进行修改

[root@192 Packages]# cd /var/named/   #进入到这个目录下
[root@192 Packages]# cp -p named.localhost test1.com.zone   #将文件复制成这个文件
                                      ##保留源文件的权限和属主的属性复制
[root@192 named]# ll                  #进行查看文件
总用量 20
drwxrwx--- 2 named named    6 2月  24 2022 data
drwxrwx--- 2 named named    6 2月  24 2022 dynamic
-rw-r----- 1 root  named 2253 4月   5 2018 named.ca
-rw-r----- 1 root  named  152 12月 15 2009 named.empty
-rw-r----- 1 root  named  152 6月  21 2007 named.localhost
-rw-r----- 1 root  named  168 12月 15 2009 named.loopback
drwxrwx--- 2 named named    6 2月  24 2022 slaves
-rw-r----- 1 root  named  152 6月  21 2007 test1.com.zone
[root@192 named]# vim test1.com.zone   #进入到更改刚刚复制的文件中进行配置添加

配置成功后,保存退出即可

拓展:右上角五行内容的含义

#更新序列号,可以是 10 位以内的整数

#刷新时间,重新下载地址数据的间隔

#重试延时,下载失败后的重试间隔

#失效时间,超过该时间仍无法下载则放弃

#无效解析记录的生存周期

[root@192 named]# systemctl restart named   #重启服务去客户端验证即可
如果启动失败,
可以使用   vim /var/log/messages          
          tail  -f  /var/log/messages     #去查看日志,查看哪里有问题

然后去客户端进行验证,可以用 nslookup、dig 和 host  三种方式去验证;

[root@localhost ~]# systemctl stop firewalld      #先进行系统初始化操作
[root@localhost ~]# setenforce 0                  #关闭防火墙和临时关闭SELINUX
[root@localhost ~]# vim /etc/resolv.conf          #在进入到DNS配置中把文件修改一下

# Generated by NetworkManager
nameserver 192.168.10.10                         #将DNS换成服务端的主机地址


[root@localhost ~]# nslookup test1,com            #之后进行试验
Server:		192.168.10.10
Address:	192.168.10.10#53

** server can't find test1,com: NXDOMAIN

[root@localhost ~]# nslookup www.test1.com
Server:		192.168.10.10
Address:	192.168.10.10#53

Name:	www.test1.com
Address: 192.168.10.20

[root@localhost ~]# nslookup mail.test1.com
Server:		192.168.10.10
Address:	192.168.10.10#53

Name:	mail.test1.com
Address: 192.168.10.30

[root@localhost ~]# nslookup ftp.test1.com
Server:		192.168.10.10
Address:	192.168.10.10#53

ftp.test1.com	canonical name = www.test1.com.
Name:	www.test1.com
Address: 192.168.10.20

[root@localhost ~]# nslookup news.test1.com
Server:		192.168.10.10
Address:	192.168.10.10#53

Name:	news.test1.com
Address: 192.168.10.40

[root@localhost ~]# nslookup lxp.test1.com
Server:		192.168.10.10
Address:	192.168.10.10#53

Name:	lxp.test1.com
Address: 192.168.10.100

3.配置反向解析的配置

(1)系统初始化

(2)安装bind软件包

(3)配置 vim /etc/named.conf  文件

(4)进入 vim /etc/named.rfc1912.zones 修改区域配置文件

            #完成上一个文件的配置后,切换到 /var/named/目录下面
[root@192 named]# cd /var/named/
[root@192 named]# ll
总用量 20
drwxrwx--- 2 named named   23 4月  25 20:09 data
drwxrwx--- 2 named named   60 4月  25 20:09 dynamic
-rw-r----- 1 root  named 2253 4月   5 2018 named.ca
-rw-r----- 1 root  named  152 12月 15 2009 named.empty
-rw-r----- 1 root  named  152 6月  21 2007 named.localhost
-rw-r----- 1 root  named  168 12月 15 2009 named.loopback
drwxrwx--- 2 named named    6 2月  24 2022 slaves
-rw-r----- 1 root  named  307 4月  25 20:08 test1.com.zone
[root@192 named]# cp -p test1.com.zone test1.com.zone.local
                        #保留源文件的权限和属主的属性复制
[root@192 named]# ll
总用量 24
drwxrwx--- 2 named named   23 4月  25 20:09 data
drwxrwx--- 2 named named   60 4月  25 20:09 dynamic
-rw-r----- 1 root  named 2253 4月   5 2018 named.ca
-rw-r----- 1 root  named  152 12月 15 2009 named.empty
-rw-r----- 1 root  named  152 6月  21 2007 named.localhost
-rw-r----- 1 root  named  168 12月 15 2009 named.loopback
drwxrwx--- 2 named named    6 2月  24 2022 slaves
-rw-r----- 1 root  named  307 4月  25 20:08 test1.com.zone
-rw-r----- 1 root  named  307 4月  25 20:08 test1.com.zone.local
[root@192 named]# vim test1.com.zone.local      #进入到文件内修改

完成几个文件的配置后,重启服务即可
[root@192 named]# systemctl restart named

之后切换到客户机进行验证操作

[root@localhost ~]# vim /etc/resolv.conf    #首先要配置DNS文件
# Generated by NetworkManager
nameserver 192.168.10.10 

[root@localhost ~]# nslookup www.test1.com   #进行实验
Server:		192.168.10.10
Address:	192.168.10.10#53

Name:	www.test1.com
Address: 192.168.10.20

[root@localhost ~]# nslookup 192.168.10.20
20.10.168.192.in-addr.arpa	name = www.test1.com.

[root@localhost ~]# nslookup 192.168.10.30
30.10.168.192.in-addr.arpa	name = mail.test1.com.

[root@localhost ~]# nslookup 192.168.10.40
40.10.168.192.in-addr.arpa	name = news.test1.com.

4.拓展:Windows用户端进行测试

将网络设置进行这样的配置

 之后,直接验证即可

三.主从DNS域名服务器的配置

1.主DNS服务器的配置

先进行系统初始化

(1)先配置     /etc/named.conf

[root@localhost ~]# vim /etc/named.conf    #先进入到这个文件中进行配置

options {
        listen-on port 53 { any; };          #将{}内的内容改成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; };           #将{}内的内容改成any

        /* 

(2)在配置 /etc/named.rfc1912.zones 

[root@localhost ~]# vim /etc/named.rfc1912.zones    #进入文件额外添加以下配置

zone "test1.com" IN {                               #正向解析配置
        type master;
        file "test1.com.zone";
        allow-transfer { 192.168.10.20; };          #允许从服务器同步数据文件
};

zone "10.168.192.in-addr.arpa" IN {                 #反向解析配置(ip地址倒写)
        type master;
        file "test1.com.zone.local";
        allow-transfer { 192.168.10.20; };
};

(3)修改区域配置文件

[root@localhost ~]# cd /var/named/
[root@localhost named]# ls -l
总用量 24
drwxrwx---. 2 named named   23 4月  26 00:34 data
drwxrwx---. 2 named named   60 4月  26 09:18 dynamic
-rw-r-----. 1 root  named 2253 4月  26 09:23 named.ca
-rw-r-----. 1 root  named  152 12月 15 2009 named.empty
-rw-r-----. 1 root  named  152 6月  21 2007 named.localhost
-rw-r-----. 1 root  named  168 12月 15 2009 named.loopback
drwxrwx---. 2 named named    6 2月  24 2022 slaves
-rw-r-----. 1 root  named  255 4月  26 09:19 test1.com.zone
-rw-r-----. 1 root  named  236 4月  26 09:19 test1.com.zone.local

 【1】正向区域配置文件

[root@localhost named]# vim test1.com.zone           #进入文件进行配置


$TTL 1D
@       IN SOA  test1.com. admin.test1.com. (
                                        20240426        ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      test1.com.
        A       192.168.10.10
www IN A        192.168.10.100
news IN A       192.168.10.200
lxp IN CNAME    www

【2】反向区域配置文件

[root@localhost named]# vim test1.com.zone.local     #进入文件修改配置


$TTL 1D
@       IN SOA  test1.com. admin.test1.com. (
                                        20240426        ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      test1.com.
        A       192.168.10.10
100 IN PTR      www.test1.com.
200 IN PTR      news.test1.com.

到此,主DNS服务器配置完成,之后 systemctl start named 软件即可

2.从DNS 服务器的配置

(1)先配置     /etc/named.conf

                       #和主DNS服务器一样的操作
[root@localhost ~]# vim /etc/named.conf    #先进入到这个文件中进行配置

options {
        listen-on port 53 { any; };          #将{}内的内容改成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; };           #将{}内的内容改成any

        /* 

(2)配置   /etc/named.rfc1912.zones   文件

[root@localhost named]# vim /etc/named.rfc1912.zones

          #在进入文件进行添加以下配置

zone "test1.com" IN {
        type slave;                   #设置为 slave 表示为从服务器
        masters { 192.168.10.10; };   #设置主dns服务器地址
        file "slaves/test1.com.zone";   #文件存放在/var/named/slaves目录下
};

zone "10.168.192.in-addr.arpa" IN {
        type slave;
        masters { 192.168.10.10 ;};
        file "slaves/test1.com.zone.local";
};

 (3)查看区域配置文件

[root@localhost named]# cd /var/named/
[root@localhost named]# ll
总用量 16
drwxrwx---. 2 named named   23 4月  26 00:09 data
drwxrwx---. 2 named named   60 4月  26 08:49 dynamic
-rw-r-----. 1 root  named 2253 4月   5 2018 named.ca
-rw-r-----. 1 root  named  152 12月 15 2009 named.empty
-rw-r-----. 1 root  named  152 6月  21 2007 named.localhost
-rw-r-----. 1 root  named  168 12月 15 2009 named.loopback
drwxrwx---. 2 named named   56 4月  26 00:34 slaves

[root@localhost named]# ll slaves/
总用量 8
-rw-r--r--. 1 named named 321 4月  26 09:30 test1.com.zone
-rw-r--r--. 1 named named 361 4月  26 09:39 test1.com.zone.local

到此,从DNS服务器配置完成,之后 systemctl start named 软件即可

3.主从服务器的验证

(1)以Linux系统为例

[root@localhost ~]# vim /etc/resolv.conf     #首先修改这个文件,将dns设置为服务器地址
# Generated by NetworkManager
nameserver 192.168.10.10


[root@localhost ~]# nslookup www.test1.com     #正向解析验证成功
Server:		192.168.10.10
Address:	192.168.10.10#53

Name:	www.test1.com
Address: 192.168.10.100
 
[root@localhost ~]# nslookup 192.168.10.200   #反向解析验证成功
200.10.168.192.in-addr.arpa	name = news.test1.com.

(2)以Windows系统为例

C:\Users\liu>nslookup www.test1.com    #正向解析验证成功
服务器:  UnKnown
Address:  192.168.10.10

名称:    www.test1.com
Address:  192.168.10.100


C:\Users\liu>nslookup news.test1.com
服务器:  UnKnown
Address:  192.168.10.10

名称:    news.test1.com
Address:  192.168.10.200


C:\Users\liu>nslookup 192.168.10.200   #反向解析验证成功
服务器:  UnKnown
Address:  192.168.10.10

名称:    news.test1.com
Address:  192.168.10.200

(3)断开主DNS服务器,进行验证

[root@localhost ~]# vim /etc/resolv.conf     #首先修改这个文件,将dns设置为服务器地址
# Generated by NetworkManager
nameserver 192.168.10.20


[root@localhost ~]# nslookup www.test1.com     #正向解析验证成功
Server:		192.168.10.20
Address:	192.168.10.20#53

Name:	www.test1.com
Address: 192.168.10.100
 
[root@localhost ~]# nslookup 192.168.10.200   #反向解析验证成功
200.10.168.192.in-addr.arpa	name = news.test1.com.

四.总结:

了解DNS解析服务的工作原理

了解DNS解析服务的工作模式

了解DNS解析的配置操作

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值