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

目录
相关文章
|
15天前
|
监控 负载均衡 Cloud Native
ZooKeeper分布式协调服务详解:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析ZooKeeper分布式协调服务原理,涵盖核心概念如Server、Client、ZNode、ACL、Watcher,以及ZAB协议在一致性、会话管理、Leader选举中的作用。讨论ZooKeeper数据模型、操作、会话管理、集群部署与管理、性能调优和监控。同时,文章探讨了ZooKeeper在分布式锁、队列、服务注册与发现等场景的应用,并在面试方面分析了与其它服务的区别、实战挑战及解决方案。附带Java客户端实现分布式锁的代码示例,助力提升面试表现。
30 2
|
19天前
|
Linux 编译器 开发者
Linux设备树解析:桥接硬件与操作系统的关键架构
在探索Linux的庞大和复杂世界时🌌,我们经常会遇到许多关键概念和工具🛠️,它们使得Linux成为了一个强大和灵活的操作系统💪。其中,"设备树"(Device Tree)是一个不可或缺的部分🌲,尤其是在嵌入式系统🖥️和多平台硬件支持方面🔌。让我们深入了解Linux设备树是什么,它的起源,以及为什么Linux需要它🌳。
Linux设备树解析:桥接硬件与操作系统的关键架构
|
1天前
|
Linux Go 数据安全/隐私保护
Linux 中的文件属性解析
在 Linux 系统中,每个文件和目录有一组属性控制其操作和访问权限。了解这些属性对有效管理文件至关重要。文件属性包括:文件类型(如 `-` 表示普通文件,`d` 表示目录),权限(如 `rwx` 表示所有者权限,`r-x` 表示组和其他用户权限),所有者,组,硬链接数,文件大小和最后修改时间。通过 `chown` 和 `chmod` 命令可更改文件所有者、所属组及权限。此外,还有特殊权限(如 SUID、SGID)和 ACL(访问控制列表)提供更精细的访问控制。
|
5天前
|
存储 开发工具 对象存储
Javaweb之SpringBootWeb案例之阿里云OSS服务入门的详细解析
Javaweb之SpringBootWeb案例之阿里云OSS服务入门的详细解析
11 0
|
11天前
|
存储 关系型数据库 MySQL
Linux服务详解
Linux服务详解
25 0
|
12天前
|
网络协议 Ubuntu Linux
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
|
15天前
|
算法 Linux 调度
深度解析:Linux内核的进程调度机制
【4月更文挑战第12天】 在多任务操作系统如Linux中,进程调度机制是系统的核心组成部分之一,它决定了处理器资源如何分配给多个竞争的进程。本文深入探讨了Linux内核中的进程调度策略和相关算法,包括其设计哲学、实现原理及对系统性能的影响。通过分析进程调度器的工作原理,我们能够理解操作系统如何平衡效率、公平性和响应性,进而优化系统表现和用户体验。
20 3
|
19天前
|
监控 Java Linux
linux下监控java进程 实现自动重启服务
linux下监控java进程 实现自动重启服务
|
22天前
|
负载均衡 算法 Linux
深度解析:Linux内核调度器的演变与优化策略
【4月更文挑战第5天】 在本文中,我们将深入探讨Linux操作系统的核心组成部分——内核调度器。文章将首先回顾Linux内核调度器的发展历程,从早期的简单轮转调度(Round Robin)到现代的完全公平调度器(Completely Fair Scheduler, CFS)。接着,分析当前CFS面临的挑战以及社区提出的各种优化方案,最后提出未来可能的发展趋势和研究方向。通过本文,读者将对Linux调度器的原理、实现及其优化有一个全面的认识。
|
22天前
|
关系型数据库 MySQL Linux
linux特定服务日志
Linux系统的服务日志在`/var/log`目录下,如系统日志(`/var/log/syslog`或`/var/log/messages`)、认证日志(`/var/log/auth.log`)、SSH日志(`/var/log/auth.log`或`/var/log/secure`)。Web服务器(Apache和Nginx)的访问和错误日志、MySQL错误日志、Postfix及Dovecot邮件服务器日志也在此处。日志位置可能因发行版和服务配置而异,不确定时可查服务配置或用`grep`搜索。使用`logrotate`可管理日志文件大小。
22 6