推广 热搜: 公司  快速  上海  中国  未来    企业  政策  教师  系统 

DNS的解析过程

   日期:2024-11-14     作者:caijiyuan    caijiyuan   评论:0    移动:http://keant.xrbh.cn/news/14256.html
核心提示:本篇博客主要说明如下几个问题: 1、什么是域名?什么是URL?两者有什么关系? 2、域名是如何转换成IP

DNS的解析过程

本篇博客主要说明如下几个问题: 1、什么是域名?什么是URL?两者有什么关系? 2、域名是如何转换成IP地址? 3、浏览器是怎么访问一个网站的

域名是分等级的,一般分为主机名.二级域名.顶级域名.。注意,最后有一个点代表的是根域,是所有域的起点。常见的域名有www.google.com、www.baidu.com等。

顶级域名TLD(Top Level Domain

  • 国家顶级域名 nTLD: .cn 表示中国,.us 表示美国,.uk 表示英国,等等。
  • 通用顶级域名 gTLD:.com (公司和企业,.net (网络服务机构,.org (非赢利性组织,.edu (美国专用的教育机构,.gov (美国专用的政府部门,.mil (美国专用的军事部门,.int(国际组织)。(最早的顶级域名
  • 基础结构域名(infrastructure domain):这种顶级域名只有一个,即 arpa,用于反向域名解析,因此又称为反向域名。

顶级域名的管理服务由对应的域名注册管理机构(域名注册局)负责,注册服务通常由域名注册商负责。

当前,对于每一级域名长度的限制是 63 个字符,域名总长度则不能超过 253 个字符

比如http://mail.163.com/index.html

  1. http://:这个是协议,也就是HTTP超文本传输协议,也就是网页在网上传输的协议。
  2. mail:这个是服务器名或主机名(host,代表着是一个邮箱服务器,所以是mail.,常见www.baidu.com中www是服务器名。主机名又称为“三级域名”这是用户在自己的域里面为服务器分配的名称,是用户可以任意分配的。
  3. 163.com:com是顶级域名、163是二级域名。
  4. mail.163.com:这是一个域名,真正的域名是mail.163.com.root,简写为mail.163.com.(注意最后由个点)。因此,根域名.root对于所有域名都是一样的,所以平时是省略的。
  5. /:这个是根目录,也就是说,通过域名找到服务器,然后需要知道访问该服务器下的哪个目录,这里的根目录并不是服务器的根目录下,具体的目录是服务器的配置文件决定,由配置文件完成对URL中的根目录与服务器目录的映射。
  6. index.html:这个是根目录下的默认网页,有时候输入http://mail.163.com/,服务器会在自己的目录下寻找默认的网页,一般是index.html(163默认网页是否是这个不清楚)。
  7. http://mail.163.com/index.html:这个叫做URL统一资源定位器,全球性地址,用于定位网上的资源。

所以域名是URL的一部分。

DNS(Domain Name Server,域名服务器 是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的,以解析消息的域名。将域名解析为IP的称为正向解析,将IP解析为域名的称为反向域名解析(思考:知道IP地址,那端口号怎么知道?端口号80

DNS 使用 TCP 和 UDP 端口 53DNS 是一个应用层协议。

Linux下搭建DNS 服务器

域名与IP之间的对应关系,称为"记录(record"。根据使用场景"记录"可以分成不同的类型(type,常见的资源记录类型有

  • NS 记录: 域名服务器记录(Name Server,返回保存下一级域名信息的服务器地址。该记录只能设置为域名,不能设置为IP地址。
  • MX 记录: 邮件记录(Mail eXchange,返回接收电子邮件的服务器地址。
  • A 记录: 地址记录(Address,返回域名指向的IPv4地址。DNS里用得最多的记录。
  • AAAA 记录: 地址记录(Address,返回域名指向的 IPv6 地址记录。
  • CNAME: 规范名称记录(Canonical Name,返回另一个域名,即当前查询的域名是另一个域名的跳转。
  • PTR 记录: 逆向查询记录(Pointer Record,PTR记录用于定义与 IP地址相关联的名称。PTR 记录是A或AAAA记录的逆。 PTR记录是唯一的,因为它们以 .arpa根开始并被委派给IP地址的所有者。

每一级域名都有自己的NS记录,NS记录指向该级域名的域名服务器。这些服务器知道下一级域名的各种记录。

主机名到 IP 地址的映射有两种方式

  • 静态映射:在本机上配置域名和 IP 的映射,旨在本机上使用。Windows 和 Linux 的 hosts 文件中的内容就属于静态映射。

  • 动态映射:建立一套域名解析系统(DNS,只在专门的 DNS 服务器上配置主机到 IP 地址的映射,网络上需要使用主机名通信的设备,首先需要到 DNS 服务器查询主机所对应的 IP 地址。

通过域名去查询域名服务器,得到 IP 地址的过程叫做域名解析。在解析域名时一般先静态域名解析,再动态解析域名。可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。

有DNS的地方,就有缓存。浏览器、操作系统、Local DNS、根域名服务器,它们都会对DNS结果做一定程度的缓存。 DNS查询顺序:浏览器缓存→系统缓存→路由器缓存→ISP DNS 缓存→迭代搜索

主机向本地域名服务器的查询一般都是采用递归查询。 本地域名服务器向根域名服务器的查询通常是采用迭代查询。

在这里插入图片描述 上图展示了一个域名解析的流程,步骤如下首先进行静态域名解析

  1. 用户打开 Web 浏览器,在地址栏中输入 www.163.com,然后按 Enter 键。
  2. 浏览器先检查自身缓存中有是否解析过这个域名对应的ip地址,如果有,解析结束。 查看浏览器中的域名解析缓存结果:chrome://net-internals/#dns(该命令行针对于chrome浏览器,只需要复制粘贴到Chrome的地址栏,回车即可)。 浏览器的DNS缓存查看和清除
  3. 如果浏览器缓存中没有,浏览器会检查操作系统缓存中有没有对应的已解析过的结果。而操作系统也有一个域名解析的过程。在windows中可通过c盘里一个叫hosts文件(c:windowssystem32driversetc)来设置,如果你在这里指定了一个域名对应的ip地址,那浏览器会首先使用这个ip地址。在Linux中可以通过 /etc/hosts 文件来设置。 在windows操作系统下,可通过ipconfig /displaydns命令进行查看本地的缓存的DNS域名解析的结果。(该缓存中包含,hosts文件中的信息。当断网后,该缓存中的信息就是hosts文件中的信息。

如果静态域名解析未命中,则需要进行动态域名解析。

再进行动态域名解析

  1. 如果至此还没有命中域名,将解析请求路由到本地域名服务器(LDNS 来解析这个域名该过程为上图中的step1。这台服务器一般在你的城市的某个角落,距离你不会很远,并且这台服务器的性能都很好,一般都会缓存域名解析结果,大约80%的域名解析到这里就完成了。这一般由用户的 Internet 服务提供商 (ISP) 进行管理,例如有线 Internet服务提供商、DSL宽带提供商或公司网络。
  2. 如果LDNS仍然没有命中,则LDNS将域名解析请求发送给根域名服务器解析,开启迭代搜索。根域名服务器的NS记录和IP地址一般是不会变化的,所以内置在DNS服务器里面
  3. 根域名服务器接受请求并返回给LDNS一个顶级域名服务器地址(该例中域名是以.com作为顶级域名,所以返回的地址是.com域服务器的IP地址)。
  4. 根据上一步返回的地址信息,LDNS发送解析请求给顶级域名服务器。
  5. 顶级域名服务器接受请求并返回给LDNS一个这个域名对应的Name Server的地址,这个Name Server就是网站注册的域名服务器(163.com域服务器)。
  6. 根据上一步返回的地址信息,LDNS发送解析请求给Name Server注册的域名服务器。
  7. 163.com域服务器通过查询得知www服务器对应的ip地址,返回该域名对应的IP和TTL值给LDNS,LDNS缓存这个域名和IP地址,缓存时间由TTL值控制。
  8. LDNS将IP地址返回给网络客户端,用户根据TTL值缓存在本地系统,域名解析过程结束。

DNS服务器根据域名的层级,进行分级查询。 dig - DNS lookup utility(DNS查找工具,可以显示整个查询过程。

 

上面的命令会输出六段信息在这里插入图片描述 第一段是查询参数和统计在这里插入图片描述

  • 第一行:dig程序的版本号和查询的域名。
  • 第二行:表示可以在命令后面加选项。
  • 第三行:表示以下是获取信息的内容。
  • 第四行:这是返回信息的头部。 opcode(操作码:QUERY(代表是查询操作; status有四种状态:NXDOMAIN( 否定回答,不存在此记录)、NOERROR(没有错误,查询成功)、REFUSED(DNS服务器拒绝回答,记录未生效) 以及SERFAIL(DNS服务器停机或DNSsec响应验证失败; id:编号,在DNS协议中,通过编号匹配返回和查询。
  • 第五行:flags:标志; qr:query 查询标志,代表这是查询操作; rd:recursion desired,代表希望进行递归查询操作; ra:recursion available 在返回中设置,代表查询的服务器支持递归查询操作; aa:authoritative answer 权威回复,如果查询结果是由管理域名的域名服务器而不是缓存服务器提供的,则称为权威回复; QUERY:1表示查询数,对应下面的QUESTION SECTION:的记录数; ANSER:4表示4个查询结果,对应下面的ANSWER SECTION:的记录数; AUTHORITY:4表示4个权威域名服务器记录数,代表该域名有4个权威域名服务器,可供域名解析用,对应下面的AUTHORITY SECTION:的记录数; ADDITIONAL:4表示4个额外记录数,表示权威域名服务器的所有IP地址,对应下面的ADDITIonAL SECTION:的记录数。

在这里插入图片描述

  • 第一行:向DNS请求的问题(请求部分)。
  • 第二行:查询域名math.stackexchange.com.的A记录。

在这里插入图片描述

  • 第一行:得到问题的答案(回应部分)。
  • 第一列:查询的域名。
  • 第二列:TTL缓存时间,表示缓存域名服务器可以在缓存中保存多少秒该记录。
  • 第三列:class要查询信息的类别,IN代表类别为internet。
  • 第四列:TYPE要查询的记录类型。
  • 第五列:VALUE域名对应的A的值,即IP地址。

在这里插入图片描述

  • 第一行:权威域名部分,即哪些服务器负责管理stackexchange.com的DNS记录,上面结果显示stackexchange.com共有四条NS记录,即四个域名服务器。
  • 第一列:NAME域名。
  • 第二列:TTL缓存时间。
  • 第三列:class要查询信息的类别,IN代表类别为internet。
  • 第四列:TYPE要查询的记录类型。
  • 第五列:VALUE域名对应的权威域名解析服务器,即域名。

在这里插入图片描述

  • 第一行:权威ns服务器的所有IP地址(额外记录部分)。
  • 第一列:NAME域名。
  • 第二列:TTL缓存时间。
  • 第三列:class要查询信息的类别,IN代表类别为internet。
  • 第四列:TYPE要查询的记录类型。
  • 第五列:VALUE域名对应的A的值,即IP地址。

在这里插入图片描述

  • 第一行:查询耗时。
  • 第二行:查询使用的服务器地址和端口,其实就是本地配置的DNS域名服务器。
  • 第三行:查询的时间。
  • 第四行:回应的大小,收到305个字节。

如果不想看到这么多内容

 

在这里插入图片描述 1、分级查询

 
 
  1. 第一部分收到的receive,来自系统指定的DNS域名服务器(192.168.72.2)。根据内置的根域名服务器IP地址,DNS服务器向所有这些IP地址发出查询请求,询问.com的NS记录。
  2. 第二部分收到的receive,来自192.58.128.30(dig -x 192.58.128.30命令查看,域名:j.root-servers.net.)。上面结果显示.com域名的13条NS记录同时返回的还有每一条记录对应的IP地址。DNS服务器向这些IP地址发出查询请求,询问stackexchange.com的NS记录。(全球13台根域名服务器的 IP 地址
  3. 第三部分收到的receive,来自192.55.83.30(域名:m.gtld-servers.net.)。上面结果显示stackexchange.com域名的4条记录,同时返回的还有每一条记录对应的IP地址。然后,DNS服务器向这些IP地址发出查询请求,询问math.stackexchange.com的A记录。
  4. 第四部分收到的receive,来自216.239.34.109(域名:ns-cloud-d2.googledomains.com.)。上面结果显示math.stackexchange.com有四条A记录,即这四个IP地址都可以访问到网站。

dig命令无法找到IP地址,返回一条SOA记录。 在这里插入图片描述

2、指定向DNS服务器8.8.8.8查询

 

在这里插入图片描述 从中可知,根域名服务器的NS记录来自IP地址为8.8.8.8的DNS域名服务器,这13条NS记录是13台根域名服务器。根域名服务器的NS记录和IP地址一般是不会变化的,所以内置在DNS服务器里面,这也是为什么13条记录信息不是来自根域名服务器而是来自IP地址8.8.8.8(google DNS服务器)。

3、IP地址反查域名

 

在这里插入图片描述

nslookup有交互式和非交互式两种使用方式如下图在这里插入图片描述 在这里插入图片描述

host命令可以看作dig命令的简化版本,返回当前请求域名的各种记录。 在这里插入图片描述 host命令也可以用于逆向查询,即从IP地址查询域名,等同于dig -x 。 在这里插入图片描述

在这里插入图片描述 万维网的操作过程:首先是域名解析,然后http访问

  1. 浏览器分析超链接指向页面的URL。
  2. 浏览器向DNS请求解析网站名www.tsinghua.edu.cn的IP地址。
  3. 域名服务器DNS解析出清华大学服务器的IP地址。
  4. 浏览器与服务器建立TCP连接。
  5. 浏览器发出取文件命令:GET /chn/yxsz/index.html
  6. 服务器给出响应,把文件index.html发送给浏览器。
  7. TCP连接释放。
  8. 浏览器通过渲染,显示文件index.html中的所有文本。
本文地址:http://lianchengexpo.xrbh.cn/news/14256.html    迅博思语资讯 http://lianchengexpo.xrbh.cn/ , 查看更多
 
标签: 过程
 
更多>同类行业资讯
0相关评论

新闻列表
企业新闻
推荐企业新闻
推荐图文
推荐行业资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号