一、DNS服务器的基本概念
在线上工作的DNS服务器通常都是主辅结构。辅DNS用于分担查询请求,它的数据都是从主DNS同步,工作过程大概如下:
1、辅DNS根据配置文件中所设置的刷新间隔(refresh)来定期向主DNS进行数据同步
2、辅DNS根据主服务器上序列号(serial)作为标准决定是否需要执行同步
3、如果辅DNS无法连接主DNS,会根据设置的重试时间(retry)来重新与主DNS进行连接
4、如果重新连接了多次还是无法成功,那么达过过期时长(expire)的限制后辅DNS就会放弃获取数据,辅DNS也不会升级成主DNS,而是下线不再提供服务(因为辅DNS是没有办法写入新数据的)
下面先看一个配置各种时长的设置示例
linuxe.cn 86400 IN SOA linuxe.cn {
2017010801 ;serial序列号,标识是第几个版本
2H ;refresh刷新时间
10M ;retry重试时间
1W ;expire过期时间
1D ;否定回答时间
}
二、DNS的查询方式
一个是客户端向服务器提交查询,服务器直接做最终回应,这个是递归查询(只发出一次请求,最终得到结果);另一个是DNS服务器接收到客户端请求后,由于本地没有该解析记录,会将请求转给其他DNS服务器进行查询,这个叫做迭代查询(需要发出多次请求,最终获得正确的结果)
三、DNS常用记录类型
区域解析库文件:每个域名都有一个自己的区域解析库文件(zone文件),由一条条资源记录来定义具体指向
SOA记录:起始授权记录,一个区域解析库只能有一个SOA记录,而且必须为第一条。打个比方,建了个海岛,需要对外宣布世界上多了一个海岛,这个事情就是SOA在做
NS记录:域名服务记录,一个区域解析库可以有多个NS记录,其中一个为主服务器。结合上面的例子,NS记录可以理解为用来宣布岛主是谁
A记录:地址记录,从域名解析为IP的记录
AAAA:IPv6的地址记录
PRT:反向解析记录,从IP解析为域名
MX:邮件交换记录。我们平时发邮件都是直接发到qq.com、163.com等域名上,但是这些域名肯定是有多台服务器的,MX记录就是指明了哪个服务器会负责邮件。MX服务可以存在多个,由优先级来区分先后,0-99,数字越小优先级越高
CNAME记录:给一个地址设置一个别名
四、资源记录的定义语法
在DNS服务器中每个域都要通过zone文件保存信息,文件语法格式是标准化的,一个典型配置内容如下: