查看浏览器DNS缓存

文章目录
  1. 1. DNS 缓存与解析
    1. 1.1. DNS 缓存分类
      1. 1.1.0.1. 1、浏览器缓存
      2. 1.1.0.2. 2、本地DNS缓存
      3. 1.1.0.3. 3、本地HOSTS文件
      4. 1.1.0.4. 4、路由器DNS缓存
      5. 1.1.0.5. 5、递归服务器缓存
  2. 1.2. DNS 解析顺序
    1. 1.2.1. 1. 搜索浏览器自带的DNS缓存
    2. 1.2.2. 2. 查询操作系统缓存和hosts本地文件
    3. 1.2.3. 3. 查询路由器缓存
    4. 1.2.4. 4. 递归解析服务器缓存
    5. 1.2.5. 5. 查询根域名服务器
    6. 1.2.6. 6. 查询顶级域名服务器
    7. 1.2.7. 7. 查询权威域名服务器
    8. 1.2.8. 8. 返回解析结果

概述:本文主要介绍如何在浏览器查看DNS缓存,同时罗列了DNS查询的一些顺序

[toc]

DNS 缓存与解析

DNS 缓存分类

1、浏览器缓存

浏览器会根据一定频率缓存DNS记录;

2、本地DNS缓存

如果浏览器缓存中找不到解析记录,就会去询问操作系统中的缓存;

3、本地HOSTS文件

HOSTS是记录域名与IP地址一一映射关系的本地文件,Windows系统中位于 C:\Windows\System32\drivers\etc

4、路由器DNS缓存

我们常用的路由器也带有自动缓存功能,路由器DNS被篡改会造成域名劫持,将访问网址定位到另外一个服务器;

5、递归服务器缓存

递归服务器在将解析结果告知客户端的同时,将记录缓存下来,当下次请求同一个域名时,直接会将记录返回,而无需再进行全球查询。

DNS 解析顺序

DNS解析顺序是 “先查缓存,再递归解析”,查询顺序为:浏览器缓存 -> 系统缓存 -> 路由器缓存 -> 递归服务器缓存 -> 递归查询

www.baidu.com 这个域名为例进行查询,具体流程如下:

1. 搜索浏览器自带的DNS缓存

当收到访问请求后,浏览器首先会查询浏览器自身的DNS缓存,这个缓存时间比较短(chrome://net-internals/#dns 这里可以查询缓存的dns记录),且只能容纳 1000条缓存,如果缓存中有对应条目,返回结果,解析到此结束。

在chrome打开 chrome://net-internals/#dns

如上所示,浏览器解析到了 www.baidu.com 的ip

2. 查询操作系统缓存和hosts本地文件

如果浏览器缓存中没有找到对应条目(ipconfig/displaydns可以查看),操作系统也会有一个域名解析的过程,浏览器会先搜索操作系统的DNS缓存中是否有这个域名解析记录,如果有返回结果,解析结束。

此外,电脑本地文件HOSTS中可以设定域名到IP地址的指向关系。如果HOSTS文件中保存有该域名的记录,浏览器会首先使用这个IP地址,并将其结果缓存下来,缓存时间同样受域名失效时间和缓存空间大小决定。

3. 查询路由器缓存

如果浏览器和操作系统中没有域名解析记录,就会查询路由器中的DNS缓存,如果路由器DNS缓存中有解析条目,直接返回结果,解析结束。

4. 递归解析服务器缓存

如果本机和路由器DNS缓存中没有该域名的解析记录,浏览器就会向递归服务器发起请求,如果递归服务器缓存有该域名解析条目,返回结果,解析结束。

5. 查询根域名服务器

如果递归服务器缓存中没有结果,就会委托递归服务器发起全球查询,首先递归服务器会向根域名服务器发起解析请求。根域名服务器告知.com顶级域名服务器地址。

6. 查询顶级域名服务器

递归服务器向.com顶级域名服务器发起DNS请求,.com顶级服务器告知example.com所属权威域名服务器地址。

7. 查询权威域名服务器

递归服务器向example.com的权威域名服务器地址发起请求,权威服务器告知www.example.com所对应的IP地址。

8. 返回解析结果

得到www.example.com的IP地址后,递归服务器将结果告知客户端,客户端对该IP地址发起访问。整个DNS解析流程到此结束。