域名服务器分为三类:
主服务器
在特定的区域内具有唯一性,负责维护该区域内的域名与IP地址之间的对应关系;
从服务器
从主服务器中获得域名与IP地址的对应关系并进行维护,以防主服务器宕机等情况;
缓存服务器
通过向其它域名解析服务器查询获得域名与IP地址的对应关系,并将经常查询的域名信息保存到服务器本地,以此来提高重复查询时的效率;
DNS请求具有递归查询和迭代查询两种。
BIND(Berkeley Internet Name Domain,伯克利因特网域名)服务是全球范围内使用最广泛、最安全可靠且高效的域名解析服务程序。
安装
建议大家在安装部署bind服务程序时加上chroot(牢笼机制)扩展包,以便有效限制bind服务。
yum install bind-chroot
配置文件
主配置文件(/etc/named.conf)
用来定义bind服务程序的运行
区域配置文件(/etc/named.rfc1912.zones)
用来保存域名和IP地址对应关系的所在位置。类似于图书的目录,对应着每个域和相应IP地址所在的具体位置,当需要查看或修改时,可以根据这个位置找到相应文件。
数据配置文件目录(/var/named)
该目录用来保存域名和IP地址真实对应关系的数据配置文件。
主配置文件
运行bind服务,先进行如下配置
+ vim /etc/named.conf
# 表示服务器上的所有IP地址均可提供DNS域名解析服务
listen-on port 53 { any; };
# 允许所有人对本服务器发送DNS查询
allow-query { any; };
区域配置文件
+ vim /etc/named.rfc1912.zones
zone "localhost.localdomain" IN {
# 服务类型 (hint 根区域,master 主区域,slave 辅助区域)
type master;
# 域名与IP地址解析规则保存的文件名
file "named.localhost";
# 允许哪些客户机动态更新解析信息
allow-update { none; };
};
# 表示127.0.0.1的反向解析区域
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
named-checkconf
检查主配置文件
named-checkzone
检查数据配置文件
数据配置文件
+ cat /var/named/named.localhost
#生存周期为1天
$TTL 1D
# 授权信息
@ IN SOA @ rname.invalid. (
# 更新序列号
0 ; serial
# 更新时间
1D ; refresh
# 重试延时
1H ; retry
# 失效时间
1W ; expire
# 无效解析记录缓存时间
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
正向解析实验
先修改主配置文件,再编辑区域配置文件
+ vim /etc/named.rfc1912.zones
zone "ethan.com" IN {
type master;
file "ethan.com.zone";
allow-update{none;};
}
配置数据配置文件
+ vim /var/named/ethan.com.zone
注意域名最后是多了一个点的。
$TTL 1D
@ IN SOA ethan.com root.ethan.com (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.ethan.com.
ns IN A 192.168.7.144
IN MX 10 mail.ethan.com.
mail IN A 192.168.7.144
www IN A 192.168.7.144
反向解析实验
编辑区域配置文件
+ vim /etc/named.rfc1912.zones
zone "7.168.192.in-addr.arpa" IN {
type master;
file "192.168.7.arpa";
};
编辑数据配置文件
复制模板文件”/var/named/named.loopback”
+ cd /var/named
+ cp -a named.loopback 192.168.7.arpa
+ vim /var/named/192.168.7.arpa
$TTL 1D
@ IN SOA ethan.com root.ethan.com (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.ethan.com.
ns A 192.168.7.144
144 PTR ns.ethan.com.
144 PTR mail.ethan.com.
144 PTR www.ethan.com.
+ dig @192.168.7.144 192.168.7.144
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.2 <<>> @192.168.7.144 192.168.7.144
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;192.168.7.144. IN A
;; AUTHORITY SECTION:
. 10800 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2020050403 1800 900 604800 86400
;; Query time: 281 msec
;; SERVER: 192.168.7.144#53(192.168.7.144)
;; WHEN: Tue May 05 11:53:35 CST 2020
;; MSG SIZE rcvd: 117
部署从服务器
这里使用两台服务器分别作为主从服务器;
修改主服务器的区域配置文件。在”allow-update”添加从服务器的IP地址,使得主服务器可以允许从服务器的更新请求。
zone "ethan.com" IN {
type master;
file "ethan.com.zone";
allow-update{ 192.168.7.146; };
};
zone "7.168.192.in-addr.arpa" IN {
type master;
file "192.168.7.arpa";
allow-update{ 192.168.7.146; };
};
systemctl restart named
修改从服务器区域配置文件;
zone "ethan.com" IN{
type slave;
masters { 192.168.7.144; };
file "slaves/ethan.com.zone";
};
zone "7.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.7.144; };
file "slaves/192.168.7.arpa";
};
systemctl start named
安全加密传输
部署缓存服务器
分离解析技术