DNS服务
DNS服务器的类型
一共有三种DNS服务器。
1. 主DNS服务器
这些服务器上存放了特定域名的配置文件,并且基于此权威地规定了特定域名的地址。主DNS服务器知道全部在它管辖范围的主机和子域名的地址。
2.辅助/从DNS服务器
这些服务器作为主DNS服务器的备份,也承担一定负载。主服务器知道辅助DNS服务器的存在,并且会向他们推送更新。
3.缓存DNS服务器
这些服务器上不存放特定域名的配置文件。当客户端请求缓存服务器来解析域名时,该服务器将首先检查其本地缓存。如果找不到匹配项便会询问主服务器。接着这条响应将被缓存起来。您也可以轻松地将自己的系统用作缓存服务器。
组成部分
域名服务器:提供域名解析服务的软件,一般监听TCP/UDP的53端口。如linux中的bind
解析器:访问域名服务器的客户端,它负责解析从域名服务器获取的响应,向调用它的应用返回IP、别名等信息
DNS的递归和迭代
DNS域名解析服务采用分布式的数据结构来存放海量的“区域数据”信息,在执行用户发起的域名查询请求时,具有递归查询和迭代查询两种方式。
递归查询,是指DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结果提交给用户。
迭代查询则是指,DNS服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS服务器的地址,用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。
这里使用bind提供DNS服务
安装软件
yum install -y bind-chroot
配置文件组成:
主配置文件(/etc/named.conf):只有59行,而且在去除注释信息和空行之后,实际有效的参数仅有30行左右,这些参数用来定义bind服务程序的运行。
区域配置文件(/etc/named.rfc1912.zones):用来保存域名和IP地址对应关系的所在位置。类似于图书的目录,对应着每个域和相应IP地址所在的具体位置,当需要查看或修改时,可根据这个位置找到相关文件。
数据配置文件目录(/var/named):该目录用来保存域名和IP地址真实对应关系的数据配置文件。
这里以xvtengfei.top域名为例
第一步先修改主配置文件
[root@hd1 ~]# vim /etc/named.conf
# 分别表示服务器上的所有IP地址均可提供DNS域名解析服务,以及允许所有人对本服务器发送DNS查询请求
options {
listen-on port 53 { any; };
。。。
allow-query { any; };
第二步修改区域配置文件
[root@hd1 ~]# vim /etc/named.rfc1912.zones
# 在下方追加这部分内容,直接可以安装配置文件自带的模板修改即可
zone "xvtengfei.top" IN {
type master;
file "xvtengfei.top.zone";
allow-update {none;}; # 用于从服务器的请求更新,这里暂时不需要
};
第三步修改数据配置文件,默认在/var/named下
[root@hd1 ~]# cd /var/named/
[root@hd1 /var/named]# ll
total 18
drwxr-x--- 7 root named 61 Oct 6 10:12 chroot
drwxrwx--- 2 named named 23 Oct 6 10:26 data
drwxrwx--- 2 named named 60 Oct 6 10:26 dynamic
-rw-r----- 1 root named 2253 Apr 5 2018 named.ca
-rw-r----- 1 root named 152 Dec 15 2009 named.empty
-rw-r----- 1 root named 152 Jun 21 2007 named.localhost
-rw-r----- 1 root named 168 Dec 15 2009 named.loopback
drwxrwx--- 2 named named 6 Aug 31 22:53 slaves
# 这里直接使用自带的named.localhost为模板进行修改即可
[root@hd1 /var/named]# cp -a named.localhost xvtengfei.top.zone
[root@hd1 /var/named]# vim xvtengfei.top.zone
$TTL 1D
@ IN SOA xvtengfei.top. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
www A 10.0.0.61
www A 10.0.0.71
# 同一域名可以指向多个A记录,BIND会通过轮询的方式返回IP地址实现简单的负载均衡
重启服务
[root@hd1 ~]# systemctl restart named
检查结果
[root@hd2 ~]# dig -t -A www.xvtengfei.top @10.0.0.61 +short
10.0.0.61
当配置过程中出现错误可以使用named-checkconf和named-checkzone,分别检查主配置文件与数据配置文件中语法或参数的错误。
BIND视图技术
如何区别部署主和辅助服务器
我们知道 DNS 服务器类型有主域名服务器、辅助域名服务器和缓存域名服务器。不同于缓存域名服务器,主域名服务器和辅助域名服务器在应答过程中是处于同等地位的。
zone "likegeeks.com" {
type master; # 这表示角色为主
file xvtengfei.top.zone
};
同定义一个主域服务器一样,辅助域服务器的定义稍微有些变化
zone "likegeeks.com" {
type slave;
masters IP Address list; ;
file xvtengfei.top.zone
};
对于辅助域服务器来说,它的域名和主域服务器是一样的。上述语法里的的slave类型表示这是一个辅助域服务器,“masters IP Address list”表示辅助域服务器中区域文件内的信息都是通过主域服务器中区域文件内的信息复制过来的。