Linux DNS服务详解——DNS基础知识

简介: Linux DNS服务详解——DNS基础知识

今天继续给大家介绍Linux运维相关知识,本文主要内容是Linux DNS服务详解。

一、DNS服务架构
DNS服务,即Domain Name Service,域名解析服务。主要是用于提供域名与IP地址的解析服务,DNS服务基于TCP和UDP的53端口,采取树状的逻辑结构。DNS本质上是一个分布式的数据库,命名采用层次结构,最大不可超过127层,每层最长63个字符。
DNS树状结构如下图所示:

(图片来源于网络,如有侵权,请联系删除)

二、DNS的域和域名
在上图中,DNS树的每个节点都代表一个域,从根域到最后的节点域进行反向排列,并使用“.”分隔,就形成了一个完整的域名。我们把符合上述条件构成的域名称为完全合格域名FQDN,除了上述构成方式之外,FQDN还有命名上的严格限制,其长度不能超过256字节,并且只允许使用数字、大小写字母和减号。
DNS的最上层为根域名,全球一共有13个根域名服务器,根域名向下为顶级域名,顶级域名一共三种类型。
1、组织域: 即一个组织使用的域名,通常使用三个字符,常见的有.com顶级商业域名,.edu顶级教育域名,.gov顶级政府机构域名,.org顶级非盈利机构域名等等。
2、地址域: 即一个国家或者地区使用的域名,通常使用两个字符,常见的有.cn表示中国,.us表示美国等等。
3、反向域: 特指in-addr.arpa,用于将IP地址映射为域名,反向查询时使用。

三、DNS区和辅助域名服务器
为了分散DNS服务器的符合,DNS服务器会根据实际情况将名称空间划分成区域来进行管理。一个区域的DNS服务通常由一台主控DNS服务器和多台辅助DNS服务器来提供辅助服务器会与主控服务器保持同步并且当主控服务器宕机后接替其继续工作。

四、DNS查询方式
当一台机器要进行DNS解析时,首先需要先查看本地缓存,对于Linux系统,则查询/etc/hosts文件,对于windows系统,则查询C:\Windows\System32\drivers\etc文件。因此,我们可以通过修改该文件的方式,强制性将一域名与一个指定的IP地址相对应。但是在大多数情况下,该文件内不会有DNS的记录,需要向本地设置的DNS服务器发起DNS查询请求。当DNS收到该查新请求后,首先要查看本地缓存,如果缓存内有该域名的解析记录,则直接将IP地址应答客户端的请求,而如果本地缓存中没有该域名的解析记录,则需要从顶级服务器开始,一级一级向下查询,直到查询到该域名对应的IP地址,以解析www.163.com域名为例,上述过程如下图所示:

(图片来源于网络,如有侵权,请联系删除)
DNS的查询有两种方式,一种是递归查询,另一种是迭代查询。递归查询是指当DNS服务器收到客户端的DNS查询请求时,如果本地没有该DNS信息,那么需要该DNS服务器向顶级DNS服务器和其他DNS服务器查询该域名的信息,知道查询到该域名对应的IP地址,并将该IP地址反馈给客户端。因此,客户端通过一次DNS查询就可以得到该域名所对应的IP地址。迭代查询是指当DNSDNS服务器收到客户端的DNS查询请求时,如果本地没有该DNS信息,那么直接将存在该域名记录的DNS服务器的IP地址告知该客户端,由客户端向该服务器继续进行DNS查询。
因此,在上图中,本地DNS服务器是使用递归查询,而其他DNS服务器使用的是迭代查询的方式。

五、DNS资源记录
在DNS服务器中,通常由以下6种资源记录:
1、SOA资源记录。
SOA记录即Start of Authority Record,起始授权记录,该记录存在与每个区的开始处。SOA定义了域的全局参数,进行整个域的管理设置。一个区域文件只允许存在一个SOA记录。
2、NS资源记录。
NS记录是指Name Server,即域名服务器记录,该记录用于指定该域名由哪个DNS服务器来进行解析。每个区在区根处至少包含一条NS资源记录。
3、A资源记录。
A资源记录用于记录FQDN与IP地址的映射关系,DNS依据此记录来解析域名。
4、PTR资源记录。
PTR资源记录用于反查寻,该记录是IP地址与FQDN的映射关系,通过该记录可以由IP地址找到相应的域名。
5、CNAME资源记录。
CNAME资源记录即别名记录。该记录可以将真实的FQDN替换为一个别名,利用该记录可以隐藏用户网络的实现细节,例如,我们在ping百度的网址时,就会发现反馈回的域名并不是真实的百度域名,如下所示:

而当我们ping CNSD网站时,返回的正是CSDN网站的域名,如下所示:

可以看出,百度使用了CNAME记录进行了真实域名的隐藏,而CSND没有进行真实域名的隐藏。
6、MX资源记录。
MX资源记录是邮件交换记录,为DNS域名指定邮件交换服务器。邮件交换服务器是指为DNS域名处理或转发邮件的主机。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_40228200/article/details/121216647

目录
相关文章
|
5月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
394 146
|
6月前
|
缓存 安全 Linux
六、Linux核心服务与包管理
在没有网络的情况下,使用系统安装光盘是获取RPM包的常用方法。场景二:配置本地文件镜像源 (使用系统安装光盘/ISO)(检查RPM包的GPG签名以保证安全) 或。YUM/DNF包管理工具 (yum/dnf)(此处可以放置您为本主题制作的思维导图)处理依赖问题的危险选项 (应极力避免)(覆盖文件、替换已安装包)。(list) 则是列出文件。(query file) 是。(假设系统安装光盘已挂载到。信息 (verbose)。(upgrade) 选项。(all) 已安装的包。(package) 选项
512 11
|
弹性计算 运维 安全
优化管理与服务:操作系统控制平台的订阅功能解析
本文介绍了如何通过操作系统控制平台提升系统效率,优化资源利用。首先,通过阿里云官方平台开通服务并安装SysOM组件,体验操作系统控制平台的功能。接着,详细讲解了订阅管理功能,包括创建订阅、查看和管理ECS实例的私有YUM仓库权限。订阅私有YUM仓库能够集中管理软件包版本、提升安全性,并提供灵活的配置选项。最后总结指出,使用阿里云的订阅和私有YUM仓库功能,可以提高系统可靠性和运维效率,确保业务顺畅运行。
|
11月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
1423 25
|
10月前
|
网络协议 安全 Devops
Infoblox DDI (NIOS) 9.0 - DNS、DHCP 和 IPAM (DDI) 核心网络服务管理
Infoblox DDI (NIOS) 9.0 - DNS、DHCP 和 IPAM (DDI) 核心网络服务管理
421 4
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
Linux iOS开发 MacOS
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
377 0
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
|
Linux Docker 容器
Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?
在 Linux 系统中,停止 Docker 服务时遇到警告无法彻底停止的问题,可以通过系统管理工具停止服务、强制终止相关进程、检查系统资源和依赖关系、以及重置 Docker 环境来解决。通过以上步骤,能够有效地排查和解决 Docker 服务停止不彻底的问题,确保系统的稳定运行。
1064 19
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
720 11
|
监控 Linux
Linux systemd 服务启动失败Main process exited, code=exited, status=203/EXEC
通过以上步骤,可以有效解决 systemd 服务启动失败并报错 `Main process exited, code=exited, status=203/EXEC` 的问题。关键在于仔细检查单元文件配置、验证可执行文件的有效性,并通过日志分析具体错误原因。确保可执行文件路径正确、文件具有执行权限,并且可以独立运行,将有助于快速定位和解决问题。
5901 7