DNS基本工作原理

news/2024/11/17 22:30:38/

文章目录

  • 1. DNS服务概述
    • (1)域和域名
    • (2)区(Zone)
    • (3)主域名服务器与辅助域名服务器
    • (4)DNS服务器与DNS缓存
  • 2. DNS查询方式:递归查询和迭代查询
  • 3. 正向解析与反向解析
  • 4. DNS资源记录


1. DNS服务概述

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

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

注:DNS域名空间中,树的最大深度不得超过127层,树中每个节点最长可以存储63个字符。

在这里插入图片描述
例如,www.baidu.com是四层域名,分别为wwwbaiducom.。最后一个.在日常生活中通常省略(百度的完整域名是www.baidu.com.),它表示根域。

再例如,test.com是一个顶级域名(1个点号);test.cn.com是一个二级域名(2个点号);test.mial.cn.com是一个三级域名(3个点号)。

(1)域和域名

  • DNS树的每个节点代表一个域,通过这些节点,对整个域名空间进行划分,成为一个层次结构。域名空间的每个域的名字,通过域名进行表示。

  • 域名:通常由一个完全合格域名(FQDN)标识,是全球唯一的。FQDN能准确表示出其相对于DNS域树根的位置,也就是节点到DNS树根的完整表述方式,从节点到树根采用反向书写,并将每个节点用“.”分隔,对于DNS域Google来说,其完全正式域名(FQDN)为google.com.。google为com域的子域,其表示方法为google.com,而www为google域中的子域,可以使用www.google.com表示。

  • 注意:通常,FQDN有严格的命名限制,长度不能超过256字节,只允许使用字符a-z,0-9,A-Z和减号(-)。点号(.)只允许在域名标志之间(例如“google.com”)或者FQDN的结尾使用。域名不区分大小。

  • 由最顶层到下层,可以分成:根域、顶级域、二级域。

  • 全球共有13组根域名服务器。

  • DNS根域下面是顶级域,也由Internet域名注册授权机构管理。共有3种类型的顶级域。

  • 顶级域的三种类型:

    • 组织域:采用3个字符的代号,表示DNS域中所包含的组织的主要功能或活动。比如com为商业机构组织;edu为教育机构组织;gov为政府机构组织;mil为军事机构组织;net为网络机构组织;org为非盈利机构组织;int为国际机构组织。
    • 地址域:采用两个字符的国家或者地区代号。如cn为中国;kr为韩国;us为美国。
    • 反向域:这是个特殊域,名字为in-addr.arpa,用于将IP地址映射到名字(反向查询)。

(2)区(Zone)

  • 区是DNS名称空间的一部分,其包含了一组存储在DNS服务器上的资源记录。

  • 使用区的概念,DNS服务器回答关于自己区中主机的查询,每个区都有自己的授权服务器。

(3)主域名服务器与辅助域名服务器

当区的辅助服务器启动时,它与该区的主控服务器进行连接并启动一次区传输,区辅助服务器定期与区主控服务器通信,查看区数据是否改变。如果改变了,它就启动一次数据更新传输。

每个区必须有主服务器,另外每个区至少要有一台辅助服务器,否则如果该区的主服务器崩溃了,就无法解析该区的名称。

辅助服务器的优点:

  1. 容错能力。

    配置辅助服务器后,就在该区主服务器崩溃的情况下,客户机仍然能解析该区的名称。一般把区的主服务器和区的辅助服务器安装在不同子网上,这样入如果遇到一个子网的连接中断,DNS客户机还能直接查询另一个子网上的名称服务器。

  2. 减少广域链路的通信量。

    如果某个区在远程有大量客户机,用户就可以在远程添加该区的辅助服务器,并把远程的客户机配置成先查询这些服务器,这样就能防止远程客户机通过慢速链路通信来进行DNS查询。

  3. 减轻主服务器的负载。

    辅助服务器能回答该区的查询,从而减少该区服务器必须回答的查询数。

(4)DNS服务器与DNS缓存

  • 运行DNS服务器程序的计算机,存储DNS数据库信息。DNS服务器会尝试解析客户机的查询请求。

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

2. DNS查询方式:递归查询和迭代查询

一个DNS查询的过程:

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

在这里插入图片描述

在上述过程中,客户端和本地DNS服务器之间属于递归查询,本地DNS服务器和其他DNS服务器之间沟通的过程属于迭代查询。

两种查询方式:

  1. 递归查询:一次沟通完。

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

  2. 迭代查询

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

