凌峰创科服务平台

RedHat如何配置DNS服务器?

在RedHat系统中配置DNS服务器通常使用BIND(Berkeley Internet Name Domain)软件包,这是最常用且功能强大的DNS实现工具,以下是详细的配置步骤和说明,包括安装、配置文件设置、服务管理及测试方法。

RedHat如何配置DNS服务器?-图1
(图片来源网络,侵删)

确保系统已更新至最新状态,并安装BIND相关软件包,打开终端,执行以下命令:

sudo dnf update -y
sudo dnf install bind bind-utils -y

安装完成后,启动named服务(BIND的守护进程)并设置为开机自启:

sudo systemctl start named
sudo systemctl enable named

检查服务状态,确保运行正常:

sudo systemctl status named

配置DNS服务器的基本参数,BIND的主配置文件是/etc/named.conf,需要编辑该文件以定义区域和选项,使用文本编辑器(如vim)打开文件:

RedHat如何配置DNS服务器?-图2
(图片来源网络,侵删)
sudo vim /etc/named.conf

在文件中,首先修改options部分,设置监听地址和允许查询的客户端,仅允许本地网络查询:

options {
    listen-on port 53 { 127.0.0.1; 192.168.1.0/24; }; // 监听本地和局域网IP
    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";
    allow-query     { localhost; 192.168.1.0/24; }; // 允许查询的网段
    recursion yes;
    dnssec-validation yes;
    /* Path to ISC DLV key */
    bindkeys-file "/etc/named.iscdlv.key";
    managed-keys-directory "/var/named/dynamic";
    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";
};

注意:168.1.0/24需根据实际网络环境修改。

定义正向和反向解析区域,假设要配置的域名为example.com,网络为168.1.0/24,在named.conf中添加以下内容:

zone "example.com" IN {
    type master;
    file "example.com.zone";
    allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {
    type master;
    file "192.168.1.rev";
    allow-update { none; };
};

这里的example.com.zone168.1.rev分别是区域数据文件的名称,需在/var/named目录下创建。

RedHat如何配置DNS服务器?-图3
(图片来源网络,侵删)

创建正向区域文件/var/named/example.com.zone

sudo vim /var/named/example.com.zone
```注意替换实际值):

$TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 2025101501 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ; Minimum TTL ) IN NS ns1.example.com. IN MX 10 mail.example.com. ns1 IN A 192.168.1.10 www IN A 192.168.1.20 mail IN A 192.168.1.30

`SOA`记录包含区域管理信息,`NS`记录指定名称服务器,`A`记录将域名映射到IP地址。
创建反向区域文件`/var/named/192.168.1.rev`:

sudo vim /var/named/192.168.1.rev

$TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 2025101501 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ; Minimum TTL ) IN NS ns1.example.com. 10 IN PTR ns1.example.com. 20 IN PTR www.example.com. 30 IN PTR mail.example.com.

`PTR`记录将IP地址映射到域名,需与正向区域的`A`记录对应。
配置完成后,检查文件权限和语法错误:

sudo chown root:named /var/named/example.com.zone sudo chown root:named /var/named/192.168.1.rev sudo named-checkconf sudo named-checkzone example.com /var/named/example.com.zone sudo named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.rev

若检查通过,重启named服务加载新配置:

sudo systemctl restart named


测试DNS解析功能,使用`dig`或`nslookup`命令查询域名:

dig @127.0.0.1 www.example.com nslookup 192.168.1.20

若返回正确的IP地址或域名,说明配置成功,若需允许其他客户端访问,需检查防火墙设置:

sudo firewall-cmd --permanent --add-service=dns sudo firewall-cmd --reload


以下为相关问答FAQs:
**Q1: 如何修改DNS服务器的监听端口?**  
A1: 在`/etc/named.conf`的`options`部分,修改`listen-on port 53`中的端口号,例如改为`listen-on port 53 { 127.0.0.1; };`,修改后需重启named服务并确保防火墙允许新端口的访问。
**Q2: DNS区域文件中的Serial号有什么作用??**  
A2: Serial号用于标识区域文件的版本,当区域内容更新时,必须递增Serial号(如从2025101501改为2025101502),以便从服务器检测到变化并请求区域传输,若Serial号未更新,从服务器可能不会同步最新数据。
分享:
扫描分享到社交APP
上一篇
下一篇