DNS域名解析系统详解

2022-6-16 318 6/16

什么是DNS

DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

域名的分层结构

由于因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名方法。任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name)。这里,“域”(domain)是名字空间中一个可被管理的划分。从语法上讲,每一个域名都是有标号(label)序列组成,而各标号之间用点(小数点)隔开。域名可以划分为各个子域,子域还可以继续划分为子域的子域,这样就形成了顶级域、主域名、子域名等。关于域名层次结构如下图:

DNS域名解析系统详解

DNS的分层结构

域名是分层结构,域名DNS服务器也是对应的层级结构。有了域名结构,还需要有域名DNS服务器去解析域名,且是需要由遍及全世界的域名DNS服务器去解析,域名DNS服务器实际上就是装有域名系统的主机。每个层的域名上都有自己的域名服务器,最顶层的是根域名服务器 每一级域名服务器都知道下级域名服务器的IP地址,以便于一级一级向下查询,域名解析过程涉及4个DNS服务器,分别如下:

根DNS服务器

Root nameserver。本地域名服务器在本地查询不到解析结果时,则第一步会向它进行查询,并获取顶级域名服务器的IP地址。

顶级域名服务器

Tld nameserver。负责管理在该顶级域名服务器下注册的二级域名,例如“www.baidu.com”,.com则是顶级域名服务器,在向它查询时,可以返回二级域名“baidu.com”所在的权威域名服务器地址。

权威域名服务器

authoritative nameserver。在特定区域内具有唯一性,负责维护该区域内的域名与IP地址之间的对应关系,例如云解析DNS。

本地域名服务器

DNS resolver或Local DNS。本地域名服务器是响应来自客户端的递归请求,并最终跟踪直到获取到解析结果的DNS服务器。例如用户本机自动分配的DNS、运营商ISP分配的DNS、谷歌/114公共DNS等。

DNS解析过程

DNS域名解析系统详解

DNS查询的结果通常会在本地域名服务器中进行缓存,如果本地域名服务器中有缓存的情况下,则会跳过如下DNS查询步骤,很快返回解析结果。下面的示例则概述了本地域名服务器没有缓存的情况下,DNS查询所需的8个步骤:

1、用户在Web浏览器中输入“baidu.com”, 则由本地域名服务器开始进行递归查询。

2、本地域名服务器采用迭代查询的方法,向根域名服务器进行查询。

3、根域名服务器告诉本地域名服务器,下一步应该查询的顶级域名服务器.com TLD的IP地址。

4、本地域名服务器向顶级域名服务器.com TLD进行查询。

5、.com TLD服务器告诉本地域名服务器,下一步查询baidu.com权威域名服务器的IP地址。

6、本地域名服务器向baidu.com权威域名服务器发送查询。

7、baidu.com权威域名服务器告诉本地域名服务器所查询的主机IP地址。

8、本地域名服务器最后把查询的IP地址响应给web浏览器。

一旦DNS查询的8个步骤返回了baidu.com的IP地址,浏览器就能够发出对网页的请求:

9、浏览器向IP地址发出HTTP请求。

10、该IP处的web服务器返回要在浏览器中呈现的网页。

常见概念

递归查询

是指DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结构提交给用户。

迭代查询

是指DNS服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS服务器的地址,用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。

DNS缓存

DNS缓存是将解析数据存储在靠近发起请求的客户端的位置,也可以说DNS数据是可以缓存在任意位置,最终目的是以此减少递归查询过程,可以更快的让用户获得请求结果。

TTL

英文全称Time To Live ,这个值是告诉本地域名服务器,域名解析结果可缓存的最长时间,缓存时间到期后本地域名服务器则会删除该解析记录的数据,删除之后,如有用户请求域名,则会重新进行递归查询/迭代查询的过程。

IPV4、IPV6双栈技术

双栈英文Dual IP Stack,就是在一个系统中可同时使用IPv6/ IPv4这两个可以并行工作的协议栈

TLD Server

英文全称Top-level domains Server,指顶级域名服务器。

DNS Resolver

指本地域名服务器,它是DNS查找中的第一站,是负责处理发出初始请求的DNS服务器。运营商ISP分配的DNS、谷歌8.8.8.8等都属于DNS Resolver。

Root Server

指根域名服务器,当本地域名服务器在本地查询不到解析结果时,则第一步会向它进行查询,并获取顶级域名服务器的IP地址。

DNS Query Flood Attack

指域名查询攻击,攻击方法是通过操纵大量傀儡机器,发送海量的域名查询请求,当每秒域名查询请求次数超过DNS服务器可承载的能力时,则会造成解析域名超时从而直接影响业务的可用性。

URL转发

英文 Url Forwarding,也可称地址转向,它是通过服务器的特殊设置,将一个域名指向到另外一个已存在的站点

edns-client-subnet

google提交了一份DNS扩展协议,允许DNS resolver传递用户的ip地址给authoritative DNS server.

DNSSEC

域名系统安全扩展(DNS Security Extensions),简称DNSSEC。它是通过数字签名来保证DNS应答报文的真实性和完整性,可有效防止DNS欺骗和缓存污染等攻击,能够保护用户不被重定向到非预期地址,从而提高用户对互联网的信任。

配置DNS解析

比如本站使用云服务搭建完成后,申请了域名tenkms.cn并备案,之后使用tenkms.cn并不能直接访问本站,还需要在DNS服务商添加解析记录,表明域名到IP的对应关系,主要的记录参数如下:

主机记录

DNS域名解析系统详解

其中主机记录是解析的域名前缀,即用户访问的url。

记录类型

DNS域名解析系统详解

记录类型分多种,其中

A/AAAA:为最常见的类型,即将域名与实际的服务器IP绑定。

CNAME:为表示将域名指向另一个域名,再由另一个域名提供 IP 地址,最常用到 CNAME 的场景包括做 CDN、企业邮箱、全局流量管理等。

MX:mail exchanger,邮箱服务器使用,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。

TXT:如果希望对域名进行标识和说明,可以使用 TXT 记录, TXT 记录多用来做 SPF 记录(反垃圾邮件)。

URL显性/隐性转发:即网页重定向,将一个域名指向另外一个站点,使用此记录时,用户URL输入A网页将直接访问B网页。

NS:如果需要把子域名交给其他 DNS 服务商解析,就需要添加 NS 记录。

SRV:SRV 记录用来标识某台服务器使用了某个服务,常见于微软系统的目录管理。

CAA:Certificate Authority Authorization,即证书颁发机构授权,可以限定域名颁发的证书和CA(证书颁发机构)之间的联系,未经授权的第三方尝试通过其他CA注册获取用于该域名的SSL/TLS证书将被拒绝。

线路类型

DNS域名解析系统详解

用来限制源网络来限制访问,一般选择默认。

- THE END -
Tag:

Tenkms

12月01日00:07

最后修改:2023年12月1日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论