DNS域名解析原理及配置

目录

一、DNS原理

什么是DNS

DNS 的作用

DNS 的工作原理

1. 用户输入域名

2. 查询本地 DNS 服务器

3. 递归查询

4. 根域名服务器

5. 顶级域名服务器

6. 权威 DNS 服务器

7. 返回结果

两种查询方式

二、DNS服务器系统类型

主域名服务器

从域名服务器

缓存域名服务器

转发域名服务器

三、DNS配置

1. 正向解析

2. 反向解析


一、DNS原理

在我们日常使用互联网时,我们会访问各种各样的网站,例如社交媒体、购物网站、搜索引擎等。我们通常直接在搜索框输入想要访问的网站名,比如我们国内的搜索引擎,www.baidu.com,就会自动跳转至百度搜索的页面。要知道,计算机是不能识别人类的语言的,只能通过一些方式,将人类的语言转化为它可以识别的二进制代码才行,那么,我们输入的网址,就是通过dns被解析成ip来搜索访问的。

什么是DNS

DNS(Domain Name System,域名系统)是互联网的基础设施之一,它就像是互联网的电话簿。DNS 的主要任务是将用户友好的域名,将域名转化为它可以识别的IP地址,这个过程称为域名解析。域名解析又分为正向解析和反向解析,顾名思义,正向解析是根据域名查找对应的IP地址,反向解析就是根据IP地址查找对应的域名,反向解析一般很少用到。

DNS 的作用

DNS 的主要作用有以下几点:

域名解析:将域名转换为 IP 地址,使计算机能够通过 IP 地址找到目标服务器。

分布式数据库:DNS 是一个分布式数据库,数据存储在全球各地的 DNS 服务器中,确保系统的可靠性和可扩展性。

层次结构:DNS 采用层次结构,分为根域、顶级域(如 .com、.org、.cn 等)、二级域(如 example.com)和子域(如 blog.example.com)。

缓存:为了提高查询速度,DNS 服务器会缓存最近查询的结果,减少重复查询的时间。

负载均衡:通过将同一个域名解析到不同的 IP 地址,实现服务器负载均衡,提升网站的性能和可靠性。

DNS 的工作原理

DNS的默认端口为53,端口分为TCP和UDP。

TCP通常是用来做区域传送,多用于主从同步。在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息,这个操作就是主从同步。

UDP通常是用来做DNS解析的,这也是DNS域名解析最核心的机制

DNS 域名解析的工作原理可以分为以下几个步骤:

1. 用户输入域名

当用户在浏览器中输入一个域名并按下回车键时,浏览器首先会检查本地缓存,看看是否有该域名的 IP 地址记录。如果有,则直接使用该 IP 地址;如果没有,则继续下一步。

2. 查询本地 DNS 服务器

如果本地缓存没有找到匹配的记录,浏览器会向本地 DNS 服务器(通常是由 ISP 提供)发送查询请求。本地 DNS 服务器也会先检查自己的缓存。

3. 递归查询

如果本地 DNS 服务器的缓存中也没有找到结果,它会以递归的方式向更高级别的 DNS 服务器查询。递归查询意味着本地 DNS 服务器会代表用户不断向上级 DNS 服务器查询,直到找到结果为止。

4. 根域名服务器

查询过程首先会到达根域名服务器。根域名服务器不会直接返回域名的 IP 地址,但它会告诉查询者下一级 DNS 服务器的位置(即顶级域名服务器,例如 .com 服务器)。

5. 顶级域名服务器

接下来,查询会到达顶级域名服务器。顶级域名服务器也不会直接返回最终的 IP 地址,而是会提供下一步查询所需的权威 DNS 服务器的位置(例如 example.com 的权威 DNS 服务器)。

6. 权威 DNS 服务器

最终,查询到达权威 DNS 服务器。权威 DNS 服务器拥有域名的实际 IP 地址记录,并将该地址返回给本地 DNS 服务器。

7. 返回结果

本地 DNS 服务器将权威 DNS 服务器返回的 IP 地址缓存起来,并将结果返回给用户的浏览器。浏览器收到 IP 地址后,便可以向目标服务器发送请求,加载网页内容。

两种查询方式

DNS 有两种查询方式,分别是

递归查询 递归查询是一种 DNS 服务器的查询模式,在该模式下 DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果 DNS 服务器本地没有存储查询 DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。

迭代查询 DNS 服务器另外一种查询方式为迭代查询,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台 DNS 服务器地址,客户机再向这台 DNS 服务器提交请求,依次循环直到返回查询的结果为止。

