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

CentOS 7配置DNS,可以通过修改/etc/resolv.conf文件或使用NetworkManager进行设置。

CentOS 7 配置 DNS

centos7 配置dns

一、软件下载

BIND 安装

在 CentOS 7 上,首先需要安装 BIND(Berkeley Internet Name Domain),这是一个广泛使用的开源 DNS 服务器软件,可以通过以下命令进行安装:

   sudo yum install bind bindutils y

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

验证安装

安装完成后,可以使用以下命令验证 BIND 是否正确安装:

   named v

该命令将显示 BIND 的版本信息,如果显示版本号,说明 BIND 已成功安装。

二、规划

决定域名

在配置 DNS 之前,需要决定要解析的域名,例如example.com

规划 IP 地址

centos7 配置dns

为 DNS 服务器和所需主机分配 IP 地址,在本例中,假设 DNS 服务器的 IP 地址为192.168.1.100,客户端的 IP 地址为192.168.1.101

设计正向和反向区域

决定哪些区域文件是必须的,正向解析的区域文件通常以.com 反向解析的区域文件以.inaddr.arpa

三、部署和配置

1. 编辑主配置文件 /etc/named.conf

使用文本编辑器打开/etc/named.conf 文件:

   sudo vi /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";
       allowquery     { any; };
   };
   zone "example.com" IN {
       type master;
       file "/var/named/forward.example.com";
       allowupdate { none; };
   };
   zone "1.168.192.inaddr.arpa" IN {
       type master;
       file "/var/named/reverse.example.com";
       allowupdate { none; };
   };

注释:

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

centos7 配置dns

zone "example.com":定义正向解析的区域文件。

zone "1.168.192.inaddr.arpa":定义反向解析的区域文件。

创建正向区域文件

使用文本编辑器创建正向区域文件:

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

添加以下内容:

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

注释:

SOA 记录指定了授权开始,并列出了主域名服务器和域管理员的电子邮件。

NS 记录指定了域名服务器。

A 记录将域名映射到 IP 地址。

创建反向区域文件

使用文本编辑器创建反向区域文件:

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

添加以下内容:

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

注释:

PTR 记录用于反向 DNS 解析,将 IP 地址映射回域名。

启动 BIND 服务

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

   sudo systemctl enable named
   sudo systemctl start named

检查 DNS 服务状态

使用以下命令检查 BIND 服务的当前状态:

   sudo systemctl status named

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

测试 DNS 解析

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

   dig @localhost www.example.com

这应该返回www.example.com 对应的 IP 地址192.168.1.101

   dig x @localhost 192.168.1.101

这应该返回192.168.1.101 对应的域名www.example.com

四、维护和问题排查

查看日志

BIND 的日志通常位于/var/log/messages,这对于诊断问题非常有帮助,可以使用以下命令查看日志:

   sudo tail f /var/log/messages

更新区域文件

如果需要添加更多的 DNS 记录,编辑相应的区域文件并重启 BIND 服务:

   sudo systemctl restart named

安全配置

确保你的 DNS 服务器不对外开放递归查询,以避免成为放大攻击的工具,可以在/etc/named.conf 中添加以下内容:

   options {
       recursion no;
   };

然后重启 BIND 服务:

   sudo systemctl restart named

五、相关问题与解答

1. 为什么需要关闭防火墙和 SELinux?

答:在某些情况下,防火墙和 SELinux 可能会阻止 BIND 服务的正常通信,为了确保 DNS 服务的正常运行,建议在配置过程中暂时关闭防火墙和 SELinux,完成配置后,可以根据需要重新启用它们。

2. 如果修改了 /etc/resolv.conf 文件后,DNS 设置没有立即生效怎么办?

答:在 CentOS 7 中,如果只修改了/etc/resolv.conf 文件,DNS 配置可能不会立即生效,为了使修改立即生效,可以重启 NetworkManager 服务或重启系统,也可以使用nmcli 命令行工具来设置网络连接的 DNS 服务器地址,这样可以确保修改立即生效。

来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/76856.html

Like (0)
小编的头像小编
Previous 2024年11月25日 02:24
Next 2024年11月25日 02:31

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注