IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> DNS解析流程详解 -> 正文阅读

[系统运维]DNS解析流程详解

DNS是什么?

DNS ,即Domain Name System 的缩写,同时DNS 是互联网核心协议之一。其作用非常简单:将要访问的域名解析出对应的IP地址。虽然作用简单,但是查询出对应的IP地址的过程却比较复杂,分成很多步骤。

DNS查询过程

域名分级

域名由两组或两组以上的ASCII或各国语言字符构成,各组字符间由点号分隔开,最右边的字符组称为顶级域名或一级域名、倒数第二组称为二级域名、倒数第三组称为三级域名、以此类推
比如:常见的顶级域名有。

  • 按国家和地区分的顶级域名:.cn,.jp,.uk,.us,
  • 通用类顶级域名:.com,.org,.net
  • 新顶级域名:.xyz,.top等
    比如:baidu.com就是二级域名;
    比如:baike.baidu.com,map.baidu.com 就是三级域名

DNS服务器的层次结构

DNS服务器分几类,层次结构如下
在这里插入图片描述

DNS解析过程

有dns的地方,就有缓存。浏览器、操作系统、Local DNS、根域名服务器,它们都会对DNS结果做一定程度的缓存
DNS解析的顺序是“先查缓存,再递归解析”。
查询顺序:浏览器缓存→系统缓存→路由器缓存→ISP DNS 缓存→递归搜索

以查询www.baidu.com域名的对应的IP为例。
主要分如下步骤分布查询对应的IP地址,查到即止,或者查不到报错

  1. 搜索浏览器自带的dns缓存;
    浏览器会首先查询浏览器自身的 DNS 缓存,缓存时间比较短,大概只有1分钟(chrome://net-internals/#dns 这里可以查询缓存的dns记录),且只能容纳 1000条缓存,看自身的缓存中是否有对应的条目,而且没有过期,如果有且没有过期则解析到此结束。
  2. 查询操作系统缓存和hosts静态解析;
    如果浏览器的缓存里没有找到对应的条目(ipconfig /displaydns可以查看),操作系统也会有一个域名解析的过程,那么浏览器先搜索操作系统的 DNS 缓存中是否有这个域名对应的解析结果,如果找到且没有过期则停止搜索,解析到此结束。
    在 Linux 中可以通过 /etc/hosts ,windows中可以通过C:\Windows\System32\drivers\etc\hosts文件来设置,可以将任何域名解析到任何能够访问的 IP 地址。如果在这里指定了一个域名对应的 IP 地址,那么浏览器会首先使用这个 IP 地址。当解析到这个配置文件中的某个域名时,操作系统会在缓存中缓存这个解析结果,缓存的时间同样是受这个域名的失效时间和缓存的空间大小控制的。
  3. 查询本地dns服务器
    客户端通过浏览器访问域名为 www.baidu.com 的网站,发起查询该域名的 IP 地址的 DNS 请求。该请求发送到了本地 DNS 服务器上。本地 DNS 服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果。如果没有,本地 DNS 服务器还要向 DNS 根服务器进行查询。
  4. 查询根dns服务器
    本地 DNS 服务器向根服务器发送 DNS 请求,请求域名为 www.baidu.com 的 IP 地址。
    根服务器经过查询,没有记录该域名及 IP 地址的对应关系。但是会告诉本地 DNS 服务器,可以到域名服务器上继续查询,并给出域名服务器的地址(.com 服务器)。
  5. 查询顶级域dns服务器
    本地 DNS 服务器向 .com 服务器发送 DNS 请求,请求域名 www.baidu.com 的 IP 地址。
    .com 服务器收到请求后,不会直接返回域名和 IP 地址的对应关系,而是告诉本地 DNS 服务器,该域名可以在 baidu.com 域名服务器上进行解析获取 IP 地址,并告诉 baidu.com 域名服务器的地址。
  6. 查询权威dns服务器
    本地 DNS 服务器向 baidu.com 域名服务器发送 DNS 请求,请求域名 www.baidu.com 的 IP 地址。
    baidu.com 服务器收到请求后,在自己的缓存表中发现了该域名和 IP 地址的对应关系,并将 IP 地址返回给本地 DNS 服务器。
  7. 本地dns服务器缓存该条解析记录
    本地 DNS 服务器将获取到与域名对应的 IP 地址返回给客户端,并且将域名和 IP 地址的对应关系保存在缓存中,以备下次别的用户查询时使用。
    以上流程如下:
    在这里插入图片描述

dig命令的使用

dig命令语法

dig(即“domain information groper").
语法:dig @server name type
o	server:指定有哪台dns服务器进行解析。其中最有名的就是Google的8.8.8.8和Level 3的4.2.2.2
o	name:域名或者ip
o	type:ANY, A, MX, SIG等,默认是A

在这里插入图片描述

dig命令默认的输出信息,
第一部分:dig 命令的版本和输入的参数
第二部分:显示服务返回的一些技术详情,比较重要的是 status。如果 status 的值为 NOERROR 则说明本次查询成功结束。
第三部分:“QUESTION SECTION”.显示我们要查询的域名,A是address的缩写,表示查询IPV4的地址。
第四部分:“ANSWER SECTION” 是查询到的结果
第五部分:则是本次查询的一些统计信息,比如用了多长时间,查询了哪个 DNS 服务器,在什么时间进行的查询等等。
注意
o 第四部分和第五部分中间,可能还有额外的“AUTHORITY SECTION"表示权威服务器的信息
o 每个域名的尾部都有一个点,这不是疏忽,而是所有域名尾部实际上都有一个根域名。

dig命令的分级查询

以dig +trace www.baidu.com 为例。
在这里插入图片描述

第一段:列出根域名.的所有NS(NameServer)记录,即所有根域名服务器。根据内置的根域名服务器IP地址,DNS服务器向所有这些IP地址发出查询请求,询问www.baidu.com的顶级域名服务器com.的NS记录。最先回复的根域名服务器将被缓存,以后只向这台服务器发请求。
第二段:结果显示.com域名的13条NS记录,同时返回的还有每一条记录对应的IP地址。然后,DNS服务器向这些顶级域名服务器发出查询请求,询问www.baiu.com的次级域名baidu.com的NS记录
第三段:结果显示baidu.com域名的5条NS记录
第四段:DNS服务器向上面这5台NS服务器查询www.baidu.com的主机名.先返回结果的NS服务器是ns3.baidu.com,NS服务器对应的IP地址为112.80.248.64,同时返回的www.baidu.com的CNAME为www.a.shifen.com.进一步通过dig www.a.shifen.com 即可查询到对应的IP地址为220.181.38.149、220.181.38.150

常用的选项

dig ns com
dig ns baidu.com 单独查看每一级域名的NS记录。
dig -x 220.181.38.150 -x选项,查询PTR记录,即IP属于哪个域名
dig +short www.baidu.com
+short选项,简化输出

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-07-20 19:20:33  更:2022-07-20 19:23:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 9:21:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计