DNS域名解析

本文详细介绍了DNS的基本概念、工作原理,包括递归和迭代查询,以及在Linux系统中DNS解析的实现方法,特别关注正向和反向解析的过程,以及SOA、A、AAAA、MX、TXT等记录类型。
摘要由CSDN通过智能技术生成


一、DNS概况

DNS概念

当前网络间通信是利用和依赖IP地址实现的,但数字形式的IP地址是很难记忆的。当网络设备众多时,记住每个IP地址,可以说是很难的。如:www.baidu.com,这种由文字组成的名称,显而易见要更容易记忆。但是计算机不会理解这种名称的,我们可以利用一种名字解析服务将名称转化成(解析)成IP地址。从而我们就可以利用名称来直接访问网络中设备了。除此之外还有一个重要功能,利用名称解析服务可以实现主机和IP的解,即:当主机IP变化时,只需要修改名称服务即可,用户仍可以通过原有的名称进行访问而不受影响。

DNS,域名解析协议,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,基于C/S架构,服务器端:53/udp, 53/tcp(tcp连接主要用于主从复制,udp连接主要用于解析)。实际上,每一台 DNS 服务器都只负责管理一个有限范围(一个或几个域)内的主机域名和 IP 地址的对应关系,这些特定的 DNS 域或 IP 地址段称为 zone(区域)。根据地址解析的方向不同,DNS 区域相应地分为正向区域(包含域名到 IP 地址的解析记录)和反向区域(包含 IP 地址到域名的解析记录)。
在这里插入图片描述

DNS服务器类型

  • 缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定其他 DNS 服务器DNS作为解析来源。

  • 主域名服务器:管理和维护所负责解析的域内解析库的服务器。

  • 从域名服务器:从主服务器或从服务器"复制"(区域传输)解析库副本。

DNS查询类型及原理

1.查询方式

  • 递归查询:一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后, ​若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)
  • 迭代查询:一般情况下本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询。(需要自己动手)

2.查询原理过程

  • 查询hosts文件
  • 查询本机的缓存记录
  • 查询dns域名服务器,交给dns域名服务器处理
    以上过程成为递归查询
  • 这个dns服务器可能是本地域名服务器,也有缓存,如果有直接返回结果,如果没有则进行下一步。
  • 求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器。
  • 求助一级域服务器,一级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器。
  • 求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器。
  • 本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端。

在这里插入图片描述

二、Linux中DNS解析

实现方法

1.本地host软件
在这里插入图片描述
#格式 IP地址 域名
可以在此文件中增加对应关系,直接就可以访问该域名网站。

更改dns优先级
进入vim /etc/nsswitch.conf#修改dns的优先级
在这里插入图片描述
39行是设置先问dns解析,是先问dns还是先问本地。

#修改 files和 dns的先后 优先级就会改变

2.安装软件,搭建本地DNS服务器
安装软件bind和bind-utils包。
在这里插入图片描述
安装完bind软件后:
1.自动生成了一个用户 一个组
named
/var/named
2.安装包名:bind 程序名字:named

3.配置文件:
/etc/named.conf :主配置文件
/etc/named.rfc1912.zones :区域配置文件 解析的域名要在这个文件中指明
数据库配置文件/var/named/*:指明了域名和IP地址一 一对应的关系。

**注意:**当内网一台服务器,作dns服务器的话,需要将其他机器指向它,自己也要指向自己。
在这里插入图片描述
进入网络配置,修改DNS的IP地址,并重启网络后,输入命令cat /etc/resolv.conf,查看dns是否修改成功。
修改完之后,ping百度ping不通,但按照理论来说,是可以的但现在ping不通,问题是因为什么?
在这里插入图片描述
在这里插入图片描述
原因是named软件,只监听127.0.0.1,并不监听其他地址,需要更改配置。进入/etc/named.conf,更改两行配置。IP地址替换成any即可。
在这里插入图片描述
在这里插入图片描述
更改成功。
修改区域配置文件
vim /etc/named.rfc1912.zones
在这里插入图片描述
代码含义,如果你想解析cxk.com(注意前面不要加主机名)这个域名,去找cxk.com.zone这个配置文件。
在这里插入图片描述
复制配置文件,且要注意权限一致。 用cp -p复制,且需要和上面区域配置文件中定义的名字一致。
在这里插入图片描述

正向解析

各种资源记录
记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX

  • SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录SOA,是起始授权机构记录,说明了在众多 NS 记录里哪一台才是主要的服务器。在任何DNS记录文件中,都是以SOA ( Startof Authority )记录开始。SOA资源记录表明此DNS名称服务器是该DNS域中数据信息的最佳来源。

  • A(internet Address):作用,域名解析成IP地址

  • AAAA(FQDN): --> IPV6

  • PTR(PoinTeR):反向解析,ip地址解析成域名

  • NS(Name Server):,专用于标明当前区域的DNS服务器,服务器类型为域名服务器

  • CNAME : Canonical Name,别名记录

  • MX(Mail eXchanger)邮件交换器

  • TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:SPF(反垃圾邮件)记录,https验证等

SOA记录与NS记录的区别:NS记录表示域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析;SOA记录设置一些数据版本和更新以及过期时间等信息。

在这里插入图片描述

$TTL 1D                                            #有效解析记录的生存周期
@   in SOA benet.com. admin.benet.com. (   #“@"符号表示当前的DNS区域名
                     0   ; serial              #更新序列号,可以是10位以内的整数
                    1D   ; refresh             #刷新时间,重新下载地址数据的间隔
                    1H   ; retry               #重试延时,下载失败后的重试间隔
                    1W   ; expire              #失效时间,超过该时间仍无法下载则放弃#
					3H)  ; minimum             #无效解析记录的生存周期,
        NS      benet.com.                     #记录当前区域的DNS服务器的名称
        A     192.168.80.10                   #记录主机IP地址
IN   MX 10    mail.benet.com.            #MX为邮件交换记录,数字越大优先级越低
www  IN A     192.168.80.10              #记录正向解析www.benet.com对应的IP
mail IN A     192.168.80.11              #MX为邮件交换记录,数字越大优先级低 
ftp  IN CNAME  www                       #CNAME使用别名,ftp 是www的别名
*    IN A   192.168.80.100               #泛域名解析,“*"代表任意主机名

在这里插入图片描述
重启服务后,host www.cxk.com
在这里插入图片描述
解析工具
1.dig
在这里插入图片描述
2.host
在这里插入图片描述
3.nslookup
在这里插入图片描述

  • 32
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值