linux系统之DNS原理解析(第一步)

简介:

前言

   现在,用户打开个网站页面只要输入该网站的网址,就可以访问该网站,而在Internet发展的早期,只能过IP地址才能访问网页。然而到了今天,访问各个网站都不再需要用到ip地址,只要通过网站中、英文网址,甚至只要部分关键就可以访问特定的网页。实现这一便捷功能的网络服务就是DNS域名解析服务,它实现了IP地址到域名的对应。

DNS是什么
   DNS(Domain Name Server,域名服务器),由伯克利大学发展出来的另一种层次式管理主机名到IP地址的系统,是为了便于访问Internet而采用的一种分布式的域名-->IP地址映射查询和管理方法。用户在不知道主机IP地址而只知道主机域名的情况下,也可以轻松的进行访问,这就是DNS的功劳。

DNS提供了那些服务

   DNS除了最主要的功能从主机名到IP地址的转换,还有提供了一些其它的服务。

   1、主机别名

   2、邮件服务器别名

   3、负载分担

DNS是怎样工作的

   DNS基本身是分为服务端与客户端的,提交域名查询请求的主机叫DNS客户端,而处理域名查询请求的主机叫DNS服务端,其实DNS的客户端同样拥有简单的查询功能,通过本地的配置文件(/etc/host.conf,/etc/hosts,/etc/resolv.conf)来实现的。

   当系统中同时存在DNS域名解析和/etc/hosts主机表机制时,由该/etc/host.conf确定主机名解释顺序

   /etc/host.conf内容如下:

wKioL1Md5sezPbvHAABIgSBQYr0417.jpg

   order hosts,bind    #名称解释顺序

   multi on            #允许主机拥有多个IP地址

   nospoof on          #禁止IP地址欺骗

   order是关键字,定义先用本机hosts主机表进行名称解释,如果不能解释,再搜索bind名称服务器(DNS)。

   /etc/hosts内容如下:

wKiom1Md6Eeh9kM5AAEkpq8gdnk741.jpg

   第一列是主机的IP地址,第二列是FQDN(Fully qualified domain name,完全限定域名),第三列为别名.

   /etc/resolv.conf

wKioL1Md6n_AzSTLAACkgjB5_0c168.jpg

   DNS列表:

       nameserver 101.104.223.21  主DNS服务器地址

       nameserver 175.188.96.14    辅助DNS服务器地址

   DNS服务端解析过程有递归与迭代之分

   递归解析

   ①当客户端发起查询请求时, 先查询本地数据文件(如果查询请求是本机所负责区域中的数据的话,要通过查询区域数据文件返回结果)

   ②如果查询请求不是本机所负责区域中的数据的话,就查询缓存。
   ③如果缓存没有答案,则向根发起查询请求,层层下向的方式去申请,直至找到,并一级一级的返回,最络响应给本地的DNS服务器,由本地的DNS将请求结果,发给客户端。
         递归查询(只有那些可以递归的才可以写入到/etc/resolv.conf文件中)

wKiom1Md61_RKhO5AAGnqSEGDMI464.bmp

迭代解析

   1、查询本地数据文件(如果查询请求是本机所负责区域中的数据的话,要通过查询区域数据文件返回结果)

   2、如果查询请求不是本机所负责区域中的数据的话,就查询缓存。

   3、如果缓存没有答案,则向根发起查询请求。

   4、在迭代解析中,向根发起请求时(第一步),根不会为任何个区域解析,根只能返回是那一个一级域具体负责解析这个区域,由本地DNS自己去找到对应的一级区域(第二步),当DNS请求到一级的某一个区域时,该区域会返回一个“参考”答案,而本地的DNS根据此信息,再次向下一级请求,依此方法向下请求,直至找到后(第三步),DNS会将请求的结果响应给客户端(第四步)。


wKiom1Md7k-hWL-4ABrMOP_xL2U706.bmp


   由此可见,递归一般发生在客户机和服务器之间,也就是说,客户端到本地的DNS服务器之间是递归查询,迭代则发生于本地DNS服务器与其它域之间。

DNS的安装与配置文件说明

   1、安装包说明

wKiom1Md9i-gDCcYAALdWuYW9s8816.jpg

   2、安装后常用各文件说明

wKioL1Md-cPQTZpKAAHewztspRA303.jpg

DNS原理就说到这里,明天将说明配置文件,正反向解析,主辅简单配置

===================================完===========================================










本文转自 jinlinger 51CTO博客,原文链接:http://blog.51cto.com/essun/1372123,如需转载请自行联系原作者
目录
相关文章
|
6月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
514 3
Linux系统禁用swap
|
6月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
1029 3
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
615 3
Linux系统初始化脚本
|
7月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
448 18
|
6月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
582 1
|
6月前
|
监控 安全 Linux
Linux系统提权之计划任务(Cron Jobs)提权
在Linux系统中,计划任务(Cron Jobs)常用于定时执行脚本或命令。若配置不当,攻击者可利用其提权至root权限。常见漏洞包括可写的Cron脚本、目录、通配符注入及PATH变量劫持。攻击者通过修改脚本、创建恶意任务或注入命令实现提权。系统管理员应遵循最小权限原则、使用绝对路径、避免通配符、设置安全PATH并定期审计,以防范此类攻击。
1187 1
|
7月前
|
缓存 监控 Linux
Linux系统清理缓存(buff/cache)的有效方法。
总结而言,在大多数情形下你不必担心Linux中buffer与cache占用过多内存在影响到其他程序运行;因为当程序请求更多内存在没有足够可用资源时,Linux会自行调整其占有量。只有当你明确知道当前环境与需求并希望立即回收这部分资源给即将运行重负载任务之前才考虑上述方法去主动干预。
1981 10
|
12月前
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
1124 29
|
12月前
|
前端开发 数据安全/隐私保护 CDN
二次元聚合短视频解析去水印系统源码
二次元聚合短视频解析去水印系统源码
470 4
|
12月前
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~