HCRM博客

如何在CentOS 7上配置DNS服务器?

CentOS 7 配置 DNS

CentOS 7是一款广泛使用的Linux发行版,它的稳定性和灵活性使得它在企业和个人用户中都很受欢迎,在网络环境中,DNS(Domain Name System)扮演着至关重要的角色,负责将域名解析为IP地址,使用户能够通过易于记忆的域名访问互联网资源,本文将详细介绍如何在CentOS 7上安装和配置BIND(Berkeley Internet Name Domain)服务,以实现DNS服务器的功能。

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

一、安装与配置DNS

1. 安装 BIND

需要安装 BIND,这是最常用的开源 DNS 服务器软件包,使用以下命令进行安装:

  • sudo yum install bind bindutils y

bind 是 DNS 服务器的主程序,而bindutils 包含了用于 DNS 查询的工具,如dignslookup

2. 修改主配置文件

BIND 的主配置文件位于/etc/named.conf,使用文本编辑器打开该文件:

  • sudo vi /etc/named.conf

在该文件中,找到类似如下的配置项:

如何在CentOS 7上配置DNS服务器?-图2
(图片来源网络,侵权删除)
  • options {
  • listenon port 53 { any; };
  • allowquery { any; };
  • recursion yes;
  • dnssecenable yes;
  • dnssecvalidation yes;
  • bindkeysfile "/etc/named.iscdlv.key";
  • managedkeysdirectory "/var/named/dynamic";
  • pidfile "/run/named/named.pid";
  • sessionkeyfile "/run/named/session.key";
  • };

这些配置项的含义如下:

listenon port 53 { any; }:允许 BIND 在所有接口的 53 端口监听 DNS 请求。

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

recursion yes;:启用递归查询。

dnssecenable yes; 和 dnssecvalidation yes;:启用 DNSSEC(DNS Security Extensions)。

bindkeysfilemanagedkeysdirectory:指定密钥文件和动态管理目录。

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

pidfilesessionkeyfile:指定进程 ID 文件和会话密钥文件。

3. 配置正向解析区域文件

正向解析的作用是根据主机名(域名)查找到对应的 IP 地址,编辑区域配置文件/etc/named.rfc1912.zones,添加以下内容:

  • zone "example.com" IN {
  • type master;
  • file "forward.example.com";
  • allowupdate { none; };
  • };

创建对应的区域数据文件/var/named/forward.example.com

  • sudo vi /var/named/forward.example.com

添加以下内容:

  • $TTL 86400
  • @ IN SOA ns1.example.com. admin.example.com. (
  • 2023101001 ; Serial
  • 3600 ; Refresh
  • 1800 ; Retry
  • 604800 ; Expire
  • 86400 ; Minimum TTL
  • )
  • IN NS ns1.example.com.
  • IN A 192.168.1.100
  • ns1 IN A 192.168.1.100
  • www IN A 192.168.1.100

这些记录的含义如下:

$TTL 86400:生存周期为 1 天。

@ IN SOA ...:起始授权记录,包含主域名服务器和域管理员的电子邮件。

IN NS ns1.example.com.:指定域名服务器。

IN A 192.168.1.100:将域名映射到 IP 地址。

4. 配置反向解析区域文件

反向解析的作用是根据 IP 地址查找到对应的主机名(域名),编辑区域配置文件/etc/named.rfc1912.zones,添加以下内容:

  • zone "1.168.192.inaddr.arpa" IN {
  • type master;
  • file "reverse.example.com";
  • allowupdate { none; };
  • };

创建对应的区域数据文件/var/named/reverse.example.com

  • sudo vi /var/named/reverse.example.com

添加以下内容:

  • $TTL 86400
  • @ IN SOA ns1.example.com. admin.example.com. (
  • 2023101001 ; Serial
  • 3600 ; Refresh
  • 1800 ; Retry
  • 604800 ; Expire
  • 86400 ; Minimum TTL
  • )
  • IN NS ns1.example.com.
  • IN PTR ns1.example.com.
  • 100 IN PTR www.example.com.

这些记录的含义如下:

$TTL 86400:生存周期为 1 天。

@ IN SOA ...:起始授权记录,包含主域名服务器和域管理员的电子邮件。

IN NS ns1.example.com.:指定域名服务器。

IN PTR ns1.example.com.:将 IP 地址映射回域名。

5. 启动 BIND 服务

确保所有的配置都正确无误后,启动 BIND 服务:

  • sudo systemctl enable named
  • sudo systemctl start named

检查 BIND 服务的状态:

  • sudo systemctl status named

这将显示 BIND 服务的当前状态,确保它是活跃的(running)。

6. 测试 DNS 解析

使用dig 命令来测试正向和反向解析是否配置成功:

  • dig @localhost www.example.com
  • dig x @localhost 192.168.1.100

如果配置正确,你应该能够看到相应的解析结果。

二、常见问题解答(FAQs)

Q1:如何更改 BIND 监听的端口号?

A1:可以通过修改 BIND 的主配置文件/etc/named.conf,找到类似如下的配置项:

  • options {
  • listenon port 53 { any; };
  • ...
  • };

port 53 改为你想要的端口号,例如port 53535,然后重新启动 BIND 服务即可。

Q2:如何配置 BIND 只对特定 IP 地址或子网进行响应?

A2:可以通过修改 BIND 的主配置文件/etc/named.conf,找到类似如下的配置项:

  • options {
  • allowquery { any; };
  • ...
  • };

any 改为特定的 IP 地址或子网,例如192.168.1.0/24,然后重新启动 BIND 服务即可,这样,BIND 只会对来自该子网的查询进行响应。

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

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