一、概述

1.使用场景

1
# Linxu、bind、开源、稳定、域名解析

2.服务器类型

1
2
3
主服务器
从服务器 #主的备份
存储服务器 #经常用到的存储下来

3.实验准备

1
2
3
#两台台Linux系统,做主从
#一台windows虚拟机做测试
#更改虚拟机命名,以便区分

二、主服务器安装配置

1.前置安装

1
2
3
4
5
6
7
8
9
10
11
12
13
# 改名
hostnamectl set-hostname Master

# 安装bind
yum -y install bind-chroot

# 启动服务(名字就叫这个)
systemctl start named

# DNS配置文件
-主配置文件: /etc/named.conf
-从配置文件: /etc/named.rfc1912.zones
-数据配置文件: /var/named/...

2.编辑文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# 编辑主配置文件
vim /etc/named.conf

# 修改主配置文件
options{
listen-on port 53 {any; }
allow-query {any; }
}

# 编辑区域配置文件
vim /etc/named.rfc1912.zones

# 修改区域配置文件
zone "viik.com" IN {
type master;
file "viik.com.zone";
allow-update {none; };
}

# 创建文件
cd /var/named

# 复制模板文件
cp -a named.localhost viik.com.zone

# 编辑复制的文件,@为主域,把第二个@改为你设置的域名,注意后面还有个点,再接管理员的邮箱。
@ IN SQA viik.com. vk.viik.com. (
0 ;serial
1D ;redfresh
1W ;expire
3H) ;minimum
NS ns.viik.com.
ns IN A 192.168.60.10 #ns域名解析到另外一个域名解析服务器
www IN A 192.168.60.20
bbs IN A 1.1.1.1
blog IN A 2.2.2.2 #A代表域名解析到IPv4地址(Address)
mail IN CNAME blog.viik.com #CNAME代表域名解析域名
#MX域名解析到邮件服务器地址
#SRV记录提供特定服务的服务器
#TXT解析到文本内容(一般是邮件服务器的SPF记录,或者是SSL的解析记录)
#CAA代表CA证书机构的授权校验
#显性URL 将域名解析到另外一个地址
#隐性URL 将域名解析到另外一个地址
AAAA ::1 #IPv6,用不到可以省去

# 重启服务器
systemctl restart named

# windows 测试
nslookup

3.反向查询

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 编辑从配置文件(反向查询)
zone "60.168.192.in-addr.arpa" IN {
type master;
file "192.168.60.arpa";
allow-update { none; };
};

# 创建文件
cd /var/named

# 复制模板文件
cp -a named.localhost 192.168.60.arpa

#创建复制的文件
@ IN SQA viik.com. vk.viik.com. (
0 ;serial
1D ;redfresh
1W ;expire
3H) ;minimum
NS ns.viik.com.
ns A 192.168.60.10
101 PTR www.viik.com.
@ PTR viik.com.

三、设置从服务器

1.安装准备

1
2
3
4
5
6
7
8
9
# 重命名
hostnamectl set-hostname slave

# 安装bind
yum -y install bind-chroot

# 开启服务
ststemctl start named

2.配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 编辑主配置文件
vim /etc/named.conf

# 修改主配置文件
options{
listen-on port 53 {any; }
allow-query {any; }
}

#编辑区域配置文件
vim /etc/named.rfc1912.zones

#修改区域配置文件
zone "seeker.com" IN {
type slave;
masters { 192.168.60.14; };
file "slave/seeker.com.zone";
};

zone "60.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.60.14; };
file "slave/192.168.60.arpa";
};

# 实验证明
cd /var/named/slaves/
ls 刷新

3.主从加密

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# 主从加密
@master

# 生成密钥
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST master-slave

# 创建密钥文件
cd /var/named/chroot/etc

#配置文件
vim train.key
key "master-slave" {
algorithm hmac-md5;
secret "私钥"; #cat /创建私钥时的目录下的.privacy文件
};

# 赋予权限
chown root:named train.key
chmod 640 train.key

# 外链到/etc生效
ln -a train.key /etc/trust.key


# 编辑主配置文件
include "/etc/train.key";
allow-transfer { key master-slave; };

# 配置从服务器
@slave
scp root@192.168.60.10:/root/train.key

include "etc/train.key";
server 192.168.60.14 {
keys { master-slave; };
};

# 赋予权限
chown root:named train.key
chmod 640 train.key

# 重启
systemctl restart named

# 检查出错
named-checkconf /etc/named.conf #后面加想要检查的文件的路径

四、缓存服务器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 编辑配置文件
vim /etc/named

forwarders {114.114.114.114;8.8.8.8};

firewall-cmd --permanent --add-service=dns
firewall -cmd --reload

firewall-cmd --zone=public --query-protocol=icmp


# 编辑主配置文件
vim /etc/named.rfc1912.zones

acl "bj" {172.16.8.0/24;};
acl "sh" {172.17.8.0/24;};
view "bj" {
match-clients{"bj";};
zone "viik.com"{
type master;
file "viik.com.bj";
};
};
view "sh" {
match-clients{"bj";};
zone "viik.com"{
type master;
file "viik.com.sh";
};
};

# 编辑复制文件