部署DNS服务器

模型DNS解析服务


网络示意图

模型DNS解析服务

192.168.1.8 DNS跳转服务器/路由
10.1.0.12 根服务器
10.1.0.13 ORG域服务器
10.1.0.17 lb域主服务器
10.1.0.18 lb域从服务器
10.1.0.19 测试web服务器
192.168.1.6 本地DNS服务器,本地网关
10.0.0.12 内网客户端
测试目标:从10.0.0.12 访问域名www.lb.org,在10.1.0.19查看访问记录为192.168.1.6访问

1.配置根服务器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!-- 安装软件 -->
yum -y install bind

<!-- 启动DNS服务 -->
systemctl enable --now named

<!-- 修改配置 -->
vi /etc/named.conf
listen-on port 53 {localhost; };
allow-query { any; };

<!-- 修改根解析地址 原自动生成的地址删掉-->
vi /var/named/named.ca
;; ANSWER SECTION:
. 518400 IN NS a.root-servers.net.
;; ADDITIONAL SECTION:
a.root-servers.net. 518400 IN A 10.1.0.13

<!-- 重启服务-->
systemctl restart named

2.配置org域服务器

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
<!-- 安装软件、启动服务、修改配置文件略 -->

<!-- 增加域配置 -->
vi /etc/named.rfc1912.zones
zone "org" {
type master;
file "org.zone";
};

<!-- 增加域数据库 -->
vi /var/named/org.zone
$TTL 1D
@ IN SOA master org (1003 2H 1H 1D 3H )
NS master
lb NS lbdns1
master A 10.1.0.13
lbdns1 A 10.1.0.17
lbdns1 A 10.1.0.18

<!-- 数据库文件授权 -->
chown root:named org.zone
chmod 640 org.zone

<!-- 修改根解析地址 原自动生成的地址删掉-->
vi /var/named/named.ca
;; ANSWER SECTION:
. 518400 IN NS a.root-servers.net.
;; ADDITIONAL SECTION:
a.root-servers.net. 518400 IN A 10.1.0.12

<!-- 重启服务-->
systemctl restart named

3.配置lb域主服务器

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
<!-- 安装软件、启动服务、修改配置文件略 -->

<!-- 增加域配置 -->
vi /etc/named.rfc1912.zones
zone "lb.org" {
type master;
file "lb.org.zone";
};

<!-- 增加域数据库 -->
vi /var/named/lb.org.zone
$TTL 1D
@ IN SOA master ib.org (1002 2H 1H 1D 3H )
NS master
master A 10.1.0.17
www A 192.168.1.8

<!-- 增加域从数据库后的配置 -->
$TTL 1D
@ IN SOA master ib.org (1003 2H 1H 1D 3H )
NS master
NS slave
slave A 10.1.0.18
master A 10.1.0.17
www A 192.168.1.8

#修改数据文件注意修改序列号 1003

<!-- 数据库文件授权 -->
chown root:named lb.org.zone
chmod 640 lb.org.zone

<!-- 增加安全控制 -->
allow-transfer {10.1.0.18;};

<!-- 冷加载-->
rndc reload

<!-- 重启服务-->
systemctl restart named

4.配置lb域从服务器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!-- 安装软件、启动服务、修改配置文件略 -->

<!-- 增加域配置 -->
vi /etc/named.rfc1912.zones
zone "lb.org" {
type slave;
masters {10.1.0.17;};
file "slaves/lb.org.zone.slave";
};

<!-- 增加安全控制 -->
allow-transfer {none;};

<!-- 重启服务-->
systemctl restart named

5.配置客户端测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!-- 环境Ubuntu 22.04.2 LTS 客户端只测试dns服务器 -->

apt-get -y install bind9-utils
dpkg -L bind9-utils

<!--修改网卡配置 -->
vi /etc/netplan/eth0.yaml

<!--查看当前dns解析地址 -->
resolvectl status

<!-- ubuntu18.4后增加 启用了systemd-resolved服务,通过增加软连接指向解析地址 -->
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
<!-- 重启解析服务 -->
systemctl restart systemd-resolved

<!-- 测试解析服务 -->
host www.lb.org #测试地址解析 错误:Host www.baidu.com not found: 5(REFUSED)
dig www.lb.org


<!-- 清缓存测试主从 -->
rndc flush

1
2
3
4
5
6
7
8
9
10
11
12
#别名作用:简单的负载均衡
$TTL 1D
@ IN SOA master 163.com (1003 2H 1H 1D 3H)
NS master
NS slave
slave A 192.168.1.16
master A 192.168.1.6
www CNAME node1
node1 A 10.0.0.12
node1 A 10.0.0.13
@ MX 10 mail1 //10 为优先级
mail1 A 192.168.1.26

6.配置NAT转换

1
2
3
4
5
6
7
8
9
10
11
12
13
#查看iptables 规则
iptables -t nat -vnL --line-numbers
# 192.168.1.6 添加内网出路由规则
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 ! -d 10.0.0.0/24 -j MASQUERADE

#192.168.1.8 添加外网进路由规则
iptables -t nat -A PREROUTING -d 192.168.1.8 -p tcp --dport 80 -j DNAT --to-destination 10.1.0.19:80

#192.168.1.8 添加内网出路由规则
iptables -t nat -A POSTROUTING -s 10.1.0.0/24 ! -d 10.1.0.0/24 -j MASQUERADE

iptables-save > /etc/sysconfig/iptables

7.DNS转发

1
2
3
4
5
6
7
8
#192.168.1.6 配置dns转发
/etc/named.conf
options{
forward only;
forwarders {192.168.1.8;};
dnssec-enable no;
dnssec-validation no;
}