HCRM博客

如何在CentOS上配置和管理DNS服务?

CentOS DNS 服务详解与配置指南

一、DNS 服务介绍

如何在CentOS上配置和管理DNS服务?-图1
(图片来源网络,侵权删除)

DNS 的定义与作用

DNS,全称为域名系统(Domain Name System),是一种分布式数据库系统,用于将域名转换为 IP 地址,DNS 的主要功能是通过域名解析来简化用户访问互联网的方式,使人们更容易记住和使用基于文本的域名,而不是复杂的数字 IP 地址,当你在浏览器中输入 www.google.com 时,DNS 服务器会将其解析为相应的 IP 地址,从而让你能够访问谷歌的网站。

DNS 工作原理

DNS 工作原理基于 UDP 协议,使用端口号 53,当用户请求一个域名时,DNS 服务器通过递归查询或迭代查询来找到对应的 IP 地址:

递归查询:DNS 服务器无法直接回答一个查询,它会代表客户端进行查询,直到得到最终结果。

迭代查询:DNS 服务器为客户返回另一台可以进一步查询的 DNS 服务器的地址,由客户端自行向下一台服务器进行查询。

DNS 服务器类型

主DNS服务器:负责维护和解析特定区域内的所有域名。

辅助DNS服务器:为主服务器提供备份,并分担解析任务。

如何在CentOS上配置和管理DNS服务?-图2
(图片来源网络,侵权删除)

高速缓存DNS服务器:存储常见的 DNS 记录,加速解析过程。

二、安装 DNS 服务

安装步骤

1.1 安装 bind 软件包

在 CentOS 系统中,Bind 是最常用的 DNS 服务器软件,可以通过以下命令安装 Bind:

  • sudo yum install bind bindchroot bindutils y

bind:主要的 DNS 服务软件。

bindchroot:安全增强的软件包,可以将命名空间 chroot 到 /var/named/chroot。

如何在CentOS上配置和管理DNS服务?-图3
(图片来源网络,侵权删除)

bindutils:包含一些管理工具如nslookupdig 等。

1.2 检查安装状态

安装完成后,可以通过以下命令检查 Bind 的版本信息以确保安装成功:

  • named v

配置文件说明

2.1 主配置文件/etc/named.conf

该文件设置全局参数和指定区域数据文件的位置。

  • options {
  • listenon port 53 { any; };
  • directory "/var/named";
  • dumpfile "/var/named/data/cache_dump.db";
  • statisticsfile "/var/named/data/named_stats.txt";
  • memstatisticsfile "/var/named/data/named_mem_stats.txt";
  • allowquery { any; };
  • recursion yes;
  • dnssecenable yes;
  • dnssecvalidation yes;
  • dnsseclookaside auto;
  • /* Path to ISC DLV key */
  • bindkeysfile "/etc/named.iscdlv.key";
  • managedkeysdirectory "/var/named/dynamic";
  • };

主要配置项包括:

listenon port 53 { any; };:监听所有网络接口的 53 端口。

directory "/var/named";:定义工作目录。

allowquery { any; };:允许任何主机查询。

recursion yes;:启用递归查询。

2.2 正向解析文件/var/named/named.localhost

这是一个模板文件,通常复制并修改它来创建自定义的正向解析文件,创建一个rion.com.zone 文件:

  • [root@centos8 ~]# cp /etc/named.rfc1912.zones /var/named/rion.com.zone

编辑rion.com.zone 文件以添加具体的域名和 IP 地址记录:

  • $TTL 86400
  • @ IN SOA rion.com. root.rion.com. (
  • 2023101001 ; Serial
  • 3600 ; Refresh
  • 1800 ; Retry
  • 604800 ; Expire
  • 86400 ; Negative TTL
  • )
  • NS rion.com.
  • A 192.168.100.106
  • AAAA ::1
  • MX 10 mail.rion.com.
  • ftp A 192.168.100.110
  • www A 192.168.100.120
  • web CNAME www.rion.com.
  • mail A 192.168.100.130

2.3 反向解析文件/var/named/named.loopback

