首页 > 其他分享 >什么是DNS?

什么是DNS?

时间:2023-12-31 10:55:21浏览次数:28  
标签:什么 域名解析 域名 DNS IP地址 服务器 客户端

TCP/IP提供了通过IP地址来连接到设备的功能,但对用户来讲,记住某台设备的IP地址是相当困难的,因此专门设计了一种字符串形式的主机命名机制,这些主机名与IP地址相对应。在IP地址与主机名之间需要有一种转换和查询机制,提供这种机制的系统就是域名系统DNS(Domain Name System)。

目录

为什么要有DNS?

 

互联网中,一台计算机与其他计算机通信时,通过IP地址唯一的标志自己。此时的IP地址就类似于我们日常生活中的电话号码。但是,这种纯数字的标识是比较难记忆的,而且数量也比较庞大。例如,每个IPv4地址是一个32位长的二进制数字,或者采用点分十进制展示成192.168.1.1这种格式,有接近43亿个的IPv4地址。DNS的作用就是将人类可读的名称转换为机器识别的IP地址,供计算机相互连接。DNS的工作原理和电话簿相似,都是管理名称和数字之间的映射关系。就像我们日常打电话,一般使用人名查找,很少直接输入电话号码一样。当我们上网打开某个网页、视频时,也很少直接使用IP地址,而是在浏览器里输入的URL地址,例如:https://www.huawei.com,这其实使用的就是计算机的名字,一般称为域名。

域名的构成

 

最初设备的域名由字符序列组成、所有设备的域名组成一个未分级的域名结构。未分级的域名结构存在命名冲突、管理维护复杂的缺点。因此,TCP/IP把DNS的域名设计成了分级的树状结构。每个申请加入Internet的国家都要向NIC注册一个顶级域名,顶级域采用组织模式和地理模式的划分模式,如cn代表中国、us代表美国等。常见的顶级域名如下表所示。NIC将顶级域的管理权分派给由其指定的管理机构,由这些管理机构再对被授权管理的域继续进行划分,从而形成了二级域。负责划分二级域的管理机构可以授权其下属的管理结构,由它们继续划分域。由此下去,便形成了层次型的Internet域名体系结构。

表1-1 顶级Internet域名及其含义

顶级Internet域名

含义

com

商业组织

edu

教育机构

gov

政府机构

mil

军事部门

net

主要网络支持中心

int

国际组织

org

其他组织

国家代码

国家(按照地理模式划分)

从语法上讲,每一个域名都是有标号序列组成,而各标号之间用点(小数点)隔开。以www.huawei.com域名为例,从右到左依次是:

  • com:顶级域名。代表商业组织。
  • huawei:二级域名,归属于某个公司自己的域名。
  • www:三级域名,表明某个公司提供的是什么服务,www代表普通网页。

DNS服务器、DNS客户端和DNS中继

 

网络中与DNS相关的设备角色包括DNS服务器、DNS客户端和DNS中继。

DNS服务器

DNS服务器是将域名指向对应IP地址的服务器。DNS服务器中保存了一张域名和与之相对应的IP地址的表,以解析消息的域名。由于互联网连通的是全球资源,单一的域名服务器不足以支撑全部的地址转换操作,因此全球有多套域名服务器相互配合使用。

域名是分层结构,域名DNS服务器也是对应的层级结构。通过根域名服务器,依次请求顶级域名服务器和权威域名服务器,最终获取对应IP地址,并将该结果保存在本地域名服务器,以待下次DNS请求使用。当用户再次对同一域名发起访问时,可以直接从本地域名服务器获得结果,无需再次发起全球递归查询。

表1-2 DNS服务器的分类

分类

作用

根DNS服务器

根DNS服务器是最高层次的域名服务器,它知道所有顶级服务器的域名和IP地址,当本地域名服务器无法对域名进行解析时,首先对根域名服务器发起请求。

顶级域名服务器

顶级域名服务器负责管理该服务器下的所有二级域名,当收到DNS查询请求时,就会给权威域名服务器相应的回答。

权威域名服务器

负责某一个区域的域名服务器。当一个顶级域名服务器还不能给出最后查询回答时,就会告知下一步应当请求的权威域名服务器。

本地域名服务器

