DNS原理及服务过程

一:DNS详解

DNS(Domain Name System,域名系统)

DNS协议运行在UDP协议之上,使用端口号为:53.

DNS服务的作用:  
    (1)客户机向DNS服务器发送域名查询请求 
    (2)DNS服务器告知客户机Web服务器的IP地址 
    (3)客户机与Web服务器通信

有数字组成的IP地址很难记忆,很不方便用户访问互联网,所以我们上网使用网站IP地址的别名——域名。实际使用中,域名与IP地址是对应的,这种对应关系保存在DNS服务器之上。通过域名,最终得到该域名的IP地址的过程称作域名解析(主机名解析)。

平时我们在上网时,只需要在浏览器中输入一个域名,DNS服务器就会将域名解析为对应的IP地址,我们就可以看到我们想访问的页面了。

2. DNS服务器

DNS服务器是个分层次的系统:域名解析通过域名服务器进行。

(1)根DNS服务器:全世界共有13台根域名服务器,编号A到M,其中大部分位于美国。

(2)顶级(TLD)DNS服务器:负责顶级域名,如com,org,net,edu,gov以及各个国家的顶级域名
     的转换器。

(3)权威DNS服务器:大型组织,大学,企业的域名解析服务。

(4)本地DNS服务器:负责解析本地域名,对本地域名的查询。通常与我们主机的DNS服务器
3. DNS服务的作用

客户机向DNS服务器发送域名查询请求——>DNS服务器告知客户机Web服务器的IP地址——>客户机Web服务器通信
在这里插入图片描述

4. DNS解析

第一步:首先查看浏览器是否有缓存,内存中是否有缓存,有就直接进行域名解析后过程;

第二步:如果浏览器以及内存没有DNS缓存,然后就开始查询本地hosts文件,hosts文件有的话就 可以直接得到需要解析的域名对应的IP;

hosts文件目录:C:\WINDOWS\system32\drivers\etc
样本:
      127.0.0.1         localhost
      220.181.111.188   www.baidu.com	
特点:
(1)本地有效,其他计算机无法使用该记录
(2)主机很多时,工作量大,而且查询速度慢
     简单

第三步:如果本地hosts文件也没有,就向本地DNS服务器查询,首先查询取余文件,有就返回给客户端,如果取余文件中没有,则开始查询本地DNS服务器的内存中是否有缓存,有就返回给客户端,没有的话就向其他DNS服务器发送查询请求。

 相关CDM命令:
     查看本机缓存:ipconfig /displaydns
     清理本机缓存:ipconfig /flushdns
DNS查询过程
 浏览器DNS查找顺序一般是这样的:浏览器缓存→系统缓存→路由器缓存→ISP DNS 缓存→递归搜索。

 详细过程如下:
     a. 浏览器缓存(浏览器会缓存DNS记录一段时间。)
        操作系统没有设定浏览器存储DNS记录的时间长短,不同的浏览器会存储各自的一个固定时间,
        时长为2~30分钟不等。
     b. 系统缓存
        如果浏览器缓存里没有找到需要的记录,浏览器会做一个操作系统调用(windows里是gethostname)
        ,这样子,就可以获得系统缓存里的记录啦。
     c. 路由器缓存
        接下来,如果还是没有找到需要的缓存,将前面的查询请求发给路由器,它一般会有自己的DNS缓存。
     d. 如果还是没有,那么就去检查ISP有没有吧~
        每一个ISP(网络服务提供商),或一个大学,甚至是一个大学里的系都会有一个自己的本地域
        名服务器,他会在url第一次访问时缓存该域名的指向。下次再访问时,他会从缓存里把这个url
        曾经指向的IP调出来。
     e. 递归搜索
        还是没有需要的缓存~ 就只能放大招啦~
        你的ISP的DNS服务器会从根域名开始进行递归查询。

在这里插入图片描述

5. 域名解析的查询方法

5.1>递归查询
递归:DNS请求被服务器接收后,如果属于此服务器管辖范围则请求上级服务器依次传递请求,并且依次传递结果给发出请求的主机。
在这里插入图片描述5.2>迭代查询
迭代:DNS请求被服务器接收后,如果不是自己管辖范围,让客户端访问根域服务器,然后根域通知客户端访问下一级服务器,直到最后客户端访问管辖请求的服务器为止。

在这里插入图片描述


版权声明:本文为weixin_45116657原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。