一、DNS基础
DNS是基于TCP/53和UDP/53的域名解析服务器。
DNS分层:
顶级域(tld,top level domain)又分为组织域,国家域和反向域。
DNS分类:
缓存DNS服务器: 一段时间内将访问记录缓存在本地解析库中。在下次有客户端请求时,若本地缓存有记录,则不需要通过 迭代 或者 递归 的方式查询解析结果。但同时它缓存的记录是非实时信息,因此可能造成解析错误。
主DNS服务器: 记录其域内负责解析的解析库服务器。
辅助DNS服务器: 从主DNS服务器内复制(区域传送)解析库。又分为全量传送和增量传送。
序列号:主服务器和从服务器记录解析库刷新时间的版本号。
刷新时长:每隔多少时间从主服务器传送解析库。
重试时长:若请求主服务器没有回应,下次重新请求的时间间隔,该时间应小于刷新时间。
过期时长:从联系不丧主服务器开始,多久后放弃联系并停止自身解析服务。
转发器: 本地不做解析,仅给请求者指向新的解析服务器。
一次完整的请求过程:
客户端先查询本地hosts文件;
本地hosts文件没记录,则将请求转为DNS服务,查询客户端本地缓存;
本地缓存无记录,向DNS服务器发起请求,DNS服务器也事先查询服务器本地缓存;
DNS服务器本缓存无记录,从根迭代查询域名解析结果。
二、资源解析库:
域名解析本质时访问资源解析库中的资源记录进行匹配解析。
解析库每条记录称为一条资源记录(rr,resource record),其统一格式如下:
name [TTL] IN rr_type value
注:1、TTL可从主配置文件继承
2、@用于引用当前区域名称
3、同一名字记录不同值,服务器将轮询响应
4、不同名字记录同一值
资源记录分类及使用格式:
1、SOA:Start Of Authority,起始授权记录,一个域解析库仅有一条,且必须为为解析库第一条
domain_name TTL IN SOA value
注:value又分三段
当前区域主DNS服务器的FQDN(Full Qualifed Domain Name)
区域管理员邮箱地址,不能使用@符号
(主从服务器协调属性TTL及否定答案属性,使用括号)
例子:
mydomain.com. 86400 IN SOA ns.mydomain.com. mx.mydomain.com. (
2019050601 ; 序列号
2H ; 刷新时长,2 hours
20M ;重复时长,20 minutes
1W ;过期时长,1 week
1D ) ;否定答案时长,1 day
2、NS:Name Server,名称服务器,即指向当前域用于解析domain_name的服务器,而不是自身解析
domain_name [TTL] IN NS dns_name
注: 1、当前域名与上一条NS资源记录域名相同,域名可省略。
2、每条NS记录后应该有其对应的A(ipv4)记录。
例子:
mydomain.com. IN NS ns.mydomain.com.
3、A:Internet Address,域名解析为ipv4地址
FQDN [TTL] IN A IP_ADDR
例子:
ns.mydomain.com. IN A 10.1.1.1
www.mydomain.com. IN A 10.2.1.1
4、MX:Mail eXchanger,邮件交换器
domain_name [TTL] IN MX Number mx_name
注: 1、每个mx_name前应有一个数值表示其优先级。
2、每一条MX记录后都应该有一条A记录。
例子:
mydomain.com. IN MX 10 mx1.mydomain.com.
IN MX 20 mx2.mydomain.com.
5、CNAME:Canonical Name,别名记录
别名FQDN [TTL] IN CNAME 原名FQDN
例子:
mail.mydomain.com. IN CNAME mx1.mydomain.com.
6、AAAA:FQDN解析为ipv6
FQDN [TTL] IN AAAA IPV6_ADDR
例子:
mx1.mydomain.com. IN AAAA 1030::C9B4:FF12:48AA:1A2B
7、PTR:PoinTeR,反向解析,ip解析为域名
RDDA_PI [TTL] IN PTR FQDN
注:RDDA_PI有特定格式,反写IP地址加特定后缀.in-addr.arpa.
例子:ip为10.2.1.1,域名为www.mydomain.com.
1.1.2.10.in-addr.arpa. IN PTR www.mydomain.com.