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缓存-->迭代查询

image

注意: 缓存很吃性能,时间越久几何效果下降

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
posted @ 2022-01-28 21:44  suyanhj  阅读(174)  评论(0)    收藏  举报