信息化工作人员必备常识7——DNS【域名解析详解】
- 前言
- 信息化人员必备常识回顾(不想看回顾的直接往下滑哦~)
- ping
- telnet
- nslookup命令
- ipconfig命令
- 域名
- DNS
- 为什么需要DNS解析域名为IP地址?
- 域名解析
- DNS服务器
- DNS服务器分类表格
- DNS客户端
- DNS中继
- DNS中继的工作原理
- DNS域名解析过程
- 静态域名解析
- 动态域名解析
- 域名解析过程实例分析
前言
信息化相关的工作人员,无论你是开发人员、产品经理、CIO领导,你只要是在做信息化相关的工作,有些基础知识和操作,你就必须要会,不然工作中被别人发现你不会,那真的是贻笑大方了。
就比如说:部署的系统进不去了,领导来问你,你又去电话问供应商,这时候供应商来一句用你的电脑ping一下、telnet一下,看看是不是网络问题,你愣住了不知道该怎么弄,这不是丢脸丢大了。(虽然一般来说你是甲方你不会也可以骂乙方,谁让你是金主爸爸呢~)
telnet命令&ping命令——信息化工作人员必备常识1
telnet命令——信息化工作人员必备常识2——telnet详解
信息化工作人员必备常识3——nslookup命令【用来诊断域名(DNS) 基础结构的信息以及用来查看域名和IP的对应关系】
信息化工作人员必备常识4——ping命令详解【不间断发包&自定义发包的大小&自定义发包次数】
信息化工作人员必备常识5——ipconfig命令详解【显示当前的TCP/IP配置】
信息化工作人员必备常识6——域名详解【顶级域名&一级域名&二级域名&三级域名】
信息化人员必备常识回顾(不想看回顾的直接往下滑哦~)
ping
主要是测试网络的连通性,例如对内网和外网的测试,确认用户是不是因为网络而进不去网站的:
常用语法:
ping IP地址;
ping 域名;
telnet
Telnet命令是一种用于远程登录到另一台计算机的网络协议,telnet 用于远程管理连接主机。同时也是测试目标机器的TCP端口是否开放。
常用语法:
telnet IP 端口
telnet 域名 端口
如果端口关闭或者无法连接,则显示不能打开到主机的链接,链接失败;
端口打开的情况下,链接成功,则进入telnet页面(全黑的),证明端口可用
nslookup命令
nslookup 主要用来诊断域名系统 (DNS) 基础结构的信息
也就是查询DNS的记录,查询域名解析是否正常,在网络故障时用来诊断网络问题。或者,最常用的就是查一下这个域名的ip地址是多少。
nslookup baidu.com //采用默认的DNS服务器查询
nslookup baidu.com 114.114.114.114 //采用指定的DNS服务器查询
- 每个DNS服务器查询到的IP可能不相同(因为大网站在多地都有机房,一般是就近获取,所以会不一样)
- 可能查询出来的记录会出现多个
- 对于被污染的域名,查询的结果是不准确的
ipconfig命令
ipconfig可用于显示系统的TCP/IP网络配置值,并刷新动态主机配置协议 (DHCP) 和域名系统 (DNS) 设置。通常是用来检验人工配置的TCP/IP设置是否正确。当我们所在的局域网使用了DHCP服务器,我们就很可能经常用ipconfig查看客户端的IP地址,以及其它的一些高级功能。
ipconfig
ipconfig /all
.....
域名
以www.baidu.com为例
com为一级域名(即顶级域名);
baidu是二级域名;
www是三级域名。
每一个相同顶级域名中的二级域名注册都是独一无二的,不可重复的,
但不同顶级域名中的二级域名可以是相同的
推销一下自己~:
博主 DTcode7 带您 溺亖在知识的海洋里,嘿嘿嘿.~
🐒 个人主页—— DTcode7 的博客 🐒
《微信小程序相关博客》
《Vue相关博客》
《前端开发习惯与小技巧相关博客》
《AIGC相关博客》
《photoshop相关博客》
😚 吾辈才疏学浅,摹写之作,恐有瑕疵。望诸君海涵赐教。望轻喷,嘤嘤嘤 🙈
🕍 愿斯文对汝有所裨益,纵其简陋未及渊博,亦足以略尽绵薄之力。倘若尚存阙漏,敬请不吝斧正,俾便精进!
DNS
DNS是域名系统(Domain Name System)的简称,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址。
DNS的工作原理和电话簿相似,都是管理名称和数字之间的映射关系。就像我们日常打电话,一般使用人名查找,很少直接输入电话号码一样。当我们上网打开某个网页、视频时,也很少直接使用IP地址,而是在浏览器里输入的URL地址,然后通过域名解析,帮助我们跳转到对应的网页、视频。
为什么需要DNS解析域名为IP地址?
首先,计算机在网络上通讯时只能识别IP地址(网络通讯大部分是基于TCP/IP协议,而TCP/IP是基于IP地址的)。
比如我要在浏览器中访问百度的地址,我可以在地址栏直接输入14.215.177.39就能访问到百度的首页。但是我们无法记住更多的IP地址。
那么域名就出现了,域名是由一串用”.”分隔的唯一名字。所以现在我们访问网站的时候,就可以在浏览器地址栏中输入域名(www.baidu.com),那么DNS就会把域名翻译成IP,然后访问IP。
域名解析
域名是为了方便记忆而专门建立的一套地址转换系统,要让一台服务器访问互联网,最终还必须通过IP地址来实现,域名解析就是将域名重新转换为IP地址的过程。
一般一个域名对应一个IP地址,一个IP地址可以对应多个域名;
多个域名可以同时被解析到一个IP地址。
域名解析需要由专门的域名解析服务器(DNS)来完成。
例如:www.taobao.com 实际解析到的ip就是——>140.205.220.96
而网络中与DNS相关的设备角色包括:【DNS服务器】、【DNS客户端】和【DNS中继】
DNS服务器
DNS服务器是用来将域名指向对应IP地址的服务器。
DNS服务器中保存了一张域名和与之相对应的IP地址的表,以解析消息的域名。
由于互联网连通的是全球资源,单一的DNS域名服务器不足以支撑全部的地址转换操作,因此全球有多套DNS域名服务器相互配合使用。(就跟四大运营商基站到处都有一样,为了更快的解析~)
因为域名是分层结构,所以域名DNS服务器也是对应的层级结构。
通过根域名服务器,依次请求顶级域名服务器和权威域名服务器,最终获取对应IP地址,并将该结果保存在本地域名服务器,以待下次DNS请求使用。当用户再次对同一域名发起访问时,可以直接从本地域名服务器获得结果,无需再次发起全球递归查询(也就是缓存DNS)。
DNS服务器分类表格
DNS客户端
DNS客户端的作用是接收用户程序(User Program)的DNS请求,并对其作出回应。
作为DNS客户端的设备,一般具备以下能力:
-
启动DNS解析(要使用DNS客户端功能,需要在设备上打开DNS解析的开关)。
-
指定服务器的IP地址(要进行DNS域名解析,需要在设备上指定DNS服务器的IP地址。这样才能把查询请求发到正确的DNS服务器上进行解析)。
-
指定DNS域后缀搜索列表(DNS客户端所访问的一些服务器或主机的域名后缀往往都是相同的。用户可以预先设置一些域名后缀,在域名解析的时候,用户只需要输入域名的部分字段,系统会自动将输入域名加上不同的后缀进行解析。例如,用户想查询域名“baidu.com”,那么可以在后缀列表中配置com,然后输入“baidu”,系统会自动将输入域名与后缀连接成“baidu.com”进行查询)。
DNS中继
当DNS服务器的IP地址发生变化时,用户网络中每个DNS客户端上的配置都需要改变,这样工作量极大并且容易出错。此时,可以通过部署DNS中继解决该问题。
DNS客户端上配置DNS中继的IP地址,DNS服务器的IP地址在DNS中继上配置。之后,DNS客户端会将DNS请求报文直接发送给DNS中继,由DNS中继将收到的DNS请求报文转发至DNS服务器,而不是由DNS客户端直接发送请求报文发给DNS服务器(相当于加了一层中转)。
由此,当DNS服务器的IP地址发生变化时,仅需改变DNS中继上的配置即可,简化了网络管理。
DNS中继的工作原理
- DNS客户端将DNS请求报文发送给DNS中继,即请求报文的目的地址为DNS中继的IP地址。
- DNS中继收到请求报文后,将报文转发给DNS服务器,通过DNS服务器进行域名解析。
DNS域名解析过程
通过域名获取对应IP地址的过程称为域名解析。
DNS域名解析分为以下两种方式:
静态域名解析
静态域名解析是通过静态域名解析表进行的,即手动建立域名和IP地址之间的对应关系表,该表的作用可以将一些常用的域名放入表中。
当DNS客户端需要域名所对应的IP地址时,即到静态域名解析表中去查找指定的域名,从而获得所对应的IP地址,提高域名解析的效率
静态域名解析其实就像暴力破解密码时的密码库一样,是一些常用的、基础的密码(域名),可以不用再去一层层交换查找,而是直接就能找到,提高解析的效率。
动态域名解析
动态域名解析需要**专用的域名解析服务器(DNS服务器)**运行域名解析服务器程序,提供从域名到IP地址的映射关系,负责接收客户提出的域名解析请求。
为提高查询速度,在解析域名时,首先采用静态域名解析的方法,如果静态解析不成功,再采用动态域名解析的方法。
域名解析过程实例分析
了解完上面的概念,那么,当我们访问一个网页(域名)的时候,到底经历了哪些过程呢?
以访问http://www.baidu.com为例,看下DNS会进行哪些操作:
用户程序(如ping、telnet等)使用域名访问网络时,首先会向DNS客户端的地址解析器发出DNS请求。
一般来说,用户程序(例如Ping、Tracert)、缓存区和解析器(DNS客户端)是在同一台主机上,域名服务器(DNS服务器)和它们在不同的主机上。
- 地址解析器收到DNS请求后,首先查询本地域名缓存。
- 情况一:如果本地域名缓存中存在该域名对应的映射表项,地址解析器(DNS客户端)就直接将域名对应的IP地址返回给用户程序。这种情况效率很快,到这里就结束了。
- 情况二:如果本地域名缓存中不存在所要查找的映射表项,地址解析器(DNS客户端)就向DNS服务器发送查询请求报文。
- DNS服务器收到查询报文后,首先判断请求的域名是否处于自己被授权管理的子域里,再根据不同的判断结果,向DNS客户端发送相应的响应报文。
- 情况一:如果请求的域名在自己被授权管理的子域范围之内,该DNS服务器首先从自己的数据库中查找域名对应的IP地址。
- 情况二:如果请求的域名不在自己被授权管理的子域范围之内,该DNS服务器就将请求交给上一级的DNS服务器处理。DNS服务器完成解析后,将解析的结果返回给DNS客户端。
- DNS客户端的地址解析器接收并解析DNS服务器发回来的响应报文,将解析结果(ip地址)返回给用户程序。
到这里,你输入的www.baidu.com就被解析成了ip地址进行访问了。
每次动态解析成功的域名与IP地址的映射均会存放在动态域名缓存区中,当下一次查询相同域名的时候,就可以直接从缓存区中读取,不用再向域名服务器进行请求。
缓存区中的映射在一段时间后会被老化删除,以保证及时从域名服务器得到最新的内容。