前几天,我陆续给大家介绍了DNS服务的相关内容,今天,我给大家补充介绍一下DNS服务中一些小问题。
前文链接:
Linux DNS服务详解——DNS基础知识
Linux DNS服务详解——DNS实战配置
Linux DNS服务详解——DNS主从架构配置
一、DNS主从架构进阶——传输加密
DNS服务器是互联网架构中非常重要的基础设置,因此其重要性不言而喻。在搭建DNS主从架构时,为了保证DNS的安全性,可以考虑配置DNS主从数据传输的加密。
在完成DNS主从架构后,我们来进一步配置DNS主从架构中的DNS配置文件传输加密。首先,在主服务器上生成密钥,命令如下:
dnssec-keygen -a HMAC-MD5 -b 2 -n HOST master_and_slave
1
在上述命令中,-a参数表示指定加密算法,常见的加密算法有DSA、RSASHA1、RSAMD5等等;-n参数表示指定密钥的类型,HOST表示和主机相关;-b参数表示密钥的长度,在1-512之间;最后的master_and_slave为密钥的名称,可以自行指定。
执行结果如下所示:
可以看出,在执行完成后,生成了Kmaster_and_slave.+157+62621.key和Kmaster_and_slave.+157+62621.private。与上述命令执行后的输出相同。
接下来,我们需要写密钥文件,创建/etc/dns.key文件,并写入内容如下:
key "master_and_slave" {
algorithm hmac-md5;
secret "7w==";
};
1
2
3
4
其中,key后面的内容要和生成密钥时的密钥名称完全一致,algorithm后面的内容为加密算法,与密钥生成时的加密算法需要保持一致,secret后面跟的内容为密钥内容,可以通过查看Kmaster_and_slave.+157+62621.key文件获取,如下所示:
最后,需要修改主、从服务器的配置文件,在Linux DNS服务详解——DNS主从架构配置一文的基础上,DNS主服务器配置文件中写入内容:
include "/etc/dns.key"
1
DNS从服务器上,在上文配置的基础上,写入内容:
server 192.168.136.101{
keys {master_and_slave;};
};
include "/etc/dns.key"
1
2
3
4
并且在每个区域中加入内容:
masters { 192.168.136.101; };
1
这样,最后的主DNS服务器主配置文件内容如下:
options {
listen-on port 53 { any; };
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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
allow-transfer {key master_and_slave;};
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
bindkeys-file "/etc/named.root.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "pzz.com" IN {
type master;
file "pzz.com.zone";
allow-update{192.168.136.210;};
};
zone "136.168.192.in-addr.arpa" IN {
type master;
file "192.168.136.arpa";
allow-update{192.168.136.210;};
};
include "/etc/dns.key";
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
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
最后的从DNS服务器主配置文件内容如下:
options {
listen-on port 53 { any; };
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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
bindkeys-file "/etc/named.root.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "pzz.com" IN {
type slave;
file "pzz.com.zone";
masters { 192.168.136.101; };
};
zone "136.168.192.in-addr.arpa" IN {
type slave;
file "192.168.136.arpa";
masters { 192.168.136.101; };
};
server 192.168.136.101{
keys {master_and_slave;};
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
include "/etc/dns.key";
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
在上述步骤完成之后,经过实验,可以看出从服务器工作一些正常:
二、DNS转发服务器搭建
转发服务器是一种简单的DNS服务器实现方式,即DNS服务器本身并没有任何资源记录,当收到客户端DNS请求后,向指定的DNS服务器转发DNS请求,并最终将结果反馈会客户端,我们的家用路由器DNS就是按照这种方式设置的。
接下来,给大家介绍DNS转发服务器的搭建方式,这一次,我使用阿里云云服务器搭建一台DNS转发服务器。
在云服务器上,安装named服务,并在主配置文件option中添加内容如下:
forward only;
forwarders {8.8.8.8;};
1
2
之后关闭Linux系统自带防火墙,开启DNS服务功能,发现已经成功监听53端口。
但是对于云服务器而言,还要对其自带的防火墙进行设置,放行TCP和UDP的流量,如下所示:
接下来,我们检测一下53端口是否开放,发现功能开放正常,如下所示:
最后,我们来测试一下DNS服务器的转发情况,发现能够正常进行域名解析。
三、智能DNS简介
所谓智能DNS,就是根据客户端IP地址,来反馈不同的DNS解析结果,这样可以使得同一个域名解析到不同的IP地址上去。对于小型公司来说,如果服务器存在两张以上的网卡,并且分别对应不同运营商ISP的网络,就可以配置智能DNS,将不同网络查询的DNS记录分别解析为不同的IP地址,以提升DNS解析速度。对于大型公司来说,业务量大、访问并发量高,为了提升网站响应速度,也可以使用智能DNS,将同一个域名根据DNS客户端IP地址所在的区域,映射到不同的IP地址上去,比如国内的IP访问时映射一个IP地址,国外的IP访问时映射一个IP地址,这样可以提升用户对站点的体验。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_40228200/article/details/121278562