从0开始学习Linux——第七部分:DNS(1)
1.DNS的作用
2.解析过程
2.1 递归查询
是指 DNS 服务器在收到用户发起的请求时,必须向用户返回一个准确的査询结果。如果 DNS 服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结构提交给用户。
一般是客户机和本地 DNS 服务器之间属于递归查询,即当客户机向 DNS 服务器发出请求后,若 DNS服务器不能解析,则会向另外的 DNS 服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。

递归算法:客户端向 LocaIDNS 发起域名查询 -> locaIDNS 不知道域名对应的 IP -> 但它知道谁
知道 -> 他代为帮客户端去查找 -> 最后再返回最终结果。
递归:客户端只发一次请求,要求对方给出最终结果。
2.2 迭代查询
是指 DNS 服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台 DNS 服务器的地址,用户再向这台 DNS 服务器提交请求,这样依次反复直到返回查询结果。
一般情况下(有例外)本地的 DNS 服务器向其它 DNS 服务器的查询属于迭代查询。如若对方不能返回权威的结果,则它会向下一个 DNS 服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询结果为止。此查询的源不变,但查询的目标不断变化,因此查询结果一般需要发起多次查询。

迭代算法:客户端向 LocaIDNS 发起域名查询 -> locaIDNS 不知道域名对应的 IP -> 但它知道谁
知道并推荐客户端应该找谁 -> 客户端自己去找它。
迭代:客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其它名称服务器列表,客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器,从它得到最终结果。
3.语法格式
3.1 记录格式
DNS 记录(RR,Resource Record)定由一系列语法编写的文本文件组成,每个 DNS 记录都是一个单独的行。记录通常遵循以下格式:
NAME [TTL] CLASS TYPE VALUE
参数说明:
- NAME:要解析的域名,可以使用“@”符号表示引用当前区域的域名
- TTL:“生存时间”,表示记录可以临时存储在缓存中的时间,默认单位为秒,可以是天(D)、小时(H)、周(W)等,可从全局继承
- CLASS:理论上 DNS 记录有不同的类别,但实际中记录通常是 Internet(即 IN)
- TYPE:记录类型
- VALUE:解析出的域名信息(例如 IP 地址),同一个名字可以通过多条记录定义多个不同的值,此时 DNS 服务器会以轮询方式响应
www.example.com. 69288 IN A 93.184.216.34
这代表着该条记录可以在缓存中存储 69288 秒,它涉及 Internet 上的 DNS 记录(IN),并指向了
A 类记录,同时域名被解析为 IP 地址(93.184.216.34)。
3.2 记录类型
3.2.1 SOA 记录
SOA(Start Of Authority)起始授权记录包含区域文件或 DNS 服务器的区域信息。因为 DNS 区域
传输是将 DNS 记录数据从一个主名称服务器发送到一个辅名称服务器的过程,而 SOA 记录会首先被传输,所以每个 DNS 区域都需要一个 SOA 记录。一个区域解析库有且仅能有一个SOA(起始授权)记录,且必须为解析库的第一条记录。
example.com. 86400 IN SOA ns1.example.com. admin.example.com. (
2024091801 ; 序列号,每次修改值要变大,不能超过10位,格式为 yyyymmddnn
1D ; 刷新时间,表示从服务器向主服务器一天拉取一次数据库
1H ; 重试时间,当从服务器向主服务器拉取数据库失败后,一小时后再次尝试拉取
1W ; 过期时间,当从服务器始终联系不到主服务器时,一周以后放弃从主服务器同步并停止向外提供服务
1D ; 否定答案的缓存时长,表示一天之内不需要查询上次没查到的记录
)
上面的定义可使用如下的来替换:
@ 86400 IN SOA ns1.example.com. admin.example.com. ( 2015042201 1D 1H 1W 1D
)
3.2.2 NS 记录
NS(域名服务器)记录会明确特定区域的管辖权,用于标明当前区域的 DNS 服务器。一个域通常会有多个 NS 记录,这些记录可指示该域的主要和辅助域名服务器。正确配置的 NS 记录能告诉互联网可从哪里找到域的 IP 地址,从而完成加载网站或应用程序。简单来说:一个 NS 记录对应一个 DNS 服务器,每个 NS 记录应该有一个 A 记录。作用是专用于标明当前区域的DNS服务器 。
example.com. 86400 IN NS ns1.example.com.
ns1 86400 IN A 192.168.72.11
3.2.3 MX 记录
MX 记录是指邮件交换或 SMTP 电子邮件服务器,MX 记录可以存在多个,通过指定优先级来确定使用顺序,取值范围 0-99,值越小优先级越高。每个 MX 记录应该有一个对应的 A 记录。
example.com. IN MX 5 mail1.example.com.
mail1 86400 IN A 192.168.72.13
3.2.4 A 记录
Internet 上大部分 DNS 解析都是通过 A 类记录进行的,并指向一个 IPv4 地址。通过这个记录,
用户在浏览器中输入域名后,客户端向相应的 IP 地址发送 HTTP 请求。由于 IPv4 地址的大小始终为 4 个字节,因此 rdlength 的值始终为 4。作用是将特定的主机名映射到对应主机的IP地址上。
# 轮询
web.example.com. IN A 192.168.10.13
web.example.com. IN A 192.168.10.14
# 一个IP可配置多个主机名
bbs.example.com. IN A 192.168.10.15
ftp.example.com. IN A 192.168.10.15
# 通过泛域名解析进行解析至某特定地址
$GENERATE 17-200 server$ IN A 192.168.10.$
*.example.com. IN A 192.168.10.16
上述配置中最后倒数第二行表示将server17.example.com. 解析的地址为192.168.10.17,
server18.example.com. 解析的地址为192.168.10.18,server19.example.com. 解析为
192.168.10.19,....,server200.example.com. 解析为192.168.10.200。
3.2.5 AAAA 记录
AAAA 记录,也称为“quad A”,功能与 A 记录相同。但是,它指向的是 IPv6 地址。因为 IPv6 的
长度为 128 位(16 字节),所以这里也预定义了 rdlength 为 16。
web.example.com IN AAAA ff03:0:0:0:0:0:0:c1
3.2.6 CNAME 记录
CNAME 记录也叫别名记录,是将记录值指向一个别名域而不是 IP 地址。对于这种类型,域名可以继续指向下一个域名或 IP 地址。
w .example.com. IN A 192.168.10.10
w .example.com. IN CNAME w .example.com.
3.2.7 PTR 记录
PTR 记录是允许反向查找的 DNS 记录。与“A”记录恰好相反,它可以通过 IP 地址来查找对应的域
名。
# 实例
10.10.168.192.in-addr.arpa. IN PTR w .example.com.
# 简写网络地址
10 IN PTR w .example.com.更多推荐


所有评论(0)