DNS服务概述:

DNS的模式为C/S模式

DNS(Domain Name System)域名系统,在TCP/IP网络中有非常重要的地位,能够提供域名与ip地址的解析服务。

DNS是一个分布式数据库,命名系统采用层次的逻辑结构,如同一颗倒置的树,这个逻辑的树型结构称为域名空间,于DNS划分了域名空间,所以各机构可以使用自己的域名空间创建DNS信息。

DNS相关概念

  • DNS服务器

   运行DNS服务器程序的计算机,存储DNS数据库信息。DNS服务器会尝试解析客户机的查询请求。在解答查询时,如果DNS服务器能提供所请求的信息,就直接回应解析结果,如果该DNS服务器没有相应的域名信息,则为客户机提供另一个能帮助解析查询的服务器地址,如果以上两种方法均失败,则回应客户机没有所请求的信息或者请求的信息不存在。

  • DNS缓存

   DNS服务器在解析客户机请求时,如果本地没有该DNS信息,则可以询问其他DNS服务器,当其他域名服务器返回查询结果时,该DNS服务器会将结果记录在本地的缓存中,成为DNS缓存。当下一次客户机提交相同请求时,DNS服务器能够直接使用缓存中的DNS信息进行解析。

  • DNS查询的方式

   递归查询和迭代查询

    递归查询

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

    迭代查询

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

   看一个DNS查询过程:

    通过8个步骤的解析过程就使得客户端可以顺利访问www.163.com这个域名,但实际应用中,通常这个过程是非常迅速的。

  1. 客户机提供域名解析请求,并将该请求发送给本地的域名服务器。
  2. 当本地的域名服务器收到请求后,就先查询本地的缓存。如果有查询的DNS信息记录,则直接返回查询的结果。如果没有该记录,本地域名服务器就把请求发给根域名服务器。
  3. 根域名服务器在返回给本地域名服务器一个所查询域的顶级域名服务器的地址。
  4. 本地服务器再向返回的域名服务器发送请求。
  5. 接收到该查询请求的域名服务器查询其缓存和记录,如果有相关信息则返还给客户机查询结果,否则通知客户机下级的域名服务器的地址。
  6. 本地域名服务器将查询请求发送给返回的DNS服务器。
  7. 域名服务器返回本地服务器查询结果(如果该域名服务器不包含查询的DNS信息,查询过程将重复6、7步骤,直到返回解析信息或解析失败的回应)
  8. 本地域名服务器将返回的结果保存到缓存,并且将结果返回给客户机。

正向解析与反向解析

  • 正向解析

    正向解析是指域名到ip地址的解析过程

  • 反向解析

    反向解析是从ip地址到域名的解析过程。反向解析的作用为服务器的身份验证

DNS域名解析系统_1的更多相关文章

  1. DNS域名解析系统_2

    部署DNS正向解析 主配置文件(/etc/named.conf): 用来定义bind服务程序的运行. 区域配置文件(/etc/named.rfc1912.zones): 用来保存域名和ip地址对应关系 ...

  2. DNS域名解析系统

    1.DNS的组成 DNS系统是为解析域名为IP地址而存在的,它是由域名空间.资源记录.名称服务器和解析器组成. 域名空间是包含一个树状结构,用于存储资源记录的空间. 资源记录是与域名相关的数据,如IP ...

  3. 详解DNS域名解析系统(域名、域名服务器[根、顶级、授权/权限、本地]、域名解析过程[递归与迭代])

    文章转自:https://blog.csdn.net/weixin_43914604/article/details/105583806 学习课程:<2019王道考研计算机网络> 学习目的 ...

  4. TCP/IP之DNS域名解析系统

    DNS系统是一个分布式的数据库,当一个数据库发现自己并没有某查询所需要的数据的时候,它将把查询转发出去,而转发的目的地通常是根服务器,根服 务器从上至下层层转发查询,直到找到目标为止.DNS还有一个特 ...

  5. window下域名解析系统DNS诊断命令nslookup详解

    Ping指令我们很熟悉了,它是一个检查网络状况的命令,在输入的参数是域名的情况下会通过DNS进行查询,但只能查询A记录和CNAME(别名)记录,还会返回域名是否存在,其他的信息都是没有的.如果你需要对 ...

  6. 解决Ubuntu系统的每次开机重启后,resolv.conf清空的问题和DNS域名解析问题(图文详解)

    不多说,直接上干货! 问题情况描述如下: 普及知识:   /etc/resolv.conf ,其实是一个Link .它其实指向的是 /run/resolvconf/resolv.conf.  Ubun ...

  7. 域名解析系统DNS诊断命令nslookup详解【转】

    转自:http://www.renhaibo.com/archives/29.html Ping指令我们很熟悉了,它是一个检查网络状况的命令,在输入的参数是域名的情况下会通过DNS进行查询,但只能查询 ...

  8. DNS域名解析过程

    图1-10是DNS域名解析的主要请求过程实例图. 如图1-10所示,当一个用户在浏览器中输入www.abc.com时,DNS解析将会有将近10个步骤,这个过程大体描述如下.当用户在浏览器中输入域名并按 ...

  9. DNS域名解析服务器

    域名解析服务器,靠它把你要访问的网址找到然后把信息送到你电脑上.DNS 是域名系统 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的.域名服务器是指保存有该网络中所有主 ...

随机推荐

  1. ADO.Net数据库连接字符串、DbProviderFactory

    一.ADO.Net数据库连接字符串 1.OdbcConnection(System.Data.Odbc) (1)SQL Sever 标准安全:" Driver={SQL Server}; S ...

  2. nodejs,express链式反应

    链式反应--next() const myexpress = require('express'); const bodyparser = require('body-parser'); var se ...

  3. .net FileUpload上传图片 图片转换二进制,以及保存显示

    protected void Button1_Click(object sender, EventArgs e) { Stream stream = FileUpload1.PostedFile.In ...

  4. vue中setInterval的清除

    两种清除setInterval的方式: 方案一: data() { return { timer: null // 定时器名称 } }, mouted() { this.timer = (() =&g ...

  5. 【C/C++】Linux的gcc和g++的区别

    Windows中我们常用vs来编译编写好的C和C++代码:vs把编辑器,编译器和调试器等工具都集成在这一款工具中,在Linux下我们能用什么工具来编译所编写好的代码呢,其实Linux下这样的工具有很多 ...

  6. Unknown system variable 'query_cache_size'

    java连接mysql 报错 java.sql.SQLException: Unknown system variable 'query_cache_size'at com.mysql.cj.jdbc ...

  7. spring配置hibernate在使用oracle驱动时报错Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver '

    在看到这个错误的时候就感觉有点不对劲了,在错误的结尾和引号之间还有空间,如果敏锐的点应该察觉到可能是空格问题.由于本人的粗心导致这个问题一直困扰了我接近一个上午. 在排查这个问题的时候首先想到的就是关 ...

  8. Jmeter-app接口

    1.IOS登录接口涉及的三个接口: 2.三个接口传入的参,第三个是判断用户是否登录成功的 http://118.178.247.67:8449/service/userLogin/phoneQuick ...

  9. Android控件RecyclerView的基本用法

    Android控件RecyclerView的基本用法 转 https://www.jianshu.com/p/e71a4b73098f   github: https://github.com/Cym ...

  10. Swift 字面量

    所谓字面量,就是指像特定的数字,字符串或者是布尔值这样,能够直接了当地指出自己的类型并为变量进行赋值的值.比如在下面: let aNumber = //整型字面量 let aString = &quo ...