总结来看就是,递归查询是客户机只需等待DNS服务器查询完成就可以了,而迭代查询是要不停的根据DNS服务器返回的地址去查询,最终知道返回查询的结果。

二、DNS服务器系统类型

主域名服务器

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

从域名服务器

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

缓存域名服务器

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

转发域名服务器

负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。

三、DNS配置

1. 正向解析

首先所需安装的相关软件包

yum install -y bind*

首先我们要知道dns的配置文件在哪里,分别代表着什么意思

/etc/logrotate.d/named                       --用于配置日志轮转规则

/etc/named.rfc1912.zones                 --用于BIND DNS服务器,是区域配置文件

/var/named/named.localhost             --也是一个区域文件,用于配置本地回环地址的DNS解析记录

/etc/named.conf                                 --这是BIND DNS服务器的主要配置文件

我们首先来配置 /etc/named.conf 文件

大概在12行的位置

13行是监听端口号,改成需要解析的ip地址,也可以是 any 代表所有

14行是ipv6,一般用不到,可以注释掉

15行是区域数据文件的默认存放位置

16行是域名缓存数据库文件的位置

17行是状态统计文件的位置

18行是内存统计文件的位置

21行是允许使用本DNS解析服务的网段,也可以用 any 代表所有

主要修改的就是监听端口号,和允许使用DNS解析的网段

修改完成后,我们接着修改修改区域配置文件

vim /etc/named.rfc1912.zones 

我们需要添加一段,随便找一整个 { } 框出来的一段,yy 复制,p 粘贴,然后我们对这段进行修改

zone "test.com" IN {            DNS解析域名,可以自己设置,

              type master;

              file "test.com.zone";                   指定区域数据文件为该文件  

              allow-update { none; } ;     默认设置为 none; 表示禁止所有主机或IP地址更新该区域文件

};

红色的为修改部分

配置完成后保存退出

接下来配置区域数据文件

cd /var/ named/

cp -p named.localhost benet.com.zone          ---保留源文件的权限和属主的属性复制

然后  vim /var/named/benet.com.zone

添加如下几行

NS   test.com.                 --记录当前区域的DNS服务器的名称 , 注意后面有个  .    !

A 172.16.233.101              --这是我的主机ip地址,填自己的IP地址就好了

IN MX 10 mail.test.com        --MX为邮件交换记录,数字越大优先级越低,这个不配也没啥

www IN A 172.16.233.101      --记录正向解析www.test.com对应的IP

mail IN A 是邮件相关的,配个ip 102就可以了,不配也没啥

 ftp IN CNAME www                  --CNAME使用别名,ftp 是www的别名

* IN A 172.16.233.101               --泛域名解析,“*"代表任意主机名

那个什么0 ; serial  是更新序列号,可以是10位以内的整数

还有后面的1D 1H ....  这些都不用修改,感兴趣可以了解一下

1D ; refresh          ----刷新时间,重新下载地址数据的间隔

1H ; retry              -------重试延时,下载失败后的重试间隔

1W ; expire            ------失效时间,超过该时间仍无法下载则放弃# 3

H) ; minimum            ------无效解析记录的生存周期

AAAA ::1 也是ipv6的 我们不用管它

然后我们保存退出

启动服务,关闭防火墙,关闭增强服务

systemctl start named

systemctl stop firewalld

setenforce 0

有的时候会出现 named 服务启动报错

我们可以用   named-checkconf -z    来排查配置文件里是否有语法错误,都是很明显的英文提示,行号都给你标出来了的那种

启动成功后我们编辑 /etc/resolv.conf  文件

添加自己的主机 ip 地址

或者去ens33 配置页面将 dns1 换成自己的

修改完成后 systemctl restart network 重启网络服务

此时,我们输入

host www.test.com

可以看到,域名成功的解析成 主机ip地址了

也可以nslookup 命令来查看

2. 反向解析

反向解析原理和正向解析类似

我们需要在  /etc/named.rfc1912.zones   文件下再加入一段

zone "233.16.172 in-addr.arpa" IN {     这个把自己主机ip地址网段反过来就好了

        type master;

        file "test.com.zone.local;"; 

        allow-update { none; };

};

然后,同样的,复制一份修改

cd /var/named/

cp -p benet.com.zone benet.com.zone.local

加入这几行

NS test.com.

A 主机IP地址

100 IN PTR www.test.com.

最后重启服务就ok了

到这DNS解析就讲的差不多了,有什么疑问的欢迎私信我,我尽可能解答

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值