当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。每一个互联网服务提供者ISP都可以拥有一个本地域名服务器。当本地域名服务器无法给出应答时,就会请求最高级的根域名服务器。

DNS客户端

DNS客户端的作用是接收用户程序(User Program)的DNS请求,并对其作出回应。作为DNS客户端的设备上一般具备以下能力:

  1. 启动DNS解析

    要使用DNS客户端功能,需要在设备上打开DNS解析的开关。

  2. 指定服务器的IP地址

    要进行DNS域名解析,需要在设备上指定DNS服务器的IP地址。这样才能把查询请求发动到正确的DNS服务器上进行解析。

  3. 指定DNS域后缀搜索列表

    DNS客户端所访问的一些服务器或主机的域名后缀往往都是相同的。用户可以预先设置一些域名后缀,在域名解析的时候,用户只需要输入域名的部分字段,系统会自动将输入域名加上不同的后缀进行解析。例如,用户想查询域名“huawei.com”,那么可以在后缀列表中配置com,然后输入“huawei”,系统会自动将输入域名与后缀连接成“huawei.com”进行查询。

DNS中继

当DNS服务器的IP地址发生变化时,用户网络中每个DNS客户端上的配置都需要改变,这样工作量极大并且容易出错。此时,可以通过部署DNS中继解决该问题。DNS客户端上配置DNS中继的IP地址,DNS服务器的IP地址在DNS中继上配置。之后,DNS客户端会将DNS请求报文直接发送给DNS中继,由DNS中继将收到的DNS请求报文转发至DNS服务器。由此,当DNS服务器的IP地址发生变化时,仅需改变DNS中继上的配置即可,简化了网络管理。

DNS中继的工作原理如下图所示。

DNS中继的工作原理
DNS中继的工作原理
  1. DNS客户端将DNS请求报文发送给DNS中继,即请求报文的目的地址为DNS中继的IP地址。
  2. DNS中继收到请求报文后,将报文转发给DNS服务器,通过DNS服务器进行域名解析。

DNS域名解析过程

 

通过域名获取对应IP地址的过程称为域名解析。DNS域名解析分为以下两种方式:

  • 静态域名解析

    静态域名解析是通过静态域名解析表进行的,即手动建立域名和IP地址之间的对应关系表,该表的作用可以将一些常用的域名放入表中。当DNS客户端需要域名所对应的IP地址时,即到静态域名解析表中去查找指定的域名,从而获得所对应的IP地址,提高域名解析的效率

  • 动态域名解析

    动态域名解析需要专用的域名解析服务器(DNS服务器)运行域名解析服务器程序,提供从域名到IP地址的映射关系,负责接收客户提出的域名解析请求。

为提高查询速度,在解析域名时,首先采用静态域名解析的方法,如果静态解析不成功,再采用动态域名解析的方法。

动态域名解析原理图
动态域名解析原理图

如上图所示,DNS的工作过程如下:

  1. 用户程序(如ping、telnet等)使用域名访问网络时,首先向DNS客户端的地址解析器发出DNS请求。

  2. 地址解析器收到DNS请求后,首先查询本地域名缓存。
    • 如果本地域名缓存中存在该域名对应的映射表项,地址解析器就直接将域名对应的IP地址返回给用户程序。
    • 如果本地域名缓存中不存在所要查找的映射表项,地址解析器就向DNS服务器发送查询请求报文。
  3. DNS服务器收到查询报文后,首先判断请求的域名是否处于自己被授权管理的子域里,再根据不同的判断结果,向DNS客户端发送相应的响应报文。
    • 如果请求的域名在自己被授权管理的子域范围之内,该DNS服务器首先从自己的数据库中查找域名对应的IP地址。
    • 如果请求的域名不在自己被授权管理的子域范围之内,该DNS服务器就将请求交给上一级的DNS服务器处理。DNS服务器完成解析后,将解析的结果返回给DNS客户端。
  4. DNS客户端的地址解析器接收并解析DNS服务器发回来的响应报文,将解析结果返回给用户程序。

每次动态解析成功的域名与IP地址的映射均存放在动态域名缓存区中,当下一次查询相同域名的时候,就可以直接从缓存区中读取,不用再向域名服务器进行请求。缓存区中的映射在一段时间后会被老化删除,以保证及时从域名服务器得到最新的内容。

