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

简介: 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

目录
相关文章
|
25天前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
246 146
|
1月前
|
缓存 安全 Linux
六、Linux核心服务与包管理
在没有网络的情况下,使用系统安装光盘是获取RPM包的常用方法。场景二:配置本地文件镜像源 (使用系统安装光盘/ISO)(检查RPM包的GPG签名以保证安全) 或。YUM/DNF包管理工具 (yum/dnf)(此处可以放置您为本主题制作的思维导图)处理依赖问题的危险选项 (应极力避免)(覆盖文件、替换已安装包)。(list) 则是列出文件。(query file) 是。(假设系统安装光盘已挂载到。信息 (verbose)。(upgrade) 选项。(all) 已安装的包。(package) 选项
230 11
|
7月前
|
弹性计算 运维 安全
优化管理与服务:操作系统控制平台的订阅功能解析
本文介绍了如何通过操作系统控制平台提升系统效率,优化资源利用。首先,通过阿里云官方平台开通服务并安装SysOM组件,体验操作系统控制平台的功能。接着,详细讲解了订阅管理功能,包括创建订阅、查看和管理ECS实例的私有YUM仓库权限。订阅私有YUM仓库能够集中管理软件包版本、提升安全性,并提供灵活的配置选项。最后总结指出,使用阿里云的订阅和私有YUM仓库功能,可以提高系统可靠性和运维效率,确保业务顺畅运行。
|
5月前
|
网络协议 安全 Devops
Infoblox DDI (NIOS) 9.0 - DNS、DHCP 和 IPAM (DDI) 核心网络服务管理
Infoblox DDI (NIOS) 9.0 - DNS、DHCP 和 IPAM (DDI) 核心网络服务管理
178 4
|
6月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
536 25
|
7月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
7月前
|
Linux iOS开发 MacOS
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
191 0
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
|
9月前
|
Linux Docker 容器
Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?
在 Linux 系统中,停止 Docker 服务时遇到警告无法彻底停止的问题,可以通过系统管理工具停止服务、强制终止相关进程、检查系统资源和依赖关系、以及重置 Docker 环境来解决。通过以上步骤,能够有效地排查和解决 Docker 服务停止不彻底的问题,确保系统的稳定运行。
653 19
|
9月前
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
383 11
|
9月前
|
监控 Linux
Linux systemd 服务启动失败Main process exited, code=exited, status=203/EXEC
通过以上步骤,可以有效解决 systemd 服务启动失败并报错 `Main process exited, code=exited, status=203/EXEC` 的问题。关键在于仔细检查单元文件配置、验证可执行文件的有效性,并通过日志分析具体错误原因。确保可执行文件路径正确、文件具有执行权限,并且可以独立运行,将有助于快速定位和解决问题。
4254 7

热门文章

最新文章