67、DNS系统介绍

时间:2023-02-17 11:28:18
DNS工作原理

DNS:domain name system域名系统,它作为将域名和IP地址相互映射的一个分布式数据库,能够可以是用户更加变了的访问互联网;服务器端口TCP/UDP:53

67、DNS系统介绍

域名结构是指互联网域名的组成形式,它以点号分隔,由多个标签(label)组成。
域名结构从右到左逐级向上划分,最右边的标签是*域名(Top Level Domain,简称TLD),比如“.com”、“.net”、“.cn”等,
接下来是二级域名(Second Level Domain,简称SLD),比如“google”、“baidu”、“qq”等,
最左边的标签是主机名(hostname),它指的是域名所在的主机。例如,完整的域名“www.example.com”中,“com”是*域名,“example”是次级域名,“www”是主机名。

67、DNS系统介绍

1、用户在浏览器中输入网址(例如 www.example.com)并按下回车键。
2、操作系统会首先检查本地 DNS 缓存中是否存在该域名的 IP 地址。如果存在,则返回结果给浏览器,如果不存在,则向 DNS 服务器发送查询请求。
3、查询请求会被传递给本地 DNS 服务器(通常是由互联网服务提供商或企业内部设置),如果本地 DNS 服务器缓存了该域名的 IP 地址,则直接返回结果给操作系统;否则,本地 DNS 服务器会向根 DNS 服务器发送查询请求。
4、根 DNS 服务器会返回下一级 DNS 服务器的地址,该服务器可能是*域名服务器(例如 .com、.org 等)或负责下一级域名的服务器。
5、本地 DNS 服务器会向下一级 DNS 服务器发送查询请求,并继续迭代该过程,直到找到负责该域名的 DNS 服务器。
6、找到负责该域名的 DNS 服务器后,该服务器会返回该域名的 IP 地址,本地 DNS 服务器会将该 IP 地址保存到缓存中,并返回给操作系统。
7、操作系统将 IP 地址传递给浏览器,浏览器使用该地址连接到 Web 服务器,并请求网页内容。

递归和迭代:

在迭代查询中,本地DNS服务器向远程DNS服务器发送一个查询请求,并且远程DNS服务器返回一个指向另一个DNS服务器的地址,然后本地DNS服务器向该地址发送另一个查询请求,如此重复直到找到所需的DNS记录。
在递归查询中,本地DNS服务器向远程DNS服务器发送一个查询请求,并且远程DNS服务器负责查找所需的DNS记录并返回结果,本地DNS服务器只需等待结果即可
DNS相关名词和技术

服务器相关名词

NAME SERVER:名称服务器,负责解析本域内的名称

主DNS服务器:管理和维护所负责的域内解析库服务器

从DNS服务器:从主服务器复制解析库数据(序列号、刷新时间间隔、重试时间间隔、过期时长、通知机制)

区域传输:完成传输、增量传输

解析记录相关名词

A记录(Address Record):将主机名解析为IPv4地址。

AAAA记录(IPv6 Address Record):将主机名解析为IPv6地址。

CNAME记录(Canonical Name Record):将一个别名解析为另一个主机名,用于实现DNS负载均衡、主机重命名等。

MX记录(Mail Exchange Record):指定接收邮件的邮件服务器的优先级。

NS记录(Name Server Record):指定域名服务器的名称。

PTR记录(Pointer Record):用于反向解析,将IPv4或IPv6地址解析为主机名。

SOA记录(Start of Authority Record):起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录,定义了主区的授权信息和刷新频率等。

SRV记录(Service Record):用于定义提供特定服务的主机和端口号。

TXT记录(Text Record):提供关于其他记录的注释、备注信息等。

资源记录定义的格式

name [TTL] IN rr_type value
TTL可从全局继承
使用@符合可饮用当前区域的名字


SOA记录
example.com. 86400 IN SOA ns.example.com. ns.example.com. (
2015042201 ;序列号
2H ;刷新时间
10M ;重试时间
1W ;过期时间
1D ;TTL值,生存时间
)

NS记录
example.com. IN NS ns1.example.com.

MX记录
example.com. IN MX 10 mx1.example.com.
IN MX 20 mx2.example.com.

A记录
mx1.example.com. IN A 3.3.3.3

PTR记录
4.3.2.1.in-addr.arpa. IN PTR www.example.com.

问答:网站域名记录需更改,如何快速生效?

1、手动更改本地DNS缓存:在更改网站域名后,可以手动清除本地DNS缓存,这样DNS查询会强制刷新,以便更快地获取新的DNS记录。在 Windows 系统中,可以使用命令 ipconfig /flushdns 清除本地DNS缓存;在 Linux 或 macOS 系统中,可以使用命令 sudo systemd-resolve --flush-caches 清除本地DNS缓存。
2、缩短TTL时间:可以在更改DNS记录前,先将TTL时间缩短至几分钟或几秒钟,这样更改后的DNS记录会更快地被传播到全网。
3、在新的DNS记录生效之前,保留旧的DNS记录:在更改DNS记录时,可以先新增一条与原来记录相同的DNS记录,但TTL时间较短,等待新的DNS记录生效后再将旧的DNS记录删除。

问答:更改TTL值为多少比较合适呢?是如何生效的?

更改TTL(Time-To-Live)的值可以控制DNS缓存的时间,从而影响域名更改后的生效时间。通常情况下,TTL值会在DNS记录被创建时设置,并在后续的修改中保持不变。在进行域名更改之前,可以将TTL值调低,比如设置为300秒(5分钟)或更低,这样就可以更快地将更改后的DNS记录广播到互联网上,而不需要等待原先记录在缓存中过期。
需要注意的是,DNS缓存的生命周期是由两个因素决定的:TTL值和DNS服务器实现的策略。一些DNS服务器会忽略TTL值,并在其自身设定的时间到达后刷新缓存,这样就可能导致DNS更改仍然需要等待较长的时间才能在所有地方生效。因此,更改TTL值只是加速DNS更改生效的一种方法,但并不能保证立即生效。
另外,需要注意的是,较低的TTL值会增加DNS服务器和客户端的负担,因为它们需要更频繁地查询DNS服务器以获取最新的记录。因此,在设置TTL值时需要权衡生效时间和负载压力的因素。
子域授权

每个域的名称服务器,都是通过其上级名称服务器在解析库进行授权,类似根域授权tldglue record:粘合记录,父域授权子域的记录

.com. IN NS ns1.com.
.com. IN NS ns2.com.
ns1.com. IN A 2.2.2.1
ns2.com. IN A 2.2.2.2
#example.com. 在.com的名称服务器上,解析库中添加资源记录
example.com. IN NS ns1.example.com.
example.com. IN NS ns2.example.com.
example.com. IN NS ns3.example.com.
ns1.example.com. IN A 3.3.3.1
ns2.example.com. IN A 3.3.3.2
ns3.example.com. IN A 3.3.3.3