小结:

  1. 一般情况下,从PC客户端到本地DNS服务器是属于递归查询。而DNS服务器之间的交互查询就是迭代查询。
  2. 本地DNS服务器中存在高速缓存,高速缓存会记录新获取的IP地址。高速缓存的IP地址(IP地址未改变的情况下)通常可以保留两天。
  3. 获取DNS服务器可以分为手动获取和自动获取。如果我们手动设置本地DNS服务器,例如谷歌假设的DNS服务器,这种使用人数众多的DNS服务器,在高速缓存中会存有大量的IP地址。
  4. 如果自动获取DNS服务器,即不指定本地DNS服务器,路由器就会使用自身的DNS服务器来给我们使用。

3. 正向解析与反向解析

正向解析:是指域名到IP地址的解析过程。

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

4. DNS资源记录

  1. SOA资源记录

    每个区在区的开始处都包含了一个起始授权记录(StaofAuthorityRecord)简称SOA记录。SOA定义了域的全局参数,进行整个域的管理设置。一个区域文件只只允许存在唯一的SOA记录。

  2. NS资源记录

    NS(NameServer)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解折。每个区在区根处至少包含一个NS记录。

  3. A资源记录

    地址(A)资源记录把FQDN映射到IP地址。因为有此记录,所以DNS服务器能解析FQDN域名对应的IP地址。

  4. PTR资源记录

    相对于A资源记录,指针(PTR)记录把IP地址映射到FQDN。用于反向查询,通过IP地址找到域名。

  5. CNAME资源记录

    别名记录(CNAME),资源记录创建特定FQDN的别名。用户可以使用CNAME记录来隐藏用户网络的实现细节,使连接的客户机无法知道真正的域名。

    例:ping百度时,解析到了百度的别名服务器百度有个cname= 的别名 www.a.shifen.com.

  6. MX资源记录

    邮件交换(MX)资源记录,为DNS域名指定邮件交换服务器。


参考视频:

https://www.bilibili.com/video/BV1GW411j7Ts?p=1

https://www.bilibili.com/video/BV1F54y1R7BC?p=2


http://www.ppmy.cn/news/687898.html

相关文章

怎么显示kr服务器,一些国外DNS服务器 韩国[kr]

今天在网上闲逛,发现了几个韩国的DNS服务器. 摘了下来,常看韩国站点,或一些被国内屏幂的站点的朋友,可以试试. 单捞哪. nis.dacom.co.kr internet address 164.124.101.31 ns2.dacom.co.kr internet address 203.248.240.31 窍捞炮. nis.hitel.net internet address 203.245…

[Python]类的多态

4.3 类的多态 在Python中,多态指的是相同的操作可以作用于不同类型的对象,并且会产生不同的结果。换句话说,多态允许使用相同的代码来处理不同的数据类型。 一个简单的例子如下: class Animal:def __init__(self, name):self.na…

从0到1精通自动化测试,pytest自动化测试框架,doctest测试框架(十四)

一、前言 doctest从字面意思上看,那就是文档测试。doctest是python里面自带的一个模块,它实际上是单元测试的一种。 官方解释:doctest 模块会搜索那些看起来像交互式会话的 Python 代码片段,然后尝试执行并验证结果 doctest测试…

辞职考研,值得吗?

辞职考研,值得吗? 30岁想考研,工作非常不好还经常加班每天一两小时,周六也加班,辞职考全日制研究生值得吗? 值得,人生只有舍弃已经存在的,不断进入未知领域,境界才能不断…

【STM32】F103(64K/128K Flash)外设概述

本文介绍的是STM32F103 中等容量产品(STM32F103x8xx和STM32F103xBxx)的硬件数据,即64KB或128KB Flash,20KB SRAM。 ST官网资料:https://www.st.com/zh/microcontrollers-microprocessors/stm32f103.html ST官方的中等…

awk 输出指定列

1,命令基本格式 awk {print $0} testfile.txt 结果: -rw-rw-r-- 1 yxxx yxxx 600 Jun 27 11:55 sed_test -rwxrwxr-x 1 yxxx yxxx 80 Jun 26 15:23 test1.sh -rwxrwxr-x 1 yxxx yxxx 111 Jun 26 15:27 test2.sh -rwxrwxr-x 1 yxxx yxxx 153 Jun 27 14:…

增强蓝牙接收信号强度,实现精准定位的方法

蓝牙的接收信号强度指示器(RSSI)可用于估计距离已知固定点的距离,但这种技术对于诸如室内定位系统(IPS)和资产跟踪等应用来说通常不够精确。蓝牙规范的更新提供了更精确的前进路径。那么, 如何增强蓝牙接收…

陈先科:实施ERP系统的若干体会(转)

陈先科:实施ERP系统的若干体会 本人在多年的工作中,参与了ERP的研发和实施,对ERP有较深的认识。在这里,根据自已的实施过程中的一些经历,把自已在实践中的一些体会贡献出来和大家共享,由于时间和精力所限&a…