反向解析文件用于将 IP 地址解析回域名,编辑192.168.100.arpa 文件:

  • $TTL 86400
  • @ IN SOA rion.com. root.rion.com. (
  • 2023101001 ; Serial
  • 3600 ; Refresh
  • 1800 ; Retry
  • 604800 ; Expire
  • 86400 ; Negative TTL
  • )
  • NS rion.com.
  • 106 IN PTR rion.com.
  • 110 IN PTR ftp.rion.com.
  • 120 IN PTR www.rion.com.
  • 130 IN PTR mail.rion.com.

三、配置 DNS 服务

配置正向解析文件

编辑正向解析文件/var/named/rion.com.zone,添加如下内容:

  • $TTL 86400
  • @ IN SOA rion.com. root.rion.com. (
  • 2023101001 ; Serial
  • 3600 ; Refresh
  • 1800 ; Retry
  • 604800 ; Expire
  • 86400 ; Negative TTL
  • )
  • NS rion.com.
  • A 192.168.100.106
  • AAAA ::1
  • MX 10 mail.rion.com.
  • ftp A 192.168.100.110
  • www A 192.168.100.120
  • web CNAME www.rion.com.
  • mail A 192.168.100.130

保存并退出编辑器,此文件定义了rion.com 域的正向解析规则。

配置反向解析文件

编辑反向解析文件/var/named/192.168.100.arpa,添加如下内容:

  • $TTL 86400
  • @ IN SOA rion.com. root.rion.com. (
  • 2023101001 ; Serial
  • 3600 ; Refresh
  • 1800 ; Retry
  • 604800 ; Expire
  • 86400 ; Negative TTL
  • )
  • NS rion.com.
  • 106 IN PTR rion.com.
  • 110 IN PTR ftp.rion.com.
  • 120 IN PTR www.rion.com.
  • 130 IN PTR mail.rion.com.

保存并退出编辑器,此文件定义了192.168.100.x 段的反向解析规则。

3. 修改主配置文件named.conf

确保主配置文件/etc/named.conf 包括以下区域声明:

  • options {
  • listenon port 53 { any; };
  • directory "/var/named";
  • dumpfile "/var/named/data/cache_dump.db";
  • statisticsfile "/var/named/data/named_stats.txt";
  • memstatisticsfile "/var/named/data/named_mem_stats.txt";
  • allowquery { any; };
  • recursion yes;
  • dnssecenable yes;
  • dnssecvalidation yes;
  • dnsseclookaside auto;
  • };
  • logging {
  • channel default_debug {
  • file "/var/named/data/named_debug.log" versions 3;
  • severity dynamic;
  • printtime yes;
  • printseverity yes;
  • printcategory yes;
  • };
  • };
  • zone "." IN {
  • type hint;
  • file "named.ca";
  • };
  • include "/etc/named.rfc1912.zones";
  • include "/etc/named.root.key";

添加新的区域文件:

  • zone "rion.com" IN {
  • type master;
  • file "rion.com.zone";
  • };
  • zone "192.168.100.inaddr.arpa" IN {
  • type master;
  • file "192.168.100.arpa";
  • };

启动与重启 DNS 服务

启动并使 DNS 服务在系统启动时自动运行:

  • sudo systemctl start named
  • sudo systemctl enable named

重启服务以应用更改:

  • sudo systemctl restart named

四、测试与验证

使用 dig 命令测试正向解析

使用dig 命令测试域名解析:

  • dig @localhost www.rion.com

输出示例:

  • ;; QUESTION SECTION:
  • ;; www.rion.com. IN A
  • ;; ANSWER SECTION:
  • www.rion.com. 86400 IN A 192.168.100.120

使用 dig 命令测试反向解析

使用dig 命令测试 IP 地址解析:

  • dig @localhost x 192.168.100.120

输出示例:

  • ;; QUESTION SECTION:
  • ;192.168.100.120. IN PTR
  • ;; ANSWER SECTION:
  • 120、100.168.192.inaddr.arpa. 86400 IN PTR www.rion.com.

常见问题排查与解决方案

DNS 服务无法启动:检查配置文件语法是否正确,可以使用namedcheckconfnamedcheckzone 检查配置文件和区域文件。

权限问题:确保配置文件和区域文件的权限正确,特别是named 用户对相关文件具有读写权限

防火墙设置:确保防火墙开放了端口 53,允许外部查询,可以使用以下命令开放端口:

  • firewallcmd permanent addservice=dns
  • firewallcmd reload

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/13454.html

分享:
扫描分享到社交APP
上一篇
下一篇