DNS服务概念
dns服务:
Domain Name Service协议;应用层协议
端口:
- 53/tcp,面向连接的协议
- 53/udp,无连接协议
dns相关概念:
tld顶级域:
com、edu、mil、gov、net、org、int
分三类:
- 组织域、国家域(.cn、.iq、.hk、.tw)、反向域
域名层级:
- 根域、顶级域(一级域)、二级域、...等等
查询类型:
递归查询: 一次请求就得到结果
迭代查询: 可能是多次查询,一层一层多次转发指路 #互联网模式使用
四种dns服务器:
主dns:
维护所负责解析的域内解析库服务器
从dns:
从主dns或其他从dns那里 copy一份解析库,内容包含:
- 序列号 解析库的版本号。主服务器解析库内容变化,序列号递增
- 刷新时间 从dns到主dns同步解析库的时间间隔
- 重试时间 从dns到主dns同步解析库失败时,再次尝试的时间间隔
- 过期时长 从dns始终联系不到主dns时,多久后放弃联系,停止服务
通知机制:主dns会发通知同步
同步分为:
- 全量 传送整个解析库
- 增量 只同步变化的部分
转发dns
缓存dns:
不负责解析,只缓存记录
dns解析:
FQDN为完全限定域名 www.baidu.com.
解析时各需要一个解析库来负责本地域名的正向、反向解析。正向区域 and 反向区域
- 正向: FQDN-->IP
- 反向: 从IP-->FQDN
dns解析流程:
- client-->本地hosts文件-->dns server-->本地缓存-->dns server(递归查询)-->server dns缓存-->迭代查询

注意: 缓存很吃性能,时间越久几何效果下降
dns解析答案的类型:
- 肯定答案
- 否定答案 请求条目不存在等原因导致无法返回结果
- 权威答案
- 非权威答案
区域解析库: 由众多RR组成
资源记录:resource record (RR)
记录类型:
| 类型 | 作用 |
|---|---|
| SOA | 起始授权记录。一个区域解析库有只能有一个SOA记录,且必须为解析库的第一条 |
| A | 作用于 FQDN-->ip |
| AAAA | FQDN-->IPV6 |
| PTR | 指针。IP-->FQDN |
| NS | 用于标明当前区域被解析的dns服务器(也就是负责域名解析本域名其他主机的服务),也用与定义子域 |
| CNAME | 正式名称,也叫别名记录,当购买了cdn时,对应的cdn域名就是此 |
| MX | 邮件交换器 |
资源记录定义的语法格式:
name [TTL] IN RR_type value #TTL为解析后缓存时间
注意:
- TTL为资源类型,可从全局继承
- @可用于引用当前区域的名字,也就是自动补全当前域名
- 同一个name可以多条记录定义多个不同的value。解析时会轮询处理
- 同一个value也可以有多个不同name
SOA记录:
定义当前dns服务器
name value
name 为当前区域的名字,如: baidu.com.
value:有多部分组成
- 当前区域的主dns服务器的FQDN,也可以是当前区域的名字 @
- 当前区域管理员邮箱地址。不能是@代替,一般用'.'替换
- 主从服务协调属性的定义,以及否定答案的统一的TTL
例:
baidu.com 8400 IN SOA ns.baidu.com. nsadmin.baidu.com.com. (
2020070617; #解析库版本序列号,每次主dns修改后+1,用来通知备dns同步,可以从单个数值开始记录:1
2H; #刷新时间,每隔多久到主服务器检查一次
10M; #重试时间,应小于刷新时间
1W; #过期时间
1D; #否定答案的TTL值。主dns挂了,备dns最多工作时间
)
NS记录:
name value
name 当前区域的名字(域名名称)
value 当前区域的某dns名字。一个区域可以有多个NS记录
例:
baidu.com. IN NS cc.baidu.com.
baidu.com. IN NS bb.baidu.com.
1.相邻的两个资源记录name字段相同,后续可省略
2.任何一个ns记录后面的服务器名字,都应该在后续有一个A记录
MX记录:
name value
name 当前区域的名字
value
- 当前区域的某邮件服务器(smtp)的主机名。
- 一个区域内MX记录可以有多个。value之前要有数字(0-99),表示此服务器的优先级
例:
baidu.com. IN MX 10 mail1.baidu.com.
IN MX 20 mial2.baidu.com.
MX记录后面,也要有一个A记录
A记录:
name value
name 某主机的FQDN。如:www.baidu.com.
value 主机名对应主机的ipv4地址
例:
#解析www.baidu.com时,能解析到两个ip地址,可做轮询
www.baidu.com. IN A 1.1.1.10
IN A 1.1.1.20
aaa.baidu.com. IN A 1.1.1.30
*.baidu.com. IN A 1.1.1.20
baidu.com. IN A 1.1.1.20
避免用户写错名称,可通过泛域名解析,也就是通过通配符匹配,不过此方式也可以在前端nginx服务器上做url重写实现
AAAA记录:
用于ipv6,由于博主对ipv6不熟。就不介绍了
name value
name FQDN
value ipv6
PTR记录:
反向解析用
name value
- name 反向解析的ip地址。反着写:1.2.3.4 ==> 4.3.2.1 加上后缀:in-adr.arpa.
完整为: 4.3.2.1.in-addr.arpa. - value FQDN
tips:可简写网络位地址和后缀,如: 192.168.1.5.in-addr.apra 写为 5
例:
4.3.2.1.in-addr.arpa. IN PTR www.baidu.com.
4 IN PTR www.baidu.com.
CNAME记录:
别名记录,一般购买的cdn域名,就是一条此记录
name value
- name 别名FQDN
- value 源名称
例:
bbb.baidu.com. IN CNAME www.baidu.com.
cdn.baidu.com. IN CNAME www.baidu.com.
子域授权:
每个名称服务器,都是通过上级名称服务器在解析库中进行授权
就是在:. 根域中记录: .com. 域名,再在:.com. 中记录: baidu.com. ,然后baidu.com. 域名解析多个子域名
粘合记录:就是上述的层层定义,每级域名解析库都有记录。此为互联网授权模式
例: 类似在根域授权tld
子域授权需要层层关联,且信息保持一致
子域的bind配置中需要结合转发功能使用才有意义,也就是需要开启:递归查询和转发
#此为根域的解析库
@ IN NS DNS
com IN NS ns1.com
cn IN NS ns1.cn
DNS IN A 1.0.0.1
ns1.com IN A 1.1.1.1
ns1.cn IN A 1.1.1.2
#此为顶级域:.com.的解析库
@ IN NS ns1
baidu.com. IN NS ns1.baidu
baidu.com. IN NS ns2.baidu
baidu.com. IN NS ns3.baidu
hj IN NS ns1.hj
ns1 IN A 2.2.2.1
ns1.baidu.com. IN A 2.2.2.2
ns2.baidu.com. IN A 2.2.2.3
ns3.baidu.com. IN A 2.2.2.4
ns1.hj IN A 3.3.3.1
#此为域名: hj.com. 的解析库
@ IN NS ns1
ns1 IN A 3.3.3.1
www IN A 3.3.3.2
qwe IN A 3.3.3.3

浙公网安备 33010602011771号