Rocky Linux 9 使用bind安装DNS服务器

在 Rocky Linux 9 上搭建企业内部 DNS 服务器可以使用 BIND(Berkeley Internet Name Domain),这是一个广泛使用的 DNS 服务器软件。以下是详细的步骤:

准备:

DNS服务器ip地址:192.168.1.10

需要解析的服务器地址:192.168.1.20

1. 更新系统
首先,确保系统是最新的:

sudo dnf update -y

2. 安装 BIND
安装 BIND 及其相关工具:

dnf install bind bind-utils -y

3. 配置 BIND
BIND 的主配置文件位于 /etc/named.conf。我们需要编辑这个文件来配置 DNS 服务器。

vi /etc/named.conf

在 options 部分,找到 listen-on 和 allow-query 选项,并将其修改为允许内部网络访问:

listen-on port 53 { any; }; # 替换为你的内部网络地址

allow-query { any; }; # 替换为你的内部网络地址

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";
    allow-query     { any; };  # 替换为你的内部网络地址
    recursion yes;

    dnssec-enable yes;
    dnssec-validation yes;

    /* Path to ISC DLV key */
    bindkeys-file "/etc/named.root.key";

    managed-keys-directory "/var/named/dynamic";

    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";
};

在 named.conf 文件的末尾,添加你的 DNS 区域配置。例如,假设你的域名为 example.com:

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.zone";
    allow-update { none; };
};

4. 创建区域文件

在 /var/named/ 目录下创建区域文件。

A:正向区域文件
创建 example.com.zone 文件:

vi /var/named/example.com.zone
$TTL 86400
@       IN      SOA     ns1.example.com. admin.example.com. (
                        2023101001 ; Serial
                        3600       ; Refresh
                        1800       ; Retry
                        1209600    ; Expire
                        86400 )    ; Minimum TTL

@       IN      NS      ns1.example.com.
ns1     IN      A       192.168.1.10
@       IN      A       192.168.1.10
www     IN      A       192.168.1.20

B:反向区域文件
创建 192.168.1.zone 文件:

vi /var/named/192.168.1.zone
$TTL 86400
@       IN      SOA     ns1.example.com. admin.example.com. (
                        2023101001 ; Serial
                        3600       ; Refresh
                        1800       ; Retry
                        1209600    ; Expire
                        86400 )    ; Minimum TTL

@       IN      NS      ns1.example.com.
10      IN      PTR     ns1.example.com.
20      IN      PTR     www.example.com.

6.设置文件权限
确保 BIND 可以读取这些文件:

chown root:named /var/named/example.com.zone
chown root:named /var/named/192.168.1.zone
chmod 640 /var/named/example.com.zone
chmod 640 /var/named/192.168.1.zone

7. 配置防火墙
允许 DNS 服务通过防火墙:

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

8. 测试 DNS 服务器
使用 dig 或 nslookup 命令测试 DNS 服务器是否正常工作:

dig @192.168.1.10 ns1.example.com
nslookup ns1.example.com 192.168.1.10