标签:什么,域名解析,域名,DNS,IP地址,服务器,客户端
From: https://www.cnblogs.com/dier-gaohe/p/17937292

相关文章

  • 为什么Spark比MapReduce快?
    1、内存和磁盘使用方面SparkvsMapReduce不等于内存vs磁盘,Spark和MapReduce的计算都发生在内存中,区别在于:MapReduce需要将每次计算的结果写入磁盘,然后再从磁盘读取数据,从而导致了频繁的磁盘IO。Spark通常不需要将计算的结果写入磁盘,可以在内存中进行迭代计算。这得益于Sp......
  • 为什么需要等保测试,等保测评是为了什么
    一、为什么要做网络安全评估?1、让企业了解自身网络安全现状任何风险都是潜在的,网络安全风险亦是如此。定期对系统和资产进行安全评估,有助于企业系统漏洞在被黑客利用之前提前发现,针对性采取措施,可以在一定程度上降低损失甚至避免损失。同时,定期做安全评估,能让企业了解自身的网络安......
  • 中间人攻击是什么,会产生哪些危害,如何有效防止中间人攻击
    简介中间人攻击(Man-in-the-MiddleAttack,简称MITM攻击)是一种网络攻击,其原理是攻击者通过各种技术手段将受攻击者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机称为“中间人”。在攻击过程中,中间人可以截取、查看、篡改、伪造或修改受害者之间的通信数据,以达......
  • 云安全是什么?有什么作用
    随着云计算的普及和深入应用,云安全已成为企业和组织面临的重要挑战。云安全旨在保护云计算环境中的数据、应用程序和基础设施免受各种威胁和攻击,确保云计算环境的可用性、机密性和完整性。云安全包括以下几个关键领域:一、数据保护数据是业务的核心资产,因此数据保护是云安全的重......
  • 流畅的Python纸牌:rank_value * len(suit_value)为什么要乘以4
    用点数(rank_value )和花色(suits_values)两个因素对每张牌排序,每张牌都有不同的数值returnrank_value*len(suits_values)+suits_values[card.suit]其中:ranks=[str(n)forninrange(2,11)]+list('JQKA')suits_values=dict(zip(suits,[3,1,0,2]))*len(suits_......
  • IP: dns-lookup : 查询域名的公网IP地址 解决 DNS域名解析绑架的问题例如访问 raw.git
    示例:https://github.com/orgs/community/discussions/42655https://github.com/mwaskom/seaborn-data/blob/2b29313169bf8dfa77d8dc930f7bd3eba559a906/dataset_names.txthttps://www.ip-lookup.org/dns-lookup/raw.githubusercontent.comIPDetailsDomain:Raw.githubuser......
  • 经历过秋招的人,会给小白什么建议?
    本文首发自公粽hao「林行学长」,欢迎来撩,免费领取20个求职工具资源包。了解校招、分享校招知识的学长来了!漫长的秋招差不多已经落下帷幕,经历过秋招的人想必有着许多宝贵经验。今天,咱们就来给没有参加过秋招的小白们”上上课“:求职要做好哪些工作。01.了解自己求职之前,你得准备自己......
  • 【Linux】什么是shell脚本?shell变量分为哪几类?
    在Linux操作系统中,shell是一个非常重要的存在,它是一个解释器,可以保护系统内核不被篡改的软件,一般所使用的系统中默认启动的shell是bash。那么什么是shell?shell变量分为哪几类?具体内容请看下文:什么是shell?Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shel......
  • 为什么要敏捷项目管理?你知道吗?
    当我们第一次听到“敏捷项目管理”这个词时,都会问两个问题。什么是敏捷?我们为什么需要敏捷?  “敏捷”是什么?敏捷方法是一种理念,采用基于人员、协作和共同价值观的组织模型。它作为新兴的项目管理模式,简化了传统项目管理的繁琐流程和文档。敏捷方法采用波浪式规划(rollingwave);迭......
  • 工业以太网交换机的出色优势是什么?
    网络交换机可以分为商用网络交换机和工业以太网交换机两种类别。就其灵活性和抗干扰性而言,工业交换机和商用交换机之间存在着显著差异,工业交换机的功能更加实用。工业以太网和商业网络在数据链路层、网络层和协议层等方面基本上没有本质区别。工业以太网在解决通信实时性、网络安全......