命令行模拟DNS域名解析全过程

发布于:2023-02-14 ⋅ 阅读:(663) ⋅ 点赞:(0)

内容来源视频地址:DNS域名解析过程_哔哩哔哩_bilibili

什么是DNS域名解析


       我们首先要了解域名和IP地址的区别。IP地址是互联网上计算机唯一的逻辑地址,通过IP地址实现不同计算机之间的相互通信,每台联网计算机都需要通过IP地址来互相联系和分别。

      但由于IP地址是由一串容易混淆的数字串构成,人们很难记忆所有计算机的IP地址,这样对于我们日常工作生活访问不同网站是很困难的。基于这种背景,人们在IP地址的基础上又发展出了一种更易识别的符号化标识,这种标识由人们自行选择的字母和数字构成,相比IP地址更易被识别和记忆,逐渐代替IP地址成为互联网用户进行访问互联的主要入口。这种符号化标识就是域名。

      域名解析:例如,www.baidu.com是一个域名,和IP地址202.108.22.5相对应。DNS就像是一个自动的电话号码簿,我们可以直接拨打 baidu 的名字来代替电话号码(IP地址)。我们直接调用网站的名字以后,DNS就会将便于人类使用的名字(如www.baidu.com)转化成便于机器识别的IP地址(如202.108.22.5)。


什么是域名

        ​域名服务器管理名字的方法是:分不同的组来负责各子系统的名字。系统中的每一层叫做一个域,每个域用一个点分开。

        所谓域名服务器(即Domain Name Server,简称Name Server、DNS)实际上就是装有域名系统的主机。它是一种分层结构数据库,能够执行域名解析(name resolution)。 

         DNS可以允许一个名称服务器把他的一部分名称服务(众所周知的zone)“委托”给子服务器,从而实现一种层次结构的名称空间。此外,DNS还提供了一些额外的信息,例如系统别名、联系信息以及哪一个主机正在充当系统组或域的邮件枢纽。         

        当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。域名同时也仅限于ASCII字符的一个子集,这使得很多其他语言无法正确表示他们的名字和单词。基于Punycode码的IDNA系统,可以将Unicode字符串映射为有效的DNS字符集,这已经通过了验证并被一些注册机构作为一种变通的方法所采纳。 [5] 另外,在域名中大小写是没有区分的。域名一般不能超过5级,从左到右域的级别变高,高的级域包含低的级域。域名在整个Internet中是唯一的,当高级子域名相同时,低级子域名不允许重复。一台服务器只能有一个IP地址,但是却可以有多个域名。 

         域名、创建时间、使用范围说明 :

        .com- 供商业机构使用,但无限制最常用,被大部分人熟悉和使用

        .net- 1985年1月,原供网络服务供应商使用,现无限制

        .org- 1985年1月,原供不属于其他通用顶级域类别的组织使用,现无限制

        .edu / .gov / .mil- 1985年1月,供美国教育机构/美国政府机关/美国军事机构。因历史遗留问题一般只在美国专用        具体可见域名_百度百科

域名的组成结构

DNS解析域名全过程

小伙伴可以通过输入以下指令来更好的理解DNS解析域名的过程

首先通过 win+r 打开 运行窗口

输入      cmd

第一步

然后在命令行中输入 nslookup, 返回默认的DNS服务器和IP地址

 第二步

输入 set type=ns     此处的ns代表服务器名称name server

然后输入 .               代表查询根服务器名称

         此处可以查询到13个根服务器名称,根据bi站蛋老师的检索结果显示,该13个域名分别由12家不同机构进行管理,并且由1467节点进行维护

第三步

输入         set type=a       

输入         a.root-servers.net.             显示b这个根服务器对应的ip地址

第四步

输入         server 199.9.14.201   和该根服务器域名建立通信(此处有可以会出现DNS request time out),大家可以尝试切换其他节点的服务,如d.root-servers.net. 

 

 在进行这一步的时候我也出现了上述问题,我切换到了d.root-servers.net. 服务

该处ip地址为199.7.91.13

第五步 

输入         set type=ns     

输入         com.                     向b根域名服务器咨询,com.  域名服务器的地址

此处响应为权威响应,因为是我们现在接入的根服务器域名对我们的真实响应,其中,gtld为通用顶级域(英语:Generic top-level domain),于是我们可以直接和任意一个ip地址进行通信,这里

第六步

输入    server 192.33.14.30       和b对应的gtld进行通信,显示出如下通信信息

第七步

输入   set type=a

输入   baidu.com.                      查询baidu.com. 对应域名在该gtld下的ip地址

第八步

输入server  220.181.33.31         (又可能是延迟的原因,出现request timed out)再输入一次就好了

第九步

输入  set type=ns

输入  www.baidu.com.         

 第十步

输入  www.a.shifen.com       这里返回的ip地址就是我们最终解析到的ip

 第十一步

当然想看具体的ip地址,还可以通过上述方法继续跟进

server 180.76.76.95

www.a.shifen.com

本文含有隐藏内容,请 开通VIP 后查看