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,如需转载请自行联系原作者
目录
相关文章
|
7天前
|
存储 缓存 NoSQL
深入解析Redis:一种快速、高效的键值存储系统
**Redis** 是一款高性能的键值存储系统,以其内存数据、高效数据结构、持久化机制和丰富的功能在现代应用中占有一席之地。支持字符串、哈希、列表、集合和有序集合等多种数据结构,适用于缓存、计数、分布式锁和消息队列等场景。安装Redis涉及下载、编译和配置`redis.conf`。基本操作包括键值对的设置与获取,以及哈希、列表、集合和有序集合的操作。高级特性涵盖发布/订阅、事务处理和Lua脚本。优化策略包括选择合适数据结构、配置缓存和使用Pipeline。注意安全、监控和备份策略,以确保系统稳定和数据安全。
53 1
|
8天前
|
Linux 编译器 开发者
Linux设备树解析:桥接硬件与操作系统的关键架构
在探索Linux的庞大和复杂世界时🌌,我们经常会遇到许多关键概念和工具🛠️,它们使得Linux成为了一个强大和灵活的操作系统💪。其中,"设备树"(Device Tree)是一个不可或缺的部分🌲,尤其是在嵌入式系统🖥️和多平台硬件支持方面🔌。让我们深入了解Linux设备树是什么,它的起源,以及为什么Linux需要它🌳。
Linux设备树解析:桥接硬件与操作系统的关键架构
|
4天前
|
算法 Linux 调度
深度解析:Linux内核的进程调度机制
【4月更文挑战第12天】 在多任务操作系统如Linux中,进程调度机制是系统的核心组成部分之一,它决定了处理器资源如何分配给多个竞争的进程。本文深入探讨了Linux内核中的进程调度策略和相关算法,包括其设计哲学、实现原理及对系统性能的影响。通过分析进程调度器的工作原理,我们能够理解操作系统如何平衡效率、公平性和响应性,进而优化系统表现和用户体验。
14 3
|
5天前
|
分布式计算 资源调度 监控
Hadoop生态系统深度剖析:面试经验与必备知识点解析
本文深入探讨了Hadoop生态系统的面试重点,涵盖Hadoop架构、HDFS、YARN和MapReduce。了解Hadoop的主从架构、HDFS的读写流程及高级特性,YARN的资源管理与调度,以及MapReduce编程模型。通过代码示例,如HDFS文件操作和WordCount程序,帮助读者巩固理解。此外,文章强调在面试中应结合个人经验、行业动态和技术进展展示技术实力。
12 0
|
11天前
|
负载均衡 算法 Linux
深度解析:Linux内核调度器的演变与优化策略
【4月更文挑战第5天】 在本文中,我们将深入探讨Linux操作系统的核心组成部分——内核调度器。文章将首先回顾Linux内核调度器的发展历程,从早期的简单轮转调度(Round Robin)到现代的完全公平调度器(Completely Fair Scheduler, CFS)。接着,分析当前CFS面临的挑战以及社区提出的各种优化方案,最后提出未来可能的发展趋势和研究方向。通过本文,读者将对Linux调度器的原理、实现及其优化有一个全面的认识。
|
12天前
|
存储 缓存 监控
深入解析linux内存指标:快速定位系统内存问题的有效技巧与实用方法(free、top、ps、vmstat、cachestat、cachetop、sar、swap、动态内存、cgroops、oom)
深入解析linux内存指标:快速定位系统内存问题的有效技巧与实用方法(free、top、ps、vmstat、cachestat、cachetop、sar、swap、动态内存、cgroops、oom)
|
13天前
|
XML Java Android开发
Android实现自定义进度条(源码+解析)
Android实现自定义进度条(源码+解析)
47 1
|
28天前
|
Python
区域代理分红商城系统开发源码片段示例规则解析
level = Column(Integer, default=1) # 代理等级,例如:1代表普通用户,2代表初级代理,3代表高级代理等 parent_id = Column(Integer, ForeignKey('user.id')) # 上级代理ID 【更全面的开发源码搭建可V or TG我昵称】 parent = relationship("User", remote_side=[id]) # 上级代理对象
|
1月前
|
存储 安全 Java
ArrayList源码全面解析
ArrayList源码全面解析
|
2月前
|
C语言
内核源码中遇到不会解析的宏怎么办?
内核源码中遇到不会解析的宏怎么办?
202 1

相关产品

  • 云解析DNS