Linux DNS服务详解——DNS服务搭建细节

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: Linux DNS服务详解——DNS服务搭建细节

前几天,我陆续给大家介绍了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

目录
相关文章
|
2月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
86 3
|
1月前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
44 5
linux系统服务二!
|
1月前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
46 3
linux系统服务!!!
|
17天前
|
缓存 并行计算 Linux
深入解析Linux操作系统的内核优化策略
本文旨在探讨Linux操作系统内核的优化策略,包括内核参数调整、内存管理、CPU调度以及文件系统性能提升等方面。通过对这些关键领域的分析,我们可以理解如何有效地提高Linux系统的性能和稳定性,从而为用户提供更加流畅和高效的计算体验。
27 2
|
1月前
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
70 4
|
1月前
|
缓存 负载均衡 算法
Linux内核中的进程调度算法解析####
本文深入探讨了Linux操作系统核心组件之一——进程调度器,着重分析了其采用的CFS(完全公平调度器)算法。不同于传统摘要对研究背景、方法、结果和结论的概述,本文摘要将直接揭示CFS算法的核心优势及其在现代多核处理器环境下如何实现高效、公平的资源分配,同时简要提及该算法如何优化系统响应时间和吞吐量,为读者快速构建对Linux进程调度机制的认知框架。 ####
|
1月前
|
域名解析 缓存 网络协议
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
|
1月前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
218 3
|
1月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
102 3
|
1月前
|
安全 测试技术 数据安全/隐私保护
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验