# DNS域名解析服务
主服务器:在特定区域内具有唯一性,负责维护该区域内的域名与 IP 地址之间的对应关系。
(用于管理域名和 IP 地址对应关系的真正服务器)
从服务器:从主服务器中获得域名与 IP 地址的对应关系并进行维护,以防主服务器宕机等情况。(帮助主服务器“打下手”,分散部署在各个国家、省市或地区,以便让用户就近查询域名,从而减轻主服务器的负载压力。)
缓存服务器:通过向其他域名解析服务器查询获得域名与 IP 地址的对应关系,并将经常查询的域名信息保存到服务器本地,以此来提高重复查询时的效率。(缓存服务器不太常用,一般部署在企业内网的网关位置,用于加速用户的域名查询请求。)
## 1.安装bind服务程序
#### 三个关键文件
1.主配置文件(/etc/named.conf):只有 58 行,而且在去除注释信息和空行之后,实际有效的参数仅有 30 行左右,这些参数用来定义 bind 服务程序的运行。
2.区域配置文件(/etc/named.rfc1912.zones):用来保存域名和 IP 地址对应关系的所在位置。类似于图书的目录,对应着每个域和相应 IP 地址所在的具体位置,当需要查看或修改时,可根据这个位置找到相关文件。
3.数据配置文件目录(/var/named):该目录用来保存域名和 IP 地址真实对应关系的数据配置文件。
```
[root@pf ~]# yum install bind* -y #安装所有bind服务包
```
## 2.DNS域名正/反向解析服务
编辑主配置文件
```
[root@pf ~]# vim /etc/named.conf
[root@pf ~]# cat /etc/named.conf
listen-on port 53 { any; }; #修改括号中的内容为any;
#表示本地DNS的IP地址均可以监听53端口,做为解析服务
allow-query { any; }; #修改括号中的内容为any;
#表示DNS服务解析任意网段机器
```
编辑区域配置文件
```
[root@pf ~]# vim /etc/named.rfc1912.zones
zone "pf.com" IN { #正向解析的域名
type master; #master意为主服务器;slave意为从服务器
file "pf.com"; #文件名任意
allow-update { none; };
};
zone "188.168.192.in-addr.arpa" IN { #反向解析的域名
type master;
file "188.168.192.arpa";
allow-update { none; };
```
复制 粘贴 编辑 pf.zone与188.168.192.arpa文件
```
[root@pf ~]# cd /var/named/
[root@pf named]# cp -a named.localhost pf.com
[root@pf named]# cp -a named.loopback 188.168.192.arpa
```
进入pf.zone编辑正向解析文件
```
[root@pf named]# vim pf.com
[root@pf named]# cat pf.com
$TTL 1D
@ IN SOA pf.com. root (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS pf.com.
A 127.0.0.1 #使用主机地址解析
AAAA ::1
www A 192.168.188.150
```
进入188.168.192.arpa编辑反向解析文件
```
[root@pf named]# vim 188.168.192.arpa
[root@pf named]# cat 188.168.192.arpa
$TTL 1D
@ IN SOA @ pf.com. root.pf.com. ( #pf.com.是指DNS区域地址 #root.pf.com.域名管理员的邮箱
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS pf.com.
A 127.0.0.1
AAAA ::1
PTR localhost.
150 PTR www.pf.com. #150是IP地址最后一段;PTR是指使用指针反向解析域名
```
检查文件
```
[root@pf named]# named-checkconf
```
重启服务
```
[root@pf named]# systemctl restart named
#如果出现报错就检查前面正反解析文件和区域配置文件
```
定义DNS服务器IP地址
```
[root@pf named]# vim /etc/resolv.conf
[root@pf named]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.188.150
```
正反向解析测试
```
[root@pf named]# nslookup www.pf.com
[root@pf named]# nslookup 192.168.188.150
```
## 3.部署从服务器
首先从服务器安装yum仓和DNS服务
关闭防火墙
```
[root@pf ~]# systemctl stop firewalld.service
```
在主服务器的区域配置文件中允许该从服务器的更新请求,并进行检查语病
```
[root@pf ~]# vim /etc/named.rfc1912.zones
zone "pf.com" IN {
type master;
file "pf.zone";
allow-update { 192.168.188.146; }; #添加从服务器IP
};
zone "188.168.192.in-addr.arpa" IN {
type master;
file "188.168.192.arpa";
allow-update { 192.168.188.146; }; #添加从服务器IP
[root@pf ~]# named-checkconf
```
重启主服务器DNS
```
[root@pf ~]# systemctl restart named
```
编辑从服务器主配置文件
```
[root@pf ~]# vim /etc/named.conf
options {
listen-on port 53 { all; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { all; };
```
编辑从服务器区域配置文件
```
[root@pf ~]# vim /etc/named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and https://tools.ietf.org/html/rfc6303
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// Note: empty-zones-enable yes; option is default.
// If private ranges should be forwarded, add
// disable-empty-zone "."; into options
//
zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};
zone "pf.com" IN {
type slave;
masters { 192.168.188.150; };
file "slaves/pf.zone";
};
zone "188.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.188.150; };
file "slaves/188.168.192.arpa";
};
```
检查无误后重启
```
[root@pf ~]# named-checkconf
[root@pf ~]# systemctl restart named
```
同步文件
```
[root@pf ~]# vim /etc/named.rfc1912.zones
[root@pf ~]# cd /var/named/slaves
[root@pf slaves]# ls
[root@pf slaves]# vim /etc/resolv.conf
[root@pf slaves]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.188.150
nameserver 192.168.188.146
```
最后修改:2021 年 11 月 23 日
© 允许规范转载